我们把 26 个接口自动化场景接进了 Agent,效果真是没想到!!

事情是这样的。

一次看起来不大的互动业务调整,改动可能就那么一点点。

但真正开始测试后,事情会迅速膨胀。

主播、普通用户、新用户,不同角色要测。

普通礼物、盲盒类礼物、抽奖、榜单联动,不同互动类型要测。

再换上不同房间、不同业务场景和特定时间条件,一张回归矩阵很快就铺开了。

按我们对这类已覆盖回归范围的经验估算,完整跑一轮,过去大约需要三天。

把其中的高频操作接入接口自动化后,同类验证可以压缩到半天左右。

这组耗时只对应上面这个多角色、多场景的具体回归范围。省下来的时间,主要来自反复切换角色、寻找脚本、准备环境和拼接参数。

不过,三天变半天,还不是这件事最值得复盘的地方。

真正让我们重新看待这批脚本的,是后来公司开始建设自己的 Agent 平台。

一段脚本能跑,和一段脚本能被团队、甚至被 Agent 稳定调用,原来完全是两回事。

这中间差的东西,比想象中多。

一、脚本能跑,为什么 Agent 还是用不了

这批接口脚本出现得比 Agent 平台更早。

最初写它们,就是为了少做一些重复操作。

脚本写给自己用的时候,真的很容易。

路径我知道,依赖我装过,参数我记得,执行前要准备什么,我也清楚。真报错了,打开源码看两眼,大概就知道卡在哪。

时间久了,同一个送礼动作、查询动作,不同同学可能各自保存了一份实现。每一份都能跑,每一份也都带着作者自己的环境和使用习惯。

这对个人来说没什么问题。

换个人,麻烦就来了。

入口在哪,参数怎么填,缺了什么上下文,失败以后该看哪里,都要重新问一遍。一个同学把单次操作跑快了,其他人还是得重新找脚本、配环境、读代码。

现在再把 Agent 放进来,问题更明显。

人遇到不懂的地方,还能回头问作者。Agent 看见仓库里有一段脚本,并不会自动知道它对应什么业务场景,也不会凭空知道哪些参数能推导、哪些参数必须由使用者确认。

更麻烦的是,接口操作不是聊天。

普通问答理解错了,可以重新解释。接口执行错了,测试环境里可能已经产生业务动作和数据。

所以我们当时要解决的,并不是让 Agent 听懂更多话。

而是让它少猜一点。

最好别猜。

二、我们先做了一件不太像 AI 的事

把范围圈住。

我们把自然语言入口限制在一份有限的场景清单里,不允许系统自行寻找任意脚本。

进入清单的都是日常使用频率较高、输入能够整理成标准参数,并且已经有稳定底层能力承接的场景。

目前一共登记了 26 个,覆盖登录、房间信息查询、互动操作、道具操作和状态查询等测试需要。

每个场景都要先写清一份小型契约。

text 复制代码
场景标识
支持哪些表达
必填参数
可选参数
默认值和可推导参数
对应的底层执行能力
成功与失败怎样返回

只有注册过场景、定义过参数规则、绑定了底层执行能力的请求,才允许继续往下走。

这件事乍一看有点保守。

聊 Agent 时,大家很容易先关注它能理解多少种表达,能不能更自由地完成任务。可一旦落到真实接口执行,自由并不是第一目标。

可确认,才是。

一句自然语言进来后,系统先判断它有没有命中已登记场景,再从表达里抽取参数,把不同说法统一成标准字段。必填项不够,就停下来暴露缺失条件。能够从上下文推导的参数,放到计划阶段补齐。

确认没有缺失和冲突后,才进入执行。

如果场景不支持、参数缺失、自动推导失败,或者底层调用失败,系统会停在对应阶段,返回结构化错误。

不是接住一句话以后一路冲到底。

而是每走一步,都知道自己走到了哪。

三、五个入口,只有一个真的执行

顺着这个思路,我们把调用入口拆成了五个。

命令 用来做什么 是否执行真实操作
scenes 查看当前支持哪些场景
help-scene 查看某个场景需要哪些参数
parse 判断命中了什么场景、提取了哪些参数
plan 补齐可推导参数,并暴露仍然缺失的条件
run 按准备好的场景和参数执行

parse 只管理解,不自动补齐运行时上下文,也不会触发接口。

plan 往前走一步,把能够推导的参数补上,同时把仍然缺失的条件摊开。

