<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>主题/Agent架构 on Albert Intelligence</title><link>https://blog.hialbert.online/tags/%E4%B8%BB%E9%A2%98/agent%E6%9E%B6%E6%9E%84/</link><description>Recent content in 主题/Agent架构 on Albert Intelligence</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Tue, 05 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.hialbert.online/tags/%E4%B8%BB%E9%A2%98/agent%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>同样 3000 行代码，为什么有的 AI Agent 越用越聪明，有的早早封顶</title><link>https://blog.hialbert.online/post/genericagent-vs-o-easy3000-%E8%A1%8C%E4%BB%A3%E7%A0%81%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%94%A8%E6%B3%95/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://blog.hialbert.online/post/genericagent-vs-o-easy3000-%E8%A1%8C%E4%BB%A3%E7%A0%81%E7%9A%84%E4%B8%A4%E7%A7%8D%E7%94%A8%E6%B3%95/</guid><description>&lt;h1 id="同样-3000-行代码为什么有的-ai-agent-越用越聪明有的早早封顶"&gt;同样 3000 行代码，为什么有的 AI Agent 越用越聪明，有的早早封顶
&lt;/h1&gt;&lt;blockquote class="alert alert-info"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;&lt;/span&gt;
 &lt;span class="alert-title"&gt;一句话开场&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;我手头有两个 AI Agent，&lt;strong&gt;核心代码量几乎一样：3110 行 vs 3084 行&lt;/strong&gt;。但跑同一个任务——「给笔记画张架构图」——一个 8 秒搞定且越跑越准，另一个一分钟出来还经常翻车。差在哪？&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="主角登场"&gt;主角登场
&lt;/h2&gt;&lt;p&gt;先认识下这俩。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O-easy Agent&lt;/strong&gt;：我们自己用 Rust 写的小工具，专门干一件事——在 Obsidian 里读写笔记。5 个工具，3110 行代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GenericAgent&lt;/strong&gt;：lsdefine 在 GitHub 开源的通用 AI Agent 框架（&lt;a class="link" href="https://github.com/lsdefine/GenericAgent" target="_blank" rel="noopener"
 &gt;lsdefine/GenericAgent&lt;/a&gt;），口号是「不预装能力，让 Agent 自己长出来」。9 个工具，3084 行代码。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;记住这两个数字：3110 和 3084。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;它们差不多，但下文你会看到，能力差出一个数量级。这就是今天要说的事。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第一眼看不出门道第二眼吓一跳"&gt;第一眼看不出门道，第二眼吓一跳
