10 KiB
title, date, category, excerpt
| title | date | category | excerpt |
|---|---|---|---|
| 2026 年构建 AI Agent 最简单的方式 | 2026-07-22 | perspectives | 今天写一个 Agent 只要十几行。成本没有消失,只是换了地方——挪到了它外面那一圈:构建、观测、评估分属两三家厂商的独立产品。本文算一算这笔学习成本,再说说另一条路:把它自动化掉,而不是老老实实付掉。 |
问"构建 AI Agent 最简单的方式是什么",多数答案都在比代码行数。这个比法今天已经没什么意义了:主流工具包写十几行就能跑起一个可用的 Agent。
成本没有消失,只是换了地方。 它挪到了 Agent 外面那一圈:编排层、观测平台、评估体系。每一样都是独立的产品,各有各的概念、各有各的文档,甚至各有各的厂商。写一个 Agent 是一下午的事,把这套栈学明白是一个季度的事。
这篇文章就来算这笔账,再说说怎么把它去掉,而不是老老实实付掉。
一、用 LangChain 做一个 Agent,代价到底是什么
LangChain 是这个领域用得最多的方案,也是多数团队的默认选项,拿它举例最公道。要把一个 Agent 从原型推到能上生产,你得拼出这么一套:
| 层次 | 你要用的东西 | 出品方 | 你必须学会的东西 |
|---|---|---|---|
| 构建 | LangChain | LangChain Inc. | 工具、模型、create_agent |
| 编排 | LangGraph | LangChain Inc. | 节点、边、状态、检查点、interrupt |
| 观测 | LangSmith 或 Langfuse | LangChain Inc. / Langfuse | 接追踪 SDK 加托管平台,或者上 OpenTelemetry 加自建部署 |
| 评估 | LangSmith 评估或 Langfuse 评估 | 同上 | 数据集、评判器、实验配置 |
| 部署 | LangGraph Platform | LangChain Inc. | 又一套部署模型 |
这五样单拿出来都是好东西,问题不在这儿。问题在于它们是五样东西。
最难受的是"观测"这一行。它不是一个步骤,而是一道岔路。LangSmith 是 LangChain 自家的商业平台,原生集成,接入最省事,代价是你从此绑在一个托管 SaaS 上。Langfuse 是开源的那条路:除企业版目录外采用 MIT 协议,不绑定框架,可以用 Docker 或 Kubernetes 自建,团队已在 2026 年 1 月加入 ClickHouse。它确实做得很好,但它同时也意味着多一家厂商、多一套数据模型,以及一个从此要你自己运维的服务。
于是,在这个 Agent 于生产环境里做成第一件有用的事之前,团队里已经有人学完了两个库、接好了追踪 SDK、订阅或自建了一个观测平台,还手工攒出了一套评估数据集。等到 Agent 表现不好,还是这个人去读 trace、改提示词。因为这套栈里没有任何一环会替你做这件事。
这才是"2026 年构建 Agent 有多难"的真实答案。不是那十几行,是那一个季度。
二、2026 年 7 月的战场实况
五个覆盖设计空间的代表。数据均于 2026-07-22 核对。
| 工具 | 协议 | ★ | 最少代码 | UI / CLI / 服务 | 观测 | 评估 |
|---|---|---|---|---|---|---|
| LangChain + LangGraph | MIT | 142k / 38k | 约 15 行 | — / — / Platform | LangSmith 或 Langfuse | LangSmith 或 Langfuse |
| CrewAI | MIT | 56k | 5 个文件约 55 行 | — / 脚手架 / — | verbose 日志 |
— |
| OpenAI Agents SDK | MIT | 28k | 约 27 行 | — / — / — | 官方 Dashboard | — |
| Google ADK | Apache-2.0 | 21k | 约 8 行 | adk web / adk run / adk api_server |
— | 内置,且做得很深 |
| Dify | 修改版 Apache-2.0 | 150k | 0 | 有 / 有 / REST | — | — |
| PenguinHarness | Apache-2.0 | — | 0 | 有 / 有 / 有 | 内置(Trace) | 内置 |
代码行数取自各项目官方 quickstart,彼此并不完全可比。空白格的意思是我们查到的资料里没有写,不是"做不到"。
关于协议还得补一句,因为"开源"这个词在这个市场里被用得太宽。Dify 用的是修改版 Apache 2.0,禁止多租户 SaaS 转售,也禁止把前端的品牌标识去掉;n8n 是这个领域星标最高的项目,197k,但它用的是 Sustainable Use License,根本算不上开源。PenguinHarness 是标准 Apache-2.0。
三、这个领域自己已经承认:薄的那一方赢了
今天反对重型 Agent 框架最有力的说法,恰恰来自厂商自己。
Anthropic 的工程指南至今仍是他们的权威参考,其中写道:最成功的落地案例都没有用复杂框架或专用库,而是用简单、可组合的模式搭起来的;这类框架往往多加一层抽象,把底层的提示词和响应挡在后面,反而更难调试。
微软自家 Agent Framework 文档的开篇,摆着一句多数厂商不会印出来的话:一个函数能搞定的事,就写函数,别上 AI Agent。
而 AutoGen,多智能体框架里星标依然最高的那个(60k),现在 README 第一段就写着:本项目已进入维护模式,不再接受新特性或增强,后续由社区管理。
LangChain 自己也把遗留的 chain、retriever 和 hub 模块挪进了独立的 langchain-classic 包,好让核心"精简、专注"。与此同时,"harness"成了行业通用词:两个月左右的时间里,AWS 把 Agent 仓库改名叫 harness-sdk,微软在 Agent Framework 里加了一层 Harness,Anthropic 发了一篇《A harness for every task》。
这个品类没有死,它只是承认了一件事:真正有价值的从来不是那些抽象。而这也让第一节那笔拼装成本更难自圆其说。
四、PenguinHarness:装一次,然后不用再学
我们的答案不是"做一个更薄的框架",而是把拼装这一步取消掉,再把调优那个循环也自动化掉。
4.1 那几层,本来就该是同一个产品
装一次,第一张表里的五行就都有了,而且共用同一份数据目录、同一套消息协议:
curl -fsSL https://penguin.ooo/install.sh | sh
penguin web # http://127.0.0.1:7364 — 首次登录:admin,初始密码见首次启动输出
多会话对话、Agent 与技能管理、模型配置、用量与成本统计、Trace 可观测、评测中心,开箱即有,彼此已经打通,不用订阅什么,也不用另外自建什么。每个请求、每次工具调用、每个审批决策都已经记下来了,会话可以从 Trace 完整恢复。这里没有追踪 SDK 要接,因为根本不存在需要跨越的接缝。
4.2 是零行,不是"更少的行"
penguin run -m "分析 data.csv 并总结季度销售情况"
不用建工程,不用写 import,也没有框架要学。同一套引擎还驱动着 REPL(penguin chat)、无头服务(penguin server)和 Web App。
4.3 让 Agent 来写你的 Agent
你把想要的东西描述出来,剩下的交给一个 Agent:它来写目标 Agent 的 AGENTS.md,装好需要的技能,最后把一个能跑的成品交给你。我们用一句话生成过一个完整的 RAG 应用——文档摄取、检索、带出处的引用、Web 界面一应俱全,在 DeepSeek V4 Pro 上的 token 成本是 $0.02。可运行示例是一个 82 行的脚本:从一句自然语言需求造出新 Agent,然后跑起来验证它。
这件事能成立,靠的是一条设计原则:Agent 是可编辑的数据,不是硬编码的常量。提示词、技能、配置,全都是磁盘上的普通文件。
4.4 连调优的循环也自动化了
这一节正面回应第一节结尾那个问题。内置的基准设计、评测与优化技能,让 Agent 自己给输出打分、找出失分在哪,然后发布第 N+1 版。每一轮开始前留快照,每个请求都能在 Trace 视图里回放。
在别的技术栈上,那个优化器就是你本人:你读 trace,你改提示词,你重跑评估。在这里,这个循环归 Agent 管,你不必再把自己练成这方面的老手。
4.5 管控并没有因此消失
每次工具调用恰好触发一次审批决策,四种模式可选:全部允许、全部拒绝、只读放行、每次询问,每个决策都写进 Trace 留档。整套东西完全本地运行,单核 CPU 也带得动;通过任意 OpenAI 协议端点接得上 1000+ 模型。
五、什么时候不该用 PenguinHarness
一份每一行都自己赢的对比是广告,不是分析。有两种情况,你该选别的:
- 团队写 Python。 我们的 SDK 是 TypeScript。CLI 和服务端与语言无关,但如果你的团队习惯在 Python 里继承、扩展这些类,上表里的多数选项都会更顺手。
- 深度绑定某一家云。 已经全面押注 Azure 的话,Microsoft Agent Framework 阻力最小;如果是 Vertex,那就是 ADK。
六、小结
难的早就不是构建 Agent 本身,而是把它周围那套栈拼起来、学明白。 在最流行的那个选项上,这意味着两个库、一个自家或第三方的观测平台、一套评估体系,外加一个人肉充当的优化循环。
PenguinHarness 把这些收进一次安装,然后把优化循环交给 Agent 自己。
我们做的不是最小的框架。是没有框架,有一个替你写 Agent 的 Agent,以及一份不再需要你去学的清单。
参考来源(数据均于 2026-07-22 核对):LangChain v1 发布说明 · Langfuse · AutoGen README · Microsoft Agent Framework · Google ADK · CrewAI · OpenAI Agents SDK · Dify LICENSE · n8n LICENSE · Anthropic, Building Effective AI Agents