待办:todo-list/create/update 标记工具 + 首轮未完成待办注入

This commit is contained in:
host committed 2026-10-30 05:11:06 +08:00
1 parent b3b3b35042
commit 73288f08db
5 files changed
+841 -12

No files matched your search

+63 -2
View File
@@ -195,9 +195,10 @@ Docker 执行器都经 sandbox 的结果解析提取标记块(与 task-message
- cloud/marker_tools.py:纯逻辑(解析、校验、快照格式化、
门禁、派生代数与直接上限计数),单测不需要 worker/server。
- cloud/sandbox.py:本地 _result_from_runner 与 Docker
_parse_host_result 两处提取五种标记块,worker 侧按结果
_parse_host_result 两处提取标记块,worker 侧按结果
dict 里的 task_creates / task_polls / wait_threads /
task_cancels / task_retries 执行。
task_cancels / task_retries / todo_lists / todo_creates /
todo_updates 执行。
- cloud/worker.py:_deliver_marker_tools(5 处投递点,与
_deliver_peer_messages 同款位置)、_poll_task_snapshot、
_wait_task_targets、_queue_self_followup、_marker_auth。
@@ -205,3 +206,63 @@ Docker 执行器都经 sandbox 的结果解析提取标记块(与 task-message
跨项目拒绝、自操作拒绝、已终态拒绝、goal / 已合并拒绝、
重试仅三态且清空旧结果、wait 多目标终态与超时快照、派生
深度与直接上限、权限检查失败收紧。
## 待办标记工具(todo-list / todo-create / todo-update)
与上面四类同款异步语义:写块 → 回合结束 → worker 执行 →
报告拼成后续消息、下一轮才回到父任务。goal 任务与协调员
任务不解析(只收不发),所以首轮待办注入也跳过 goal 任务,
避免模型写出永远不会执行的 todo-update 块。
### todo-list:查本项目待办
```text
```todo-list
{"status": "pending", "q": "文档"}
```
```
- 不传 status 时只返回未完成项(pending / in_progress /
blocked),查已完成项须显式传 status;q 是标题/描述子串。
- 每轮最多 5 块;status 非法、q 非字符串或超长时整块跳过。
- 读权限:发送方创建人须有项目 read 权限,否则报告里写清
拒绝;报告最多列 20 条,超出写明还有几条。
### todo-create:新建待办
```text
```todo-create
{"title": "写接口文档", "priority": "high"}
```
```
- title 必填 1-500 字;description 可选 <=20000 字;
status / priority 只能是枚举值;due_at 是 epoch 秒,
>=1e11 按毫秒除 1000;task_id 关联的任务必须在本项目内,
否则整块拒绝;sort_order 整数可选。
- 每轮最多 5 块;写权限:发送方创建人须有 create_task
权限,否则拒绝。
### todo-update:改待办(最常用是改状态)
```text
```todo-update
{"id": "<待办 id>", "status": "completed"}
```
```
- id 必填,至少改一个字段;各字段校验与 todo-create 同款,
未知字段忽略;行不存在或属于别的项目时按“不存在”拒绝,
不改任何状态;completed 记 completed_at,离开 completed
清掉(复用 todos 模块状态机)。
- 每轮最多 5 块;删除不走标记块(硬删除只在控制台 /
REST DELETE 里做,避免模型误删整条)。
### 首轮注入(worker _apply_todo_injection)
- 普通任务被认领的首轮,worker 在内存副本的 prompt 前贴
一份本项目未完成待办(最多 20 条、标题截断 100 字),附
三行 todo-update 示例;原 prompt 不落库,续跑与断点续跑
不重复贴,协调员与 goal 任务跳过,无未完成待办时不贴空
章节,注入查询失败时静默跳过、不炸认领。
- 注入贴的是数据,不是完整工具指南;完整格式只在本文件里。