Beginner
不要建一千个 Agent:Ramp 如何用一个 Agent 搞定金融自动化
不要建一千个 Agent:Ramp 如何用一个 Agent 搞定金融自动化
Ramp 是美国增长最快的企业金融平台之一,估值 320 亿美元,超过 50,000 家客户,年交易处理量超过 1000 亿美元。在 The Pragmatic Summit 上,Ramp 派出了四人阵容分享他们过去一年在 AI 领域的实战经验:工程执行副总裁(EVP)Nik Koblov、应用 AI 总监 Viral Patel、以及两位资深工程师(Staff Engineer)Will Koh 和 Ian Tracey。
他们聊了五件事:为什么从“建一堆 Agent”转向“一个 Agent + 一千种技能”,Policy Agent 从零到上线的全过程,怎么定义“正确”,怎么建内部 AI 基础设施,以及一个让 50% 以上 PR 都由 AI 生成的内部编码 Agent。
要点速览#
- Ramp 去年让各团队自由实验 Agent,结果产生了四种实现方式和五个对话界面,最终认为应该收敛为“一个 Agent + 一千种技能”的架构
- Policy Agent 最大的错误来源不是模型本身,而是给模型的上下文不够。员工职级、收据细节、商户信息这些上下文比换模型更管用
- 用户的审批行为不能作为“正确”的标准,Ramp 建了跨职能团队每周标注数据来定义自己的基准答案(ground truth)
- Ramp 内部编码 Agent“Inspect”当月产出了超过 50% 的合并 PR,使用者包括产品、设计、法务、营销等非工程团队
- AI 时代工程师的价值不在于写代码的速度,而在于判断力:知道该建什么,以及知道 AI 建的东西哪里不对
一杯咖啡背后的 15 分钟#
Nik Koblov 用一个所有人都能理解的场景开场:一笔咖啡消费。
买一杯咖啡,在传统流程里要花大约 15 分钟的行政时间。写备注,按公司的会计科目分类,找收据、附收据,把商户名称规范化到公司的商户库里。这些事情在公司层面不断累积。
Nik Koblov 用“一杯咖啡”解释企业金融里那些最容易被忽视的手工流程成本。

Ramp 做的事情,最简单的理解方式,就是把这 15 分钟压缩到接近零。从刷卡到写备注到分类到收据,全部由 Agent 自动完成。这是 Ramp 大约三年前就开始做的事,最早是用 AI 做单步处理,比如规范化商户名、自动写备注。随着模型能力提升,效果越来越好。
但这只是起点。Ramp 平台上几乎每个角色都在做大量手动工作:AP 专员(应付账款)处理发票,财务团队对账,采购团队比价,数据团队跑报表。Nik 提到一个细节:Ramp 以前有一个 Slack 频道叫 help-data,有人需要数据就在里面发请求,然后有个可怜人去写 SQL 查询。这个频道大约一年半前被 AI 替代了。
从卡费、采购到关账和分析,Ramp 试图把这些分散在各团队里的碎片工作都交给 Agent。

