待办:todo-list/create/update 标记工具 + 首轮未完成待办注入
This commit is contained in:
1 parent
b3b3b35042
commit
73288f08db
5 files changed
+841
-12
No files matched your search
+63
-2
@@ -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 任务跳过,无未完成待办时不贴空
|
||||
章节,注入查询失败时静默跳过、不炸认领。
|
||||
- 注入贴的是数据,不是完整工具指南;完整格式只在本文件里。
|
||||
Reference in new issue
Block a user