Hotdry.

Article

GenericAgent 技术解析:基于分层记忆的技能树自进化实现

从 3.3K 行种子代码生长技能树,GenericAgent 通过分层记忆与原子工具实现全系统控制,token 消耗降低 6 倍的工程化实践。

2026-04-16ai-systems

当我们谈论 AI Agent 的自我进化时,大多数方案停留在「预设技能库 + 插件市场」的思维定式中。GenericAgent 提出了一个截然不同的理念:不预设技能,让能力在任务执行过程中自主生长。它仅用约 3K 行核心代码构建了一个极简框架,通过分层记忆系统与 9 个原子工具的组合,实现了对本地计算机的全面控制,token 消耗却只有同类方案的六分之一。

设计哲学:从预设到生长

传统 Agent 框架倾向于在部署阶段预先加载大量工具与技能,这导致两个显著问题:上下文窗口急剧膨胀带来高昂的 token 消耗,以及预置技能与实际需求之间的错配。GenericAgent 的核心突破在于将「技能」视为执行路径的结晶而非静态资源。每当 Agent 完成一个新任务,它会自动将解决该任务的完整执行路径固化为一个可复用的 Skill,写入记忆层供后续直接调用。这种机制类似于生物体的适应性进化:不是天生具备所有生存技能,而是在与环境的交互中持续学习与强化。

从工程实现角度看,GenericAgent 的整个 Agent Loop 仅约 100 行代码,却支撑起了感知、推理、执行、记忆的完整闭环。这种极度克制的架构设计,使得系统复杂性不会随功能增长而失控,同时也为自我进化提供了清晰的边界与可预测的行为模式。

分层记忆系统:能力沉淀的基础设施

GenericAgent 的自我进化能力建立在五层记忆体系之上,每一层承担不同的信息管理职责,共同构成 Agent 的认知架构。

L0 元规则层定义了 Agent 的基础行为约束与系统级配置,包括工具调用规范、错误处理策略、安全边界等底层协议。这一层在初始化时一次性写入,之后极少变更,充当整个系统的宪法性角色。

L1 记忆索引层是一个极简的路由与召回索引,包含指向各层记忆的指针与快速匹配规则。它的设计目标是在保持最小体积的前提下实现高效的信息定位,避免在海量记忆中进行全文检索。

L2 全局事实层负责沉淀跨任务的稳定知识,例如特定网站的登录流程、系统环境的配置信息、常用 API 的调用约定等。这些知识具有较高的通用性与较长的有效期,是 Agent 持续运营的知识资产。

L3 任务技能层是自我进化的核心载体。每个 Skill 本质上是一个结构化的执行流程,包含了任务分解模式、工具调用序列、参数模板与验证逻辑。当遇到相似任务时,Agent 直接从 L1 索引中定位对应 Skill,通过参数填充快速执行,而非重新进行完整的探索与推理。

L4 会话归档层是 2026 年 4 月 11 日最新引入的特性,用于长程记忆的持久化存储。它将从已完成会话中提炼的关键经验进行归档,支持跨时间维度的经验复用,为 Agent 的持续演进提供了时间轴记忆能力。

九个原子工具:系统控制的最小完备集

GenericAgent 刻意保持了工具集的精简,仅提供 9 个原子工具来覆盖所有系统交互场景。这种设计背后的逻辑是:复杂的工具链会侵蚀上下文窗口、放大调试难度,而最小工具集可以通过组合与动态扩展来满足任意需求。

code_run 是最具影响力的原子工具,它允许 Agent 在运行时动态执行任意 Python 代码。这意味着 Agent 不仅能够调用预设功能,还能够自行编写新脚本、安装依赖包、调用外部 API,甚至控制硬件设备。通过这个工具,GenericAgent 获得了真正意义上的能力扩展自由:任何临时需要的技能都可以在执行过程中被临时构建,随后被固化为持久可复用的 Skill。

file_readfile_writefile_patch 三个工具构成了文件系统操作的完整能力集,支持 Agent 读取现有代码、生成新文件、或者对已有文件进行增量修改。这些能力对于自动化开发流程、配置管理等场景至关重要。

web_scanweb_execute_js 协同工作,使 Agent 能够感知网页内容并控制浏览器行为。与其他方案使用无头浏览器或沙箱环境不同,GenericAgent 注入真实浏览器并保留登录会话,这意味着 Agent 可以直接利用用户已有的身份认证状态访问需要登录的 Web 服务,大幅扩展了自动化场景的覆盖范围。

ask_user 提供了人机协作的通道,使 Agent 能够在关键决策点请求人类确认。这不是弱点而是工程上的审慎设计:在完全自动化与完全人工控制之间,保留必要的确认环节可以避免不可逆的破坏性操作。

