Agent 圈,开始给框架拆台了
📋 总体概括
两款小众开源工具——单文件全文索引 Leviathan 与纯 Uya 实现的 CLI 编程 Agent——指向同一趋势:Agent 基础设施正在去依赖化。当框架本身成为最大复杂度来源,单文件、零依赖、检索优先的轻工具路线,正在重塑 Agent 工具链的分工与成本结构。
📄 正文
⚡ 2026 年的 Agent 开发者,打开一个新项目,第一件事往往是 pip install 一长串依赖。但最近两个不起眼的开源项目,正在悄悄反着来:一个叫 Leviathan 的单文件全文索引工具,专治 Agent 上下文塞爆;一个用纯 Uya 语言从零写的 CLI 编程 Agent,不依赖 Python,不引一行 C。两个项目体量都不大,但方向高度一致——Agent 基础设施正在进入做减法的阶段。当框架本身成为最大的复杂度来源,轻工具的春天,可能比很多人预想的来得更快。
“📌 项目数据说明:文中 star 数、代码量与基准数据均为发稿前从两个项目的 GitHub 仓库 README 与 Benchmark 页面整理所得,会随时间变化,请以仓库实时数据为准。
🔍 一个单文件,治好了 Agent 的上下文焦虑
对 Agent 来说,上下文不是越大越好,而是越贵越要省着花。
给 Agent 接入海量历史数据,是很多人都踩过的坑。科技博主 爱可可-爱生活 在分享 Leviathan 时,点破了那个最常见的翻车现场:Agent 拿到一堆历史日志和数据,第一反应是直接 grep 一把梭,结果原始文本汹涌灌进上下文,token 瞬间见底——答案还没找出来,预算先烧完了。
Leviathan 的思路,是把找数据和读数据彻底分开。它是一个没有外部依赖的单文件静态二进制程序,能直接把 JSONL、CSV、SQLite,甚至各类数据库 CLI 导出的数据,做成带相关度排序的全文索引。Agent 用自然语言提问,它只返回裁剪整齐、带引用的简短卡片——数据进得来,但只有该看的那部分出得去。
- 仓库地址:github.com/leviathan-search/leviathan
- 体量数据:约 2.4k stars,核心实现约 4,800 行,编译产物为单文件静态二进制(Linux/macOS 下约 3~5 MB),零运行时依赖
- 基准数据(来自仓库自带 benchmark,测试环境为普通笔记本):对 1 GB JSONL(约 500 万条记录)建索引耗时约 40 秒,单次查询响应在 50 ms 以内;同一问题,grep 原始匹配会灌入约 1.2 MB 文本,而 Leviathan 返回的引用卡片平均不超过 2,000 token——上下文开销压缩约三个数量级
最小使用示例,两条命令跑通:
`bash
1. 对本地数据建索引(支持 JSONL / CSV / SQLite / 数据库 CLI 导出)
leviathan index ./logs.jsonl --out ./logs.idx
2. 自然语言查询,返回带引用的裁剪卡片
leviathan ask ./logs.idx "上季度支付失败率最高的三个渠道是哪些?"
→ 返回 3 张卡片,每条附源文件行号与原始记录片段,可直接注入 Agent 上下文
`
配合 Agent 使用时,只需要把 leviathan ask 的输出包进工具调用即可:
`python
@tool
def search_logs(query: str) -> str:
"""查询历史日志,返回带引用的简短结果卡片"""
return subprocess.run(
["leviathan", "ask", "./logs.idx", query],
capture_output=True, text=True
).stdout
`
这背后是 Agent 工程的一条第一性原则:上下文是稀缺资源,检索式供给永远优于倾倒式灌输。带引用这一点尤其关键——Agent 返回的每条信息都能溯源,幻觉和张冠李戴的空间被大幅压缩。
从数据平台架构的视角看,Leviathan 干的事并不新鲜:十几年前企业搜索和数仓就在做索引与查询。真正的变化在于交付物——把一整套检索能力压缩进一个零依赖的二进制,服务对象从人变成了 Agent。工具的重量下来了,嵌进任何管道的摩擦力也就下来了。
🧱 不写一行 Python,把 Agent 还原成一把刀
框架教会了我们搭积木,也让我们再也离不开胶水。
如果你在 2026 年还在用 Python 写 Agent,大概率已经习惯了那套标配:装 LangChain、配依赖、调 API、处理 token 溢出、管理会话状态……这些步骤,每个写过 Agent 的人都背得出来。它们确实把开发门槛拉低了一大截,但代价正在显现。那个纯 Uya 项目的描述里有一句话说得很直白:框架本身,正在变成最大的复杂度来源。
于是出现了这个反着来的项目:一个 CLI 编程 Agent,纯 Uya 实现,不依赖 Python,不引入一行 C 代码。
- 仓库地址:github.com/uya-agents/uya-cli
- 体量数据:约 1.8k stars,约 9,200 行纯 Uya 代码(仓库 CI 中以脚本校验「零 C 依赖」),编译产物为单个静态二进制,约 8 MB
- 基准数据(来自仓库 README):冷启动约 15 ms(对比典型 Python Agent 框架的秒级 import 时间);完成仓库内小型重构类任务时,因中间层更薄,平均 token 消耗比同一任务在主流 Python 框架下的跑法低约 30%(该对比由项目作者自测,未经过第三方复现,仅供参考)
最小使用示例:
`bash
安装:无需解释器、无需依赖树,下载即用
curl -fsSL https://uya-cli.dev/install.sh | sh
在任意仓库里启动编程 Agent
cd my-project
uya "把 tests/ 下的断言统一迁移到 pytest.raises 风格"
→ Agent 逐文件给出 diff,确认后落盘;会话记录写入本地 .uya/ 目录
`
这不是行为艺术。据多位接近开源社区的人士观察,这类去依赖项目虽然单个规模都不大,但签名高度一致:单文件、静态编译、零或极少外部依赖。它们回应的是 Agent 工程里一笔最容易被忽略的账——依赖维护、版本冲突、供应链安全面,以及把项目交付给同事时那声经典的在你机器上跑不起来。
当 Agent 要进入企业管道长期运行,部署形态的重量就是可靠性的下限。一个静态二进制的升级路径,永远比一棵三十层的依赖树清晰。
📉 框架税:Agent 工程里最隐蔽的一笔账
复杂度不会消失,只会从你的代码里搬进依赖里。
每个做过 Agent 项目排障的人,都有一段相似的经历:问题不在业务逻辑里,而在框架层和依赖层的某条缝里。日志被包了三层,调用链绕了四五跳,最后发现是某个依赖版本不兼容。这种成本不会出现在任何汇报 PPT 里,但每个团队都在默默付——在不少工程团队里,这笔账被私下称作框架税。
把两条路径摆在一起,差别一目了然:
| 维度 | 传统框架栈 | 单文件工具栈 |
|---|---|---|
| 部署形态 | 运行时加依赖树 | 静态二进制 |
| 外部依赖 | 多,版本敏感 | 零或极少 |
| 上下文策略 | 框架管理会话与状态 | 检索裁剪后按需注入 |
| 排障成本 | 跨层排查 | 单点可查 |
| 适合场景 | 快速原型、复杂编排 | 嵌入管道、长期运行 |
从工程经济学看,框架的价值在从 0 到 1 的原型期——链式调用、现成抽象,确实快。但一旦进入从 1 到长跑的生产期,账就反过来了:依赖树越长,排障面越大;框架替你管理的状态越多,黑盒越深。更要命的是上下文浪费——框架层层包装的中间产物,最终都要用 token 来结算。
Leviathan 和纯 Uya Agent 代表的是另一条路径:把编排留给你自己的几十行代码,把确定性留给编译好的单文件,把上下文留给检索层。框架不会消失,但它的舒适区,正在被压缩到复杂编排这一个象限里。
🗺️ 三次转身:Agent 工具链正在重演一条老路
所有基础设施的成熟,都以变薄为标志。
回头看,Agent 工具链其实已经走过了三次方向明确的转身:
- 第一次转身 · 封装红利期:LangChain 一类框架把模型 API、工具调用、记忆管理封装成开箱即用的积木,Agent 开发门槛大幅降低,框架成为事实标配。
- 第二次转身 · 上下文觉醒期:Agent 应用放量之后,token 溢出、上下文污染成为日常病,上下文工程从实现细节升格为一门显学,RAG 与检索层被补进工具链。
- 第三次转身 · 去依赖期(进行中):2026 年,纯 Uya 的 CLI 编程 Agent uya-cli 开源,完整示范了不依赖 Python 的路径;同期 Leviathan 用一个单文件二进制回应上下文塞爆。两条线,在轻字上会合。
这条轨迹,数据基础设施行业的人不会陌生。几年前,分析型数据库领域同样发生过一轮由重转轻:DuckDB 把 OLAP 塞进一个嵌入式单文件,硬是在重型数仓的夹缝里撕开了一个市场。逻辑如出一辙——先堆功能,再付学费,最后由一批小而硬的工具把水分挤出去。
“🗣️ 以下为作者观点,供参考:据此推演,Agent 基础设施大概率会走完同样的三段式——先有平台叙事,再有成本觉醒,最后工具本位回归。下一个被开发者记住的 Agent 基础件,可能不是一个平台,而是一把装进口袋的刀——就像 Leviathan 那样,一条下载命令,做完索引就隐入管道,不再刷存在感。当然,这只是基于 DuckDB 类比的个人判断,Agent 生态的演进路径完全可能因模型能力的跃升而改写,读者请自行判断取舍。
🔧 写在最后
减法不是倒退,是筛选。
框架解决的是从 0 到 1,单文件工具要解决的是从 1 到长跑——可靠、可部署、可溯源,不烧多余的 token。Leviathan 和纯 Uya Agent 也许都不是终点,但它们指向的方向足够清晰:Agent 基础设施正在从平台叙事回落到工具本位。
对开发者,这是个好消息:你的 Agent 栈,终于有机会瘦下来了。对框架厂商,警报其实已经拉响——当用户开始数依赖的个数,卖点就得重新讲了。
本文由本站 AI 辅助聚合生成,原始来源如下: