Skip to main content
工作区的资源并非在创建时就固定不变。MCP 服务与技能都可以在工作区运行期间添加或移除,且每次变更都会持久化,重启后依然生效。生命周期方法则负责把工作区从开通带到释放。

管理 MCP 服务

MCP 声明按 agent_id + session_id 隔离。即使多个会话共用同一个工作区,状态型 MCP 的连接、Cookie 和登录状态也不会串到其他会话。客户端在该会话首次调用 list_mcps 时才会建立连接:
持久化遵循工作区自身的模型:未挂载主机 workdir 的临时 DockerWorkspace 只在内存中保存 MCP 列表,容器销毁后即丢失。

管理技能

技能按 agent_id 隔离。skill_paths 先写入 skills/.seed 模板;智能体首次访问时,工作区为它创建独立分区。add_skillremove_skilllist_skills 只操作指定智能体的分区:

管理生命周期

三个方法贯穿工作区的一生,async with 协议则把 initialize / close 包装为作用域用法:
reset() 会删除所有会话的 MCP 声明、技能分区和会话状态。此后会话再次访问 MCP 时会重新继承 default_mcpsskill_paths 则不会重新播种。

在服务中分配工作区

在多租户服务中,决定哪个请求使用哪个工作区(按用户、智能体或会话)、缓存活跃实例、淘汰空闲实例,是工作区管理器的职责,它是独立的服务侧组件,有专门的章节介绍:

工作区管理器

分配与隔离策略、TTL 淘汰,以及与智能体服务的集成。