&lt;/h2&gt;&lt;p&gt;先把两边架构画出来。&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TB
 subgraph OE["O-easy Agent (Rust · 3110 行)"]
 direction TB
 OE_main["ACP 入口"]
 OE_loop["Prompt Loop&lt;br/&gt;max_turns = 10"]
 OE_tools["5 个笔记专用工具"]
 OE_mem["单层 history&lt;br/&gt;(进程内)"]
 OE_main --&gt; OE_loop --&gt; OE_tools
 OE_loop --&gt; OE_mem
 end

 subgraph GA["GenericAgent (Python · 3084 行)"]
 direction TB
 GA_main["Agent 主循环"]
 GA_loop["Agent Loop&lt;br/&gt;~100 行 / max_turns = 70"]
 GA_tools["9 个原子工具&lt;br/&gt;含 code_run"]
 GA_mem["5 层记忆&lt;br/&gt;L0 → L4"]
 GA_evo["Self-Evolving SOP&lt;br/&gt;(任务自动结晶)"]
 GA_main --&gt; GA_loop --&gt; GA_tools
 GA_loop --&gt; GA_mem
 GA_mem -.写入.-&gt; GA_evo
 GA_evo -.读出.-&gt; GA_loop
 end

 style OE fill:#fef3c7,stroke:#92400e,color:#000
 style GA fill:#dbeafe,stroke:#1e3a8a,color:#000
 style GA_evo fill:#fbcfe8,stroke:#9d174d,color:#000&lt;/pre&gt;&lt;p&gt;注意右下那块粉色的 &lt;strong&gt;Self-Evolving SOP&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这是 GenericAgent 的灵魂。它让 Agent「今天学会的事，明天直接做」。&lt;strong&gt;O-easy 完全没有这块&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;下面拆开讲，差异在哪。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="差异-15-个专用工具-vs-9-个万能工具"&gt;差异 1：5 个专用工具 vs 9 个万能工具
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 subgraph A["O-easy: 任务专用"]
 T1[read_note]
 T2[write_note]
 T3[edit_note]
 T4[search_vault]
 T5[list_notes]
 end
 subgraph B["GenericAgent: 原子万能"]
 U1[file_read]
 U2[file_write]
 U3[file_patch]
 U4["code_run ★"]
 U5[web_scan]
 U6[web_execute_js]
 U7[ask_user]
 U8[update_working_checkpoint]
 U9[start_long_term_update]
 end

 style U4 fill:#fde68a,stroke:#b45309,color:#000&lt;/pre&gt;&lt;p&gt;O-easy 的 5 个工具都长一个样：&lt;code&gt;xxx_note&lt;/code&gt;。它的能力天花板就是这 5 个事，写死了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;想画图？没工具。想跑统计？没工具。想抓网页？没工具。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GenericAgent 这边有个杀手锏叫 &lt;strong&gt;code_run&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这个工具的本质是「图灵完备的钥匙」。你想干啥它都能干——只要那件事能用代码表达。&lt;/p&gt;
&lt;blockquote class="alert alert-tip"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;💡&lt;/span&gt;
 &lt;span class="alert-title"&gt;举例：让 Agent 给你画一张 mermaid 架构图&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;ul&gt;
