Workspace 与执行

本页定义 workspace 身份、execution root、worktree 隔离和 host-local 执行策略的当前契约。

Last verified: 2026-09-13 against src/types.rs ActiveWorkspaceEntry, WorkspaceOccupancyRecord, WorktreeSession, src/system/types.rs ExecutionSnapshot, and src/runtime/workspace.rs.

源 RFC

核心模型

每个 Agent 恰好有一个活动 workspace(active workspace)。活动 workspace 定义:

概念含义
workspace_idworkspace 的稳定标识符
workspace_anchorworkspace 根目录的文件系统路径
execution_root进程执行的根(可与 anchor 不同)
cwdshell 命令的当前工作目录
projection_kindworkspace 的投影方式(CanonicalRoot、GitWorktreeRoot)
access_modeAgent 持有 workspace 的方式(SharedRead、ExclusiveWrite)

活动 workspace 与 shell cd

Agent home

agent_home 是 Agent 本地状态的内置回退 workspace:

目录用途
AGENTS.md长期 Agent 契约(作为指引加载)
memory/精选记忆 markdown(self.md、operator.md)
notes/工作笔记
work-items/WorkItem 计划工件(plan.md)
skills/Agent 本地 skills
tmp/短生命周期工作文件;随时可能被清理
.holon/运行时拥有的状态、账本、索引、缓存

关键契约:

工作区占用

workspace 跟踪占用(occupancy):哪个 Agent 持有它,以及如何持有:

字段用途
holder_agent_id当前占用该 workspace 的 Agent
access_modeSharedRead 或 ExclusiveWrite
acquired_at获得占用的时间
released_at释放占用的时间(如果已释放)

占用用于协调,不是硬锁。运行时用占用记录做诊断和清理,不在文件系统层面阻止并发访问。

Worktree

当 Agent 需要隔离的文件改动时,CreateWorktree 会基于显式的 branch 和 base_ref 创建或安全复用运行时管理的链接 worktree:

执行快照(ExecutionSnapshot)

AgentSummary 中的 ExecutionSnapshot 记录当前执行上下文:

外层 AgentSummary 还会报告活动 run id(agent.current_run_id)、活动 workspace 占用以及 worktree 会话。

Host-local 策略

Holon 当前的执行模型是 host-local:进程以 Agent 用户的权限在宿主文件系统上运行。 关键约束:

文件引用与输出交付契约

Holon 对结果交付与跨输出表面的文件引用制定了明确契约:

自包含的输出交付

Agent 交付以简报(brief)为核心。最终简报与助手消息必须自包含:操作者无需翻阅中间工具日志或打开引用的文件,即可完整了解工作结果、验证状态、风险和所需的后续操作。文件引用仅作为辅助产物的入口,不能替代结果摘要本身。

按输出表面选择文件引用格式

文件引用的具体表达方式取决于其展示和消费的表面:

位置解析机制

运行时通过 POST /api/file-references/resolve 端点,将绝对路径、历史工作区 URI 以及带 base_file 的相对路径批量解析为已注册的工作区与执行根位置。解析器按文件系统锚点对多执行根进行去重,并保持规范工作区优先,确保跨 worktree 场景下的文件定位清晰可靠。

已知缺口