agentscope-ai / agentscope-ai/agentscope-java
[Feature]: 支持 Local 文件系统共享只读目录配置
- 主要語言
- Java
- 星號
- 5.6k
- 分支
- 1.3k
- 平均合併
- 4 天 12 小時
- 30 天內合併 PR
- 77
描述
## 背景
`RemoteFilesystemSpec` 已支持通过 `addSharedPrefix()` 将工作区中的指定目录作为多租户共享只读基线。
但 `LocalFilesystemSpec` 尚未提供对应能力。在 Local 多租户模式下,直接放置在工作区根目录中的共享文件,会因为用户命名空间隔离而无法被 Agent 访问。
一些简单业务需要 Local 也支持多租户共享文件模式。
例如公共文件位于:
```text
workspace/docs/guide.md
```
用户 Bob 的文件系统默认只能访问:
```text
workspace/bob/docs/guide.md
```
因此 Bob 无法看到公共 `docs` 目录。
## 期望行为
为 `LocalFilesystemSpec` 增加共享目录前缀配置,并与 Remote 模式保持一致的语义:
- 所有租户均可读取共享目录中的文件。
- 租户写入采用 Copy-on-Write,不修改共享源文件。
- 租户覆盖文件按照 `IsolationScope` 隔离。
- 支持配置多个共享目录。
- 拒绝路径穿越及无效目录前缀。
- 保留 Local 模式原有的 Shell 执行能力。
- 未配置共享目录时,完全保持原有 Local 文件系统行为。
## 使用示例
```java
LocalFilesystemSpec spec =
new LocalFilesystemSpec()
.isolationScope(IsolationScope.USER)
.addSharedPrefix("docs/");
```
假设存在公共文件:
```text
workspace/docs/guide.md
```
用户 Bob 可以通过以下虚拟路径读取:
```text
docs/guide.md
```
Bob 修改该文件后,覆盖内容写入:
```text
workspace/bob/docs/guide.md
```
公共源文件保持不变:
```text
workspace/docs/guide.md
```
其他用户仍然读取公共版本,或者读取各自的租户覆盖版本。
默认不启用任何共享目录。未配置时,不应自动共享 `docs/` 或其他目录。
貢獻指南
評估
這個 Issue 還沒有評估資料。