&lt;li&gt;&lt;strong&gt;O-easy&lt;/strong&gt; 怎么做：让大模型脑补输出 mermaid 字符串，写进笔记。&lt;strong&gt;没人验证语法对不对&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GenericAgent&lt;/strong&gt; 怎么做：先 &lt;code&gt;code_run&lt;/code&gt; 跑一段 Python 提取笔记结构 → 让大模型基于结构出 mermaid → 再 &lt;code&gt;code_run&lt;/code&gt; 调 mermaid-cli 真的渲染一遍 → &lt;strong&gt;错了重画&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;多了一层验证。质量差距就这么来的。&lt;/strong&gt;&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="差异-2思考-10-步-vs-思考-70-步"&gt;差异 2：思考 10 步 vs 思考 70 步
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;O-easy ███████████ (10 turns)
GenericAgent ███████████████████████████████████████████████████████████████████████ (70 turns)
 0 10 20 30 40 50 60 70
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;复杂任务的天然节奏：&lt;strong&gt;读 → 想 → 试 → 错 → 改 → 再试 → 验证 → 写&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;10 步通常不够。70 步才有「自我纠错」的空间。&lt;/p&gt;
&lt;p&gt;这就像考试：限时 10 分钟你只能写完，限时 70 分钟你能写完还能检查三遍。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="差异-3单层记忆-vs-5-层记忆业界最大短板"&gt;差异 3：单层记忆 vs 5 层记忆（业界最大短板）
&lt;/h2&gt;&lt;p&gt;绝大多数 Agent 框架的记忆都很简单：要么没有，要么就一层「对话历史」。&lt;/p&gt;
&lt;p&gt;GenericAgent 不一样。它有 &lt;strong&gt;5 层&lt;/strong&gt;。&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 subgraph OE["O-easy 的记忆"]
 H1["对话 history&lt;br/&gt;(进程内, max 20 轮)"]
 H1 -.进程死.-&gt; X1["全部清零"]
 end

 subgraph GA["GenericAgent 的 5 层记忆"]
 L0["L0 · Meta Rules&lt;br/&gt;行为底线"]
 L1["L1 · Insight Index&lt;br/&gt;能力索引"]
 L2["L2 · Global Facts&lt;br/&gt;长期事实"]
 L3["L3 · Task SOPs ★&lt;br/&gt;会做的剧本"]
 L4["L4 · Session Archive&lt;br/&gt;历史归档"]
 L0 --- L1 --- L2 --- L3 --- L4
 end

 style H1 fill:#fee2e2,stroke:#991b1b,color:#000
 style X1 fill:#fee2e2,stroke:#991b1b,color:#000
 style L0 fill:#e0e7ff,stroke:#3730a3,color:#000
 style L1 fill:#c7d2fe,stroke:#3730a3,color:#000
 style L2 fill:#a5b4fc,stroke:#3730a3,color:#000
 style L3 fill:#fbcfe8,stroke:#9d174d,color:#000
 style L4 fill:#818cf8,stroke:#312e81,color:#fff&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;层&lt;/th&gt;
 &lt;th&gt;作用&lt;/th&gt;
 &lt;th&gt;一句话说人话&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;L0&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;行为约束&lt;/td&gt;
 &lt;td&gt;「什么不能做」（比如不能删 vault 文件）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;L1&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;能力索引&lt;/td&gt;
 &lt;td&gt;「我知道我能干哪些事」（轻量目录）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;L2&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;长期事实&lt;/td&gt;
 &lt;td&gt;「这个用户喜欢用 mermaid 画图」&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;L3&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;任务剧本&lt;/td&gt;
 &lt;td&gt;「画 RAG 架构图的标准流程」 ← &lt;strong&gt;关键&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;L4&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;历史档案&lt;/td&gt;
 &lt;td&gt;「上周做过的任务都在这」&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote class="alert alert-warning"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;⚠️&lt;/span&gt;
 &lt;span class="alert-title"&gt;L3 是真正的杀手锏&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;LangChain 没有这层，AutoGPT 没有这层，Claude Code 也没有这层。L3 不是简单的「对话历史」，而是&lt;strong&gt;结构化的「做事剧本」&lt;/strong&gt;。Agent 干完一件事会自动总结成 SOP 写进来，下次类似任务直接照着剧本演。&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;p&gt;打个比方：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L4 是档案室（散乱的过去记录）&lt;/li&gt;
&lt;li&gt;L2 是公司维基（稳定的事实库）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L3 是部门 SOP 手册&lt;/strong&gt;（让新人快速上手的关键资料）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;绝大多数 Agent 框架只有档案室和维基，没有 SOP 手册。GenericAgent 把这一层做出来了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="差异-4能力增长方式这是最大的范式跃迁"&gt;差异 4：能力增长方式（这是最大的范式跃迁）
&lt;/h2&gt;&lt;p&gt;我把这条放最重要的位置。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;传统 Agent 框架的能力公式&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;能力 = Σ(预装的工具)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;要新能力 = 写新代码 + 改框架 + 发新版 + 用户更新。一条龙重资产。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GenericAgent 的能力公式&lt;/strong&gt;：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;能力 = Σ(L3 里积累的 SOP)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;要新能力 = Agent 自己摸索 + 跑通 + 结晶成 SOP + 写入 L3。&lt;strong&gt;完全不用碰代码&lt;/strong&gt;。&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 subgraph TRAD["传统模式"]
 direction TB
 A1[新需求] --&gt; B1[人写新工具]
 B1 --&gt; C1[改框架代码]
 C1 --&gt; D1[发新版本]
 D1 --&gt; E1[用户更新]
 E1 -.重复.-&gt; A1
 end

 subgraph GA["GenericAgent 模式"]
 direction TB
 A2[新需求] --&gt; B2[Agent 自己探索]
 B2 --&gt; C2[跑通 → 结晶为 SOP]
 C2 --&gt; D2[写入 L3 记忆]
 D2 --&gt; E2[下次秒级复用]
 E2 -.-&gt;|越用越快| A2
 end

 style TRAD fill:#fef3c7,stroke:#92400e,color:#000
 style GA fill:#dbeafe,stroke:#1e3a8a,color:#000&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;类比一下&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;传统模式 = &lt;strong&gt;建工厂&lt;/strong&gt;。要新能力等于加新车间，重资产，慢。&lt;/li&gt;
