上一篇设计了自进化 Agent 的整体架构,这篇是具体怎么实现的。
/root/self-evolving/
engine.py 主引擎
db.py 数据库
collector.py 观测层
analyzer.py 分析层
evolutor.py 进化层
governor.py 治理层
sandbox.py 沙箱验证
memory_bridge.py 记忆对接
schema.sql 数据表定义 依赖:Python 3.11 标准库,不需要额外安装任何第三方包。
SQLite,四个核心表 + 一个配置表。数据文件位于 /root/self-evolving/evolution.db。
CREATE TABLE execution_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL,
session_id TEXT NOT NULL,
skill_id TEXT,
input_summary TEXT,
output_length INTEGER,
success INTEGER DEFAULT 1,
user_feedback INTEGER,
duration_ms INTEGER,
tags TEXT
); 用途:分析层统计 Skill 效果、识别高频失败模式、计算趋势。
CREATE TABLE validation_fail (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL,
fail_type TEXT NOT NULL,
skill_id TEXT,
fail_detail TEXT NOT NULL,
user_corrected INTEGER DEFAULT 0,
corrected_by TEXT,
resolved INTEGER DEFAULT 0,
resolved_by TEXT,
frequency INTEGER DEFAULT 1
); 用途:触发进化建议的核心信号。analyzer 根据这里的数据发现模式。
CREATE TABLE skill_versions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
skill_id TEXT NOT NULL,
version INTEGER DEFAULT 1,
content TEXT NOT NULL,
status TEXT DEFAULT 'draft',
created_by TEXT DEFAULT 'system',
score REAL,
call_count INTEGER DEFAULT 0,
created_at TEXT NOT NULL,
parent_id INTEGER,
change_log TEXT,
UNIQUE(skill_id, version)
); 用途:追踪每次 Skill 变更。支持回滚。
CREATE TABLE evolution_log (
id INTEGER PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL,
action TEXT NOT NULL,
target_type TEXT NOT NULL,
target_id TEXT NOT NULL,
risk_level TEXT NOT NULL,
reason TEXT NOT NULL,
before_snapshot TEXT,
after_snapshot TEXT,
approved_by TEXT,
rollback_to INTEGER,
status TEXT DEFAULT 'applied'
); 用途:审计回溯、回滚依据、效果评估。
CREATE TABLE system_config (
key TEXT PRIMARY KEY,
value TEXT NOT NULL
); 封装所有 SQL 操作,其他模块不直接写 SQL。提供:
采集数据的入口。被 Hermes 在关键节点调用:
采集器不分析不决策,只把原始数据存进数据库。
被 engine.py 定时触发,每次做三件事:
失败模式识别:按 fail_type + skill_id 分组统计频率趋势,标记超过阈值的模式。
Skill 效果评估:计算每个 Skill 的成功率、平均耗时、用户反馈,检测退化。
进化建议生成:整合前面两步的结果,输出包含 target、action、reason、risk、draft 的完整建议。
每条建议有最低数据量要求(默认 5 条同类记录),避免噪音导致误进化。
接收 analyzer 的建议,执行变更:
Skill 生成逻辑:从情景记忆中检索相关案例,提取共性模式,自动生成结构化的 SKILL.md。
按风险等级处理:
回滚机制:查询当前版本,激活上一个版本,替换 SKILL.md 文件,记录审计日志。
新 Skill 在隔离环境验证效果:
沙箱不调真实 LLM,用预存的历史输出做静态验证。
读取情景记忆获取同类失败历史,写入语义知识固化新 Skill。
| 交互方向 | 方式 | 说明 |
|---|---|---|
| Hermes → 采集器 | Python import | 执行完成后调用 collector.record_xxx() |
| 进化器 → 用户 | 微信推送 | 中等风险推送到你的微信确认 |
| 进化器 → 文件系统 | 写 SKILL.md | 进化后自动更新 ~/.hermes/skills/ |
| 用户 → 进化器 | 微信回复 | 确认或拒绝,系统收到后执行 |
| 阶段 | 天数 | 做什么 | 状态 |
|---|---|---|---|
| Phase 1 | 2 天 | 数据库搭建 + 采集器 + 对接执行链路 | ✅ 已完成 |
| Phase 2 | 2 天 | 分析器 + 进化执行器 + 沙箱验证 | ✅ 已完成 |
| Phase 3 | 2 天 | 治理层 + 微信审批对接 + 回滚机制 | ✅ 已完成,全链路测试通过 |
总计 6 天,不依赖外部服务,全部 Python 标准库。
一句话总结:用 Python 标准库搭一套最小闭环的自进化系统——数据采集到模式识别到方案生成到你确认到自动部署。
💬 评论