只有 run,才会真正调用底层能力。

这五个入口其实很像一次执行前的逐级确认。

第一次使用某个场景,可以先看说明,再看执行计划。场景和参数已经明确时,可以直接运行。中间出了问题,也能判断错误是在场景识别、参数准备,还是已经到了底层执行。

听起来只是多拆了几个命令,对吧。

但对 Agent 来说,这个拆分很关键。

它不用在一句话里同时完成理解、补参数、做决定和执行。能力发现、参数解析、执行规划和真实调用,被拆成了几个边界清楚的动作。

我们已经用秀场送礼、公共房全麦送礼等场景完成了真实调用验证。

一个典型请求,可以直接从业务表达开始。

在测试环境执行一次秀场送礼,发送方使用测试账号 A,接收方使用测试账号 B,发送指定测试礼物。

Agent 先匹配已登记场景,再检查发送方、接收方、礼物和房间等必要信息。能从上下文获得的参数,由计划阶段补齐。条件齐全以后,底层脚本才会被真正调用。

执行完成后,结果会给出命中的场景、关键参数、执行状态和结果摘要。

以前那套找脚本、开代码、翻注释、拼参数的过程,被收进了一条稳定链路里。

把镜头再往后拉一点,整条运行链路其实分成四层。

text 复制代码
自然语言或结构化命令
        ↓
统一入口层
        ↓
场景与解析层
识别场景、提取参数、检查缺失项
        ↓
执行路由层
把场景和参数映射到已有能力
        ↓
底层接口脚本
完成测试环境里的查询或业务操作

自然语言在最上面。

确定性执行在最下面。

中间的场景契约和执行路由,把两边接起来。

Agent 没有变成新的接口执行器。它负责理解请求、选择 Skill 并组织调用,真正完成测试环境操作的,还是我们已经验证过的底层脚本。

自然语言在入口层被逐步收敛,最终由已经验证过的底层脚本完成确定性执行。

到这里,调用链路已经能跑了。

可运行还不够。

接下来还有一个很现实的问题,怎么把它稳定交到别人手里。

四、本机能跑以后,怎么交给别人继续用

做交付方案时,我们面对的约束很具体。

日常开发环境同时有 Windows 和 Linux,Agent 的目标运行环境是 Linux。平台通过 CLI 接入 Skill。我们不想为这项能力再单独部署和维护一个服务,也不希望平台直接接触整个 Python 源码仓库。

还有一个经常被忽略的问题。

本地代码一直在迭代,但别人正在使用的版本,不能跟着开发目录一起变化。

直接上传 Python 源码最省事,可源码、依赖和运行环境会耦在一起,本地迭代和平台使用之间也没有清晰的发布边界。

单独部署服务可以统一调用,却会多出服务部署、运行和维护成本。

二进制加完全外置配置,隔离会更彻底,只是当前阶段还没必要先把这件事做得这么重。

综合这些约束,我们选了 Linux CLI 二进制。

text 复制代码
在 Windows 和 Linux 环境维护 Python 源码
↓
统一 CLI 契约
↓
GitLab Linux Runner 安装依赖并自动测试
↓
PyInstaller 构建 Linux 可执行文件
↓
组装 Skill Bundle
↓
从 CI artifact 下载并上传 Agent 平台

CI 会先检查场景解析、执行路由、调用协议和五个 CLI 入口。测试通过以后,再生成 Linux 运行产物,并按照 Skill 需要的目录和说明文件组装交付包。

源码继续由我们维护,Agent 平台拿到的是经过测试和构建的固定产物。

只有重新构建、生成制品并上传新包,修改后的代码才会进入平台。某个同学本地正在开发的内容,不会直接影响其他人当时使用的版本。

说真的,这一段没有什么炫技的 Agent 玩法。

但它决定了这项能力是一次现场演示,还是别人明天仍然能继续使用的东西。

源码通过 CI 测试和 Linux 构建生成固定交付物,再组装成 Skill Bundle 上传到 Agent 平台。

五、接口调用成功以后,测试还没结束

能力接进 Agent 后,使用者不必再记脚本路径和命令格式,可以直接从业务表达进入已经登记的场景。

门槛确实低了。

责任不能跟着变模糊。

当前这项能力只在测试环境使用。在这个范围里,它向所有成员开放,服务端、前端、客户端和运营同学都已经实际调用过。