&lt;li&gt;GenericAgent = &lt;strong&gt;学徒工&lt;/strong&gt;。每做一件事，工艺手册就厚一页。&lt;strong&gt;自己越来越熟练&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;教程里给的数据：同一类任务从「自然语言描述 → SOP → 直接 code 调用」三阶段进化，&lt;strong&gt;token 消耗下降 89.6%&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote class="alert alert-quote"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;&lt;/span&gt;
 &lt;span class="alert-title"&gt;关键差距&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;传统 Agent 上线第一天和第一年表现一样。GenericAgent 用了一年的能力是用了一天的 N 倍。&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="差异-5上下文管理反潮流的反向操作"&gt;差异 5：上下文管理——反潮流的反向操作
&lt;/h2&gt;&lt;p&gt;业界都在卷长上下文。Claude 卷到 200K，Gemini 卷到 1M，Qwen 也跟上来了。&lt;/p&gt;
&lt;p&gt;GenericAgent 反着来：&lt;strong&gt;死磕 30K&lt;/strong&gt;。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项&lt;/th&gt;
 &lt;th&gt;O-easy&lt;/th&gt;
 &lt;th&gt;GenericAgent&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;策略&lt;/td&gt;
 &lt;td&gt;按消息轮数粗略剪&lt;/td&gt;
 &lt;td&gt;4 阶段压缩管道&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;目标&lt;/td&gt;
 &lt;td&gt;保最近 N 轮&lt;/td&gt;
 &lt;td&gt;维持 30K token 高密度&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;长任务表现&lt;/td&gt;
 &lt;td&gt;容易塞满重复 read 结果&lt;/td&gt;
 &lt;td&gt;自动压缩、提取要点、丢冗余&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;方向&lt;/td&gt;
 &lt;td&gt;跟随业界&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;反向操作&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;为什么反潮流？&lt;/p&gt;
&lt;blockquote class="alert alert-note"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;📝&lt;/span&gt;
 &lt;span class="alert-title"&gt;业界都在装着不知道的事实&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;LLM 的 attention 机制在 30K 之后衰减明显，长上下文是「花更多钱、办更少事」。&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;p&gt;GenericAgent 把这个问题反过来——不堆长度，&lt;strong&gt;堆密度&lt;/strong&gt;。同样 30K 的窗口，塞最有用的东西，劣质信息及时压缩或丢掉。&lt;/p&gt;
&lt;p&gt;教程里说，这个策略让 GenericAgent 比 Claude Code 节省 &lt;strong&gt;65% token&lt;/strong&gt;（消耗约 35%）。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="实战对比让-agent-给笔记画一张架构图"&gt;实战对比：让 Agent 给笔记画一张架构图
&lt;/h2&gt;&lt;p&gt;干了这么多铺垫，看看真打起来什么样。&lt;/p&gt;
&lt;p&gt;任务：「把这篇 RAG 技术 笔记总结一下，给我画张架构图」。&lt;/p&gt;
&lt;h3 id="o-easy-怎么做"&gt;O-easy 怎么做
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;sequenceDiagram
 autonumber
 participant U as 用户
 participant O as O-easy
 participant L as LLM (Qwen)
 participant V as Vault

 U-&gt;&gt;O: 给 RAG 笔记画架构图
 O-&gt;&gt;V: read_note("RAG技术.md")
 V--&gt;&gt;O: 全文内容
 O-&gt;&gt;L: 帮我画架构图
 L--&gt;&gt;O: mermaid 字符串&lt;br/&gt;(可能语法错)
 O-&gt;&gt;V: write_note(追加 mermaid)
 V--&gt;&gt;O: 写入完成
 O--&gt;&gt;U: 完成
 Note over U,V: 没有验证 · 错了用户才发现&lt;/pre&gt;&lt;p&gt;5 步搞定，但&lt;strong&gt;没有验证&lt;/strong&gt;。LLM 输出语法错你也不知道，要等用户在 Obsidian 里渲染失败才回头看。&lt;/p&gt;
