文章 / 自进化 Agent 实施计划——代码架构、数据设计、部署方案
工程实践

自进化 Agent 实施计划——代码架构、数据设计、部署方案

2026.07.09 · 约 4000 字

上一篇设计了自进化 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

表 1: execution_log 执行记录

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 效果、识别高频失败模式、计算趋势。

表 2: validation_fail 验证失败记录

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 根据这里的数据发现模式。

表 3: skill_versions Skill 版本管理

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 变更。支持回滚。

表 4: evolution_log 进化审计日志

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'
);

用途:审计回溯、回滚依据、效果评估。

表 5: system_config 系统配置

CREATE TABLE system_config (
    key   TEXT PRIMARY KEY,
    value TEXT NOT NULL
);

三、模块实现

3.1 db.py 数据库层

封装所有 SQL 操作,其他模块不直接写 SQL。提供:

3.2 collector.py 采集器

采集数据的入口。被 Hermes 在关键节点调用:

采集器不分析不决策,只把原始数据存进数据库。

3.3 analyzer.py 分析器

被 engine.py 定时触发,每次做三件事:

失败模式识别:按 fail_type + skill_id 分组统计频率趋势,标记超过阈值的模式。

Skill 效果评估:计算每个 Skill 的成功率、平均耗时、用户反馈,检测退化。

进化建议生成:整合前面两步的结果,输出包含 target、action、reason、risk、draft 的完整建议。

每条建议有最低数据量要求(默认 5 条同类记录),避免噪音导致误进化。

3.4 evolutor.py 进化执行器

接收 analyzer 的建议,执行变更:

Skill 生成逻辑:从情景记忆中检索相关案例,提取共性模式,自动生成结构化的 SKILL.md。

3.5 governor.py 治理层

按风险等级处理:

回滚机制:查询当前版本,激活上一个版本,替换 SKILL.md 文件,记录审计日志。

3.6 sandbox.py 沙箱验证

新 Skill 在隔离环境验证效果:

沙箱不调真实 LLM,用预存的历史输出做静态验证。

3.7 memory_bridge.py 记忆系统对接

读取情景记忆获取同类失败历史,写入语义知识固化新 Skill。


四、对接 Hermes 的方式

交互方向方式说明
Hermes → 采集器Python import执行完成后调用 collector.record_xxx()
进化器 → 用户微信推送中等风险推送到你的微信确认
进化器 → 文件系统写 SKILL.md进化后自动更新 ~/.hermes/skills/
用户 → 进化器微信回复确认或拒绝,系统收到后执行

五、三阶段上线计划

阶段天数做什么状态
Phase 12 天数据库搭建 + 采集器 + 对接执行链路✅ 已完成
Phase 22 天分析器 + 进化执行器 + 沙箱验证✅ 已完成
Phase 32 天治理层 + 微信审批对接 + 回滚机制✅ 已完成,全链路测试通过

总计 6 天,不依赖外部服务,全部 Python 标准库。


一句话总结:用 Python 标准库搭一套最小闭环的自进化系统——数据采集到模式识别到方案生成到你确认到自动部署。

💬 评论

加载中...
请友善发言