gbrain Daily Task Manager 技能全解析:基于 `ops/tasks.md` 脑页的确定性任务生命周期管理

发布时间:2026/9/23 4:18:56
gbrain Daily Task Manager 技能全解析:基于 `ops/tasks.md` 脑页的确定性任务生命周期管理
人工智能RAGAgent 记忆MCP 服务知识管理【免费下载链接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain项目地址https://gitcode.com/gh_mirrors/gb/gbrain点击查看免费下载gbrain 的daily-task-manager技能v2.0.0把个人任务清单固化为一页可检索的脑页brain pageops/tasks.md用稳定任务 IDt-YYYYMMDD-NN、确定性动作路由与 fail-closed 歧义处理来驱动 add → complete → defer → remove → review 的完整生命周期。本文基于 技能原文 展开结合仓库中 MCP 操作注册表、页面读写实现与关联测试说明该技能如何运作、为什么这样设计以及如何安全地在自己的 brain 中使用它。技能定位gbrain-daily 变体中的任务中枢daily-task-manager是 gbrain 的daily-driver个人化 personamarketplace 变体 gbrain-daily中任务捕获与追踪的核心技能。在 plugin-lanes.json 中daily-driverpersona 明确记录其入选理由task capture and tracking against the brain在 manifest.json 中它被描述为Task lifecycle: add, complete, defer, remove, review with priority levels。技能声明mutating: true、upstream: daily-task-managerfc834ee即它会真实修改脑状态因此在动作执行上比纯读技能严格得多。它的触发词triggers覆盖了日常最自然的口语指令add task / complete task / what are my tasks / task list / defer task配套的 routing-eval.jsonl 是一组路由评测用例用于验证意图分发不会跑偏例如What are my tasks looking like today?、Add task: renew the acme-example contract next week都应路由到本技能而What did I get done across the brain last week?期望的expected_skill是null不属于本技能职责。契约Contract六条硬性保证技能对调用方包括子 Agent承诺六条可验证的行为约束任务存储在脑页ops/tasks.md使用结构化格式每个任务带稳定id任务生命周期固定为 add → in-progress → complete | defer | remove优先级分四档P0urgent、P1today、P2this week、P3backlog已完成任务归档并携带完成日期延后任务携带目标日期与原因任何变更绝不丢弃无关任务或未知段落最小化 diff每次动作都返回下方定义的结构化结果。这六条中稳定 ID与最小化 diff是 v2.0.0 相对旧版的核心差异也是整份文档的骨架后文会分别展开。结构化返回Returns子 Agent 可链式调用的接口每次动作结束后技能必须以如下结构汇报结果让调用方包括并发编排子 Agent 的上级 Agent能可靠地串联后续操作{action, task_id, status: ok|not_found|ambiguous|needs_confirmation, priority, date, page: ops/tasks.md, saved: true|false}两个特例review动作不返回单个task_id而是返回按优先级分组的活动任务列表当以触发器task list json调用时返回任务对象 JSON 数组{id, description, priority, due, status}而非 Markdown。saved: false表示写入失败例如put_page未成功提交调用方应据此决定是否重试——这与 put_page 实现 中保留 UUID request_id、传输失败后可用相同参数重放的幂等设计相呼应。工具接口四个声明工具就是全部接口技能只允许使用 frontmatter 中声明的四个工具这是接口纪律的关键工具用途对应脑操作get_page(ops/tasks.md)读取任务页pagesput_page(ops/tasks.md, …)写回任务页pagesadd_timeline_entry审计轨迹timelinesearch交叉检索search从 operations.ts 可以看到这些工具在 MCP 操作注册表中的归属get_page/put_page/delete_page/list_pages → pagessearch/query → searchadd_timeline_entry/get_timeline → timeline。技能文档明确要求不得在本技能内 shell 出去调用gbrainCLI 动词——工具就是接口。CLI 仅作为人类手动操作时的等价物出现gbrain get ops/tasks/gbrain put ops/tasksCLI 分发入口 中有get_page的对应 case。底层语义get 与 put 的整页替换与无损回环理解该技能的写入约束必须先理解put_page的底层语义。在 pages.ts 中get_page的文档明确推荐一种无损编辑范式读时传include_content: true返回的content字段是frontmatter body timeline sentinel的规范序列化全文编辑它并原样传回put_page才能无损往返手工拼接compiled_truth/timeline会冒丢失段落的风险。而put_pagepages.ts的语义是Replace a complete canonical Markdown page——整页替换。它支持expected_revision读-改-写时携带修订号防覆盖他人改动、force显式覆盖当前修订与allow_empty默认拒绝用空内容覆盖非空页。这些参数正是文档 Edge Cases 中单写者假设的底层依据由于put_page没有 compare-and-swap两个交错写入就是后写者胜。add_timeline_entrytimeline.ts用于追加审计轨迹且与put_page一样执行 slug 栅栏enforceSubagentSlugFence/enforceClientSlugFence防止写入越界。动作路由Action Routing改状态前先做确定性意图映射在触碰任何状态之前先把用户意图确定性地映射到五种动作之一用户表述示例路由动作add / remind me to / put X on my listadddone with X / finished X / completed X / ✅ Xcompletepush X / defer X / move X to next weekdeferdelete X / remove X / kill task Xremove只认显式删除词绝不推断删除意图what are my tasks / task list / whats on my plate (today)reviewtoday 过滤为 P0P1注意最后一行与 daily-task-prep 的分工whats on my plate 这类早晨准备表述由 daily-task-prep 拥有而任务生命周期表述路由到本技能——routing-eval.jsonl 中用ambiguous_with: [daily-task-prep]显式标注了这一边界。五阶段执行流程PhasesLoad加载get_page(ops/tasks.md)。首次运行时若页面不存在先从下方 Output Format 模板创建页面再继续。Validate校验按 Action Routing 确定动作若必填字段缺失见各动作规则先只问一次简明澄清问题再动状态。绝不臆造优先级、截止日期或延后原因。Identify定位目标complete/defer/remove 需要定位目标任务给定了id就按id匹配否则对描述做模糊匹配且只对活动任务ACTIVE匹配。零匹配 → 返回not_found不改状态多匹配 → 列出带 ID 的候选并返回ambiguous不改状态。这就是 fail-closed宁可停下来问也不猜。Execute执行Add必须有描述。优先级取用户明示或明确暗示的档位否则默认P3 且必须在回复与 timeline 条目中明说默认值生效只有用户给出或明确提到截止日期才写入due。铸造新任务 IDt-YYYYMMDD-NN其中 NN 是当天下一个空闲序号。追加 timeline 条目。Complete标记[x]移入 Completed 区并附(completed: YYYY-MM-DD)。Defer必须同时有目标日期/时间范围和原因缺失则先问。移入 Deferred 区时保留原文、ID 与优先级除非用户主动修改。Remove破坏性操作除非用户消息里已含明确确认否则必须先请求确认优先建议改为 complete 或 defer。Review只读绝不改动状态活动任务按优先级分组展示并附 ID。Save保存任何变更后执行put_page(ops/tasks.md)。保持 diff 心态只改动受影响的行保留所有其他内容包括本技能不认识的段落。边缘情况Edge Cases首次运行页面缺失 → 先按模板创建再行动返回status: ok并注明initialized。页面畸形ops/tasks.md已存在但不符 schema 时不要整页重写——在页内做最小追加/编辑逐字保留未知内容并在回复中标记畸形。重复添加活动任务中已有完全相同的描述时不新增重复项而是报告已存在任务的 ID。日期全流程统一 ISO 8601YYYY-MM-DDtoday/next week 必须用代码/时钟计算绝不凭感觉猜。页面标识符工具调用中始终使用ops/tasks.md带扩展名这是唯一规范位置。单写者假设并发限制任务周期是 read-modify-write——get_page→ 编辑 →put_page。由于put_page整页替换且无 compare-and-swap两个交错变更就是后写者胜完成的任务会复活、新增的任务会消失且t-YYYYMMDD-NN铸造可能把同一序号发给两个并发 add重复 ID。因此必须串行化任务编辑——绝不对ops/tasks.md做并行变更多子 Agent、并发对话轮次。若某次变更可能竞争应在put_page前立即重新get_page并从最新读到的页面重新推导下一个空闲序号。这一条是全文最重要的运维红线直接源于 put_page 的整页替换语义。仓库中的 sync-ops-pages.serial.test.ts 也把 daily-task-manager 的规范页ops/tasks当作必须可同步的典型页面来验证脑页与 Git 仓库的同步一致性。输出格式Output Format持久化页面格式每行一个稳定 ID# Tasks ## P0 — Urgent - [ ] !-- id: t-20260115-01 -- {task description} (due: {date}) ## P1 — Today - [ ] !-- id: {task-id} -- {task description} (due: {date optional}) ## P2 — This Week - [ ] !-- id: {task-id} -- {task description} (due: {date optional}) ## P3 — Backlog - [ ] !-- id: {task-id} -- {task description} ## Deferred - [ ] !-- id: {task-id} -- {task description} (deferred until: {date}; reason: {reason}) ## Completed - [x] !-- id: {task-id} -- {task description} (completed: {date})格式要点解读稳定 ID 内嵌在 HTML 注释中!-- id: t-20260115-01 --。它在 Markdown 渲染时不可见但对机器可解析、对搜索可命中是后续动作能安全定位任务的根基ID 命名规则t- 日期YYYYMMDD 当日序号NN如t-20260115-01序号取当天下一个空闲值保证同一页面内 ID 唯一状态由区段 复选框表达活动任务在 P0–P3 四档优先级区段- [ ]延后任务在 Deferred 区段并携带deferred until与reason完成任务在 Completed 区段- [x]并携带completed日期一行即一条记录描述、ID、元数据全部内联便于 diff 式最小化编辑。用户可见响应保持紧凑变更类动作后回复一行动作、任务 ID、优先级/状态、相关日期、是否已保存。例如added task t-20260115-01 (P3, default priority) to ops/tasks.md — saved: truereview 则回复按优先级分组的活动任务。技能要求回复紧凑避免在窄聊天界面使用表格。反模式清单Anti-Patterns每条都带纠正动作加任务不给优先级 → 默认 P3 且明说默认值已生效绝不静默对歧义引用执行变更 → 停下列出带 ID 的候选询问完成时不带完成日期 → 始终盖戳(completed: YYYY-MM-DD)延后时缺目标日期或原因 → 先要齐两者再执行删除未获明确确认 → 先确认并提供 complete/defer 作为替代整页覆盖/丢弃未知段落 → 只做最小 diff 编辑使用未声明工具或 CLI 动词 → 只用get_page/put_page/search/add_timeline_entry臆造截止日期、优先级或原因 → 绝不虚构必填字段缺了就问清单无界增长 → Backlog 超过约 20 项时主动提示做一次周度回顾把任务存在脑页之外 → 一切都住在ops/tasks.md可检索对ops/tasks.md并行变更 → 整页put_page后写者胜会静默丢失更新并铸造重复 ID串行编辑写前立即重读。设计动机Design Rationalev2.0.0 修复的四类失败模式接口漂移Interface drift旧版本在 frontmatter 里声明了get_page/put_page正文却教模型用 CLI 动词——模型随机二选一。现在声明工具就是接口CLI 降级为人类等价操作的注释。仓库中 book-mirror.ts 是同一纪律的佐证子 Agent 的allowed_tools只给[get_page, search]写入一律收敛到一处put_page。任务不可匹配Unmatchable tasks没有任务 ID 时complete the deploy task 面对两条相似任务会静默改错目标。稳定t-YYYYMMDD-NNID fail-closed 歧义处理修复了它。首次运行崩溃First-run crash默认ops/tasks.md已存在导致缺页成为未定义行为。首次运行从模板创建修复了它。整页覆盖风险Wholesale overwrite riskwrite updated task list 这类指令会诱导模型整页重写从而丢掉并发编辑。最小 diff 强制 保留未知内容规则修复了它。在 gbrain-daily 生态中的协作位置daily-task-manager不是孤岛daily-task-prepSKILL.md负责早晨准备加载日历、昨天的未决线程然后Load ops/tasks from brain并只挑出 P0/P1 面向上汇报。一个负责产生任务一个负责消费任务职责互补routing-eval.jsonlrouting-eval.jsonl用意图改写intent paraphrase遵循 D-CX-6 约定改写而非复制触发器持续回归验证路由边界防止任务表述被错误分派文件归档纪律任务页ops/tasks.md固定在ops/命名空间遵循 brain-filing-rules 中内容按主主体归档的总体规则只是ops/属于技能操作的固定路径而非主题目录变体打包gbrain-daily 变体由 generate-plugin-tree.ts 从 plugin lane 生成见 gbrain-daily/README.mdREADME 同时提醒每台机器只安装一个gbrain 插件变体因为所有变体共用同一个gbrainMCP server 名装两个会双重服务。落地建议在 agent 环境里把任务管理完全交给本技能与它声明的四个 MCP 工具不要在技能内混用 CLI 动词若要手工维护同一页面人的等价命令是gbrain get ops/tasks/gbrain put ops/tasks但需注意人与 agent 并行写入同样受单写者假设约束若你的编排会出现多个子 Agent 同时改任务请串行化或改用只读子 Agent 单点写入的架构参考 book-mirror.ts 的信任边界设计当 Backlog 接近 20 条时按反模式清单主动触发周度回顾保持清单可检索、可行动。简言之daily-task-manager用稳定 ID 确定性路由 最小 diff 单写者纪律四个支柱把个人任务管理做成可靠、可审计、可被子 Agent 安全调用的脑页服务——这正是 gbrain 把知识存储与 Agent 执行粘合在一起的典型样本。赞分享人工智能RAGAgent 记忆MCP 服务知识管理【免费下载链接】gbrainGarrys Opinionated OpenClaw/Hermes Agent Brain项目地址https://gitcode.com/gh_mirrors/gb/gbrain点击查看免费下载相关推荐Wazuh Task Manager 深度解析Manager 侧分布式任务编排、生命周期管理与源码级实现Wazuh Task Manager 深度解析Manager 侧分布式任务编排、生命周期管理与源码级实现 本文以 Wazuh 官方模块文档 docs/ref/网络安全IDS日志分析应用安全漏洞扫描ScyllaDB Task Manager长时后台任务的跟踪模型、生命周期管理与 REST API 详解ScyllaDB Task Manager长时后台任务的跟踪模型、生命周期管理与 REST API 详解 ScyllaDB 的 Task Manager 是一数据库分布式数据库后端大数据LobeHub lh task 命令完全参考掌握 Agent 任务全生命周期管理 CLILobeHub lh task 命令完全参考掌握 Agent 任务全生命周期管理 CLI lh task 是 LobeHub 内置 skill task 人工智能AI 应用大模型AI Agent多智能体工具调用前端后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考