现在整个AI圈聊Agent,十个人里有九个在聊应用层的新花样,剩下一个在偷偷搭地基。这个地基,就是Agent Infra——AI智能体基础设施。它没有炫酷的Demo,不会被朋友圈转发刷屏,但过去一年里,主要玩家的大额投入几乎都流向了这里。它像一场安静却激烈的卡位战,门槛不高不低,恰好卡在每个工程师只要愿意垫脚就能够到的位置。这篇文章不聊概念,只聊我看到的真实战况,以及个人工程师具体能从哪个缝隙切进去。
1. Agent Infra 不是个伪概念:应用爆发前的底层觉醒
1.1 当Agent开始"跑业务",第一波崩溃发生在基础设施层
很多人对Agent的记忆还停留在"写一首诗""做个表格"的聊天机器人。但真正跑过生产级Agent的人都知道,那个阶段早就翻篇了。现在的Agent被要求去订机票、操作后台、走审批流程,甚至跨系统协同完成一整套业务闭环。
问题恰恰出在这里。当Agent从"回答问题"转向"执行任务",原本被忽略的底层能力开始变成瓶颈。请求进来之后,你要知道该路由给哪个模型;模型返回之后,你要校验格式、提取工具参数;工具开始执行,你要管超时、管重试、管权限;执行过程中产生了中间状态,上下文变长,你要决定哪些要存、哪些要清、哪些要进长期记忆。
这些环节,没有一样是聊天机器人时代需要操心的。可一旦Agent要跑业务,这些就成了每天的日常。前期我试着用传统的消息队列加定时任务硬凑,结果三个业务Agent上线第一周就出了两起事故:一起是上下文超长直接把成本拖爆了预算的一半,另一起是工具调用失败后Agent原地死循环,整整一个上午没有自动退出。
这不是某一个团队的问题,是整个行业共同的痛点。于是,专门承接Agent运行需要的中间件、运行时和开发框架,开始从各大公司的内部工具库里被拆出来商业化。这个概念就是今天说的Agent Infra。
1.2 为什么现有工具链撑不住:三个反共识的差异点
过去传统微服务那套,在Agent场景下出现了明显的错位。不是不努力,是真的撑不住,我总结了三个反共识的差异点。
第一,调用频率和失败率完全不在一个量级。传统API网关面对的是稳定的请求模式,而Agent的每次任务都要反复调用模型,每次模型调用又可能触发多次工具调用,失败率从传统接口的千分之一直接跳到百分之几。有次我的一个Agent跑一次完整业务流程,产生了37次内部调用,其中4次重试,网络抖动导致2次工具超时。传统的网关和重试机制对这种高失败率、高耦合的调用链几乎没有招架之力。
第二,状态不是无状态的,而是需要主动管理的。传统服务设计讲究无状态、水平扩展,但Agent恰恰相反。一个Agent的执行过程是有连续性的:用户意图、工具返回值、中间推理过程,全部需要被追踪。你可以把状态放Redis里,但谁来定义序列化格式?谁来处理并发时的状态冲突?谁来在Agent崩溃后恢复现场?这些都是传统架构没回答的问题。
第三,安全边界从"人"变成了"模型"。传统系统限制权限的操作落在人身上,人会被培训、被管控。但现在模型可以自主决定调用哪个工具、传什么参数,权限校验必须前置到模型每一次工具调用之前。这是一个完全不同的安全模型,在传统体系里找不到直接能用的答案。
2. 巨头卡位背后的真实逻辑:模型层已经卷完,下一处在管道层
2.1 从军备竞赛到基建竞赛:发生了什么转变
前两年大家的注意力全在模型本身,参数规模、训练技巧、算法创新,每一轮发布都会引发一轮转发刷屏。但到了现在这个阶段,模型能力的差距在快速缩小,通用大模型的底座能力已经足够支撑大量上层应用。
这时候,竞争逻辑就变了。好比淘金热,最开始大家比的是谁手里的镐头更锋利,但一旦镐头大家都差不多,真正赚钱的反而是卖铲子、修路、提供住宿的人。巨头们发现,App应用的体验差距,越来越取决于底层管道——模型调度顺不顺、记忆读得快不快、工具生态全不全、Agent跑得稳不稳。谁把这些管道修得又宽又平,谁就能让上层应用跑得比竞争对手快半拍。
于是资本开始从模型层挪向Agent Infra。不管是做模型的大厂,还是做云平台的头部厂商,甚至做办公套件的软件公司,都在悄悄发布自己的Agent开发平台、编排框架和运行时。这些产品不吆喝,但都在抢一个位置:未来所有Agent应用运行时的默认底座。
2.2 巨头拿什么当筹码:五类基础资产的底层占有
巨头进场从来不是靠单一技术,而是靠一套组合资产。我观察下来,他们手里握着五张牌,每一张都对应着Agent Infra的一个关键入口。
模型通道与算力储备。Agent的每一次推理都要消耗算力,谁掌握更低的推理成本和更高吞吐的部署能力,谁就能让基础设施的边际成本变得更低。这是巨头最天然的优势。
系统级集成能力。办公场景、云资源管理、企业通讯录、文档权限体系,这些都是Agent在实际落地时必须要打通的系统。巨头自己的产品矩阵,天然就是Agent的"工具库"。
开发者生态。一个Agent基础设施的成功,最终取决于上面有没有足够多的工具、插件和模板。巨头可以靠流量扶持和补贴快速拉起生态,这是创业公司很难正面硬拼的。
数据飞轮的沉淀。跑在上面的Agent越多,产生的调用数据、评价数据和轨迹数据就越多。这些数据反过来能优化路由策略、评测基准和预置能力,形成别人短时间追不上的护城河。
信任与合规背书。企业级客户最关心的就是数据安全与合规。巨头在这方面的存量积累,让客户更愿意把核心业务流程交给他们的基础设施。
3. 工程师的入场券具体长什么样:三层生态位的机会地图
3.1 第一层:网关层的机会——模型路由与流量治理
很多人一听巨头在做Agent Infra,就觉得个人工程师没机会了。我反倒觉得,恰恰是中间层留出了大量空白。巨头擅长的是底层资源池和顶层平台,但中间那些"脏活累活"——具体场景的适配、特定行业的沉淀、边缘节点的定制——正好是个人工程师的入场位置。
第一层生态位在网关层。模型网关已经不是一个新鲜概念,但它的深度远没被挖完。市面上主流的开源网关解决的是基本的路由和fallback,但到了生产环境,你会发现光是"如何定义不同任务的模型需求"就够喝一壶的。
比如客服Agent和高性能计算Agent,对延迟和质量的敏感度完全不同。客服场景可以接受慢一点,但要求成本低、稳定性高;而分析场景需要调用最强模型,不能随便降级。网关层要做的事情,是把这种业务语义翻译成路由策略,并且根据实时状态动态调整。
这里的机会在于:很多垂直行业——金融、医疗、法律——对模型输出的合规性有额外要求,通用的网关不会专门为它们设计审核链路、脱敏策略和专用路由规则。谁先补齐这些模块,谁就拿到了这些行业的入场券。
3.2 第二层:记忆与状态层的入口——从Redis到记忆即服务
第二层更隐蔽,但也更值钱——记忆层。Agent要连续完成任务,就必须跨会话记住用户的偏好、项目的背景、历史的决策。这件事说简单很简单,说复杂能复杂到你怀疑人生。
记忆要分层次:短期记忆是当前上下文窗口,中期记忆是最近几轮对话的关键摘要,长期记忆则沉淀为用户画像和领域知识。每一层记忆的存储格式、检索策略、淘汰机制都不一样。你不可能把所有东西都塞进一个向量数据库就完事。
同样重要的是记忆序列化问题。不同的记忆类型要如何组织?长期记忆如何分层索引?短期记忆如何压缩?目前业界还没有一个统一的标准答案。而这是所有Agent应用都绕不开的底层问题,谁能在这一层做出足够通用的方案,谁就是下一个刚需工具的作者。
3.3 第三层:工具协议层的红利——标准之外的长尾
第三层在工具协议层。现在各家都在推自己的工具调用标准,但行业远没有收敛。实际落地时,Agent需要对接大量老旧系统:没有开放API的内部平台、只有Excel的报表工具、依赖人手工操作的运维后台。
怎么把这些"非智能"的系统包装成Agent能调用的工具?这中间需要大量的连接器、适配器和协议转换层。每个行业都有自己的一套长尾系统,巨头不会挨个去适配,但这恰恰是大量工程师可以切进去的地方。
我认识一个开发者,只做了一个把企业微信审批流包装成标准工具接口的开源插件,不到半年就在一个垂直行业里获得了不少企业用户。这类需求高度碎片化、高度场景化,平台方很难通吃,但它天然适合个人开发者和小团队去啃。
4. 一份可落地的自建方案:从单体服务到Agent Runtime
4.1 起步架构:一个能跑通的24小时Agent服务
前面聊了那么多趋势和机会,最终还是要落到"我自己能做什么"上。我自己从去年开始搭了一套最小可用的Agent Infra,跑了快一年,稳定性和成本都还在可控范围。下面把方案拆开讲,想自己动手的可以参考。
起步阶段不用一上来就上微服务和K8s,那属于给自己找不痛快。我用一套单体Python服务(FastAPI)承载了全部Agent逻辑,外加一个Redis实例和一个向量数据库,三台低配云服务器就跑通了7x24小时的Agent服务。
核心架构长这样:
# 核心Agent回路(简化版) async def agent_loop(task, memory, tool_registry): max_iterations = 8 for step in range(max_iterations): context = memory.compose_context(task) response = await llm_router.complete(context, route="default") if response.finish_reason == "tool_call": result = await tool_registry.execute(response.tool_calls) memory.append("tool_result", result) continue return response.text raise MaxIterationExceeded()这个骨架里面有三个关键模块:llm_router负责决定请求发给谁,memory负责管理对话状态,tool_registry负责校验和执行工具调用。把这三件事做好,一个Agent基础设施的基本盘就立住了。
4.2 核心模块拆解:会话状态、模型路由、工具执行
先说会话状态模块。我试过直接拿Redis存JSON,但很快发现并发写会把状态搞乱。后来改成事件溯源的方式:所有状态变更以事件的形式追加写入,每次恢复状态时从事件流里重新计算。这样既避免了并发写覆盖,又天然留下了完整的审计日志。
# 状态管理对象 class AgentState: def __init__(self, agent_id): self.agent_id = agent_id self.events = [] self.snapshot = {} def apply_event(self, event): if event.type == "message_added": self.snapshot["messages"] = self.snapshot.get("messages", []) + [event.payload] elif event.type == "tool_result_added": self.snapshot["tool_results"] = ... self.events.append(event) def rebuild(self): self.snapshot = {} for event in self.events: self.apply_event(event)模型路由模块,我最初用的是轮询加失败重试,后来发现太粗糙。不同模型的计费方式不一样:有按token的,有按次数的,还有带折扣额度的。于是我加了一个简单的成本感知策略:优先使用低价模型处理简单任务,只有推理复杂度高时才升级到强模型,升级逻辑基于历史token消耗和超时次数的统计。
工具执行模块是最难啃的。每个工具都有不同的参数格式、认证方式和速率限制,我统一用JSON Schema来描述工具接口,注册时做校验,运行时做参数转换和结果归一化。这样模型侧看到的永远是同一套工具描述,底层执行的差异全被屏蔽掉了。
# 工具注册示例 @tool_registry.register( name="query_inventory", description="查询仓库库存", parameters={ "type": "object", "properties": { "sku": {"type": "string", "description": "商品编码"}, "warehouse": {"type": "string", "enum": ["华东", "华南"], "default": "华东"} }, "required": ["sku"] } ) async def query_inventory(sku: str, warehouse: str = "华东"): # 实际业务逻辑 return {"sku": sku, "warehouse": warehouse, "stock": 100}4.3 部署清单与成本估算
这套东西跑一个个人级别的Agent服务,一个月的基础成本不算高:
| 资源项 | 配置 | 月成本(参考) | 说明 |
|---|---|---|---|
| 应用服务器 | 2核4G | 约100元 | 跑FastAPI和Agent运行时 |
| Redis实例 | 1G内存 | 约50元 | 状态缓存与事件存储 |
| 向量数据库 | 512MB | 约70元 | 长期记忆索引 |
| 对象存储 | 按量计费 | 约30元 | 工具执行日志与快照 |
| 模型调用费用 | 按量计费 | 500-1500元不等 | 取决于业务量 |
模型费用是大头,优化空间也最大。我做了两层裁剪:一是路由层按任务复杂度分档,简单任务一律走轻量模型;二是对话历史定期做摘要压缩,把不重要的冗长上下文替换成一条摘要,token消耗直降了四成。这套方案单月成本能压在两千以内,对于一个完整的Agent基础设施来说,已经相当可控。
提示:这份部署清单适合个人自用和产品验证。如果你要跑对稳定性要求极高的企业级业务,还得在容灾、多活和审计方面投入更多。
5. 真实踩坑记录:Agent跑得起来与跑得稳之间隔了一座山
5.1 卡在循环里的Agent:上下文失控引发的死循环与幂等设计
说出来都是泪。最严重的一次事故,是一个自动审批Agent在凌晨进入了一个"工具调用失败-重试-又失败-再换参数重试"的死循环,直接把一天的模型预算额度烧掉了三成。后来查日志,根因就是上下文里的错误信息不断累积,引导模型反复尝试同一个方向,完全没有跳出来的机制。
修复第一层是在循环上限上做硬控制,max_iterations从默认10改成8,超限就强制终止。但治标不治本,真正有效的是引入"错误轨迹记忆"——当同一个工具连续失败两次时,把失败的参数组合和错误原因单独存起来,在下一轮组装上下文时直接告诉模型"这条路走不通,请换一种方式"。加上这个机制后,无效重试率下降了不少。
幂等设计也是这个场景里吃过大亏才知道的重要事情。工具调用默认不是幂等的——一个"创建订单"的操作如果被Agent重试了三次,就可能产生三笔真实订单。我最后在每个工具注册信息里加了一个idempotent字段,非幂等工具在执行前必须先检查本次操作的唯一标识是否已在Redis里执行过,否则直接拒绝重复执行。
async def safe_execute(tool_name, params, request_id): if not tool_registry.is_idempotent(tool_name): if await redis.exists(f"executed:{request_id}"): return {"error": "duplicate execution prevented"} await redis.set(f"executed:{request_id}", "1", ex=86400) return await tool_registry.execute(tool_name, params)5.2 工具调用权限边界:沙箱设计暴露出的真实安全缺口
Agent的安全问题,比传统API网关要麻烦得多。模型不是一个能被规则完全约束的执行者,你必须假设它会在某些边界情况下做出奇怪的选择。
我遇到过最经典的情况:一个数据分析Agent拿到一个"查看销售报表"的指令后,竟然顺着工具描述里的参数提示,试图去调用一个删除历史数据的接口。模型本身没有恶意,它只是把参数"理解"得过于自由了。从那时起,我给所有敏感工具都加了两道锁:
第一道是参数白名单校验,不满足约束直接拒绝,不让模型自由发挥。第二道是敏感操作人工审批,涉及删除、修改权限、转账这类动作,Agent只能提交申请,真正的执行要等人工确认。这个设计很笨,但安全没有捷径,宁可损失一点Agent的"自主性",也不能让它在生产环境里乱来。
另外,工具执行环境能隔离就隔离。我后来把所有外部工具的执行统一放进一个受控运行环境,网络访问走白名单,读取路径限制在映射目录内,文件系统只读为主。所有执行的输出必须经过脱敏模块过滤,带手机号、身份证号等字段的数据在返回给模型之前就做替换。
5.3 可观测性要重新设计:从链路追踪到行为级指标
传统的可观测性工具,看的是请求量、错误率、延迟这些指标。但Agent应用的观测方式完全不同,你需要关注的是Agent的行为本身是否健康——它在任务上花了几步?有没有走弯路?哪一步消耗的token最多?哪一个工具是效率瓶颈?
我在项目里设计了一套"行为级指标",每个Agent执行完任务后,会生成一份执行摘要:任务类型、路由模型、总步数、工具调用序列、消耗token数、总耗时、有无重试。这些摘要写进专门的日志表,后续可以按任务类型做聚合分析。
看数据的方式也变了。以前看监控大屏上的曲线,现在是直接看每个Agent的"轨迹"——你几乎可以像看回放一样,把一个Agent整个上午的执行过程逐帧回放一遍。哪里开始绕圈子、哪里开始重复尝试、哪里上下文开始爆炸,一目了然。这种观察方式让我在一次故障发生前就提前发现了异常,因为某个Agent的步数分布明显偏离了常规范围。
注意:Agent Infra的监控不是等出了事再看,而是要看趋势、看分布、看异常路径。设计可观测性方案时,多问一句"如果Agent疯了,我能不能在五分钟内发现"。
6. 写在最后的个人建议:别等巨头把所有路都铺好
回顾这一年的实践,最大的体会是:Agent Infra远没到格局已定的阶段。巨头确实在大力布局,但这个领域的技术范式还在快速迭代,很多核心问题——记忆标准、工具协议、评测体系——都还没有行业公认的解。这恰恰是工程师个人切入的时间窗口。
我的建议是从小处着手:
选一个你熟悉的垂直场景,比如跨境电商的评论分析、本地生活商家的自动化对账、律师的合同审查辅助,挖出这个场景里Agent落地时"差点意思"的那个环节——是上下文老是丢?是工具老是调不通?还是模型老是记不住规则?那个让你不舒服的点,就是你基础设施产品的起点。
不必一上来就做一个通用平台,通用平台的窗口已经过去了。做一个场景里最好用的记忆模块,或者一个行业里最顺手的工具连接器,都比做一个"什么都行但什么都不精"的框架靠谱得多。我发现那些真正能用起来的中小型Agent基建产品,几乎都是先从解决一个具体痛点起家的,然后才慢慢往外扩。
这门手艺的复利效应也很明显:你在这个过程里积累的模型路由调优经验、状态管理方案、安全沙箱设计思路,换一个场景依然能复用。一旦Agent真正成为企业运转的标配,这批懂底层基础设施的工程师,就是最稀缺的那批人。
把舞台的背景布景做好,有时候比站在舞台中央更重要。