在 AI Agent 领域,一个核心矛盾始终存在:预装大量技能导致框架臃肿,而从零开始又让每次任务都要经历漫长的探索过程。GenericAgent 给出了一个激进但优雅的答案 —— 不预设任何技能,让代理在完成任务过程中自主进化,将执行路径沉淀为可复用的技能,形成一棵随使用时间增长的专属技能树。更关键的是,这一架构将 Token 消耗降为传统方案的六分之一。本文深入剖析其背后的自进化机制、分层记忆系统与最小工具集设计。
核心设计理念:不预设技能,靠进化获得能力
GenericAgent 的核心哲学可以概括为一句话:不预设技能,靠进化获得能力。与传统 Agent 框架预装大量工具和插件不同,GenericAgent 仅提供 9 个原子工具和一个约百行的 Agent Loop,其余所有能力都通过实际任务执行过程中自动沉淀获得。
这种设计的初衷源于对现有 Agent 框架的反思。动辄数十万行的代码库、复杂的多服务编排、大量的依赖安装,这些都构成了普通用户使用 Agent 的门槛。更重要的是,传统框架的技能是固定的、普适的,无法形成真正的个人化积累。GenericAgent 选择了一条完全不同的路径:从 3K 行极简种子代码出发,让每个用户的 Agent 实例随着使用逐渐生长出独属于自己的技能树。
根据项目文档,GenericAgent 曾自主完成仓库本身的所有操作 —— 从安装 Git、初始化仓库到编写每一条 Commit Message,作者从未打开过一次终端。这种自举能力(Bootstrap)验证了框架的可行性,也为后续的技能沉淀机制奠定了基础。
分层记忆系统:技能沉淀的物理结构
技能能够被积累并复用的前提是有完善的记忆系统。GenericAgent 采用了五层记忆架构,每一层承担不同的功能,共同支撑起整个自进化机制。
L0 层(元规则) 定义了 Agent 的基础行为规范和系统约束。这一层包含 Agent 的核心指令、道德边界、工具使用原则等基本准则,是所有决策的元框架。由于内容相对稳定,这一层在初始化后很少变动,避免了每次请求都传输大量上下文。
L1 层(记忆索引) 是一个极简的快速路由层。当新任务到来时,Agent 首先通过这一层判断应该调用哪些历史技能和经验。索引的设计非常精简,仅包含技能的关键词、适用场景和调用频率等核心信息,使得路由决策可以在极低的 Token 消耗下完成。
L2 层(全局事实) 存储在长期运行过程中积累的稳定知识。这可能包括用户的工作习惯、常用文件路径、偏好设置等。与 L1 的索引不同,L2 存储的是具体的、可直接使用的事实而非元信息。
L3 层(任务技能与 SOP) 是整个记忆系统的核心 —— 这里存放着 Agent 通过完成任务自动沉淀的可复用流程。每当 GenericAgent 成功解决一个任务,它会将完整的执行路径、使用的工具序列、参数配置等打包为一个 Skill,写入 L3 层供后续直接调用。
L4 层(会话归档) 是 2026 年 4 月 11 日新引入的特性,用于长程召回已完成任务的详细记录。这一层将历史会话的精华部分进行归档,使得 Agent 能够跨越更长时间维度进行经验复用。
五层记忆的设计确保了 Token 消耗的优化:每次任务只需加载必要的层级,而非将全部历史上下文塞入提示词。L1 的极简索引可以在大多数场景下快速定位所需技能,只有在需要详细参考时才加载 L3 中的具体 Skill 定义。
最小工具集:9 个原子工具构建系统级控制
GenericAgent 刻意保持了工具集的最小化。整套框架仅提供 9 个原子工具,每个工具都设计为最基础、最通用的能力,通过组合满足复杂场景需求。
代码执行工具(code_run) 是整个框架的能力扩展器。通过这一工具,Agent 可以在运行时动态安装 Python 包、编写新脚本、调用外部 API 甚至控制硬件。这意味着 Agent 不受限于预装的工具列表,而是能够根据任务需求即时构建新的能力,并将这种临时能力固化为永久技能。
文件操作三件套 包括 file_read、file_write 和 file_patch,分别负责读取、写入和修改文件。这三个工具构成了 Agent 与本地文件系统交互的基础,使其能够处理代码、文档、数据等各种文件类型。
网页交互工具 包括 web_scan 和 web_execute_js。前者用于感知和提取网页内容,后者用于控制浏览器的具体行为,如点击、滚动、填表等。值得注意的是,GenericAgent 注入的是真实浏览器而非无头模式,这意味着登录状态可以被保留,对于需要登录才能操作的任务具有显著优势。
人机协作工具(ask_user) 允许 Agent 在关键决策点请求人类确认。这一工具在自动化与安全之间取得平衡,确保 Agent 的行为在用户可控范围内。
记忆管理工具 包括 update_working_checkpoint 和 start_long_term_update,分别用于维护工作检查点和触发长期记忆更新。这两个工具是实现跨会话经验积累的关键。
通过这 9 个原子工具的组合,GenericAgent 实现了对本地计算机的系统级控制 —— 覆盖浏览器、终端、文件系统、键鼠输入、屏幕视觉以及通过 ADB 控制的移动设备。极简的工具定义也大幅减少了每次工具调用时需要传递的元信息,进一步降低了 Token 消耗。
自进化机制:从探索到技能的完整闭环
自进化机制是 GenericAgent 区别于其他框架的根本所在。这一机制构成了一个完整的闭环:新任务到来后,如果已有对应 Skill 则直接调用,否则启动自主探索;探索过程中安装依赖、编写脚本、调试验证;任务成功后,将执行路径固化为 Skill 写入记忆层;下次遇到同类任务时,直接通过 L1 索引定位并调用。
这个闭环的核心价值在于一次探索,多次复用。以「监控股票并提醒我」这一任务为例,Agent 首次执行时需要完成安装 mootdx 库、研究选股 API、构建选股流程、配置定时任务等一系列操作,并将整个流程保存为 Skill。此后,用户只需说一句「监控股票」,Agent 即可直接调用已沉淀的 Skill,一句话启动监控。这种设计使得 Token 消耗呈现明显的递减趋势:首次任务消耗较高,但随着 Skill 库的丰富,后续同类任务的 Token 消耗急剧下降,最终达到约六分之一的优化效果。
根据项目文档展示的案例,用户首次要求「读取微信消息」时,Agent 需要自主完成安装依赖、逆向数据库、编写读取脚本等步骤;而在 Skill 形成后,同类任务可以直接调用,Token 消耗大幅降低。这种随使用时长递减的 Token 曲线是 GenericAgent 6 倍优化的核心逻辑。
Agent Loop:百行代码的执行引擎
整个 GenericAgent 的执行核心是一个约百行的 Agent Loop(agent_loop.py)。这个循环的逻辑极为简洁:感知当前环境状态、进行任务推理、执行工具调用、将执行经验写入记忆层,然后进入下一轮循环。
这个极简的循环设计有几个关键优势。首先,循环本身的 Token 开销极低 —— 每次迭代只需要传递当前状态和必要的历史摘要,而非完整的框架定义。其次,由于 Skill 已经被固化在 L3 层,Agent Loop 在调用 Skill 时不需要重新进行复杂的推理路径,只需按照预定义的流程执行即可。第三,极简的架构使得框架易于理解和修改,降低了定制门槛。
六倍 Token 优化的技术逻辑
GenericAgent 宣称的 6 倍 Token 消耗降低并非单一技术的效果,而是多种优化手段的叠加结果。
最小工具定义是第一层优化。传统框架往往需要为每个工具传递详细的参数说明、返回值格式、适用场景等元信息。GenericAgent 的 9 个原子工具设计将这一开销降到最低,且工具定义可以复用而非每次请求都传输。
分层记忆的按需加载是第二层优化。如前所述,五层记忆系统使得 Agent 不必每次都加载完整的历史上下文。L1 的极简索引足以处理大多数路由决策,只有在需要详细参考时才加载 L3 中的 Skill 定义。
Skill 的直接调用是第三层优化,也是贡献最大的优化点。当某个任务的 Skill 已经形成,Agent 无需再进行探索、推理、验证等高 Token 消耗的操作,直接调用预定义的执行路径即可。这类似于从「每次都重新学习」到「调用已掌握技能」的质变。
会话归档的精炼是第四层优化。L4 层的引入使得长程召回更加高效 —— 不再是完整回放历史会话,而是提取关键信息进行归档,显著减少了回溯时的 Token 开销。
综合来看,6 倍的 Token 优化是一个渐进的过程:初始使用时与传统框架差别不大,但随着 Skill 库的丰富,优化效果呈指数级增长。使用时间越长,累计的 Skill 越多,单位任务的 Token 消耗越低。
前端接入与多模型兼容
作为一套完整的框架,GenericAgent 提供了多种前端接入方式。默认的 Streamlit Web UI 足以满足大多数使用场景,同时项目还支持 Qt 桌面应用、微信 Bot、QQ Bot、飞书、企业微信和钉钉等多种接入方式。
在模型兼容性方面,GenericAgent 支持 Claude、Gemini、Kimi、MiniMax 等主流模型,这使得用户可以根据自己的偏好和成本考虑选择合适的底层 LLM。跨模型的兼容性确保了框架的可移植性,避免被单一模型供应商绑定。
工程化启示
GenericAgent 的设计为 AI Agent 的工程化提供了几个有价值的启示。首先,极简主义在 Agent 框架中同样可行——3K 行代码与百行循环证明了复杂任务不需要复杂框架。其次,自进化可能是个人化 Agent 的最佳路径—— 预装的技能是公共的,而自己沉淀的技能才是真正属于个人的。第三,Token 优化的本质是减少重复推理——Skill 沉淀机制的本质是将一次性的高成本推理转化为可复用的低开销调用。
当然,这一架构也有其适用边界。自进化机制意味着初始使用阶段需要承担「学习成本」,对于一次性任务或低频场景可能不够高效。Skill 库的质量取决于任务多样性 —— 如果使用场景单一,技能沉淀的价值也会受限。
总体而言,GenericAgent 展示了一种不同于主流的 Agent 发展路径:不追求预装能力的丰富度,而是追求自我生长的可能性。当你的 Agent 实例经过数周使用后,拥有了一套完全独属于你的技能树 —— 这或许是个人化 AI 助手最理想的形态。
资料来源:GitHub 仓库 lsdefine/GenericAgent