&lt;h3 id="genericagent-怎么做"&gt;GenericAgent 怎么做
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;sequenceDiagram
 autonumber
 participant U as 用户
 participant G as GenericAgent
 participant L as LLM
 participant C as code_run
 participant F as 文件系统

 U-&gt;&gt;G: 给 RAG 笔记画架构图
 G-&gt;&gt;L: 检查 L3 SOP "画架构图"
 L--&gt;&gt;G: 找到上次的 SOP

 G-&gt;&gt;F: file_read("RAG技术.md")
 F--&gt;&gt;G: 全文

 G-&gt;&gt;C: 跑 Python 提取章节结构
 C--&gt;&gt;G: 结构化 JSON

 G-&gt;&gt;L: 基于结构生成 mermaid
 L--&gt;&gt;G: mermaid 代码

 G-&gt;&gt;C: mermaid-cli 渲染验证
 C--&gt;&gt;G: 语法正确

 G-&gt;&gt;F: file_patch(追加到笔记末尾)
 F--&gt;&gt;G: 完成

 G-&gt;&gt;G: update_working_checkpoint&lt;br/&gt;(优化 L3 SOP)
 G--&gt;&gt;U: 完成 + 已自我改进
 Note over U,F: 有验证 · 有改进 · 下次更快&lt;/pre&gt;&lt;p&gt;10 步，&lt;strong&gt;多了 3 件事&lt;/strong&gt;：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;先查 L3 有没有现成 SOP&lt;/li&gt;
&lt;li&gt;用 &lt;code&gt;code_run&lt;/code&gt; 真的跑一遍验证 mermaid&lt;/li&gt;
&lt;li&gt;完事更新 SOP，下次更快&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;质量和效率全在这 3 步上拉开。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="代码量真相3000-行-vs-3000-行谁花得更聪明"&gt;代码量真相：3000 行 vs 3000 行，谁花得更聪明
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;项目&lt;/th&gt;
 &lt;th&gt;核心源码&lt;/th&gt;
 &lt;th&gt;工具数&lt;/th&gt;
 &lt;th&gt;记忆层数&lt;/th&gt;
 &lt;th&gt;自演化&lt;/th&gt;
 &lt;th&gt;测试&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;O-easy&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;3,110 行&lt;/td&gt;
 &lt;td&gt;5 个专用&lt;/td&gt;
 &lt;td&gt;1 层&lt;/td&gt;
 &lt;td&gt;否&lt;/td&gt;
 &lt;td&gt;0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;GenericAgent 核心&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;3,084 行&lt;/td&gt;
 &lt;td&gt;9 个原子&lt;/td&gt;
 &lt;td&gt;5 层&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;是&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;未统计&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;两边代码行数几乎一样，能力密度天差地别。&lt;/p&gt;
&lt;p&gt;差在哪？看 GenericAgent 的 3000 行花在哪：&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;pie title GenericAgent 3084 行核心代码分布
 "agent_loop.py (核心循环)" : 118
 "agentmain.py (入口与模式)" : 266
 "ga.py (9 个工具实现)" : 558
 "llmcore.py (多 LLM 抽象)" : 988
 "simphtml.py (HTML 瘦身)" : 870
 "TMWebDriver.py (浏览器)" : 284&lt;/pre&gt;&lt;p&gt;注意 &lt;code&gt;agent_loop.py&lt;/code&gt; 才 &lt;strong&gt;118 行&lt;/strong&gt;——作者宣传的「100 行核心循环」是真的，不是营销话术。&lt;strong&gt;整个 Agent 大脑就这 118 行&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;而 O-easy 的 3110 行：&lt;/p&gt;
