feat: 会话内 LLM 自判 goal / 自动化标记工具,不靠关键词

agent 在回合输出里写 goal-convert 块,worker 在轮次边界
排成 /goal 自后续消息、走已有 followup 转换路径把本会话
转成 goal;写 automation-create 块,worker 在轮次边界
创建自动化定义(权限 create_task、配额整轮门、创建人跟
父任务走、name 缺失自动生成、首次时刻已过去单块拒绝、
bind heartbeat 可绑回本会话)。

automations 新增 first_run_at / run_once:首次时刻只管
首次、之后按间隔算;只跑一次跑过后 is_due / due / claim
三处都不再到期(SQL 到期条件与 Python 口径共用同一
_DUE_SQL);API 创建与更新同步接受这两个字段。

刻意不向 LLM 自动注入工具指南:避免 prompt 臃肿,格式
只写进 docs/marker-tools.md 与 README,需要时由用户在
会话里手动告诉 agent;服务端不按关键词再猜意图。

单测 cloud/tests/test_session_goal_automation.py 12 项,
相关回归 218 项全过。
This commit is contained in:
host committed 2026-10-30 07:15:05 +08:00
1 parent f1aab5415c
commit e81ba8d2bf
8 files changed
+892 -51

No files matched your search

+9
View File
@@ -559,6 +559,15 @@ merged 409、空目标 400。goal 语义与新建 goal 模式一致:
是永不结束的常驻采集——需要继续收时再发一次 /goal 续开
新循环。
不靠关键词的另一条路(LLM 自己判断):会话里的 agent
也可以在回合输出里写 `goal-convert` 块把本会话转成 goal,
或写 `automation-create` 块新建自动化定义(首次运行时刻
`first_run_at`、只跑一次 `once`、绑回本会话 `bind:
"heartbeat"`),worker 在轮次边界执行,格式与口径见
`docs/marker-tools.md` 新增的两节。本批刻意不向 LLM 自动
注入这两个工具的指南(避免 prompt 臃肿),需要时由用户在
会话里手动告诉 agent;服务端不按关键词再猜意图。
## 任务间互发消息(peer messages,Muse 式通用互发)
任意两个同项目任务可以互发消息、对方做完可以回消息,不