两个记忆管理工具 update_working_checkpointstart_long_term_update 负责上下文持久化与跨会话经验积累。前者支持长会话中的状态恢复,后者将当前会话的成果写入长期记忆层。

自进化循环:任务到技能的转化机制

GenericAgent 的自进化机制可以概括为一个四阶段循环:任务感知 → 自主探索 → 技能结晶 → 记忆召回。当用户提交一个新任务时,Agent 首先通过 L1 索引检查是否存在对应的已有 Skill;如果命中,直接执行复用;如果未命中,则进入自主探索阶段。

在自主探索阶段,Agent 根据任务目标自主决定需要安装哪些依赖、编写哪些脚本、调用哪些工具。这个过程与人类解决新问题时的试错学习高度相似:Agent 会尝试不同方案、观察执行结果、调整策略直至任务完成。关键的差异化在于,这个探索过程的所有痕迹都会被完整记录。

探索成功后,Agent 进入技能结晶阶段。它会将完整的执行路径 —— 包括问题分解方式、工具调用序列、参数选择逻辑、异常处理策略 —— 结构化写入 L3 层。同时更新 L1 索引,确保下次遇到相似任务时能够快速召回。这意味着,随着使用时间的延长,Agent 会变得越来越高效:最初需要几分钟探索完成的任务,后续可能只需要几秒钟的参数填充即可执行。

这种进化机制的 token 效率来源也由此清晰:随着技能树的生长,Agent 需要加载的上下文越来越精简 —— 不再需要每次都重新进行完整的问题分析与方案设计,只需要加载对应的 Skill 与当前任务的参数即可。官方数据显示,GenericAgent 的上下文窗口控制在 30K 以内,而同类方案通常需要 200K 到 1M 的上下文空间,六倍的差距正是来源于此。

工程实践:从 DEMO 看能力边界

GenericAgent 的官方演示展示了几个典型的自进化场景。外卖下单任务中,Agent 首次遇到时需要自主探索:安装外卖应用相关的依赖、逆向分析数据库结构、编写读取脚本、完成支付流程。整个过程可能耗时数分钟并产生大量 token 消耗。但这一套执行路径被结晶为 Skill 后,后续任何「帮我点外卖」的请求都可以在一句话内触发执行。

量化选股是另一个典型场景。Agent 首次需要安装 mootdx 库、理解选股逻辑、构建完整的筛选流程并配置定时任务。完成后的 Skill 使得「筛选满足某条件的股票」这类请求可以瞬间响应。这些演示印证了 GenericAgent 设计哲学的有效性:初始的投入转化为持续的回报名。

与其他方案的量化对比

从代码规模看,GenericAgent 的 3K 行核心代码与 OpenClaw 的 53 万行形成了鲜明对比。这种差异不是功能缺失的结果,而是架构选择的结果:GenericAgent 不试图在框架层面预置所有能力,而是提供让能力自然生长的机制。

从部署复杂度看,GenericAgent 仅需 pip install streamlit pywebview 即可启动,对 API Key 的配置也极度简化。这种极简部署降低了使用门槛,使个人用户能够在本地设备上运行专属的自我进化 Agent。

从 token 消耗看,30K 上下文与 200K-1M 的差距意味着同类型任务下 GenericAgent 的成本仅为其他方案的六分之一左右。结合其自我进化带来的执行效率提升,综合成本优势更加显著。

技术局限与适用边界

必须指出的是,GenericAgent 的极简设计也带来了特定的约束。由于依赖 code_run 动态创建能力,Agent 的行为边界在理论上是开放的,但在实践中受到运行时环境与安全策略的限制。某些需要特权操作或系统级权限的任务可能无法在标准配置下完成。

此外,技能的质量完全依赖于探索阶段的执行结果。如果首次探索采用了低效或错误的方案,对应的 Skill 也会继承这些缺陷。L4 会话归档的引入在一定程度上提供了手动修正的可能,但自动化优化机制仍有待完善。

小结

GenericAgent 为 AI Agent 的自我进化提供了一个工程化范本:不是通过预置庞大技能库来覆盖需求,而是通过分层记忆系统将每一次任务执行转化为可积累的经验资产。3K 行代码的极简架构、九个原子工具的组合能力、六倍的 token 效率提升,这些数字背后是一套清晰的设计哲学 —— 让 Agent 在与真实环境的持续交互中自主生长能力,而非在部署之初就被框定能力边界。对于追求长期运营效率、期望 Agent 能力随使用不断增长的用户而言,这种设计思路值得深入关注与实践验证。

资料来源:GitHub lsdefine/GenericAgent 官方仓库

ai-systems