Shell Built-In
内建 Shell tools、Workspace 持久 Sandbox 与 host 审批
Shell 是 @downcity/city 提供的 Workspace 内建能力,不是 Power。Shell 持有自己的 SandboxProvider、为当前 Workspace 创建的持久 Sandbox,以及其中创建的全部 Shell Sessions。City 不理解 Workspace 使用哪种执行后端。
import { Agent } from "@downcity/agent";
import { City, Shell, Workspace } from "@downcity/city";
import { MicrosandboxProvider } from "@downcity/sandbox-microsandbox";
const workspace = new Workspace({
id: "project",
path: "/path/to/project",
shell: new Shell({
sandbox_provider: new MicrosandboxProvider(),
}),
});
const city = new City({
workspaces: [workspace],
});
const agent = new Agent({ id: "repo-helper" });
city.agents.add(agent);模型会获得 shell_exec 和 shell_session。两者默认使用 target: "sandbox",项目固定挂载在 /workspace。只有确实需要完整宿主能力时才使用 target: "host" 并提供清晰 reason,请求必须经过审批。
同一 Workspace 下的 Chat Session 共享 Sandbox HOME 与已安装工具,不同 Workspace 的可写环境彼此独立。shell_id 标识 Shell Session,不能与 Chat session_id 混用。
关闭 City 或 Workspace 只停止计算资源,不删除持久 Sandbox 文件系统。系统不再提供宿主路径白名单或中间执行 mode。
生命周期、环境变量和审批细节见 Shell 与 Sandbox。