不要建一千个 Agent#
Nik 说,Ramp 在 AI 方面正在经历软件行业最激动人心的范式转变。这个转变要求彻底重新思考,同时也意味着简化技术栈。
他们学到的教训是:
你不需要建一千个 Agent。你应该把框架收敛为一个 Agent 配一千种技能。 (“You don't need to build a thousand agents. Instead you want to drive your framework towards a single agent with a thousand skills.”)
Ramp 给出的架构判断很直接:收敛 Agent,扩张技能。

去年 Ramp 有意让各个团队自由实验。结果他们发现,公司内部出现了大约四种不同的方式来做同一件事,同步 Agent 和后台 Agent 各有好几套实现。同时,对话界面也膨胀到了五个。
现在 Ramp 把所有对话交互收敛到一个叫 Omnihat 的统一界面。Omni 取“无所不在”之意,正在部署到产品的每个界面上。它和传统 UX 配合使用,因为你不总是想跟软件“说话”,有时候表格和按钮就够了。
Nik 展示了一个例子:在 Omnihat 里输入“请帮我入职一位新员工”,Agent 会自动解析员工 ID,通过 HRIS(人力资源信息系统)工具查询组织架构,然后找到一个之前创建的工作流“新员工入职手册”,问你是否要用这个流程来入职。
这背后是 Ramp 自建的一个轻量级 Agent 框架,提供编排能力和工具。工程师可以很快构建新工具。最近有一位产品经理通过凭感觉编程(vibe coding)构建了大约 20 个工具,完全不需要工程师参与。
统一对话入口、轻量框架和工具层,构成了 Ramp 所说的“一个 Agent + 一千种技能”。

对于复杂流程,比如员工入职包含四个步骤(发卡、设置收据要求、在 Slack 上欢迎、两周后跟进),用户可以在 Ramp 上用自然语言描述想要的流程,系统会把它编译成一个可运行的确定性工作流,然后交给 Agent 执行。
费用政策就是“代码”#
Ramp 的 Policy Agent 是他们最受欢迎的 Agent 产品之一。
Viral Patel 接过话题,先展示了一个实际场景:财务团队每天要审核成百上千张收据。他拿出一张收据说,如果让他肉眼判断这笔交易该批准还是拒绝,他大概率会出错。
但 Policy Agent 对这张收据做了推理:识别出有 8 位客人(Viral 说他自己勉强才看清这个数字),确认低于公司内部每人 80 美元的上限,判断这是一次团队欢迎晚餐,建议批准。另一笔 OpenAI 的交易,某位员工在测试 ChatGPT 功能,Policy Agent 判定为合理业务支出,批准。还有一笔 3 美元的面包店消费被拒绝,因为它不属于加班购买,也不是在周末。
这些案例背后的产品理念来自一个机会:一家世界 500 强客户找到 Ramp,拿着一长串规则说:“帮我们按这些审批和拒绝。”
Policy Agent 不只是读规则,它还要和会计、记账等其他 Agent 配合,把决策真正落到系统里。

Ramp 可以继续走老路,把这些规则硬编码为确定性逻辑,一条条加进产品里。但他们选择了另一个方向。Viral 引用了 Andrej Karpathy 的说法:英语是新的编程语言。他们决定把费用政策文档本身变成规则,让 Agent 直接读懂自然语言的政策文档并据此执行。
【注:Andrej Karpathy 是 OpenAI 联合创始人之一、特斯拉前 AI 负责人。“英语是最热门的新编程语言”是他 2023 年发的推文,后来成为 AI 时代的标志性金句。】
【注:Ramp 官方数据显示,截至 2025 年 10 月,Policy Agent 在超过 100 亿美元的支出中做出了 2600 多万次决策,阻止了 51 万笔违规交易,节省了约 2.9 亿美元。】
AI 产品不能一步到位#
Viral 和 Will Koh 都强调了一个核心教训:
AI 产品不能一步到位。你必须从简单的东西开始。 (“AI products cannot be oneshotted. You need to start with something simple.”)
Viral 认为这是一个文化层面的共识:产品经理、设计师、工程师都必须接受第一天不会完美这个前提。
他们一开始也想大干一场,“让我们自动化整个财务审核”。但真正动手时,他们选择了最小的切入点:一杯咖啡的报销。这些单笔小额交易风险低,财务团队不太在意。
Ramp 把第一步压到最小:先解决一类高频、低风险、但很烦的审批场景。

Ramp 先在内部做了大量 dogfooding(自己试用自己的产品),用公司内部的交易数据来训练和测试 Policy Agent。
一个关键发现改变了他们的思路:
Policy Agent 出错的原因,大多不是模型本身,而是我们给 LLM 的上下文不够。 (“A lot of the reason that policy agent would be wrong would be less on the models themselves and more about the context that we were giving to LLMs.”)
他们可以一开始就坐下来想清楚所有需要的上下文,但他们发现最好的方式是从内部实际数据中学习。比如他们发现,员工的职级和头衔对费用审批影响巨大。C 级高管(CEO、CFO 等)可能有更高的消费限额,出差可以坐头等舱。这种信息如果不放进上下文,Agent 就会做出错误判断。
于是他们开始从收据中提取更多信息,从 HRIS 系统中拉入员工资料。每次发现一个新的上下文维度,就加进去,再观察效果。
从简单流水线到 Agent 自主循环#
Will 详细讲述了 Policy Agent 架构的三个演进阶段。
第一阶段很简单:费用进来,检索相关上下文,通过一系列定义清晰的 LLM 调用判断“是否合规”“为什么合规”“怎么向用户展示合规理由”,然后输出结果。
第二阶段开始有了条件分支。他们发现每种费用类型差别很大:差旅、餐饮、娱乐各有不同的判断逻辑。于是加入了费用分类,根据类型做条件化的提示词和上下文检索,同时给 LLM 一些工具,让它能自主决定“我需要查航班信息”或“我需要查这位员工的职级”。
几轮迭代后,到了第三阶段:完全的 Agent 化工作流。Agent 可以读取 Ramp 平台上的所有数据,有一套公司内部共享的工具箱(不只是 Policy Agent 用,所有 Agent 都能用)。它现在不只是读,还能写:写审批决策,写推理过程,直接替用户批准费用。而且它在一个循环中工作,可以多次调用工具、收集信息、做出判断。
这张 slide 几乎就是 Ramp 的方法论:先做简单流水线,再逐步增加条件分支、工具和自主循环。

Will 坦言,这带来了一个经典的权衡:能力上去了,自主性上去了,但可追溯性和可解释性下降了。一个小黑盒变成了大黑盒。你可以看推理 token,但本质上你无法控制它会做什么。
用户不一定对#
既然黑盒在变大,可审计性就变得格外重要。Will 提出一个原则:即使你知道系统内部怎么运作,也要假设你只能看到输入和输出,然后验证输出是否正确。
但这引出了一个更根本的问题:什么是“正确”?
用户其实经常是错的。 (“Turns out the users are actually incorrect. They're wrong.”)
最初他们以为用户的行为就是标准答案:用户批准了,Agent 就应该批准;用户拒绝了,Agent 就应该拒绝。但实际上,很多用户不了解公司的费用政策,有些太信任下属懒得细看,有些是周末审批随手点了通过。财务团队事后会回来说“这笔不应该放行的”。
所以 Ramp 必须建立自己的正确性定义。他们的做法是每周召集跨职能团队进行数据标注会议,包括工程师、PM、设计师等共同参与。
Ramp 把“用户操作”从答案里拿掉,转而用跨职能标注去定义自己的 ground truth。

这带来了两个好处。第一,他们有了一个可以持续测试的基准答案数据集,确定这些标注是对的。第二,所有人对齐了认知。如果 Agent 错了,大家都知道错在哪;如果 Agent 缺少上下文,大家也清楚缺什么。减少了沟通成本,团队能快速聚焦到真正的优先事项上。
用 Claude Code 一把搞定标注工具#
但每周把一群人叫到一起,让他们标注 100 个数据点,成本很高。Will 说大家都有自己的事,有时候根本没做完“作业”就来开会了。
所以他们想让标注过程尽可能简单。先看了第三方工具,发现有的太专用,有的太通用,光是试不同工具就得花好几周。于是他们决定自己建。
用 Claude Code 和 Streamlit,他们基本上一次性搞定了整个标注工具。 最大的好处是维护成本低,风险也低。它在代码库中一个独立的角落,坏了能马上修。部署几乎是秒级的。非工程师也能去改它,直接 vibe code 就行。
Ramp 没有在标注平台上纠结太久,而是用 Claude Code 和 Streamlit 先把能跑的内部工具做出来。

【注:Streamlit 是一个 Python 开源框架,可以快速构建数据应用的 Web 界面。】
Eval 从 5 个样本开始#
有了基准答案数据集,迭代速度大幅提升。发现需要员工职级信息?加进去,跑一遍数据集,看能不能正确捕获新场景。
Will 说,他觉得 eval 的概念现在大家都知道了,但他想强调的是**“早做”**。不要追求完美,不需要一上来就有 1000 个数据点。他们从 5 个开始,确保这 5 个绝对不会出错,然后不断积累。
几个实操要点:确保任何人都能轻松运行 eval 命令,确保结果一目了然(好的、坏的一眼能分清),把它集成到 CI(持续集成)中让每次代码合并都自动跑。
Ramp 的 eval 体系不是“做大再说”,而是先让团队能反复跑、敢切模型、敢持续加上下文。

给 LLM 更多上下文、更多工具,往往会带来意想不到的副作用。上下文腐化(context rot,上下文过多反而导致模型性能下降)、工具说明写得模糊或矛盾,这些问题不跑 eval 根本发现不了。
在线评估(online eval)也有价值。他们有一个“不确定”的决策类型,意味着 Agent 认为信息不足以做出判断。监控这个比率的变化,就是一个简单但有效的系统健康度指标。
另外,有了完善的 eval 体系,切换模型变得有底气。每当新模型发布,跑一遍 eval 就知道该不该切。新模型可能让某些问题变好,但也可能让另一些变差。没有 eval,你根本不敢动。
让用户修改自己的“Claude.md”#
Policy Agent 上线后,Will 分享了一个发现:工程师用 Claude Code 时可以修改 Claude.md 文件来控制 Agent 行为,财务人员其实也有同样的需求,只是他们的“Claude.md”是公司的费用政策文档。
【注:Claude.md 是 Claude Code 的项目配置文件,开发者可以在其中写下项目约定和偏好来引导 AI 的行为。】
如果 Policy Agent 的决策不对,Ramp 的建议是:“去更新你的费用政策文档。”这对财务人员来说一开始有点吓人。费用政策是正式文件,不是随便能改的,改动要走审批流程。
但一旦他们发现修改后能立即看到效果,态度完全反转。这种即时反馈循环让他们兴奋起来。
Ramp 的产品反馈循环很像工程师调 Agent:策略写进文档,修改后立刻看到系统行为变化。

信任的建立是分阶段的。Ramp 先从世界 500 强大客户开始推,因为这些企业费用量最大,审批痛苦最深,能最直观地感受到产品价值。一开始只提供“建议”,不做任何自动操作。
然后客户自己找上来说:“20 美元以下的交易,你们判断基本都对,我不想再看了,让我直接自动批准吧。”
于是 Ramp 给了他们一个**“自主性滑块”**,让客户自己决定自动化到什么程度。信任不是产品经理设计出来的,是用户在使用中自己建立的。
Will 做了一个类比:就像 LLM 能通过测试代码来获得反馈循环并迭代改进一样,用户在产品内也需要同样的反馈循环。给他们修改政策文档、调整 Agent 行为的工具,他们会比你预期的更主动、更投入。
让模型切换只需改一行配置#
Ian Tracey 接手基础设施部分。他说 Ramp 在思考的一个核心问题是:怎么给 Ramp 自身获得杠杆?不只是给客户,也给内部的工程师和跨职能团队。
Ramp 内部 AI 的核心是一个叫 Applied AI Service 的服务。从高层看,它像一个 LLM 代理,类似 LiteLLM 这样的统一接口工具,但有三个重要扩展。
【注:LiteLLM 是一个开源工具,让开发者用统一的 API 调用不同的 LLM 提供商(OpenAI、Anthropic、Google 等)。】
第一,统一的结构化输出和跨模型提供商的一致性 API/SDK。 不同模型提供商的 API 变化很快,Ramp 不想让下游产品团队操心这些。如果你想从 GPT-5.3 切到 Opus,或者试试 Gemini 3 Pro,改一行配置就行,马上就能跑语义相似性测试或者沙箱实验。
Applied AI Service 把模型切换、结构化输出、批处理和成本治理这些底层麻烦事全都收口了。

第二,批处理和工作流。 对于批量文档分析或 eval 这类场景,怎么处理速率限制,选在线还是离线任务,这些都不需要下游团队考虑。
第三,跨团队和跨产品的成本追踪。 这让他们能识别性能和成本的帕累托曲线(找到性能和成本的最佳平衡点):什么模型在什么性价比上是最优的?哪些团队的用法长期来看不可持续?
Ian 提到一个细节:他们内部经常开玩笑说,客户可能用着比他们自己都还没意识到的最新前沿模型。因为当新模型发布时,Ramp 内部只需要一行配置变更就能影响所有下游 SDK。团队不需要学新 SDK,不需要改十几个调用点,改一个地方就能享受最新模型的能力。
在工具层面,Ramp 建了一个内部工具目录。里面有像“获取政策片段”“查 PDM 费率”“查最近交易”这样的工具,由产品团队参与建设,深入理解数据和场景的细微之处。这个目录当前已有数百个工具,预期会增长到数千个。
Ramp 认为 Agent 的上限很大程度取决于工具箱和上下文,而不是单纯取决于换哪个模型。

这个目录的一个巧妙之处在于:它既能在内部仓库中使用,也能在核心产品中使用。如果你有一个“报销 Agent”的新想法,直接从目录里选工具、组装,就能在 vibe coding 环境下快速原型化,不需要从头造轮子。
50% 的 PR 来自 AI#
Ian 接着谈到 Ramp 内部面临的一个和客户类似的问题:工程师的日常工作也高度碎片化。即使你在用 Claude Code 或 Codex,很多工作散落在 Datadog 日志、生产数据库、告警系统、Incident.io、Slack 消息、Notion 文档里,再加上各产品团队独有的知识和流程。
2025 年底,他们决定解决这个问题,建了一个叫 Ramp Inspect 的内部后台编码 Agent。
当月,Ramp Inspect 产出了超过 50% 的合并到生产环境的 PR。 (“Currently this month, Ramp Inspect is responsible for over 50% of PRs that we merge to production.”)
【注:Ramp 在 2026 年 1 月已在 builders.ramp.com 公开了 Inspect 的完整架构蓝图,同时有第三方基于此开发了名为 Open Inspect 的开源实现。此前公开报道的数据是约 30% 的 PR 由 Inspect 生成,本次分享更新为 50%+。】
Ian 展示了一个使用数据看板。工程团队的使用量遥遥领先,但产品、设计、风控、法务、企业财务,甚至营销和客户支持团队也在用。他们做的事包括简单的文案修改、逻辑修复、响应事故或 Bug。
Inspect 不只是“会写代码”,它本质上是一套可并行调度、可接上下文、可在沙箱中运行的后台编码系统。

技术上,每个 Inspect 会话在 Modal 沙箱中启动,速度很快。沙箱包含完整的开发环境,和工程师本地开发一样。它有一系列任务来保持方向,会创建 GitHub 分支,并与所有内部上下文集成:Datadog、只读副本数据库、各种上下文文档。还内嵌了 VS Code 编辑器和远程桌面环境,可以跑 Chrome DevTools,能做全栈开发工作。它能访问 Ramp 的 150,000 多个测试用例,如果 CI 失败,它会自己修补后再通知你 PR 准备好了。
【注:Modal 是一个云端计算平台,让开发者可以按需启动容器化的沙箱环境来运行代码。】
启动方式有三种:看板界面、API、或 Slack 线程。从 Slack 启动时,它会读取完整的 Slack 对话上下文,不需要你重新描述问题。
Ian 特别强调了一个设计选择:
我们把它设计成多人协作优先的。 (“We designed it to be multiplayer first.”)
这意味着当你和设计师或 PM 协作时,他们可以在同一个 Inspect 会话里观察和引导 Agent 的行为。他们能点开链接看到“这里的结果和我预期不一样”,给出反馈。这成为跨职能协作的一个入口,也帮非工程人员提升了 prompt 技能。
用 AI 更快地做错事#
Ian 最后把话题转向了工程文化。他提出了一个思想实验:假设有两种团队。
Team A 关心影响力,能处理模糊问题,理解产品、业务和数据,愿意采纳新工具,能找到创造性方案,痴迷于用户体验。
Team B 争论该用哪个库,出现混乱时加流程,不停抱怨人手不够,在细节上无限纠结而不是关注用户体验(比如“我们该用函数式编程范式吗?”),在理解问题之前就开始建东西(“我们直接 vibe code 这个,兄弟,别担心”),或者执着于主观的代码风格品味。
Ian 引用了一项哈佛研究。这项研究分析了 285,000 家美国公司中 6,200 万工人的数据(2015-2025 年),发现 AI 工具普及后,初级岗位的招聘在六个季度内下降了约 7.7%,而高级岗位基本不受影响。这种下降主要由招聘放缓驱动,而非裁员。
【注:该研究由哈佛大学的 Seyed M. Hosseini 和 Guy Lichtinger 发表,论文题为“Generative AI as Seniority-Biased Technological Change”。】
但 Ian 认为,这项研究被过度简化地解读成了“初级 vs 高级”的年资问题。他觉得真正的分界线不是工作年限,而是 Team A 和 Team B 之间的差距。
编码从来就不是很多工作中最难的部分。资深工程师拿高薪,更多是因为他们的判断力:上下文理解能力、预见风险的能力、过去踩坑积累的“伤疤组织”(scar tissue)。当你让 Opus 4.6 去做一件事,有经验的人能看出来它的方案行不通,或者本身就是个坏主意。
Ian 的核心观点不是“AI 取代谁”,而是高价值工作的门槛正在从写代码速度转向判断力。

用 AI 编码 Agent,你完全可能只是更快地做错事,以及更快地制造更大的烂摊子。 (“You could still build the wrong thing just a lot faster and you can build bigger messes.”)
很多媒体叙事忽略了这一点。他们关注“AI 能写代码了”,但没有看到:搞清楚该建什么、说服持怀疑态度的利益相关者、在信息不完整时做设计决策、在漫长的项目中间地带保持动力,这些能力只会变得更重要。
关于 SaaS 行业和 vibe coding 的讨论也类似。确实,快速搭个原型很容易。但真正穿越从原型到产品市场契合的那段“中间地带”,需要真正优秀的工程师,这一点被讨论得太少了。
软件永远做不完#
Ian 以一个乐观的判断收尾。他承认围绕 AI 有很多悲观叙事,但他认为这是一个令人兴奋的建设时代。
他引用了 Ramp 内部的一句话:“Jobs not finished”(活儿没干完)。软件永远处于“没完成”的状态。当多出来的产能不再被低层级的琐事占据,四件事会发生:公司会追逐之前负担不起的机会,会进入相邻市场为客户拼接更多价值,会重建那些过去成本太高不敢碰的旧系统,会提高“够好”的标准。
Ramp 用这张结尾 slide 把态度说透了:AI 不只是省时间,它还会把“值得去做”的边界往外推。

这不是一个“人人效率翻倍所以裁掉一半人”的故事。一家做金融运营软件的公司去建内部编码 Agent,以前可能觉得疯了,现在完全说得通。
Ramp 的四位工程师在 36 分钟里给出了一个清晰的图景:AI 在企业级金融产品中的落地,不是一个模型能力问题,而是一个上下文工程问题、一个正确性定义问题、一个信任建设问题,以及一个工程文化问题。 模型越来越强,但知道该用模型做什么,以及知道模型做得对不对,才是真正稀缺的能力。
几个值得关注的信号:Ramp Inspect 的 PR 占比从 30% 跃升到 50%+,这个趋势还会继续吗?当越来越多非工程师用编码 Agent 提交代码,质量把控怎么做?当 Policy Agent 越来越自主,“自主性滑块”最终会滑到什么位置?