CodingAgents 如何查看和构建 Canvas
Canvas 不只是给人看的图。对 CodingAgent 来说,它是实时上下文、能力地图;在你允许时,也是 agent 可以整理的工作面。
这是两种不同能力:
- 理解可达图谱,以便使用 Nodes、资源和其他 CodingAgents;
- 编辑 Canvas 结构,通过立即且原子的变更完成。
看到 Node 的位置不代表能读取其内容;能够使用资源也不代表能删除 Workspace 中的任意内容。
图谱就是共享上下文
每次新交互时,Kavor 都会向 CodingAgent 提供其可达组件的当前状态:Nodes、Connections、Guardrails 和理解工作所需事实。
agent 可以操作任何由有效 Connections 路径连接的 Node,无论距离多远:
Specification — Builder — Reviewer — Sticky Note
Builder 通过 Reviewer 到达 Sticky Note;Reviewer 通过 Builder 到达 Specification。两者可以交换消息,而不需要每个资源都 与每个 agent 直接连接。
这能减少 Canvas 上的线条,同时保持拓扑明确:删除 Connection 可能拆分组件,并改变下一次交互的可达范围。
哪些内容直接到达,哪些按需读取
Kavor 优先提供有用上下文,而不是永久复制整个 Workspace。
- 小型文本信息可以随图谱状态提供;
- Specifications 提供 lifecycle、路径和近期 outputs,规范 Markdown 仍留在 Workspace;
- Terminals 提供状态和 foreground 命令,output 按需读取;
- Files 提供规范来源,内容仍在 filesystem;
- CodingAgents 提供状态与工作事实,旧消息按需读取。
大型或持续变化的内容不会不断复制进 context window。agent 得到清晰引用,从而保留推理空间并维护真实信息源。
消息也遵循图谱
任何可达 CodingAgent 都可以向组件内另一个 CodingAgent 发消息,不需要直接 Connection。消息持久化并可在 Messages
面板检查,可用于把实现交给 Reviewer、向 Specification 作者提问、拆分独立调查或返回 findings 并请求复核。
持久决策不应只存在于消息中。契约放在 Specification,工作记忆放在 Sticky Note,结果放在适当 outputs。
Guardrails 仍绑定直接配对
Reachability 定义访问,Guardrail 定义限制。若 CodingAgent 与 Specification 的直接 Connection 带有
specification_read_only,即使存在另一条路径,该限制仍作用于这一对。另一个 CodingAgent 的限制不会成为资源的全局策略。
视觉距离、labels 和消息引用不会授权;必须存在真实的 Connections 路径。
agent 也能看到 layout,但权限更少
为了整理 Workspace,CodingAgent 可以查看 Canvas 上所有 Nodes 的 labels、类型和几何信息。这种 layout 视图不包含其图谱之外 的配置、内容或 Connections。
因此它能对齐或移动组件外的 Node,却不会获得其内容访问权。layout 是 Workspace-wide;上下文与结构变更不是。
Allow workspace editing
每个 CodingAgent 的高级设置中都有 Allow workspace editing。它控制 agent 发起的结构变更,并立即生效,无需重启会话。
启用后,agent 可以在其范围内:
- 创建活动 Nodes,包括 CodingAgent、Specification、Sticky Note、Terminal、File 和 Schedule;
- 创建规范 Specification 并将其呈现在 Canvas;
- 添加受支持 Connections,修改 Terminal Connection 参数;
- 删除 Connections;
- 重命名可达 Nodes 与 Specifications;
- 配置可达 Schedule;
- 移动、调整大小和显示 Nodes。
禁用后,结构变更会被拒绝;agent 应报告设置关闭并停止坚持。layout 仍可用,因为移动 Node 不扩大权限也不改变内容。
结构遵循图谱,而不是整个 Workspace
CodingAgent 可以结构性修改其可达组件中的 Nodes 与 Connections,以及同一原子变更中先前创建的 Nodes。因此它可以创建并 立即连接 Node,不在 Canvas 留下垃圾;孤立 agent 也可在一个批次中创建资源并连接自己。
与图谱外已有 Node 建立第一条链接仍由你决定。agent 不能利用 Workspace layout 视图附着到你从未使其可达的资源。
变更是原子的
Kavor 验证完整变更集合,并按顺序作为一个单元应用。任何一步失败,批次中先前的结构变更都不会保留。
创建 Terminal 并连接 agent,要么两者都成功,要么都不发生;Canvas 不会因最终 Connection 无效而留下孤立 Node。 返回结果是实际持久化形式,agent 应读取它,而不是假设 defaults、几何或规范路径与请求完全相同。
仍由人控制的部分
Allow workspace editing 不授予无限控制。CodingAgent 不能:
- 删除 Nodes;
- 创建、删除或放宽 Guardrails;
- 任意重配其他 Node 类型;
- 更改将入站消息保留给人工批准的控制;
- 利用引用或 Canvas 位置扩大自己的图谱。
agent 可以删除可达 Connection,因此若此操作可能移除上下文或中断其他 CodingAgent,你的请求必须明确。Kavor 要求 agent 仅在你提出要求或已委派工作确有需要时修改 peers 的 Connections。
Docs MCP 帮助 agent 教你使用 Kavor
Kavor 中的 CodingAgents 可以通过本地 Docs MCP 查询官方文档。你无需记住 Node 名称、受支持组合或 Schedule 细节就能求助。
文档只提供指导,不授予权限。Docs MCP 不会创建 Connections、关闭 Guardrails,也不会把建议自动变成 Canvas 变更。
与 agent 协作的三个 prompts
修改前先解释
查询 Kavor 官方文档和当前图谱。解释解决此任务所需的最小结构、哪些 Nodes 将可达,以及哪些限制保持不变。先不要修改 Canvas。
构建可审查的 loop
为此任务创建一个包含 Specification、Builder、Reviewer 和 Sticky Note 的小 loop。使用最少 Connections,在一个原子变更中 创建并连接新 Nodes,然后在实现前停止,让我检查 Canvas。
整理但不扩大访问
整理 Canvas,让意图、实现、审查和证据清晰可读。不要创建或删除 Connections,不要修改 Guardrails,也不要假设能访问 图谱外的 Nodes。
授权编辑前的检查表
- agent 是否解释了预期结构结果?
- 每个新 Node 是否有具体作用?
- 每个 Node 是否会在同一批次连接,或明确只供人工阅读?
- 变更是否留在可达组件内?
- 删除 Connection 是否可能拆分图谱或中断其他 agent?
- 提供资源前是否需要直接 Guardrail?
- agent 应在何处停止等待审查,是否明确?
把 CodingAgent 当作 Canvas 合作者,而不是隐形所有者。价值在于你能检查它收到的结构、发生的变化,以及仍由你控制的边界。
继续阅读
- 用最小拓扑闭合第一个 loop。
- 扩展图谱前查看 Connections 矩阵。
- 了解如何选择 CodingAgents 与角色。
- 在不扩大权限的情况下配置 Schedule。