--- name: self-evolve description: 在会话中提炼可复用经验,生成可审阅进化建议,并在用户确认后写回用户域或智能体域。Use when 用户显式教学、要求总结学习结果、希望持续优化 Agent,或在会话结束后执行进化复盘。 version: "1.1.0" type: meta risk_level: high status: enabled disable-model-invocation: true requires: tools: - read_file - write_file - edit_file - list_directory optional_tools: - search_files - grep - execute_command tags: [evolution, learning, meta] metadata: author: desirecore updated_at: "2026-02-17" --- # self-evolve 技能 ## L0:一句话摘要 让 Agent 在交互中持续学习,自主提出改进建议并在用户确认后进化自身。 ## L1:概述与使用场景 ### 能力描述 self-evolve 是一个**元技能(Meta-Skill)**,赋予 Agent 自我学习和进化的能力。它能在对话中捕获有价值的信息,会话结束后自动提炼经验,并在用户确认后将改进写入仓库配置。 ### 使用场景 - 会话结束后自动分析对话质量,提取可改进点 - 用户显式教学("记住这个"、"以后都这样做") - 定期自省,识别能力边界和改进方向 - 从错误中学习,避免重复犯错 ### 核心价值 - **持续进化**:越用越懂你,越用越好用 - **透明可控**:所有进化需用户确认,不会"暗箱操作" - **安全边界**:核心人格和安全红线不可被进化覆盖 ## L2:详细规范 ### 进化三层机制 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 自我进化闭环 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ 交互捕获 │ ──→ │ 复盘提炼 │ ──→ │ 行为固化 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ ↑ │ │ │ └───────────────────────────────────┘ │ │ 持续迭代 │ └─────────────────────────────────────────────────────────────────┘ ``` | 层级 | 机制 | 存储位置 | 确认要求 | |------|------|---------|---------| | L1 交互捕获 | 实时捕获对话中的关键信息 | 会话缓存 | 无需确认 | | L2 复盘提炼 | 会话结束后提炼经验教训 | 待审队列 | 需用户确认 | | L3 行为固化 | 将验证过的经验写入仓库 | agent 根目录 | 需用户确认 | ### 触发机制 | 触发方式 | 触发条件 | 处理流程 | |---------|---------|---------| | **Session Finalize** | 会话结束时自动触发 | 分析对话 → 提取学习点 → 生成建议 | | **显式教学** | 用户说"记住这个"等 | 立即捕获 → 生成 diff → 请求确认 | | **周期性自省** | 定时触发(如每周) | 回顾历史 → 识别模式 → 提出改进 | | **错误学习** | 用户纠正 Agent 错误 | 记录错误 → 分析原因 → 生成规则 | ### 触发关键词 **显式教学触发词**: - "记住这个"、"以后都这样" - "学会这个"、"记下来" - "这是规则"、"这很重要" - "不要再..."、"以后别..." **自省触发词**: - "你最近学到了什么" - "回顾一下我们的对话" - "你有什么改进建议" ### 进化类型与目标(AgentFS v2 扁平结构) | 进化类型 | 目标域 | 示例 | |---------|-------|------| | **用户偏好** | `~/.desirecore/users//profile.md` | 用户喜欢简洁回答 | | **关系记忆** | `~/.desirecore/users//agents//memory/` | 用户的项目背景 | | **行为规则** | `principles.md` | 新的行为准则 | | **技能优化** | `skills/` | 技能执行改进 | | **知识积累** | `memory/` | 领域知识条目 | ### 风险分级 | 风险等级 | 条件 | 确认要求 | 示例 | |---------|------|---------|------| | **低** | 仅影响用户关系域 | MVP:需确认 | 更新用户偏好 | | **中** | 影响 Agent 记忆或技能 | 需确认 | 添加知识条目 | | **高** | 影响 Agent 行为规则 | 详细确认 | 修改 principles | | **禁止** | 触及受保护路径 | 阻断 | 修改核心人格 | ### 受保护路径(不可进化覆盖) 进化变更应用前**必须**检查是否触及受保护路径。完整定义见共享配置文件 [`_protected-paths.yaml`](../_protected-paths.yaml)。 **关键规则摘要**: - `persona.md` L0 section → **block**(核心身份不可被对话改变) - `principles.md` "绝不做" section → **block**(安全红线必须由人类显式修改) - `agent.json` access_control / privacy → **owner_only**(权限变更需 owner 审批) - `~/.desirecore/users/*/privacy.md` → **owner_only**(隐私设置需用户本人修改) ### 进化流程详解 #### 流程 1:Session Finalize(会话结束进化) ``` 会话结束 │ ↓ ┌──────────────────┐ │ 对话质量分析 │ │ - 任务完成度 │ │ - 用户满意信号 │ │ - 出现的问题 │ └──────────────────┘ │ ↓ ┌──────────────────┐ │ 学习点提取 │ │ - 用户偏好 │ │ - 领域知识 │ │ - 行为改进 │ └──────────────────┘ │ ↓ ┌──────────────────┐ │ 生成进化建议 │ │ - 分类整理 │ │ - 风险评估 │ │ - diff 预览 │ └──────────────────┘ │ ↓ [等待用户确认] ``` **会话分析指标**: | 指标 | 正向信号 | 负向信号 | |------|---------|---------| | 任务完成 | 用户确认完成 | 用户放弃/换话题 | | 满意度 | "好的"、"谢谢" | "不对"、"重新来" | | 效率 | 快速理解需求 | 多次澄清 | | 准确性 | 一次正确 | 多次修正 | #### 流程 2:显式教学 **用户输入**:"记住,我喜欢你用表格来展示对比信息" **处理流程**: 1. **识别教学意图**: ```yaml teaching_intent: type: preference target: response_format content: "用表格展示对比信息" ``` 2. **生成 Diff**: ```diff # ~/.desirecore/users//profile.md ## 沟通偏好 + ### 格式偏好 + - 对比信息使用表格展示 ``` 3. **请求确认**: ``` 学习确认 我理解你希望我: - 在展示对比信息时使用表格格式 这将记录到你的个人偏好中。确认吗? [确认] [取消] [修改] ``` 4. **确认后写入**: ```bash git add ~/.desirecore/users//profile.md git commit -m "learn(preference): 用户偏好表格展示对比信息 - 更新用户沟通偏好 - 来源:显式教学 Learned by: self-evolve skill User confirmed: true " ``` #### 流程 3:错误学习 **场景**:Agent 犯错,用户纠正 **用户**:"不对,合同金额要用大写数字" **处理流程**: 1. **识别纠正**: ```yaml correction: type: error_correction domain: contract wrong: "100万元" correct: "壹佰万元整" rule: "合同金额使用大写数字" ``` 2. **分析影响范围**: ```yaml impact_analysis: affects: contract-review skill frequency: high (合同场景常见) risk_level: medium ``` 3. **生成改进建议**: ```diff # skills/contract-review/SKILL.md ## 格式规范 + ### 金额表示 + - 合同金额必须使用大写数字 + - 示例:壹佰万元整(不是100万元) ``` ### 进化建议展示格式 **会话结束时的进化建议**: ``` 本次对话学习总结 我从这次对话中发现了以下可以改进的点: ┌─────────────────────────────────────────────────────┐ │ 1. [用户偏好] 你喜欢简洁的回答 │ │ 风险:低 | 目标:~/.desirecore/users/xxx/profile.md│ ├─────────────────────────────────────────────────────┤ │ 2. [行为规则] 讨论预算时先确认货币单位 │ │ 风险:中 | 目标:principles.md │ ├─────────────────────────────────────────────────────┤ │ 3. [领域知识] XX公司的审批流程是三级审批 │ │ 风险:低 | 目标:memory/ │ └─────────────────────────────────────────────────────┘ 请选择要应用的改进: [全部应用] [逐条确认] [跳过] ``` ### 进化回执 ```yaml # ~/.desirecore/runs//receipts/evolution-.yaml receipt: type: self-evolution timestamp: "2024-01-15T18:00:00Z" trigger: session_finalize session_analysis: session_id: "sess_abc123" duration_minutes: 25 task_completion: true user_satisfaction: positive learning_items: - type: user_preference content: "用户喜欢简洁回答" target: "~/.desirecore/users/xxx/profile.md" risk_level: low status: applied git_commit: "abc123" - type: behavior_rule content: "讨论预算时先确认货币单位" target: "principles.md" risk_level: medium status: user_rejected rejection_reason: "用户认为不需要" metadata: total_items: 3 applied: 2 rejected: 1 skipped: 0 ``` ### MVP 约束 在 MVP 阶段,self-evolve 技能有以下约束: | 能力 | MVP 支持 | 说明 | |------|---------|------| | Session Finalize | 支持 | 会话结束后生成建议 | | 显式教学 | 支持 | 识别并处理教学意图 | | 用户确认 | 支持 | 所有变更需确认(不支持自动审批) | | 进化回执 | 支持 | 记录所有进化操作 | | 周期性自省 | 不支持 | 后续版本支持 | | 自动审批(低风险) | 不支持 | 后续版本支持 | | 跨会话学习聚合 | 不支持 | 后续版本支持 | ### 错误处理 | 错误场景 | 处理方式 | |---------|---------| | 尝试修改受保护路径 | 阻断,告知用户需手动修改 | | 用户拒绝所有建议 | 记录到回执,不强制 | | Git 提交失败 | 保留变更文件,提示手动处理 | | 学习内容与现有规则冲突 | 展示冲突,请用户决策 | --- ## 附录:进化质量评估 ### 进化健康指标 | 指标 | 健康范围 | 说明 | |------|---------|------| | 建议采纳率 | > 60% | 用户接受的进化建议比例 | | 规则冲突率 | < 10% | 新规则与现有规则冲突的比例 | | 回滚率 | < 5% | 进化后被回滚的比例 | | 人格稳定性 | 100% | 核心人格未被意外修改 | ### 进化审计日志 ``` # 示例:进化审计视图 时间 类型 内容摘要 状态 确认人 ───────────────────────────────────────────────────────────── 01-15 18:00 偏好学习 用户喜欢简洁回答 已应用 user_a 01-15 18:00 行为规则 确认货币单位 已拒绝 user_a 01-14 12:30 错误学习 合同金额用大写 已应用 user_a 01-13 09:00 显式教学 重要邮件抄送领导 已应用 user_a ```