后框架时代:用 API 客户端和 While 循环构建智能体
当今生产环境中最有效的 AI 智能体看起来与框架演示完全不同。它们不是拥有十七种节点类型的有向无环图,也不是通过消息总线协调的多智能体集群。它们是一个提示词、一个工具列表和一个 while 循环——它们比框架重型的对手交付更快、故障更少、维护成本更低。
这不是为了标新立异。这是一个又一个团队在花费数周时间进行框架迁移、抽象调试和 DSL 考古之后得出的结论。这种模式如此一致,值得给它一个名字:后框架时代。
框架陷阱
每个智能体框架都讲述同样的故事:"你可以自己写,但何必呢?"这个推销很有说服力。框架处理工具解析、重试逻辑、状态管理和提供商抽象。它们承诺你可以在不触及核心逻辑的情况下切换模型、添加记忆并扩展到多智能体系统。
现实却不同。当你需要稍微偏离框架的愉快路径时——自定义重试策略、非标准的工具响应 格式、特定提供商的参数——你会发现自己在五层抽象中摸索,只为更改一个细节。Hacker News 上有一位开发者完美地捕捉到了这一点:他们用 80 行 Python 代码替换了整个 LangChain 流水线,并在此过程中获得了可调试性、可监控性和控制力。
这不是 LangChain 特有的问题,而是结构性的。智能体框架出现在 LLM 能力较弱、需要更多脚手架的时期——显式的思维链提示、手动输出解析、JSON 模式强制执行。具有原生工具调用、扩展上下文窗口和改进指令遵循能力的现代模型已经使许多这些抽象变得不必要。2023 年必不可少的脚手架在 2026 年已成为累赘。
最小智能体架构
将智能体剥离到其基本组件,你会得到三样东西:
- 系统提示词,定义目标、约束和行为
- 一组工具,模型可以调用它们与外部系统交互
- 一个循环,向模型发送消息,执行工具调用,将结果反馈回去,并重复直到模型发出完成信号
这就是整个架构。在 Python 中,大致是这样的:实例化一个 API 客户端,设置一个带有系统消息的对话,然后进入一个 while 循环。每次迭代将对话发送给模型,检查响应是否包含工具调用,执行它们,追加结果,然后继续。当模型用文本而不是工具调用来响应时,你就完成了。
这种模式处理了令人惊讶的大量生产用例:查询订单状态和处理退款的客户支持机器人、读取差异并发表评论的代码审查智能体、查询指标并触发警报的数据流水线监控器。这些不是玩具示例。它们是在先尝试了框架然后切换回简单循环的公司中运行在生产环境的智能体。
框架真正解决什么(以及何时需要它们)
承认简单性的力量并不意味着框架毫无价值。它们解决真实的问题——但只有三个问题真正值得付出抽象税:
跨会话的持久状态。 如果你的智能体需要在几天后恢复对话并保持完整上下文,你需要持久状态管理。将对话历史序列化到数据库很简单,但检查点中间执行状态(调用了哪些工具、完成了哪些子任务、智能体计划下一步做什么)确实很难。LangGraph 的状态图模型很好地解决了这个问题。
人机协作工作流。 当智能体在执行高风险操作之前需要人工批准时——转账、删除数据、发送外部通信——你需要中断点、审批队列和超时处理。这是工作流编排,像 Temporal 甚至 LangGraph 这样的框架比手写解决方案处理得更好。
多智能体协调。 当多个专业化智能体需要相互发现、协商任务所有权、共享中间结果并处理部分故障时,你正在构建一个分布式系统。消息传递、状态检查点、交接协议和故障恢复是真正的工程挑战,受益于共享基础设施。
对于其他一切——大约覆盖 80% 的生产智能体部署——while 循环胜出。大多数智能体不需要持久的多会话状态。大多数不需要人工审批门。大多数是具有明确任务和固定工具集的单一智能体。给这些智能体添加框架就像用 Kubernetes 来运行一个 cron 任务。
抽象税
你和 LLM API 之间的每一层抽象都会在项目的生命周期中产生累积成本:
调试不透明性。 当你的智能体产生错误输出时,你需要了解发生了什么。通过直接 API 调用,你可以记录发送和接收的确切消息,检查工具调用参数,并用 curl 命令重现问题。通过框架,你需要在链执行器、回调处理器和状态转换器中追踪,以重建模型实际看到的内容。
升级脆弱性。 框架发布破坏性更改是因为底层模型在变化。当提供商添加新参数、更改工具调用格式或弃用端点时,框架必须适应——而你的代码必须适应框架的适应。通过直接 API 调用,你阅读变更日志并更新一行代码。
认知开销。 每个框架都引入自己的词汇:链、可运行项、图、节点、边、智能体、团队、流。新团队成员必须先学习框架才能理解智能体。while 循环模式是自文档化的。初级工程师可以在几分钟内阅读并理解正在发生什么。
性能拖累。 框架通过序列化、反序列化、中间件执行和回调调用增加延迟。对于单个工具调用,这可以忽略不计。对于在循环中进行 20 次工具调用的智能体,开销会累积——在延迟和令牌成本方面都是如此,当框架注入自己的系统提示或格式时。
