连线之后,Agent 之间有三种传递工作的方式,适用场景不同。
收件箱(拉取)
最常用、最安静的方式。发送方完成阶段性工作后存一条短消息:结果、证据文件路径、需要对方判断的问题。接收方在需要时主动查看收件箱,处理完再确认。
- 应用不会自动把消息粘进对方终端,也不会替对方按回车。
- 读取不消耗消息,确认才算接下。
- 消息只能发给有连线、且在同一工作空间的 Agent。
在画布启动的终端里,Agent 通过随包的 armadra-hook 使用这些动作,例如:
armadra-hook canvas post --to <节点> --key review-1 --body '构建已通过,请审查 src/api.ts 的错误返回。'
armadra-hook canvas inbox
armadra-hook canvas ack --id <消息>
一般不需要你手敲:画布技能会告诉 Agent 什么时候用哪一个。
投递(推送)
需要对方马上开始时,canvas send 把一句任务投进目标终端。投递会排队,等目标空闲、停在提示符上、没有半截输入时才写入;休眠的目标先唤醒再投。投递结果会作为回执回到发送方。
canvas interrupt 只给目标发一个 Escape,用来打断跑偏的一轮,不带任何文字。
对话交接
把一段阶段性工作整理成一份冻结的交接包,交给另一个相连的 Agent:
- 在 Agent 节点的「更多 → Agent 协作 → 交接到…」选择目标。
- 预览里列出目标 Agent、带走的文件与 Git 状态、按预算裁剪的结果,以及没有包含的内容。
- 你确认后,交接包才进入目标的收件箱;看到的和批准的必须是同一份。
会话里已有的权限批准不随交接转移,凭据不进入交接包;来源会话继续运行。
Once agents are linked, they have three ways to pass work along, each for a different situation.
Inbox (pull)
The most common and quietest way. After a milestone the sender stores a short message: the result, paths to evidence, and the specific question for the other side. The receiver checks its inbox when it needs to and acknowledges once done.
- The app never pastes the message into the other terminal or presses Enter for it.
- Reading doesn’t consume a message; acknowledging means “I’ve taken this”.
- Messages can only go to agents that are linked and in the same workspace.
In terminals launched from the canvas, agents use these actions through the bundled armadra-hook, for example:
armadra-hook canvas post --to <node> --key review-1 --body 'Build passes. Please review the error handling in src/api.ts.'
armadra-hook canvas inbox
armadra-hook canvas ack --id <message>
You usually don’t type these yourself: the canvas skill tells the agent which one to use and when.
Delivery (push)
When the other side should start right away, canvas send delivers one task line into the target terminal. Deliveries queue and are written only when the target is idle, sitting at its prompt and has no half-typed input; a hibernated target is woken first. The outcome returns to the sender as a receipt.
canvas interrupt sends the target a single Escape to stop a run that went off track; it carries no text.
Conversation handoff
Package a stretch of work into a frozen handoff and give it to another linked agent:
- In the agent node choose More → Agent collaboration → Hand off to…, and pick the target.
- The preview lists the target agent, the files and Git state that travel along, the result trimmed to budget, and what is not included.
- Only after you confirm does the package enter the target’s inbox; what you saw and what you approved must be the same package.
Permission approvals in the session don’t transfer, credentials never enter the package, and the source session keeps running.