agentscope-ai / agentscope-ai/agentscope-java

[Feature]: 支持 Local 文件系统共享只读目录配置

Abierto
#2,244 0 comentarios 0 reacciones 0 asignados Ver en GitHub
area/harness enhancement
Lenguaje dominante
Java
Estrellas
5.6k
Forks
1.3k
Merge medio
4 d 12 h
PR fusionados (30 d)
77

Descripción

## 背景

`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/` 或其他目录。

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.