执行时,Agent 负责理解请求、选择 Skill 并组织调用。场景与解析层负责限制范围、检查参数和暴露错误。底层脚本完成确定性的测试环境接口操作。

调用完成后,系统会返回结构化的成功或失败结果,业务数据侧也会留下相应记录,方便继续查询和复核。

但接口返回成功,只能说明这次调用完成了。

测试范围怎么选,后置状态怎么查,完整业务结果怎么判断,失败和异常怎么处理,仍然由我们负责。

最终测试结论,不是 Agent 替我们做。

写到这里再回头看,最开始吸引注意力的确实是自然语言。

对着 Agent 说一句话,它就能去执行接口。这个画面足够直观,也足够像 AI。

但这套能力真正能落地,靠的几乎都是那些不太显眼的东西。

场景清单、参数契约、执行边界、五个 CLI 入口、CI 测试、Linux 构建、固定制品、版本隔离,还有人与 Agent 的责任分工。

现在已经验证的部分很明确。

我们登记了 26 个高频场景,还在陆续迭代当中,在 Agent 中完成了多个真实测试场景的调用,也在一个具体的多角色、多场景回归范围内,把过去约三天的执行过程压缩到了半天左右。

说实话,我们还差得远。

目前能力只服务测试环境。完整端到端断言还需要继续补。批量执行、并发和性能测试不属于现阶段已经交付的能力,其他测试类型也还没有覆盖。已有调用结果和业务数据记录可以复核,但独立的 Agent 审计系统尚未建立。

如果你也准备把团队里的内部脚本交给 Agent,可以先检查下面这些问题。

text 复制代码
[ ] 支持范围有没有收敛成明确的场景清单
[ ] 每个场景有没有写清参数和返回方式
[ ] 解析、计划和真实执行有没有分开
[ ] 场景背后是不是经过验证的确定性能力
[ ] 有没有固定的测试、构建和版本交付链路
[ ] 使用环境、执行记录和人工责任有没有说清楚

一个脚本能跑,解决的是一次操作。

一批脚本能被别人理解、调用和稳定交付,才开始成为团队能力。

自然语言只是入口。

契约、工程交付和人的判断,才是这套能力真正站住的地方。

下一篇,我们会继续沿着真实测试流程往下走,拆解测试数据、缓存状态和消息结果怎样协同验证,以及查询、修改和人工确认分别应该放在哪里。

另外,我们还建了一个「技术交流群」,欢迎关注「花椒技术」公众号,回复「AI」进群,和一线技术从业者一起研究 AI 工程化、AI 编程、Agent 落地,也交流代码评审、企业内部 AI 助手等真实实践。

这是个只聊技术和工程落地的交流群(不卖课、不讲空话、不制造焦虑、不拿工具清单冒充实战,只分享真实经验、踩坑过程和技术细节,希望能帮你少走一些弯路)

群里还会同步每日精选的研发向 AI 日报、文章延伸资料,以及正文中没有展开的技术细节。

相关推荐
2601_955759623 小时前
如何借助 Claude Opus 5 自动整理日报、周报和项目进展
ai编程
桦说编程4 小时前
炮轰SDD:Spec驱动开发为何不适合绝大多数项目
llm·ai编程·代码规范
东小西4 小时前
第15篇:《检索效果太烂?我用Query改写和重排序把准确率翻了一倍》
openai·ai编程
旋生万物6 小时前
五条几何公理重构元素周期表:从量子力学到螺旋拓扑的降维(AI 编程时代的微观启示)
重构·ai编程·代码审计·cursor·ai agent·mcp协议·claudecode
我是大卫6 小时前
【图】一图理解LLM、LangChain、RAG、AI Agent、MCP、token、context、prompt、tool概念
langchain·llm·agent
ServBay6 小时前
AI Gateway 与直连 LLM API 的应该怎么选,一篇文章说明白
aigc·ai编程
JavaGuide6 小时前
GitHub 9.8 万 Star!把整个代码仓库变成知识图谱,这个 AI Coding 工具太适合 Claude Code / Codex 了
前端·后端·ai编程
Staticy6 小时前
Claude Code 接国产模型不能识图?一个 MCP 让纯文本模型也能看图
人工智能·ai编程·全栈
东小西7 小时前
第14篇:《公司制度问答机器人上线:老板问"能加薪吗",AI回答"请看第三章第四条"》
openai·ai编程