&lt;pre class="mermaid" style="visibility:hidden"&gt;pie title O-easy 3110 行代码分布
 "tools/* (5 个笔记工具)" : 1026
 "protocol/* (ACP 协议)" : 522
 "llm/* (LLM 客户端)" : 292
 "vault/path_guard.rs (安全)" : 194
 "config.rs" : 140
 "其他" : 936&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;1026 行花在 5 个工具&lt;/strong&gt;——平均每个工具 200 行。每个工具都在做差不多的事：path 校验、permission 流程、转 JSON。&lt;strong&gt;重复造轮子的味道很浓&lt;/strong&gt;。&lt;/p&gt;
&lt;blockquote class="alert alert-quote"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;&lt;/span&gt;
 &lt;span class="alert-title"&gt;同样 3000 行&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;GenericAgent 把每行都用在让 Agent 能自我成长的脚手架上。O-easy 的每行都被锁死在「这 5 件事」里。&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="genericagent-的真正创新一句话每条"&gt;GenericAgent 的真正创新（一句话每条）
&lt;/h2&gt;&lt;p&gt;业界对比下，能拍着胸脯说「这是我的原创」的，就这 5 条：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 能力 = 记忆，不是代码&lt;/strong&gt; —— Agent 框架从「工具盒」变成「学习者」。这是范式跃迁，不是迭代。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 5 层记忆 + L3 SOP 这一层&lt;/strong&gt; —— LangChain 没有，AutoGPT 没有，Claude Code 也没有。第一次有框架认真做「Agent 自己的 SOP 手册」。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 9 个原子工具 + &lt;code&gt;code_run&lt;/code&gt; 元工具&lt;/strong&gt; —— 用 9 个原语组合出无限能力，而不是堆一百个专用工具。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 信息密度优先（反 1M context 潮流）&lt;/strong&gt; —— 业界都在卷长度，它在卷密度。结果 token 消耗只有 Claude Code 的 35%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. 真实浏览器注入（不开 headless）&lt;/strong&gt; —— 直接操作用户已登录的 Chrome，不用绕验证码、不用模拟登录。RPA 圈子有人做，Agent 圈子做的没几家。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="给读者的两条启示"&gt;给读者的两条启示
&lt;/h2&gt;&lt;p&gt;如果你将来想自己设计一个 Agent，记住这两条：&lt;/p&gt;
&lt;h3 id="启示-1选原子工具--代码执行不要堆专用工具"&gt;启示 1：选「原子工具 + 代码执行」，不要堆专用工具
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;反例（O-easy 走的路）&lt;/th&gt;
 &lt;th&gt;正解（GenericAgent 走的路）&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;加 send_email 工具&lt;/td&gt;
 &lt;td&gt;加 code_run，让 Agent 写 smtplib&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;加 query_db 工具&lt;/td&gt;
 &lt;td&gt;加 code_run，让 Agent 写 SQL&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;加 generate_chart 工具&lt;/td&gt;
 &lt;td&gt;加 code_run，让 Agent 用 matplotlib&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;工具数量爆炸 → 维护噩梦&lt;/td&gt;
 &lt;td&gt;9 个原子工具搞定一切&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;工具集合是 Agent 的天花板。&lt;strong&gt;专用工具 = 低天花板 + 高维护成本&lt;/strong&gt;。原子工具 + code_run = 天花板由 LLM 能力决定，不由你预设。&lt;/p&gt;
