同项目任务互发消息、对方做完可回消息: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 跳过)。
28 lines
1.5 KiB
Plaintext
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 任务发。
|