截至 2026 年 9 月的 GitHub 趋势观察。Star 数为公开数据近似值,实时数据以 GitHub 为准。
本文不是"榜单念一遍"——每个项目都会拆到架构、机制、源码和踩坑层面。长文预警,建议先收藏。

写在前面:什么叫"值得关注"

每年这种盘点满天飞,大部分的筛选逻辑是"Star 排序 + 简介复制粘贴"。我定三条硬标准:

  1. 范式价值 —— 它是不是在改变"软件应该怎么做"这个问题的答案本身;
  2. 生态位 —— 它卡住的位置,未来两年会不会越来越重要(还是三个月后就被替代);
  3. 工程含金量 —— 扒开源码看,是真东西,还是一层 prompt 包着的 shell 脚本。

按这个标准筛完,2026 年的关键词非常收敛:AI Agent 基础设施。去年我们还在争论"用不用 AI 写代码",今年整个开源社区在解决的已经是下一层的问题——Agent 们如何协作、如何记账、如何被信任、如何不把你的钱包烧穿。

这个分层值得展开说一下。Agent 技术栈正在像当年的 Web 技术栈一样逐层沉淀:

┌────────────────────────────────────────────────┐
│ L4  应用层:具体 Agent 产品(个人助手、编码 Agent)│  ← OpenClaw / hermes / Pi / superpowers
├────────────────────────────────────────────────┤
│ L3  协作层:Agent 之间、Agent 与人的协作协议      │  ← Buzz / A2A
├────────────────────────────────────────────────┤
│ L2  能力层:技能标准、工具协议、记忆系统          │  ← anthropics/skills / MCP
├────────────────────────────────────────────────┤
│ L1  基础设施层:网关、路由、模型运行时            │  ← OmniRoute / Ollama / n8n
├────────────────────────────────────────────────┤
│ L0  硬件层:本地推理硬件                         │  ← Ollama 之下
└────────────────────────────────────────────────┘

榜单上 8 个项目都能在这个分层里找到自己的坐标——这也是它们"值得关注"的根本原因:它们不是又一个 App,而是某一层的候选标准。最后一个位置留给非 AI 阵营的钉子户 Actual Budget,算是给"传统软件美德"留个座位。

全景速览(Star 为约数):

排名项目Star(约)语言协议层级定位
1OpenClaw386kTypeScriptMITL4 个人 Agent 运行时
2superpowers271kShell开源L4 编程方法论
3OmniRoute63k+TypeScriptMITL1 AI 网关
4hermes-agent230kPythonMITL4 自进化 Agent
5Buzz20k+RustApache-2.0L3 协作协议
6anthropics/skills152kPython/MDApache-2.0L2 技能标准
7Pi61kTypeScriptMITL4 极简编码 Agent
8n8n187kTypeScript公平代码L1 工作流编排
9Ollama170kGoMITL0/L1 本地运行时
10Actual Budget60k+JavaScriptMIT非 AI:个人财务

下面挨个往深里拆。


1. OpenClaw —— GitHub 史上增速最快的 AI 助手,它的架构教科书级在哪

仓库: openclaw/openclaw | Star: ~386k | 协议: MIT | 作者: Peter Steinberger(已移交基金会)

1.1 一场教科书级别的社区爆炸

先讲背景,因为这个项目本身就是一个值得研究的"开源运营案例":

  • 2025 年 11 月,奥地利开发者 Peter Steinberger(PSPDFKit 创始人)以 Clawdbot 之名发布;
  • 72 小时拿下 6 万 Star,GitHub 历史最快纪录之一;
  • 因商标问题先改名 Moltbot,再改名 OpenClaw,龙虾吉祥物 Molty 保留(蜕壳 = 成长的隐喻);
  • 2026 年 2 月 Steinberger 宣布加入 OpenAI,项目同日移交独立基金会——这个交接动作本身处理得非常干净,是"创始人离开后项目如何活下来"的范本;
  • 截至 2026 年 7 月:约 38.3 万 Star、8 万 Fork、7 万 commits、组织下 85 个仓库。

1.2 它是什么

一句话:一个跑在你自己电脑上的个人 AI 助手,通过你已经在用的聊天软件指挥它干活。

ChatGPT 说"你可以这样操作",OpenClaw 直接说"办完了"。读文件、跑命令、控制浏览器、发邮件、管日历,全部通过 WhatsApp/Telegram/Discord/Slack/iMessage/飞书等 50+ 渠道触发。它不是聊天框,是一个自托管控制平面(self-hosted control plane)——官方 README 自己都强调这个定位。

1.3 架构原理:为什么是"控制平面"而不是"聊天机器人"

你(手机) ──> WhatsApp/Telegram/Discord/Slack...(50+ 渠道)
                        │
                        v
        ┌───────────────────────────────┐
        │           Gateway             │  ← 长驻进程,WebSocket 对外
        │  会话路由 · 渠道适配 · 权限门控  │     single source of truth
        └───────────────┬───────────────┘
                        v
        ┌───────────────────────────────┐
        │        Agent Runtime          │
        │  SOUL.md(人格) + MEMORY(记忆)  │
        │  + Skills(技能) 装载为上下文    │
        └───────────────┬───────────────┘
                        v
        ┌───────────────────────────────┐
        │          Tool Loop            │
        │  LLM 决策 → 工具执行 → 观察回喂 │
        │  (一条消息 = N 次循环)        │
        └───────────────────────────────┘
             │            │          │
             v            v          v
          Shell        Browser     Files/APIs

三个组件的职责边界切得非常干净,这正是它作为教材的价值:

① Gateway —— 神经系统

长驻后台进程,持有所有消息渠道的连接(WhatsApp 用的是逆向的桥接协议,Telegram 走 Bot API……每个渠道一个 adapter)。官方文档明确说 Gateway 是会话、路由、渠道连接的 single source of truth——哪个消息进哪个会话、Agent 被允许做什么,全部收敛在这一层裁决。

这个设计决策的深意:把所有危险操作的入口收拢到一个可审计的层,而不是让 50 个工具各自为政。做安全的人会立刻看懂——攻击面收敛。代价是 Gateway 成为单点,它挂了整个 Agent 下线(后面踩坑部分会讲)。