&lt;h3 id="启示-2把能力增长留给运行时不要全压在开发时"&gt;启示 2：把能力增长留给「运行时」，不要全压在「开发时」
&lt;/h3&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart LR
 A[开发时&lt;br/&gt;写脚手架] --&gt; B[运行时&lt;br/&gt;积累 SOP]
 B --&gt; C[使用时间越长&lt;br/&gt;越聪明]

 style A fill:#dbeafe
 style B fill:#fbcfe8
 style C fill:#bbf7d0&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;长期复利&lt;/strong&gt;。这是 GenericAgent 真正甩开同行的一招。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="你该用哪个"&gt;你该用哪个
&lt;/h2&gt;&lt;pre class="mermaid" style="visibility:hidden"&gt;flowchart TD
 Q{你的需求}
 Q --&gt;|做单一类型任务&lt;br/&gt;如笔记 CRUD| A[O-easy 类&lt;br/&gt;专用 Agent]
 Q --&gt;|做开放式任务&lt;br/&gt;每天都不同| B[GenericAgent 类&lt;br/&gt;通用 Agent]
 Q --&gt;|想理解 Agent 架构&lt;br/&gt;做研究| C[直接读 GenericAgent 源码&lt;br/&gt;3000 行 一周看完]

 style A fill:#fef3c7,stroke:#92400e,color:#000
 style B fill:#dbeafe,stroke:#1e3a8a,color:#000
 style C fill:#dcfce7,stroke:#166534,color:#000&lt;/pre&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;场景&lt;/th&gt;
 &lt;th&gt;推荐&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;我只想给 Obsidian 加个写笔记 AI&lt;/td&gt;
 &lt;td&gt;O-easy Agent（轻、快、专）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;我想要一个能干所有杂活的 AI 助手&lt;/td&gt;
 &lt;td&gt;GenericAgent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;我想学 Agent 架构内功&lt;/td&gt;
 &lt;td&gt;读 GenericAgent 源码&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="结尾一句话"&gt;结尾一句话
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;代码量决定下限，记忆密度决定上限。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;GenericAgent 的真正创新，不在于「少」，而在于把少省下来的精力，&lt;strong&gt;全部投在了让 Agent 能自我成长上&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;3000 行不是它的天花板。&lt;strong&gt;它的天花板是用户每多用一次，就被推高一点&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;这才是 Agent 框架的未来。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="延伸阅读"&gt;延伸阅读
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;GenericAgent —— 本篇主角，3000 行通用 Agent 框架&lt;/li&gt;
&lt;li&gt;O-easy Agent —— 本篇对照组，笔记 CRUD 专用 Agent&lt;/li&gt;
&lt;li&gt;GenericAgent-ACP —— 把 GenericAgent 接入 Obsidian 的 wrapper&lt;/li&gt;
&lt;li&gt;AI Agent / ReAct 模式 / Tool Use —— Agent 基础概念&lt;/li&gt;
&lt;li&gt;ACP 协议 —— Obsidian Agent Client 用的协议&lt;/li&gt;
&lt;li&gt;LangChain / AutoGPT / Claude Code —— 业界对照框架&lt;/li&gt;
&lt;li&gt;RAG 技术 —— 实战案例笔记&lt;/li&gt;
&lt;li&gt;Mermaid —— 本文用到的图表语法&lt;/li&gt;
&lt;li&gt;给 Hermes Agent 装上 Open WebUI 从零到一的完整实践 —— 同博客 Agent 集成实战&lt;/li&gt;
&lt;li&gt;源码：&lt;code&gt;D:\Program\GenericAgent\&lt;/code&gt;、&lt;code&gt;D:\Program\O-easy-agent\&lt;/code&gt;、&lt;code&gt;D:\Program\GenericAgent-ACP\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;官方仓库：&lt;a class="link" href="https://github.com/lsdefine/GenericAgent" target="_blank" rel="noopener"
 &gt;lsdefine/GenericAgent&lt;/a&gt; · &lt;a class="link" href="https://github.com/datawhalechina/hello-generic-agent" target="_blank" rel="noopener"
 &gt;datawhalechina/hello-generic-agent&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>