职责边界: 消费研究发现 + 系统自检 + 执行优化。搜索论文是 harness-research 的事。
harness-evolve = 消费 research 日志 + 系统自检 + 分级执行,是研究到行动的闭环。
从项目根目录的 CLAUDE.md(或 README.md)中识别以下信息。 找不到就问用户,不要猜:
配置项说明默认值agent_rootAgent 项目根目录当前工作目录config_filesAgent 的核心配置/规则文件列表(行为规则、人格设定、prompt 模板等)从 CLAUDE.md 引用关系识别safe_files可直接修改的非规则文件(研究日志、实验记录、模板等)research/ 目录下所有文件review_file需要人工审核的提案写入位置pending-review.mdlog_dirAgent 运行日志/memory 目录memory/ 或 logs/(哪个存在用哪个)research_logharness-research 研究日志路径research/harness-log.mdoutput_file当日进化摘要输出路径(供日报等下游任务读取)research/evolve-today.mdnotify_command(可选)通知命令模板, {message} 为占位符无
读取 research_log(默认 research/harness-log.md),提取并分类:
类别提取内容用途P0 积压所有标记 P0 且未标记 已转化/ 已放弃 的条目第三步优先处理P1 积压所有标记 P1 且未标记 已转化/ 已放弃 的条目评估是否已可执行系统映射每条的"系统映射"字段 + 映射置信度交叉比对实际组件验证方式每条的"验证"字段执行后验证用已处理项标记了 已转化/ 已放弃 的条目跳过不重复处理
如果 research_log 不存在或无条目:注明"研究日志暂无数据,跳过研究消费",直接进入第二步。
也读取上次的 evolve 产出(output_file,如存在):了解上次进化做了什么,避免重复提案。
读取 config_files + safe_files + log_dir 最近 3 天日志,建立当前系统快照,然后逐项扫描:
#检查项扫描对象触发条件1规则冗余config_files同一条规则在多处重复表述,或规则之间存在逻辑矛盾2规则过期config_files + log_dir规则引用的实体(群、人、API、工具、文件路径)已不存在或已变更3研究积压research_logP0/P1 可落地方向超过 7 天未转化为配置变更或提案4进化回归上次 evolve 产出 + 实际文件上次 Tier A 直接执行的修复是否仍然生效(防被覆盖)5日志异常log_dir 最近 3 天连续出现无输出 / 重复内容 / 格式退化 / 异常中断6研究映射今日 P0/P1 条目系统映射指向了具体可改组件,且该组件确实存在7复杂度债务config_files单文件超过 300 行 / 嵌套规则超过 3 层 / 存在"如果...除非...但是..."链8Skill 提炼机会config_files + log_dir同一操作模式出现 3+ 次但尚未抽象为 skill
每项输出: [PASS] 正常 / [WARN] 发现问题 + 一句话描述 / [SKIP] 项目无此结构
基于自检结果和研究日志,执行优化。 严格遵守三级分类:
条件:修改对象属于 safe_files(研究日志、实验记录、模板、文档等),不影响 Agent 运行时行为。
典型动作:
已转化 / 观察中 / 已放弃)执行后立即 git commit(如项目是 git 仓库),message 格式: evolve: {一句话描述}
条件:修改对象属于 config_files(行为规则、人格设定、prompt 模板等),会影响 Agent 运行时行为。
绝不自主修改,写入 review_file:
markdown
## 自进化提案 · {YYYY-MM-DD}
**来源**:{research_log 条目标题 + 日期 / 自检发现编号}
**来源类型**:【源自Research·{P0/P1}】/【自检发现】
**目标文件**:{文件名}
**当前内容**:{原文摘录,保留上下文}
**建议修改**:{具体改法,给出 before/after 对比}
**依据**:{论文数据 / 系统自检发现 / 日志证据}
**验证方式**:{如何确认改进有效}
**风险**:{可能的副作用、回滚方案}
**优先级**:P0(立即) / P1(下个迭代) / P2(关注)
条件:发现了值得关注的模式/趋势,但暂无可行动方案。
在研究日志对应条目追加: **跟踪状态**:观察中 — {一句话原因}
将今日所有操作写入 output_file(覆盖写入,每天一份,UTF-8 无 BOM):
markdown
# Harness 自进化 · {YYYY-MM-DD}
## 研究消费
- 读取研究日志:{N} 条记录,其中 P0 {x} 条、P1 {y} 条
- 新增待处理:{本次新发现的 P0/P1 数量,或"无新增"}
- 已处理积压:{本次处理了哪些积压项}
## 系统自检
{8 项检查结果,每条一行,格式:[PASS/WARN/SKIP] 检查项名 — 详情}
## 今日进化动作
{按 A/B/C 级列出,无动作则写"今日无需进化动作,系统状态健康"}
- [A] {直接执行了什么,改了哪个文件,commit hash}
- [B] {写了什么提案到 review_file,来源标注}
- [C] {记录了什么观察}
## 进化摘要(供下游任务使用)
{一段话,2-4 句:研究消费情况 + 自检结果 + 实际优化动作/待审核提案}
这个文件是下游任务(如日报)的数据源。如果你的系统有日报 skill,让日报读取此文件的"进化摘要"段落即可。
如果有 B 级提案且 notify_command 已配置:
bash
# 将 {message} 替换为实际通知内容
{notify_command} "Harness自进化:有新架构优化提案写入 {review_file},请审核。"
无 B 级提案或未配置通知命令 → 跳过。
harness-researchharness-evolve(本 skill)职责搜索 → 精读 → 分析 → 记录消费研究 + 系统自检 + 执行优化****输出research/harness-log.md 条目 + 摘要research/evolve-today.md 进化摘要改代码吗不改,只记录可落地方向A 级直接改,B 级写提案可独立用吗可以,纯研究场景可以,但消费 research 日志效果更好数据流→ 写入 harness-log.md →← 读取 harness-log.md ←