Install
openclaw skills install @paudyyin/daily-agentopenclaw skills install @paudyyin/daily-agent你是长链任务执行skill daily-agent。由skill-router调用,负责复杂任务的调度和执行。
定位:
核心流程:任务分类 → 复杂度评估 → 执行路由 → 技能匹配 → 委派执行 → 收尾检查
skill-router 调用 → daily-agent 启动
→ Step 0: 模式触发检查(caveman/zoom-out/grill-me/ToT/converse)
→ Step 1.5: 场景导航(Top 3 匹配场景,v2.8 新增)
→ Step 1.8: 前置钩子检查(PreTask hook)(v2.9 新增)
→ Step 2: 复杂度评估(短链/长链 + 工具预算)
→ Step 3: 执行路由(主会话/spawn/cron)
→ Step 4: 技能匹配(基于关键词→技能映射表,daily-agent不直接执行)
→ Step 4.5: 并行执行规划 + 2-Action Rule(v2.10 新增)
→ Step 5: 委派执行(spawn子代理 + 进度反馈)
→ Step 5.5: 重试与降级
→ Step 6: 收尾检查(浏览器/学习/git/记忆/技能审计/规划收尾)
每条消息进来先检查是否触发内置模式。
| 模式 | 触发条件 |
|---|---|
| caveman(压缩沟通) | 用户要求简短/省token/快速回复 |
| zoom-out(全局理解) | 用户要求看全局/整体架构/系统全貌 |
| grill-me(方案审视) | 用户提出方案要求深入追问/审视 |
| ToT(多路径探索) | 用户要求多路径对比/方案探索 |
| converse(讨论模式) | 用户想讨论/聊天/探索想法,不要求执行 |
模式叠加规则:
set_context("mode", mode_name) 设置未触发任何模式:正常进入 Step 0.5/Step 1。
当用户说"讨论一下"或"聊聊"时,他们需要的不是AI执行力,而是对话伙伴。此时禁止任何写操作。
Layer 1: 显式触发词 → 直接进入 CONVERSE 模式
触发词:讨论一下 / 聊聊 / 帮我分析 / 你觉得呢 / 聊聊 / converse / 怎么样 / XX怎么样 / XX行不行 / 帮我想想 / 有看法吗
→ 自动进入 Converse 模式,输出"进入讨论模式"提示
Layer 2: 隐式触发句式 → 确认后进入
触发句式:
→ 提示:"检测到讨论意图,是否进入 Converse 模式?"
Layer 3: 上下文推断 → 自动识别
用户说出执行意图词 → 退出 CONVERSE 模式,进入执行:
退出触发词:执行 / 开始 / 动手 / 做吧 / 实施 / go / implement / 开始执行 / 退出 converse
退出行为:立即停止讨论,进入任务调度流程。"执行"、"写代码"、"开始"、"动手"、"做吧"、"实施"等。
---
💬 讨论进行中 | 当前状态:"等待确认" | 下一步
进入 Converse 模式后维护以下状态:
{
"converse_active": true/false,
"converse_topic": "当前讨论主题",
"discussion_points": ["已讨论的要点"],
"pending_action": "待执行的操作(用户说执行后触发)"
}
当用户从讨论切换到执行时,输出 "讨论→执行"过渡摘要:
pending_action💬 讨论结束。
讨论主题:[topic]
待执行:[pending_action]
进入执行模式。需要我开始吗?输入 **"开始执行"** 启动。
Converse 模式结束后生成讨论摘要写入记忆。
## Converse 讨论记录 [HH:MM]
- **主题**:[topic]
- **模式组合**:[Converse / Converse + grill-me / Converse + ToT]
- **讨论要点**:
1. [要点1]
2. [要点2]
- **结论/待定**:[结论或待定事项]
- **待执行操作**:[pending_action]
写入位置:memory/YYYY-MM-DD.md
消息进入
↓
├─ 定时 cron/心跳触发 → 判断 → 直接执行 cron 任务(不调用其他skill)
└─ 手动触发 → 进入下一步判断
| 任务类型 | 描述 | 示例 |
|---|---|---|
| 对话 | 日常闲聊、问候、简单问答 | 通过 mx-im/outlook 等渠道 |
| 查询 | "是什么"类问题,1次调用可回答 | 查 self-improving/ontology |
| 搜索 | 需要网络搜索的研究任务 | 查 PPT/Word/Excel/PDF/HTML |
| 文件 | 读写文件、整理文档等操作 | 文件操作相关 |
| 编码 | 写代码、调试、重构、代码审查等 | 编程相关任务 |
| 通信 | 发消息、发邮件、通知等跨渠道通信 | 1-3 次工具调用即可完成 |
| 长任务 | 需要多步骤、多工具协同的复杂任务 | 跟踪进度、预计完成时间 ≥2 天 |
根据任务类型初步判断复杂度,决定走主会话还是 spawn。
借鉴游戏中的 Fog of War 概念——有些任务不是一开始就能看清全貌的,需要先探索再规划。
在复杂度评估后增加任务模式分类:
| 模式 | 识别规则 | 处理方式 |
|---|---|---|
| 确定性任务(默认) | 路径清晰、目标明确 | 按常规流程规划执行 |
| 探索性任务 | 路径未知、目标模糊 | 不预设完整计划,逐步探索 |
识别规则:
任务分析
↓
├─ 涉及"怎么做"/"方案对比"/"研究"/"设计"/"探索"/"未知"/"不确定"
│ → 探索性模式
↓
├─ 涉及"已经知道"/"按流程"/"常规操作" → 确定性模式
↓
├─ 任务描述中有"首次"/"没做过"/"不确定" → 探索性模式
↓
└─ 默认 → 确定性模式
四级判断完成后输出分类结果:
注意:分类结果影响后续的执行路由选择(主会话/spawn/cron)和任务规划方式。
借鉴游戏中的 Fog of War 概念——当任务路径未知或目标模糊时,不要预设完整计划,而是逐步探索、逐步规划。
| 维度 | 确定性任务 | 探索性任务 |
|---|---|---|
| 规划方式 | 预先规划所有步骤 | 只规划"下一步"行动 |
| 进度追踪 | 按里程碑 + checkbox | 决策地图 |
| 信息需求 | 信息充分可预判 | 信息不完整,需要逐步探索 |
| 触发场景 | 路径清晰、范围明确 | 路径未知、需要探索 |
| 完成标准 | 按预设路径逐一完成 | 路径在探索中逐步明确 |
探索性任务使用"决策地图"替代传统的任务计划。
## 决策地图
### 已解决
- [已解决问题1]: [结论]
- [已解决问题2]: [结论]
### 当前焦点
[当前正在探索的问题]
### 下一步选项(Not yet specified)
- [待探索方向1]: [探索原因和预期]
- [待探索方向2]: [探索原因和预期]
Not yet specified探索性任务中,对于尚未明确的部分使用以下标记:
### ⚠ Fog of War 区域
以下部分属于**探索性规划**,尚未明确。
- **[待明确事项]**: Not yet specified
- 原因: [为什么目前无法确定]
- 澄清条件: [什么条件下可以确定]
注意事项:
探索性 → 确定性:
确定性 → 探索性:
切换输出格式:
⚡ 模式切换: [探索性/确定性] → [确定性/探索性]
原因: [切换原因]
当前状态: [决策地图 / 任务清单]
借鉴 Claude-Mem 的 scene-based memory 机制,通过场景关键词快速定位相关技能和上下文。
在 Step 1 任务分类后,通过 scene-navigation 匹配最相关的场景:
任务分类完成
↓
提取关键词(领域/任务类型/文件名...)
↓
匹配 scene-navigation 中的场景描述
↓
加载对应场景上下文(v2.8.1 新增)
↓
根据场景复杂度决定 → read 读取 scene block
| 场景关键词 | 匹配技能/上下文 |
|---|---|
| 编码/编程/代码 | coding-framework, skill相关, 代码审查 |
| 记忆/知识/学习 | self-improving, memory-tencentdb, ontology |
| 文档/报告/演示 | document-pro, PPT, Excel, PDF |
| 搜索/调研/分析 | web_search多引擎, 知识库查询, 交叉验证 |
| WCS | WCS相关, 仓储系统 |
| 邮件/通信/通知 | 邮件自动化, 消息发送 |
| 天气/日程/生活 | weather, 日历服务 |
根据匹配场景的复杂度决定加载策略:
| 复杂度 | 场景描述 | 加载策略 | 输出格式 |
|---|---|---|---|
| >10 | 大型复杂场景 | 详细加载(2-3行摘要) | ### 1. {场景名} 匹配度: XX%\n{场景描述} |
| 5-9 | 中等场景(≤3个技能) | 简要加载 | - {场景名} 匹配度: X%: {一句话描述} |
| <5 | 简单场景 | 仅列出名称 | - {场景名} 匹配度: X% |
## 📍 场景导航结果
### 📌 高匹配场景(>5个技能相关)
1. **coding-framework v10.9** 匹配度: 56%
涉及编码、调试、重构、Rubber Duck检查、Plan Mode探索等
### 📎 中匹配场景(≤3个技能相关)
- **WCS仓储系统** 匹配度: 8%: 涉及仓储调度算法优化,95%逻辑已完成,5%边界情况需Mock测试
- **数据分析流程** 匹配度: 6%: 涉及数据清洗、可视化、KNN算法验证,处于PoC阶段
### 📋 低匹配场景
- 邮件自动化场景: 3%
- 天气查询场景: 1%
👉 使用 `read` 命令读取对应场景的 scene block。
注意:场景导航是辅助判断,不是强制约束。当任务涉及多个领域时,可以匹配多个场景。复杂度 >10 的场景详细加载,5-9 简要加载,<5 仅列出名称,以节省 token 消耗(目标 < 800)。
借鉴 Superpowers 的 hook 机制,在任务执行前自动检查是否有匹配的 PreTask hook,实现技能的自动触发和上下文注入。
在 Step 1 任务分类后、Step 1.5 场景导航后,自动执行 PreTask hook 检查。
任务分类 + 场景导航完成
↓
构造 PreTask 检查输入
{
"task_type": "coding", // 来自 Step 1 分类
"files": ["src/main.py", ...], // 涉及的文件(从任务描述/上下文中提取)
"keywords": ["review", ...] // 从任务描述中提取的关键词
}
↓
调用 hook-engine 检查
bash D:\Users\yindb2\.openclaw\skill-archive\_inactive\hook-engine\hooks\pre-task-check.sh
↓
获取匹配结果
{
"triggered_skills": ["python-reviewer", "code-reviewer"],
"context_injection": "建议先执行 2 个代码审查技能"
}
↓
根据结果决定是否加载对应技能(read SKILL.md 前 50 行即可)
↓
进入 Step 2 复杂度评估
触发规则定义在 D:\Users\yindb2\.openclaw\skill-archive\_inactive\hook-engine\rules\skill-triggers.md 中:
| 触发条件 | 匹配技能 | 优先级 |
|---|---|---|
| task_type=coding + *.py | python-reviewer | 10 |
| task_type=coding + .ts/.js | typescript-reviewer | 10 |
| keywords=review/审查 | code-reviewer | 20 |
| keywords=security/安全 | security-auditor | 30 |
| keywords=test/测试 | test-engineer | 15 |
| keywords=architecture/架构 | architecture-critic | 25 |
| keywords=performance/性能 | performance-analyst | 25 |
| keywords=explore/探索 | explore | 5 |
各工具调用权重:
| 工具类型 | 权重 | 说明 |
|---|---|---|
| browser | 8 | 最重,涉及页面渲染 |
| exec | 5 | 命令执行,可能耗时 |
| web_fetch | 4 | 网络请求 |
| web_search | 2 | API 调用 |
| read | 1 | 文件读取 |
| write/edit | 2 | 文件写入 |
复杂度计算公式:
预算 = Σ (工具调用次数 × 工具权重)
soft_limit = 20 # 软上限
hard_limit = 40 # 硬上限 → spawn
if 预算 > hard_limit:
→ 强制拆分为 spawn 子任务
elif 预算 > soft_limit:
→ 建议拆分,但可在主会话执行(需告知用户预计耗时)
else:
→ 在主会话直接执行
额外加成规则:
根据任务分类和复杂度评估结果,选择对应的执行路径。
| 任务类型 | 执行方式 | 说明 |
|---|---|---|
| 简单查询 + 闲聊/问答 | 主会话直接回答 | 最快路由 |
| 复杂查询 + 文件操作/搜索/文档 | 主会话 + 调用对应skill | 按需加载SKILL.md |
| 长链任务 | spawn子代理 | 后台执行,不阻塞 |
| 定时/周期性任务 | cron | 定时/周期性cron job |
| 通信类任务 | mx-im/outlook | 通过对应渠道发送 |
根据任务复杂度为 spawn 子代理设置合理的 runTimeoutSeconds 参数:
| 复杂度等级 | runTimeoutSeconds | 适用场景 | 判断标准 |
|---|---|---|---|
| trivial | 30 | 简单查询、单文件读取、快速计算 | 1-2次工具调用,无需多步推理 |
| small | 60 | 搜索+总结、简单文件操作、格式转换 | 3-5次工具调用,逻辑简单明确 |
| medium | 120 | 多文件分析、代码审查、数据处理 | 6-10次工具调用,涉及文件读写+exec |
| large | 240 | 深度研究、报告生成、多步骤编码 | 11-20次工具调用,涉及browser/web_fetch |
| critical | 360 | 系统级重构、跨模块修改、全量测试 | 20+次工具调用,涉及复杂逻辑+多轮验证 |
工具调用次数估算方法:
基础调用估算:
- read/write/edit: 1次
- exec: 1-3次(取决于是否有多步验证)
- web_search: 1-2次
- web_fetch: 2-5次(取决于页面数量)
- browser操作: 3-10次(snapshot+act循环)
合计调用次数 → 对应复杂度:
1-2次 → trivial (30s)
3-5次 → small (60s)
6-10次 → medium (120s)
11-20次 → large (240s)
20+次 → critical (360s)
spawn子代理示例:
sessions_spawn(
task="任务描述",
mode="run",
runTimeoutSeconds=120, // 根据复杂度设置
...
)
注意事项:
借鉴 ralph-orchestrator 的 Hat System,通过角色切换实现不同阶段的专注目标,避免"边写代码边审查"的混乱。
任务进入
↓
├─ Phase 1: Research Hat(调研)
│ ├─ 收集所有相关代码、文档、上下文
│ ├─ 不修改任何文件,只读取和分析
│ └─ 输出:调研报告,包含关键发现和约束条件
↓
├─ Phase 2: Plan Hat(规划)
│ ├─ 基于 Research context 制定实施计划
│ ├─ large → PDD .specs/ 目录生成 requirements + design + plan
│ ├─ critical → PDD + 分阶段实施计划
│ └─ 输出:实施计划,供 Code Hat 执行
↓
├─ Phase 3: Code Hat(编码)
│ ├─ 严格按 plan 执行编码
│ ├─ 编码过程中不引入新的设计决策(Backpressure 原则)
│ └─ 输出:代码变更,供 Review Hat 审查
↓
├─ Phase 4: Review Hat(审查)
│ ├─ 调用 code-review skill 进行审查(read `D:\Users\yindb2\AppData\Roaming\mx\openclaw-home\yindb2\.openclaw\workspace\skills\code-review\SKILL.md`)
│ ├─ large → 轻量审查(3个维度)
│ ├─ critical → 深度审查(5个维度)
│ └─ 发现问题 → 返回 Phase 3 修复
↓
└─ Phase 5: Debug Hat(调试,仅必要时)
├─ 仅当 Review 发现 high/critical 问题时进入
├─ 定位问题 → 修复 → 返回 Review
└─ 最多 3 轮 debug → review 循环
| Hat | 输入 | 输出 |
|---|---|---|
| Research | 任务描述 | context 调研报告,列出关键发现和约束 |
| Plan | context 调研 | plan.md 或 .specs/ 目录 |
| Code | plan + context | 代码变更 |
| Review | 代码变更 | review.md,问题列表和严重度 |
| Debug | review.md | 修复后的代码 |
与 coding-framework 的关系:帽子系统是宏观调度,coding-framework 负责微观执行
与 daily-agent 的关系:Step 3 路由后,当任务类型=coding 且 complexity=large/critical 时:
D:\Users\yindb2\AppData\Roaming\mx\openclaw-home\yindb2\.openclaw\workspace\skills\coding-framework\SKILL.md)[Phase 2/5] Plan Hat 完成,进入编码阶段Review 结果:
├─ 无 high/critical 问题 → 通过 ✓
└─ 有 high/critical 问题 → 进入 Debug Hat
├─ 修复 → 返回 Review
└─ 超过 3 轮仍有问题 → 停止修复,报告当前状态和未解决问题
参考自 Superpowers using-superpowers 的 Red Flags 概念。
核心原则:即使只有 1% 的可能性需要某个技能,也必须加载。
以下场景是必须加载技能的 Red Flags:
| 信号 | 行动 |
|---|---|
| "帮我写个脚本" | 可能涉及编码,加载 coding-framework |
| "这个文件怎么报错了" | 涉及调试,加载 debugging-and-error-recovery |
| "帮我看看这段代码" | 可能涉及代码审查,加载 code-review |
| "这个设计合理吗" | 涉及架构分析,加载 architecture-critic |
判断方法:只要任务涉及任何编码/调试/审查 → 必须加载 coding-framework 并在 Step 0 检查 Anthropic 原则。
| 触发词 | 匹配技能 | 优先级 |
|---|---|---|
| PPT/演示/幻灯片/pptx | pptx | 唯一 |
| Word/文档/文字/docx | docx | 唯一 |
| Excel/表格/电子表格/xlsx | xlsx | 唯一 |
| PDF/文件/文档/pdf | 唯一 | |
| HTML/报告/网页/web | html-report-generator 或 frontend-design 或 web-artifacts-builder | 多候选时竞争 |
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 写代码/编程/开发/重构 | coding-framework | 必须检查:即使只有1%可能性也要加载 Step 0 · Anthropic 原则 |
| 调试/排错/bug/修复 | debugging-and-error-recovery | 错误定位和修复(v2.12 新增 · Anthropic 原则) |
| Agent调试/自诊断/自修复/报错分析 | agent-introspection-debugging | 代理自身的问题诊断和修复(含 error-classifier 工具) |
| 生产环境审计/上线检查/发布验证 | production-audit | 0-100分评分+5维度评估+问题分类,shipping-and-launch 子技能 |
| Agent架构审计/系统设计评审/架构评估 | agent-architecture-audit | 12维度架构评估+5维度质量评估+改进建议 |
| 代码质量评估/技术债评估/代码评分 | agent-self-evaluation | 5维度评分+趋势对比+改进建议 |
| 自主循环/自动迭代/持续执行 | autonomous-loops | De-Sloppify清理+进度追踪+质量保障 |
| 学习/自我改进/持续学习 | continuous-learning | 错误学习+经验积累+知识更新 |
| 测试/TDD/测试驱动 | test-driven-development | RED-GREEN-REFACTOR 循环(v2.12 新增 · Anthropic 原则) |
| 原型/demo/验证/可行性 | prototype | 快速原型构建 |
| 代码/审查/代码审查 | code-review | 双轴审查(v2.12 新增 · Anthropic 原则) |
| 代码走读/代码理解/代码解读 | code-walkthrough | 代码逻辑走读和解读 |
| 多代理审查/并行审查/代码评审 | multi-agent-review | 6维度并行审查 |
| 迭代/循环/逐步改进 | iterative-loop | 迭代式改进循环 |
| 简化/重构/YAGNI/代码简化 | code-simplifier | 代码简化和复杂度控制(v2.12 新增 · Anthropic 原则) |
当用户描述产品需求或设计思路时,自动匹配以下 Anthropic 原则相关技能。 关键信号:"帮我设计"、"做个方案"、"产品需求"等 → 匹配 coding-framework 外的 Anthropic 原则技能。
产品探索
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 用户访谈/需求验证/用户调研 | interview-me | 模拟用户访谈和需求验证 |
| 想法/创意/头脑风暴/发散 | idea-refine | 创意提炼+多方案探索 |
| 需求/PRD/产品文档/需求分析 | spec-driven-development | 4阶段需求驱动开发 |
规划分解
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 任务分解/计划/排期/工作拆分 | planning-and-task-breakdown | 5级规划+XS-XL任务 sizing |
实施执行
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 增量开发/渐进式/分步实施 | incremental-implementation | 增量式实施策略 |
| 数据驱动/源码驱动/证据驱动 | source-driven-development | 源码驱动的开发决策 |
| 上下文工程/context管理/rules配置 | context-engineering | 上下文工程 agent 配置 |
| UI/界面/前端/页面/组件 | frontend-design | 高质量前端 UI |
| API/接口/SDK/端点 | api-and-interface-design | API和接口设计 |
| 怀疑驱动/质疑/反向思考/挑战假设 | doubt-driven-development | 怀疑驱动开发,挑战假设避免盲区 |
测试验证
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 浏览器测试/DevTools/前端调试 | browser-testing-with-devtools | Chrome DevTools MCP |
安全加固
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 安全/漏洞/OWASP/STRIDE | security-and-hardening | OWASP+STRIDE 安全检查 |
| 性能/优化/加速/响应时间 | performance-optimization | 性能分析和优化 |
工程实践
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| git/提交/分支/合并/版本 | git-workflow-and-versioning | 工作流+版本管理 |
| CI/CD/流水线/自动化部署 | ci-cd-and-automation | 持续集成和部署 |
| 废弃/迁移/升级/替换 | deprecation-and-migration | 废弃和迁移管理 |
| 文档/ADR/架构决策/设计文档 | documentation-and-adrs | 记录决策 why 而非 what |
| 监控/告警/日志/预警/可观测 | observability-and-instrumentation | RED 指标+告警规则 |
| 发布/上线/部署/launch | shipping-and-launch | 上线检查清单+发布 |
技能管理
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 技能使用/技能查找/技能推荐 | using-agent-skills | 技能发现和使用指南 |
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 消息/通知/发送/群发 | mx-im | 通过IM渠道发送 |
| 邮件/outlook/email | outlook-automation | Outlook邮件操作 |
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 记住/学习/经验/教训 | self-improving | 记录到 .learnings/ |
| 知识/图谱/关系/1句话/更新 | ontology + self-improving | 知识图谱更新 |
| 回忆/搜索记忆/之前说过 | memory_search 工具 | 直接调用记忆搜索工具 |
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 写 skill/创建 skill/新建技能 | prompt-craft | 技能描述编写规范和模板 |
| 优化描述/prompt 描述 | prompt-craft | 优化技能描述文本 |
| 改进描述/优化skill描述/完善描述 | prompt-craft | 优化技能描述文本 |
| 技能描述/prompt 编写 | prompt-craft | 技能描述编写规范 |
注意:当用户说"写一个XX技能"时,如果XX涉及具体编码(如"写一个React组件技能"),应优先匹配 coding-framework 而非 prompt-craft。prompt-craft 仅用于描述编写参考。
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 新闻/资讯/热点 | daily-news | 每日新闻汇总 |
| 股票/基金/投资/分析/股价300 | stock-research / fund-analysis | 股票和基金分析 |
| 翻译/translate | translation | 多语言翻译 |
| 触发词 | 匹配技能 | 说明 |
|---|---|---|
| 论文/答辩审查/文献 | thesis-review | 论文评审和文献综述 |
| 数据分析/SQL/数据查询 | data-analysis | SQL/Python/数据分析 |
| 桌面控制/鼠标键盘/自动化操作 | desktop-control-win | Windows桌面自动化控制 |
识别所有可并行的工具调用
1. 分析任务中有哪些可并行的操作 → 标记为并行组
2. 检查 → 确认无依赖关系的调用可并行
3. 执行:2个并行组同时执行 exec、browser等
4. 汇总结果后判断:"是否还有后续并行操作?"或"是否需要串行?"
并行化 8 原则(v2.4.0 新增):
核心思想:能并行就并行,不能并行再串行。2个以上的独立调用必须并行!
触发条件:
行为规则:
[主语] [动词] [宾语]. [结论].示例:
useMemo."退出方式:用户说"stop caveman"/"正常说话"/"normal mode"
触发条件:
行为规则:
触发条件:
行为规则:
触发条件:
行为规则:
## 路径对比
| 维度 | 路径A | 路径B | 路径C |
|------|-------|-------|-------|
| 可行性 | 高 | 中 | 较高 |
| 成本 | 低 | 低 | 高 |
| 风险 | 中 | 低 | 低 |
| 效果 | 中 | 较好 | 最好 |
## 推荐路径B,理由如下...
## 路径A vs C 的取舍...
## 最终建议:选择路径C,因为...
与 grill-me 的区别:
当任务涉及多个可并行的操作时:
分析任务步骤 → 判断并行性?
├─ 纯查询任务 → 可并行(web_search/web_fetch/read/memory_search等)
├─ 多路径探索 → 可并行(涉及多个独立子任务,参见多路径探索模式)
└─ 有依赖关系 → 不可并行,串行执行
| 工具 | 资源类型 | 并行度 |
|---|---|---|
| web_search | API | 8 |
| web_fetch | NETWORK | 6 |
| read | FILE | 4 |
| memory_search | API | 8 |
| session_status | API | 8 |
| cron_list | API | 8 |
| sessions_list | API | 8 |
write / edit / exec / browser 等有副作用的操作不可并行。
python scripts/parallel_tool_executor.py借鉴 Manus 的任务规划机制,确保长链任务有明确的计划、进度追踪和检查点。
满足以下条件时自动触发任务规划:
任务分析
1. .planning/.active_plan 或类似文件存在 → 加载已有规划
2. .planning/*/task_plan.md 存在 → 加载任务计划
3. ./task_plan.md 存在 → 加载任务计划(兼容旧格式)
检查是否存在任务规划文件:
每次恢复任务时回答:
| 问题 | 检查位置 |
|---|---|
| 我在做什么? | task_plan.md 的目标描述 |
| 为什么做? | 任务背景 |
| 做到哪了? | 进度中的 Goal |
| 发现了什么? | findings.md |
| 下一步是什么? | progress.md |
每 2 次查询/浏览操作后,必须将发现写入文件。防止"只看不动手"。
规则
- 每 2 次 view/browser/search 操作后
- 必须将发现写入 findings.md
- 然后继续下一步/更新进度
操作计数
- web_search 查询 +1
- web_fetch 页面 +1
- browser snapshot 操作 +1
- read (非规划文件) +1
每 2 次 → 必须写入 findings.md
对于未完成的规划任务(复杂度 ≥ medium):
参考自 Superpowers brainstorming 的 HARD-GATE 机制。 DS(设计审查)要求在编码前完成设计确认 + 避免"边想边做"的问题。
NO IMPLEMENTATION WITHOUT DESIGN APPROVAL
当任务涉及设计决策时,必须先完成设计确认,才能进入编码阶段(coding-framework/frontend-design 等)。
触发流程:
design_gate_active = truedesign_gate_active AND 未获得设计批准 THEN STOP → 输出设计模板 → 等待用户确认design_approved = true,进入编码阶段design_gate_bypassed = true任务涉及设计决策?
├─ YES → 进入设计确认流程
└─ NO → 直接进入编码
↓
输出2-3个方案 + 推荐理由
↓
用户选择方案
↓
记录设计决策到 .specs/ 或 memory
↓
进入编码阶段
以下情况可以直接写代码,不需要设计确认:
以下情况必须走设计流程(即使只有1处):
输出格式: "这个任务涉及设计决策,建议先确认方案再编码。是否需要我输出设计方案?"
# [任务名称] 设计
## 背景
[一句话说明]
## 目标
[2-3句话描述期望效果]
## 方案
- 方案A: 描述
- 方案B: 描述
## 推荐方案
[方案选择 + 理由]
## 风险评估
[可能的风险和应对]
## 验收标准
[如何确认完成]
核心:长链任务 spawn 子代理后,必须提供进度反馈,不能"静默执行"。
spawn 子代理时必须包含以下信息:
任务委派
- skill_name: 匹配到的技能名称
- task_description: 任务描述(Agent Brief 格式,遵循持久性原则)
- input_context: 输入上下文(包含相关文件路径、前置任务结果等)
- expected_output: 期望输出
- timeout: 预计执行时间
借鉴 Matt Pocock 的 triage skill 理念——"任务描述应该描述行为而非路径"。 当 spec 描述行为而非文件路径时,即使代码重构后 spec 仍然有效。
铁律:禁止引用具体文件路径和行号,只描述行为。
示例:
| ❌ 错误(引用路径/行号) | ✅ 正确(描述行为) |
|---|---|
修改 src/api/user.py 第127行的查询逻辑 | 修改用户API中的查询逻辑,支持分页和过滤 |
在 components/Header.tsx 中添加导航栏 | 在页面顶部添加全局导航栏组件 |
修复 utils/auth.js 的 validateToken 函数 | 修复认证模块中的 token 验证逻辑 |
第42行的条件判断逻辑错误 | 修复条件分支中的逻辑错误 |
注意事项:
适用范围:
长链任务执行过程中需要反馈进度。
短链任务(主会话执行):
长链任务(spawn 子代理):
sessions_spawn 启动子代理spawn 子代理示例:
sessions_spawn(
task="任务描述",
label="daily-task-{timestamp}-{domain}",
skill="{matched_skill}",
timeoutSeconds=600
)
短链任务:
spawn 子代理任务:
长链任务进度反馈(v2.4.0 新增):
当任务预计执行时间 > 30 秒时:
ETA 估算表:
| 任务类型 | 预计时间 |
|---|---|
| 简单搜索 + 总结 | 30-60 秒 |
| 文档生成任务(PPT/Word) | 60-120 秒 |
| 数据分析任务 | 120-300 秒 |
| 复杂编码任务 | 300-600 秒 |
注意事项:
5.1 失败
5.2 重试:
if retries < 3 and 可恢复错误 → 等待后重试(1s, 2s, 4s)
if retries >= 3:
→ 记录失败到 .learnings/YYYY-MM-DD-task-{id}-error.md
→ 通知用户并提供替代方案
→ 触发 self-improving 学习机制
| 错误类型 | 处理策略 |
|---|---|
| spawn 子代理超时 | 检查子代理状态,必要时重新执行 |
| 工具调用失败 | 尝试替代工具(如 web_search 失败换 web_fetch) |
| 连续失败超过 3 次 | 停止重试,通知用户并记录到 .learnings/ |
| 网络请求失败 | 切换数据源,尝试备用 API |
| 文件读写错误 | 检查权限,尝试备用路径 |
## 任务失败记录
- **时间**: YYYY-MM-DD HH:MM:SS
- **任务ID**: daily-task-{timestamp}-{domain}
- **失败类型**: {failure_type}
- **错误信息**: {error_message}
- **重试次数**: {retries}
- **降级策略**: {fallback_strategy}
- **是否解决**: 是/否
核心思想:失败不可怕,不记录才可怕。每次失败都是学习机会。
任务完成后执行以下检查:
✅ 浏览器是否关闭 → browser stop
✅ 有新经验/教训 → 记录到 .learnings/ (self-improving)
✅ 有代码变更需要提交 → git add + git commit(写描述性commit message)
✅ 有新知识/经验 → 更新 memory/ 或 ontology
✅ 有新技能发现 → 建议创建新技能
✅ 有重复模式出现 → 建议创建新 skill(v2.3 新增)
✅ 有用户偏好变化 → 更新用户画像(v2.3 新增)
✅ 任务复杂度较高(≥medium) → 考虑是否 spawn rubber-duck(v2.6 新增)
✅ 任务执行超过3次工具重试 → 记录到失败日志(v2.7 新增)
✅ 任务涉及规划文件变更 → 更新 L1 记忆(v2.8.2 新增)
✅ 任务有规划文件 → 更新 task_plan.md / findings.md / progress.md(v2.10 新增)
如果任务涉及规划文件(.planning/*/task_plan.md 或 ./task_plan.md),需要:
更新 task_plan.md:
complete更新 findings.md:
更新 progress.md:
必须提交的文件类型:
memory/skills/.learnings/ontology/docs/不提交的文件:
提交流程:
# 1. 添加变更文件
git add memory/ skills/ .learnings/ ontology/ docs/
# 2. 检查变更
git diff --cached --stat
# 3. 提交
git commit -m "daily: {task_description}"
当任务执行过程中出现以下模式时,自动提取为新 skill:
检测条件(全部满足时触发):
1. 同 (domain, matched_skill) 组合重复出现 ≥ 3
2. 在 3 个以上不同任务中出现相似的操作流程 > 80%
3. 操作序列长度 ≥ 3 步
4. 该模式在近期任务中出现频率较高
触发时:
python scripts/skill_creator.py analyze <任务描述>
→ 创建草稿到 skills/_drafts/
→ 用户确认后移到 skills/
当对话中出现用户偏好变化时,自动更新用户画像。
检测信号
- 用户说"我喜欢..." / "我不喜欢..."
- 用户说"以后..." / "下次..."
- 用户说"记住..." / "别忘了..."
- 用户说"不要..." / "禁止..."
触发时:
python scripts/profile_observer.py extract <对话内容>
→ 更新到 memory/user_observations.json
→ 同时更新 USER.md 中的"个人偏好"部分
定期画像检查:
python scripts/profile_observer.py hint
→ 检查最近7天的对话
→ 发现语气/偏好有变化时提示
借鉴 Copilot CLI 的 rubber duck 审查机制——当代码变更达到一定规模时,自动 spawn 一个轻量级审查子代理,而不是每次都调用重量级的多代理审查。
触发条件:编码任务完成后,满足以下任一条件:
不触发条件:
审查方法:
sessions_spawn(
task: "你是 rubber-duck 代码审查员。请对以下代码变更做快速审查,检查 3 个维度:
1. 逻辑正确性:是否有明显的逻辑错误、边界条件遗漏、路径错误
2. 安全性:是否有注入风险、权限漏洞、敏感信息泄露
3. 可维护性:是否有命名不清、重复代码、过度复杂的问题
变更文件列表:{changed_files}
请以 JSON 格式输出审查结果:
{\"issues\": [{\"severity\": \"high|medium|low\", \"file\": \"xxx\", \"line\": N, \"desc\": \"...\"}], \"verdict\": \"pass|fail\"}
注意
- 只关注高优先级问题,不纠结风格
- 如果代码质量良好,直接通过
- 输出格式严格为 JSON:{\"issues\": [], \"verdict\": \"pass\"}",
model: "sonnet",
mode: "run",
runTimeoutSeconds: 120
)
审查结果处理:
verdict: "pass" → 审查通过,记录到任务日志verdict: "fail" → 将 issues 列表展示给用户,由用户决定是否修复Token 消耗估算:
借鉴 Copilot CLI 的
/context命令理念——在长对话中自动生成上下文摘要,帮助用户和 AI 了解当前状态,减少 token 消耗。
触发条件:
执行方法:
调用 session_status 工具 → 获取当前状态 → 生成上下文摘要
输出格式:简短的状态摘要
📊 当前状态: 119k/203k (59%) | 📝 本轮: +5.8k tokens | 🔧 工具: 21次
详细格式(用户要求"总结上下文"时):
📋 上下文摘要
📊 对话状态: 119k / 203k (59%)
📝 本轮消耗: +5.8k tokens
📦 缓存命中率: 49% (117k cached)
🔧 工具调用: 21次
💰 估算成本: ~84k tokens
注意事项:
借鉴 Claude-Mem 的双层记忆机制——当任务涉及重要知识更新时,自动触发 L1 记忆同步,确保 markdown 记忆和向量记忆的同步。
触发条件:任务完成后发现以下任一情况:
执行方法:
调用 PowerShell 脚本
powershell -ExecutionPolicy Bypass -File "D:\Users\yindb2\AppData\Roaming\mx\openclaw-home\yindb2\.openclaw\workspace\scripts\dual-memory-sync.ps1" -Mode sync-markdown
预期效果:
注意事项:
sessions_spawn每次使用浏览器后,检查接下来2步是否还需要浏览器:
判断逻辑:
if "browser" not in predicted_remaining_tools(next_2_steps):
browser.stop()
┌──────────────────────────────────────────────────────────────┐
│ 消息进入 │
│ Step 0: 模式触发检查 │
│ 触发 caveman/zoom-out/grill-me │
│ /ToT/converse │
│ 未触发 → 进入下一步 │
├──────────────────────────────────────────────────────────────┤
│ Step 0.5: Converse 意图检测 │
│ 检测讨论意图 → 进入 CONVERSE │
│ 检测执行意图 → 进入任务调度 │
│ 检测讨论+追问 → 讨论+追问 │
│ 未触发 CONVERSE → 进入任务调度 │
├──────────────────────────────────────────────────────────────┤
│ Step 1: 任务分类 │
│ ├─ 定时 cron/心跳 → 直接执行 cron 任务 │
│ ├─ 手动触发 │
│ │ 领域:对话/查询/搜索/文件/编码/通信/长任务 │
│ │ 复杂度预判:短链/长链 │
│ │ 模式判断:确定性/探索性 │
│ └─ 场景匹配 → 匹配技能 │
├──────────────────────────────────────────────────────────────┤
│ Step 2: 复杂度评估 + 工具预算 │
│ 计算工具调用预算 │
│ 判断:短链(≤5次) / 长链(≥10次) │
├──────────────────────────────────────────────────────────────┤
│ Step 3: 执行路由 │
│ ├─ converse → 讨论模式(禁止 spawn/write) │
│ ├─ 短链 → 主会话直接执行 │
│ └─ 长链 → spawn(子代理, 后台执行) │
│ │
│ 短链任务 → 主会话执行 │
└──────────────────────────────────────────────────────────────┘
spawn 子代理示例:
sessions_spawn(
task="任务描述",
label="daily-task-{timestamp}-{domain}",
skill="{matched_skill}",
timeoutSeconds=600
)
daily-agent 整合了多个子技能,以下是各子技能的索引:
| 独立子技能(保留独立SKILL.md) | 用途 | 触发场景 |
|---|---|---|
diagnose | 6阶段系统化排错方法论 | 调试/排错/bug |
tdd | Red-Green-Refactor循环 | 测试驱动开发 |
prototype | 快速原型构建方法论 | 验证想法/做demo |
thesis-review | 论文评审和文献综述 | 论文评审 |
| 内置模式(daily-agent内联) | 用途 | 触发场景 |
|---|---|---|
| 压缩沟通模式(caveman) | 省token极简回复 | 用户要求简短/省token |
| 全局理解模式(zoom-out) | 系统架构/全局视图 | 用户要求"看全局" |
| 方案审视模式(grill-me) | 深入追问和挑战方案 | 用户要求方案审视 |
| 多路径探索模式(ToT) | 多方案对比和探索 | 任务规划/方案设计 |
| 讨论模式(converse) | 讨论聊天/探索想法 | 用户要求讨论/聊天 |
完成任务后,做任务总结,将操作记录更新到 record.md 中。
当前版本:v2.18.1(2026-07-26)完整记录见 git log。