② Agent Runtime —— 大脑的装载过程

每次会话,Runtime 把四类文件拼装成 LLM 的上下文:人格(SOUL.md)、用户偏好(USER.md)、长期记忆(MEMORY.md)、当前激活的 Skills。这是标准的"渐进式披露"思路:系统提示只放骨架,技能正文按需加载,避免上下文爆炸。

③ Tool Loop —— 行动循环

经典 agentic loop:LLM 推理 → 发起 tool call → Runtime 执行 → 结果回喂 → 再推理。官方说法是一条用户消息触发几十次工具调用是常态。这里的关键工程问题是循环的终止条件和错误恢复——OpenClaw 用了模型自主判断 + 心跳机制兜底的组合。

1.4 核心机制深拆:记忆即文件

这是 OpenClaw 最值得抄的设计,没有之一。它的持久层是纯 Markdown/YAML 文本文件,每个文件职责单一:

文件职责更新频率
SOUL.md人格、行为准则、语气稳定,偶尔手动改
USER.md用户画像低频,Agent 辅助维护
MEMORY.md长期记忆精华(4KB 级别)每日蒸馏
YYYY-MM-DD.md每日流水日志append-only
HEARTBEAT.md定时巡检清单心跳时读取
skills/*/SKILL.md技能指令安装/学习时写入

对比业界主流的"向量数据库 + embedding"记忆方案,这个选型反直觉但极其聪明:

  • 可解释性满分:你能逐字读出 Agent 记住了什么,能 git log 看到它的记忆如何演变,能精确删掉某一段——向量库做不到任何一条;
  • 零基础设施:没有 DB 进程、没有 embedding 模型依赖,记忆就是一个文件夹;
  • 规模边界清晰:个人 Agent 的记忆量级(几 MB 文本)用文件完全够,MEMORY.md 精选层 + 日期日志 + 按需检索的三层结构天然控制了上下文体积。

什么时候这个方案会失效?记忆量上万条、需要语义模糊匹配的时候。但注意——个人助手场景根本到不了那个规模。选型的第一原则是匹配规模,不是堆先进技术。

心跳机制(Heartbeat):Runtime 默认每 30 分钟唤醒一次,读 HEARTBEAT.md 执行清单任务(检查邮件、扫描日志、发提醒)。这是从"被动应答"到"主动服务"的关键机制,本质上是一个 Agent 内建的 cron。

1.5 源码拆解(简化示意):Skill 的装载与权限声明

一个 Skill 就是一个目录 + 一个 SKILL.md,frontmatter 声明元数据和权限。简化后的结构:

---
name: server-monitor
description: 检查服务器 CPU/内存/磁盘状态,当用户询问服务器健康状况时使用
permissions:
  - shell:ssh          # 需要 shell 执行权
  - network:read       # 需要网络读取
allowed_hosts:
  - 192.168.1.0/24     # 限制可访问的网段
---

# Server Monitor

## 步骤
1. 对 allowed_hosts 内每台主机执行 uptime / free -h / df -h
2. 任何负载 > 5 的主机标记为异常并汇总报告
3. 禁止执行任何写操作命令

Runtime 装载时的核心逻辑(简化示意,非逐行还原):

// simplified: skill loading with permission gate
async function activateSkill(skill: Skill, ctx: SessionContext): Promise<LoadResult> {
  // 1. 描述匹配:LLM 判断当前请求是否命中 skill.description
  const matched = await ctx.llm.shouldActivate(skill.description, ctx.userMessage);
  if (!matched) return { activated: false };

  // 2. 权限校验:skill 声明的权限必须是会话授权的子集 —— CVE-2026-25253 就坏在这里
  const granted = intersect(skill.permissions, ctx.session.grantedPermissions);
  if (!isSubset(skill.permissions, granted)) {
    return { activated: false, reason: 'PERMISSION_ESCALATION_BLOCKED' };
  }

  // 3. 注入上下文:正文按需注入,控制 token 预算
  ctx.inject(systemBlock(skill.content, { budget: 2048 }));
  return { activated: true };
}

注意第 2 步的注释——CVE-2026-25253(CVSS 8.8)正是打在这里:早期版本的权限交集校验存在绕过路径,恶意技能可以声明一个看似无害的权限名,实际获得更宽的执行面。修复版加入了白名单校验和权限名的严格归一化。这个案例给所有做 Agent 插件系统的人提了醒:权限模型里最危险的不是"权限太大",而是"权限名的语义不严格"——字符串比较,一个大小写、一个别名映射,就是漏洞。

1.6 踩坑点

  1. ClawHub 不是安全的:安全研究人员已在市场发现真实恶意技能(窃取凭据、外传数据)。装第三方技能 = 装浏览器插件时代的老规矩:看权限、看发布者、看评分;
  2. Gateway 是单点:Cloudflare 部署方案持续运行成本约 $34.5/月(不含模型费),个人建议放家里的旧 Mac/NAS,配 Tailscale 而不是裸暴露公网;
  3. 版本迭代过快:7 万 commits、3.8k open issues 意味着你几乎必然踩到版本特定行为。生产用途锁 release,升级前看 changelog;
  4. 消息渠道的合规灰区:WhatsApp/iMessage 桥接走的是非官方协议,账号有被风控的理论风险,重要渠道别只依赖它。

1.7 适合谁 & 效果对比

想要 7×24 待命、真正执行任务的私人助手的开发者。同赛道对比:

OpenClawhermes-agent(第 4 名)ChatGPT/Claude 官方 App
数据位置全本地全本地云端
执行能力真实执行(shell/浏览器/文件)真实执行(沙箱隔离更严)无/受限
记忆Markdown 文件SQLite FTS5平台私有
渠道数50+6+各家自家
运维责任用户用户零
成本API 费(可 Ollama 归零)API 费订阅制

2. superpowers —— 给 AI 编程 Agent 装上"工程方法论"

仓库: obra/superpowers | Star: ~271k | 适配 11 个平台

2.1 它解决什么问题

2026 年 AI 编程的核心矛盾不再是"能不能写",而是速度与质量的剪刀差:Agent 五分钟写完 500 行,测试绿了,但抽象层级错乱、重复代码、没人敢动。问题不在模型笨,在于我们没给它资深工程师的工作习惯。

superpowers 的答案:把软件工程方法论编码成可被 Agent 自动加载的技能集,强制走完整流程:

需求 → 追问目标(brainstorm) → 规格说明(spec)
    → 计划文档 → 人工审批 ←━━ 关键门控
    → 任务拆解 → 子 Agent 隔离实现
    → TDD 红绿循环 → 代码评审 → 交付

2.2 核心机制深拆

① 计划审批门控(Plan Gate)

流程中唯一的人类介入点,也是最反直觉的设计——它让 AI 编程"变慢了"。但把账算全:流程的净收益 = 节省的返工成本 − 规划成本。一次方向性错误在实现阶段暴露的返工成本,轻松超过十次规划会议。Plan Gate 的本质是把错误拦截在"改一句话"的阶段,而不是"改一个模块"的阶段。

② 子 Agent 隔离(Subagent Isolation)

这是对"长任务上下文退化"的工程化回答。LLM 的上下文窗口是稀缺资源,主对话里塞满中间过程(读过的文件、失败的尝试)后,模型对关键约束的遵守率会显著下降——业内俗称"上下文腐烂"。

superpowers 的做法:主 Agent 只维护任务清单和验收标准,每个子任务派发给一个全新上下文的子 Agent,完成后只回收"结果 + 关键决策记录"。类比操作系统:主 Agent 是进程管理器,子 Agent 是带独立地址空间的子进程——隔离防止了上下文间的脏数据污染。

③ TDD 技能化

红-绿-重构循环被写成一条显式技能:先写失败测试(红)→ 最小实现(绿)→ 重构。对人类工程师这是常识,对 Agent 这是行为约束——没有这条技能时,模型默认行为是"一把梭写完所有实现再补测试",而补的测试往往是对实现的事后合理化,测不出真 bug。

2.3 为什么它能适配 11 个平台

因为底层押注了开放标准(见第 6 名 anthropics/skills)。superpowers 的技能就是标准格式的 SKILL.md 目录,任何实现 Agent Skills 规范的宿主都能加载。这是**“方法论与宿主解耦”**——方法论是资产,宿主是耗材,资产不能绑死在耗材上。这个架构判断,值得所有做内部工具链的团队抄作业。

2.4 踩坑点

  1. 急性子第一次用会觉得"怎么还不写代码"——坚持住,看一周的返工数据再下结论;
  2. Plan Gate 的审批不要形式化(无脑点确认),门控失效等于没装;
  3. 子 Agent 隔离不是免费的:每次派发都有上下文重建成本,简单任务不值得拆,粒度判断本身是个技能。

2.5 效果对比

裸 Claude Codesuperpowers 加持
首次产出速度快慢 3-5 分钟
架构质量靠运气下限被流程托住
返工率高(方向性错误常见)显著下降
上下文稳定性长任务退化明显子 Agent 隔离兜底

3. OmniRoute —— 太实用了:把 290 家模型提供商压成一个端点

仓库: diegosouzapw/OmniRoute | Star: 63k+(日增约 80,仍在陡峭段)| 协议: MIT | 技术栈: TypeScript + Next.js

标题说"第 3 个太实用了",说的就是它。它不发明概念,只解决每个 LLM 开发者都在流血的痛:订阅一堆、Key 一堆、配额说没就没、Provider 说挂就挂、账单每月惊喜。

3.1 它是什么

一个本地优先、MIT 协议、完全免费的自托管 AI 网关:290+ 提供商、500+ 模型,统一收敛到一个 OpenAI 兼容端点:

Claude Code ─┐                       ┌─ Anthropic(订阅)
Cursor ──────┤   ┌───────────┐       ├─ OpenAI(API Key)
Cline ───────┼──>│ OmniRoute │═══════>├─ DeepSeek(低价)
Copilot ─────┤   │ :20128/v1 │       ├─ Groq(免费层)
...33+ 工具 ─┘   └───────────┘       └─ 90+ 免费提供商
                    │  │  │
              路由  容错  压缩(三层核心能力)

所有工具指向 http://localhost:20128/v1,从此不关心背后谁在服务。5 个月 271 个 release、合并近 3000 个 PR——迭代速度本身就是一个信号。

3.2 原理拆解一:路由系统(19 种策略)

路由决策的输入是多维的:模型能力、价格、当前延迟、健康度、剩余配额。几个关键策略:

  • 成本优化路由:按"满足任务需求的最低成本模型"选路——分类任务不派 Opus,这是省钱的大头;
  • Last-Known-Good(最后已知良好路径):记住每个 (工具, 任务类型) 组合最近成功的 Provider,故障时直接切过去而不是重新试探。这个策略聪明在利用了时间局部性——上一次成功的路径大概率这次也通;
  • Auto 组合模式:以上策略的级联编排。

路由问题本质是带约束的在线调度:请求到达时决策不可撤销(不能事后换 Provider),目标是最大化成功率、最小化成本。19 种策略对应不同的效用函数权重,没有银弹——这正是它做成"策略可插拔"而不是"一个最优算法"的原因。

3.3 原理拆解二:三层容错与回退链(本项目精华)

请求进入
   │
   v
[第 1 层] 熔断器(Circuit Breaker,按 Provider 粒度)
   │  连续失败 N 次 → OPEN 状态,一段时间内直接绕过该 Provider
   │  冷却到期 → HALF-OPEN,放行探测请求验证恢复
   v
[第 2 层] 自动重试(对可重试错误:429/5xx/超时)
   v
[第 3 层] 四级回退链(Failover Chain)
   订阅额度 → API Key 计费 → 廉价模型 → 免费提供商

用概率语言描述它的价值:设单个 Provider 的月度可用率为 ppp(含配额耗尽),四级链相互独立时整体可用率为:

P可用=1−∏i=14(1−pi)P_{可用} = 1 - \prod_{i=1}^{4}(1 - p_i)P可用​=1−i=1∏4​(1−pi​)

代入一组现实数字:每级可用率 95%(即每级有 5% 概率掉链子):

P可用=1−0.054=1−6.25×10−6≈99.9994%P_{可用} = 1 - 0.05^4 = 1 - 6.25\times10^{-6} \approx 99.9994\%P可用​=1−0.054=1−6.25×10−6≈99.9994%

单级 95% 的"平庸"组件,串成四级链条后达到六个 9。这就是回退链的全部数学意义:用冗余换可用性,而冗余的成本几乎为零——因为你本来就同时拥有这些订阅和 Key,OmniRoute 只是把它们编了队。(独立性假设在真实世界不完全成立——上游云厂商故障可能同时打掉多家 Provider——所以六九是理论上限,但数量级的改善是真实的。)

免费层目录是回退链的最后一环,也是独立卖点:90+ 家免费提供商、每月约 15.3 亿免费 token 的机器可读目录,每两周重新审计一次可用性。光是这个目录的信息价值就值回票价。

3.4 原理拆解三:12 引擎 Token 压缩流水线(技术含金量最高)

成本公式先立起来。一次 Agent 会话的账单:

Cost=∑t=1N(int⋅Pin+outt⋅Pout)Cost = \sum_{t=1}^{N}\left( in_t \cdot P_{in} + out_t \cdot P_{out} \right)Cost=t=1∑N​(int​⋅Pin​+outt​⋅Pout​)

其中 PinP_{in}Pin​ 是输入 token 单价。Agent 工作负载的残酷之处在于:多轮循环里,历史工具返回结果会被反复塞进上下文——第 ttt 轮的输入包含前 t−1t-1t−1 轮的所有工具输出。这是一个 O(N2)O(N^2)O(N2) 的累积结构,压缩输入的收益是二次的。

OmniRoute 的压缩管道在请求经过网关时逐引擎处理,各有分工:

引擎作用对象压缩原理保护规则
RTK (Rust Token Killer)工具返回结果按 schema 裁剪冗余字段——工具 JSON 里大量字段模型根本不看保留模型引用过的字段
Caveman散文叙述压成"原始人语法":去冠词、压缩从句代码/URL/JSON 结构显式豁免
LLMLingua-2通用文本语义剪枝:去掉对任务无信息量的 token困惑度约束防语义损伤
code/URL/JSON 守卫结构化内容不压缩,仅校验——

官方数据:节省 15–95%,平均约 89%。对 O(N2)O(N^2)O(N2) 的累积结构,这个平均值的量级是可信的——多数 token 本来就是重复携带的历史。

这里有一个必须诚实讨论的问题:压缩会不会伤害模型表现?机制上,LLM 对输入的利用是注意力机制驱动的——被裁掉的如果真是低注意力权重的 token,理论无损;但如果裁掉了关键约束(比如安全指令、代码细节),错误率会上升。OmniRoute 的对策是白名单保护 + 结构豁免(代码、URL、JSON 不动),把风险收敛到"叙述性内容"这个相对安全的区域。我的实践建议:压缩对代码任务开着,对需要严格遵循复杂指令的任务,观察几次再决定。

3.5 源码拆解(简化示意):压缩管线的处理流程

// simplified: compression pipeline in request path
async function compressRequest(req: ChatRequest, cfg: CompressConfig): Promise<ChatRequest> {
  for (const msg of req.messages) {
    if (msg.role !== 'tool') continue;              // 只处理工具结果
    if (isProtected(msg.content)) continue;          // JSON/代码/URL 守卫豁免

    let text = msg.content;
    text = await engines.rtk.filter(text, msg.toolSchema);   // schema 裁剪
    if (text.length > cfg.cavemanThreshold) {
      text = await engines.caveman.compress(text);           // 散文压缩
    }
    if (text.length > cfg.linguaThreshold) {
      text = await engines.lingua2.prune(text);              // 语义剪枝
    }
    msg.content = text;
  }
  return req;
}

三个细节值得注意:只处理 tool 角色消息(用户输入和系统提示永不触碰——安全边界);保护判断先行(结构化内容整体豁免,不做局部压缩——局部压缩 JSON 极易破坏语法);阈值分层(轻量裁剪先行,重型压缩只对超长文本启用——成本与收益的边际平衡)。

3.6 协议层:为什么 MCP/A2A 支持是前瞻性设计

OmniRoute 除 REST API 外原生提供 MCP Server(104 个工具)和 A2A 协议。看清楚趋势就懂了:2026 年 LLM 流量的增量大头正在从"人敲键盘"转向"Agent 自主调用"。Agent 调用有两个特点:频率高(几十次/任务)、对延迟和失败敏感——这恰好是网关层的路由、熔断、压缩最擅长的战场。OmniRoute 把自己定位成"Agent 的基础设施"而不是"人的代理",站位选对了。

3.7 踩坑点

  1. 免费 ≠ 无代价:免费提供商的数据隐私和稳定性没有 SLA。敏感代码请锁定路由到付费信任的 Provider,免费层只做兜底和杂活;
  2. 版本极快(271 releases/5 个月),生产环境锁版本,别追 latest;
  3. 压缩率数字是官方口径,你的实际负载(代码占比高不高)决定真实收益,先用 dashboard 观察;
  4. 本地运行意味着你的机器就是可用性上限——笔记本合盖 = 全团队断供,团队场景放 VPS 并配 scoped remote token。

3.8 效果对比:网关三强

OmniRouteOpenRouterLiteLLM
部署模型本地/自托管托管 SaaS自托管/企业代理
计费完全免费按请求抽成开源 + 企业版
遥测零平台可见自托管可控
免费层目录90+ 家,持续审计有,但需人工筛无内置
Token 压缩12 引擎内置无无
Agent 协议MCP + A2A 原生有限有限
适合个人/小团队快速起步企业合规

个人开发者和小团队,OmniRoute 的成本结构是碾压级的;企业合规选 LiteLLM,懒人选 OpenRouter。


4. hermes-agent —— 自我进化的 Agent,记忆架构才是真主角

仓库: NousResearch/hermes-agent | Star: ~230k | 协议: MIT

Nous Research 出品。它和 OpenClaw 是同一物种(个人 Agent + 消息网关),但进化方向完全不同:OpenClaw 押渠道广度和技能生态,hermes 押记忆与自我改进的纵深。两个项目放在一起看,正好是个人 Agent 的两条技术路线。

4.1 记忆架构:FTS5 而不是向量库,为什么是正确选型

hermes 的跨会话记忆基于 SQLite FTS5 全文检索。看到"没用向量数据库",很多人的第一反应是"技术落后"——恰恰相反,这是教科书级的规模匹配选型。

向量检索解决的问题:语义模糊匹配(“那段讲超时重试的代码"匹配到"timeout retry logic”)。它付出的代价:embedding 模型依赖、索引构建成本、近邻召回的不可解释性(为什么召回这条?没人说得清)。

而个人 Agent 的记忆查询有一个被低估的特性:查询词和记忆内容高度共现——你问"上周那个报错",记忆里就真的有"报错"这个词。这种场景下 BM25 全文检索的召回质量不输向量,且完全可解释、零额外依赖、增量更新免费。

-- FTS5 记忆表(简化示意)
CREATE VIRTUAL TABLE memory_fts USING fts5(
  content, timestamp UNINDEXED,
  tokenize = 'unicode61'
);

-- BM25 排序检索,零 embedding 依赖
SELECT content FROM memory_fts
WHERE memory_fts MATCH '报错 timeout'
ORDER BY bm25(memory_fts) LIMIT 10;

什么时候必须上向量?记忆量超过几十万条、查询常是纯语义转述(问的是"意思相近"而非"词相同")的时候。hermes 的赌注是:个人场景到不了那个量级。我认同。

4.2 自进化技能系统:Agent 给自己写工具

这是 hermes 最激进的部分:Agent 在工作中识别出重复模式后,能自主创建程序化技能并复用。比如它发现自己每周都被要求"总结 Git 提交并生成周报",就会把这个流程固化成一个可调用的技能,下次直接走捷径。

这本质上是**“经验 → 程序"的固化管道**,对应人类学习的"刻意练习 → 肌肉记忆”。技术上分成两步:模式识别(LLM 在对话中判断"这个流程出现频率和结构化程度值得固化")+ 技能合成(生成带权限声明的技能定义,进入与第三方技能相同的审核路径)。

风险与对策必须一起说:自进化系统最大的危险是"进化出危险能力"。hermes 的防线是技能合成产物也要过权限校验,不因为"自己写的"就免检。

4.3 执行安全:Unix socket RPC + 容器隔离

代码执行不裸跑 shell,而是走 Unix socket RPC 到容器内——模型进程和执行环境之间隔了一层系统边界。对比某些"直接 subprocess"的框架,这个细节暴露出 Nous 在安全架构上的认真程度。40+ 内置工具全部声明权限,工具集支持自定义扩展。

4.4 踩坑点

  1. 自进化技能需要定期人工审计——Agent 的"整理能力"不完美,会积累无用甚至互相冲突的技能;
  2. FTS5 记忆检索对中文分词一般(unicode61 tokenizer 对 CJK 不友好),中文重度用户注意检索质量的验证——这是中文用户选型时真实存在的坑;
  3. 300+ 模型、200+ 提供商的支持矩阵虽大,但质量参差,核心工作流建议锁在验证过的模型上。

4.5 适合谁

比 OpenClaw 更"极客"的选择:想研究 Agent 记忆架构的人、想跑长期自主任务的人。它也是研究"Agent 如何从经验中学习"的最佳开源样本。


5. Buzz —— 给每个 Agent 发一本"加密护照"

仓库: block/buzz | Star: 20k+(发布首周暴涨 6223)| 协议: Apache-2.0 | 发布: 2026-07-21

Jack Dorsey 的 Block(原 Square)出品,榜单上最激进的项目。赌注一句话:当人和 Agent 对协作基础设施的地位完全对等时,工作流会长出全新的形态。

5.1 问题定义:为什么 Bot 是"二等公民"是根本缺陷

现平台(Slack/Teams/GitHub)上,Bot 挂在某人账号下,没有独立身份、没有完整权限语义、行为难以审计。后果在 2026 年变得尖锐:Agent 开始执行实质动作(改代码、发消息、触发部署)时,"这个动作是谁授权的?以什么身份做的?"无法回答。问责机制是事后重建的——调查日志、翻 API 调用记录、猜权限来源——这太晚了。

5.2 核心创新:密码学身份链

Buzz 基于 Nostr 协议,给每个参与者——人和 Agent——发放独立的 Schnorr 密钥对(BIP-340,secp256k1 曲线上 32 字节公钥 + 64 字节签名,验签快速且无签名可塑性 malleability 问题)。Agent 额外带一个绑定到人类主人的第二签名,构成完整的责任链:

责任链:人类主钥 ──授权──> Agent 密钥 ──签名──> 每一个动作
                  (第二签名绑定)        (每条消息/评审/触发均可验签)

Nostr 事件的标准结构(每条消息都是一个这样的 JSON):

{
  "id": "事件内容的 SHA-256 哈希",
  "pubkey": "发送者的 32 字节公钥(hex)",
  "created_at": 1789000000,
  "kind": 1,
  "tags": [["e", "被回复事件的id"], ["p", "提及者的公钥"]],
  "content": "事件正文",
  "sig": "对 id 的 Schnorr 签名"
}

这个设计一举解决三件事:

  1. 不可伪造:每个动作都可验签,人类无法冒名 Agent,Agent 无法抵赖;
  2. 事件同构:聊天消息(kind 1)、CI 结果推送、PR 合并事件(NIP-34 格式的 patch/repo 事件)在协议层是同一种对象——于是可以用同一个索引、同一条审计日志统一检索。这就是官方"one event log"的真正含义:不是营销话术,是协议层同构带来的查询能力;
  3. 身份可携带:Agent 的身份、历史、声誉跟着密钥走,不锁平台。你培养的 Agent 可以去任何 Nostr 兼容系统工作。

5.3 架构选型解读

技术栈:核心 crate(buzz-core/buzz-relay/buzz-auth)全 Rust,桌面端 Tauri + React,部署 Docker Compose + Postgres(事件 + 全文索引)+ Redis(pub/sub)+ MinIO(Blossom 媒体协议存文件)。

两个选型值得点评:

  • 单 Relay 即单一可信源:横向扩展靠多 Relay 多社区隔离,不是分布式共识。这是对 Nostr 的务实改造——企业场景要的是数据主权和合规边界,不是无主密码朋克网络。组织自己跑 Relay,数据不出境,这才是打动企业的点;
  • Agent 接入走 ACP(Agent Client Protocol):模型无关、框架无关——goose、Claude Code、Codex 都能接。Buzz 不关心 Agent 的"大脑"是什么,它只做"办公室"。这个边界感是成熟的设计。

5.4 三个典型场景(理解价值的关键)

场景交互本质
凌晨事故溯源问 Agent"我们见过这个报错吗"→ 它拉六个月历史并附签名证据把 RAG 输出钉在对话上下文里,而不是藏在某个向量库里
分支即房间开 feature branch 自动建频道,patch/CI/review 同室"这段代码为什么存在"有了结构化答案,不再靠 git blame 猜
发布自动化Workflow 触发 → Agent 起草 → 人工 👍 → 自动发布人工审批是一个签名事件,合规可查

5.5 冷静看待:四个诚实的坑

  1. v0.4 早期:移动端、跨 Relay 信任网络、审批门控都未完工。不要用于生产合规场景;
  2. Nostr 不是银弹:事件不可删除与 GDPR 删除权天然冲突;Relay 在企业级负载下的延迟、事件过滤表达力未经生产验证。Nostr 能否走出密码朋克社区,Buzz 的成败就是试金石;
  3. "Agent 平权"的赌注本身有风险:当 Agent 能建频道、触发工作流、管理其他 Agent 时,权限粒度必须极细,否则一个配置错误的 Agent 能在 workspace 里造成连锁破坏。在审批门控上线前,这个风险没有工程兜底;
  4. 热度落差:发布初期 Star 仅百余,同期 Block 自家的 goose 已 5 万+。开发者用脚投票需要时间,Buzz 目前是"理念领先于成熟度"的典型。

5.6 为什么它仍然值得上榜

因为**"用密钥对替代权限标志位来定义 Agent 身份"这个设计模式,可以独立于 Buzz 被应用到任何系统**。哪怕 Buzz 本身死了,这个思想也会活在下一代协作工具里。上榜的是思想,不是产品。


6. anthropics/skills —— Agent Skills:2026 年最重要的 200 行规范

仓库: anthropics/skills | Star: ~152k | 协议: Apache-2.0(文档四件套 source-available)

6.1 它是什么:一个"语言层"标准

如果说前面的项目是应用层和设施层,这个仓库是整个 Agent 生态的语言层——技能怎么写、怎么被发现、怎么被加载的规范,托管在 agentskills.io。

规范的全部核心就这么多:

---
name: my-skill-name          # 唯一标识,小写连字符
description: 做什么 + 什么时候用  # ← 整个规范最关键的字段
---

# 指令正文(Agent 激活时加载的完整说明)

两个字段,成就一个生态。为什么这么简单的东西能成为标准?因为标准的生命力从来不在复杂性,而在实现的容易程度。任何人五分钟能写一个技能,任何宿主五分钟能实现加载器——网络效应的马达就转起来了。对比历史上失败的"复杂标准"(懂的都懂),这再次验证了软件工程的朴素定律:简单的标准赢,复杂的标准输。

6.2 机制深拆:渐进式披露(Progressive Disclosure)

Skills 系统最精妙的设计是三级加载:

第 0 级:所有技能的 name + description 常驻系统提示
         (每条几十 token,100 个技能也就几千 token)
              │
              ▼ 请求命中某 description
第 1 级:该技能的 SKILL.md 正文注入上下文(千 token 级)
              │
              ▼ 正文引用了补充材料
第 2 级:技能目录内的参考文档/脚本按需读取(不进上下文,工具读)

这个结构解决了一个根本矛盾:能力越多,静态上下文越爆。100 个技能全量注入会吃掉几十万 token;渐进式披露下,常驻成本只有几 K,其余按需付出。LLM 上下文管理的核心思想就八个字:常驻最小,按需放大。

description 是唯一参与路由决策的字段——技能写得好不好,80% 取决于 description 写得清不清楚。它是给模型看的"路由表条目":既要说清做什么,更要说清什么情况下该用。反面教材是"处理 PDF"(太模糊,模型不知道何时触发);正面示范是"从 PDF 表单中提取字段值,当用户要求填写或读取 PDF 表单时使用"。

6.3 源码层面:文档四件套为什么值得读

skills/pdf、skills/xlsx、skills/docx、skills/pptx 是支撑 Claude 生产级文档能力的真实实现(source-available)。它们展示的是"复杂技能的写法":

  • 指令正文里嵌入了失败恢复逻辑(“如果库不可用,改用方案 B”)——生产技能必须考虑环境差异;
  • 复杂操作拆成脚本(如 xlsx 技能内置公式重算工具),指令 + 可执行代码的混合形态——纯 Markdown 指令的技能上限很低,带脚本的技能才是生产力形态;
  • 明确的禁令清单(“不要用 pandas 读大文件”)——负面约束和正面指令同样重要。

另外两个必看:skill-creator(教 Agent 创建技能的元技能,递归感拉满)和 template/(写自己的技能从这里复制)。

6.4 我的判断:为什么每个开发者都该学这个

**你的领域知识写成技能后,任何 Agent 都能继承。**举例:视频编码调参的踩坑经验、编码器的参数选择逻辑,写成 SKILL.md 之后,任何支持该标准的 Agent 宿主都能在编码任务里自动加载这套经验。这是 2026 年沉淀个人/团队工程经验的最优格式——比内部 wiki 强的地方在于:wiki 是人查的,技能是 Agent 主动加载的;文档躺在库里等人翻,技能在工作现场自动到场。


7. Pi —— 极简主义者的终端编码 Agent

仓库: earendil-works/pi | Star: 61k+ | 协议: MIT | 作者: Mario Zechner(libGDX)+ Armin Ronacher(Flask/Jinja2)

7.1 反潮流的设计哲学

所有框架都在堆功能(“80+ 内置工具!”)的时候,Pi 只保留 4 个核心工具:

read   —— 读文件
write  —— 写文件
edit   —— 编辑文件
bash   —— 执行命令

其他一切——MCP、浏览器、自定义工作流——全部通过 TypeScript 扩展、Skills 或 Pi 包按需加载。

这不是偷懒,是一个有理论依据的赌注:**工具数量是 Agent 可靠性的敌人。**机制上,工具选择本质是 LLM 在每步生成时对工具空间的 softmax 分布——工具越多,分布越分散,选错的概率越高。80 个工具里模型要面对 80 路选择,4 个工具里只有 4 路。实际观察到的规律:工具数超过 20 之后,Agent 的工具误选率开始显著爬升。Pi 的 4 工具设计把选择问题压缩到了几乎不会错的程度——读写编辑执行四个动词,模型闭着眼都不会选错。

7.2 用 Pi 理解 agentic loop 的本质

Pi 的另一个价值是教材属性:整个 Agent 核心一个下午能读完。它的主循环(极简示意):

# simplified: the entire idea of Pi's agent loop
def agent_loop(task: str):
    messages = [system_prompt(tools=4), user(task)]
    while True:
        resp = llm(messages, tools=READ_WRITE_EDIT_BASH)
        if resp.stop_reason == "end_turn":
            return resp.text                     # 任务完成
        for call in resp.tool_calls:             # 否则执行工具
            result = execute(call, sandbox=True)
            messages.append(tool_result(call, result))

去掉所有花哨的抽象后,agentic loop 就是这么一回事:推理 → 行动 → 观察 → 再推理,直到模型自己说"做完了"。所有 Agent 框架——不管营销文案多玄乎——都是这个循环加不同的装饰。读懂 Pi,再看任何框架都是"哦,这里加了个缓存层"“这里把工具执行换成了 RPC”。

7.3 踩坑点

  1. 4 工具哲学意味着开箱即用能力少于重型框架——需要浏览器自动化的要自己装扩展,“少即是多"的前提是你接受"少”;
  2. 没有内置记忆系统,长会话管理靠你自己的约定(比如让 Agent 写笔记文件);
  3. 扩展生态比大厂框架小,冷门需求可能要自己造轮子——但造轮子在 Pi 的架构里非常容易,这算自洽。

7.4 适合谁

喜欢"理解自己用的每一个工具"的老派工程师;想读源码搞懂 Agent 本质的学习者(首选教材);被重型框架的魔法搞烦了的人。


8. n8n —— 工作流自动化的"开源 Zapier",AI 原生化之后值得重看

仓库: n8n-io/n8n | Star: ~187k | 协议: Sustainable Use License(公平代码)

老牌项目为什么 2026 年还上榜?因为它完成了从"自动化工具"到"AI 原生编排平台"的转身,而它占的位置——确定性流程 + AI 节点——恰好是纯 Agent 方案的盲区。

8.1 机制:执行模型与 AI Agent 节点

n8n 的执行模型值得拆一下:工作流是 JSON 定义的有向图,每个节点是独立执行单元。生产部署有 **regular 模式(单进程)和 queue 模式(Redis + 多 worker)**两种——后者把节点执行分发到 worker 池,支撑并发。很多团队在 queue 模式下跑出过企业级吞吐,这是它区别于"玩具自动化工具"的硬实力。

2026 年的关键变化是 AI Agent 节点成为一等公民:

[Webhook 触发] → [AI Agent 节点] → [分支路由] → [人工复核门] → [执行动作]
                     │
                     ├── Chat Model 子节点(接 Ollama/OpenAI/Claude)
                     ├── Tools 子节点(挂任意 n8n 节点当工具!)
                     └── Memory 子节点(会话状态)

最聪明的设计是 Tools 子节点机制:n8n 的 400+ 集成节点可以直接"挂"进 Agent 的工具列表——你的 CRM 节点、数据库节点、邮件节点瞬间变成 Agent 可调用的工具。400 个集成的既有资产直接转化为 Agent 的能力面,这个复用设计让 n8n 的 Agent 能力起点远高于从零开始的框架。

8.2 什么时候用 n8n,什么时候别用

这个判断比"选不选 n8n"重要得多:

场景正确选择原因
工单进来 → LLM 分类 → 路由 → 人工复核n8n流程主干是确定的,AI 只是分类器
每天定时抓数据 → LLM 总结 → 推送n8ncron + 确定性管道,Agent 是节点
开放域研究任务(“调研这个课题”)Agent 框架探索路径不可预知,画布硬拗会疯掉
需要人审门控的自动化n8n门控是内置原语,不是补丁

n8n 的甜区是"AI 嵌在确定性流程里"。反过来,开放域探索式任务别用画布硬拗——那是 Agent 框架的地盘。两个世界不是替代关系,是互补关系。

8.3 踩坑点

  1. 许可证是公平代码不是 OSI 开源——给自家产品集成 n8n 的代码再分发有许可限制,商用集成前读一遍 Sustainable Use License;
  2. 表达式语法({{ $json.x }})有自己的坑,嵌套取值报错信息不友好;
  3. 升级大版本时节点 schema 偶有 breaking change,生产环境先在测试实例验证。

9. Ollama —— 本地 AI 运动的事实标准,正在悄悄升维

仓库: ollama/ollama | Star: ~170k | 协议: MIT

榜单上最没悬念的一位,但 2026 年它的生态位变了,这个变化比项目本身更值得关注。

9.1 它做了什么:把本地推理的门槛打到零

ollama pull qwen3 → ollama run qwen3,一条命令在本地跑开源大模型,自动暴露 OpenAI 兼容 API(http://localhost:11434/v1)。底层是 llama.cpp 的 GGUF 量化生态:

量化等级位宽典型质量损失适用场景
Q8_08 bit几乎无损显存充裕
Q5_K_M5.5 bit极小均衡之选
Q4_K_M4.5 bit轻微主流默认
Q2_K2.5 bit明显极限压缩,慎用

Q4_K_M 之所以成为默认,是显存占用的约 4 倍收益 vs 感知质量轻微损失之间的工程权衡——对 7B 模型,Q4 量化后 4GB 显存可跑,把"本地推理"从高端显卡玩家的玩具变成了集显笔记本的日常。

9.2 2026 年的生态位变化:从工具到"零成本模型后端"

注意这个链条:OpenClaw、hermes 这类本地 Agent 爆发 → 它们需要一个"数据不出机器"的模型后端 → Ollama 的 OpenAI 兼容 API 成为默认答案(OpenClaw 配 Ollama 可做到全链路离线)。

于是 Ollama 完成了升维:它不再只是"跑模型的工具",而是本地 Agent 技术栈的 L0 层。"本地 Agent + 本地模型 = 数据完全不出机器"这条链路,在隐私敏感场景(医疗、法务、企业内网)已经是可交付方案。

9.3 踩坑点

  1. 上下文长度默认值偏小,长文档任务记得改 num_ctx,否则表现为"模型突然失忆"——这是 Ollama 被误解最多的一个坑;
  2. KV cache 占显存随上下文长度线性增长,num_ctx 不是越大越好,显存预算要给 KV cache 留份;
  3. GPU 层数(num_gpu)不完全卸载时性能断崖式下降,混合推理的配置需要实测调优;
  4. 模型质量的下限取决于量化等级——别拿 Q2 的输出评价模型本身的能力。

9.4 效果对比

Ollamallama.cpp 直用vLLM
易用性极高中中
部署形态常驻服务CLI/库高吞吐服务
并发能力中单实例强(PagedAttention)
适合个人/本地 Agent玩客/嵌入式生产 API 服务

个人和本地 Agent 场景,Ollama 的易用性无可替代;真要扛高并发生产流量,看 vLLM。


10. Actual Budget —— 非 AI 阵营的钉子户:把朴素需求做到极致

仓库: actualbudget/actual | Star: 60k+ | 协议: MIT

终于到一个和 LLM 无关的。放最后一个位置不是不重视,是想说:AI 很火,但开源世界的基本盘,是那些"把一个朴素需求做到极致"的项目。

10.1 它是什么

本地优先的开源记账应用:数据存在你自己机器上(一个可审计的 SQLite 文件),可选端到端加密同步。核心方法论是 Envelope Budgeting(信封预算法):月初把钱"装进"各个信封(餐饮、房租、娱乐),花了从对应信封扣。

它的产品哲学在超支处理上体现得最清楚:超支了不是弹个警告完事,而是**逼你做一个显式决策——从哪个信封挪钱过来补?**软件不替你做价值判断,只强迫你面对自己的选择。这是"工具与人性"关系处理的范本。

10.2 工程深拆:CRDT 同步才是硬核部分

Actual 技术上最值得研究的是它的多端同步机制——没有中心数据库,多个设备各自修改本地 SQLite,靠同步服务器(或直连)合并。方案是自研 CRDT:

设备 A:本地 SQLite + mutation log(操作日志)
设备 B:同上
    │                    │
    └────> 同步服务器 <────┘
         (Merkle 树校验 + 消息合并)

每次修改被记录为一条消息(mutation),同步层用 Merkle 树追踪两端的消息历史差异——只交换对方缺失的消息,天然幂等、断点续传。Merkle 树的结构保证:任何一端的完整状态可以由消息日志重放得出,而树根哈希的比对可以 O(1) 判断两端是否一致。这是"本地优先"架构里最难的问题的成熟解法,比"最后写入赢"(LWW)的粗糙方案强一个量级——记账场景绝不容忍并发修改丢失。

另外它的加密设计:端到端加密下服务器只见密文,密钥不出设备。配合"数据就是一个文件"的可审计性,构成了完整的隐私故事。

10.3 踩坑点

  1. 同步服务器(actual-server)需要自己部署或用官方托管——“本地优先"不等于"零部署”,想要多端同步就有这一步;
  2. 移动端体验是 Web 壳,比原生 App 粗糙;
  3. 没有国内银行的流水自动抓取(CSV/OFX 手动导入为主),国内用户要自己写导入脚本——好消息是数据模型开放,脚本不难写。

10.4 为什么它值得进这份榜单

在所有软件都在往"云 + 订阅 + 你的数据不是你的"狂奔的年代,Actual 是一种倔强:**个人财务数据,凭什么在别人服务器上?**60k+ Star 证明这种倔强有市场。它提醒我们:开源的初心从来不只是"免费的 AI",而是"用户对自己的数据拥有完整主权"。


总结:2026 年的三条主线,以及它们把你带向哪里

回看这 10 个项目,三条主旋律清清楚楚:

① Agent 正在"获得身体" —— OpenClaw、hermes、Pi 让 Agent 从聊天框走进文件系统、终端和消息渠道。技术上的标志性突破是执行沙箱与权限模型的成熟(容器隔离、Unix socket RPC、权限校验)——"能聊"到"能干"的跨越已在工程上闭环。

② Agent 正在"获得身份" —— Buzz 的密码学护照、skills 的开放规范、OmniRoute 的统一网关,回答同一个问题:当 Agent 成为同事,它们需要身份、账本和审计。注意这三层(身份/能力/资源)分别被不同项目占位,Agent 的"社会化基础设施"正在像当年 TCP/IP 分层一样生长出来。

③ 本地优先从理想变成交付物 —— OpenClaw 的本地记忆、OmniRoute 的零遥测、Ollama 的本地推理、Actual 的本地数据。当一层又一层的力把能力搬回本地,"你自己的机器"重新成为最值得投资的平台。

选型速查表

你的身份建议起点理由
想要私人 AI 助手OpenClaw(生态)或 hermes-agent(记忆)两条技术路线,看你要广度还是纵深
受够了多模型订阅管理OmniRoute第 3 个,真的实用,先看 token 压缩的账单变化
AI 写代码质量不稳superpowers + anthropics/skills方法论 + 标准的组合拳
想读懂 Agent 本质Pi 源码一个下午,读懂 agentic loop 的一切
团队流程自动化n8nAI 嵌确定性流程的甜区
隐私敏感本地方案Ollama + OpenClaw/hermes全链路数据不出机器
记账Actual Budget数据主权的范本

一个留给读者的思考题

这份榜单里,L1(网关/运行时)和 L2(技能标准)已经开始出现事实标准,但 L3(Agent 间协作协议)还是群雄割据:Buzz 的 Nostr 路线、A2A 的 Google 路线、MCP 的工具路线互相竞争。两三年后回头看,哪条路线会成为 Agent 世界的"HTTP"?评论区聊聊你的判断。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