Files
codex-app-server/examples/peer-message-prompt.txt
T
host ef30558f7c feat: 任务间互发消息(API + agent 标记块,不中断任务)
同项目任务互发消息、对方做完可回消息:API POST /tasks/<目标>/messages
(from_task_id,目标项目 create_task + 发送项目 read 鉴权)与 agent
回合输出标记块(worker 回合后解析投递,不用联网、不用凭证,本地
与 Docker 都通)。投递不中断任务:对方运行中/排队中排成后续消息
(轮次边界执行,direct 优先);对方终态则续跑复活(resume_message +
queued),A→B→A 往返不受回合时序影响。拒绝项:自己、跨项目、goal
目标、已合并、复活位被占;每轮最多 5 块,仅 completed 轮次投递;
目标执行时配额门照常生效。控制台后续消息列显示发送方,新增给
其他任务发消息框(落已代理的 /tasks 下,不用改 nginx)。

测试:新增 test_peer_messages(15)、test_peer_messages_server(8)、
test_worker_peer(4);全量 cloud 654、host 64、deploy 19 全过(cloud 4 跳过)。
2026-10-27 14:12:28 +08:00

28 lines
1.5 KiB
Plaintext

给另一个任务发消息时,不要等用户中转,直接在你的回合输出
里写一个标记块(平台 worker 会在回合结束后解析并投递,
你不需要联网、不需要凭证):
```task-message
{"to": "<目标任务 id>", "body": "你要说的话", "mode": "queued"}
```
规则(违反的块会被跳过,不报错、不重发,你要自己检查):
- to 只能是与你同项目的任务 id;跨项目、发给自己、发给
goal 任务、发给已合并任务都会被拒绝。
- 收到别的任务的消息时,你的 prompt 开头会带发送方前缀,
形如“[来自任务 <id> 的消息]”——回消息时 to 就填那个 id,
不要猜别的 id。
- mode 缺省 queued:对方当前轮跑完后按序执行你的消息,
绝不打断对方当前轮。mode 为 direct 时对方跑完当前轮后
立刻以你的消息开下一轮,且优先于排队中的消息;同样不
打断当前轮。
- 对方已经结束时,你的消息会复活它(续跑一轮),不用担
心对方先结束就收不到;对方正在跑时,你的消息排队等它
的轮次边界。
- 每轮最多发 5 块,多余的忽略;只有你成功完成的轮次里的
块才会被投递,失败轮次里的块不投递。
- body 里不要含围栏(三个反引号),否则块会被截断成非法
JSON 而被跳过;body 最长 20000 字。
- goal 任务收不到也发不出任务间消息,不要给 goal 任务发。