TRAE Agent 模式实战:让它帮我写 WMS 的 RAG 工具路由,它连防御都替我写了

TRAE Agent 模式实战:让它帮我写 WMS 的 RAG 工具路由,它连防御都替我写了

参赛赛道:全链路开发实战(用 TRAE 完成真实项目模块) 本文是真实开发过程记录:用全新 TRAE 的 Agent 模式,为一个正在上线的仓库管理系统(WMS)智能助手编写 RAG 工具路由模块。所有代码、运行结果、修复过程均为实际发生。

一、背景:一个真实的 deadline

11 月 7 日,我负责的 WMS 智能助手要上线。这个助手的核心能力之一,是让新员工用自然语言查库存、查操作手册。

在这个项目里我已经手写了 10 天代码:流式输出、Function Calling、上下文管理、异常重试、Embedding、父子块检索、RAG 防幻觉。正好赶上 TRAE 双端融合升级(Agent + IDE 双模式),我决定把第 11 天的模块------RAG 注册为工具,让模型自主路由------交给 TRAE 的 Agent 模式来完成,顺便看看 AI 编程工具在"真实项目代码"上的成色。

任务定义很明确,在 day-10.py(已跑通的 RAG 问答脚本)基础上:

  1. 注册两个工具:query_stock(查库存)、search_manual(查手册,复用 Day 10 的父子块检索)
  2. 主循环改成"双跳":第一跳带 tools 让模型决定调不调工具,执行工具后回填,第二跳基于工具结果生成回答
  3. 铁律:assistant(tool_calls) 与 tool 消息必须严格成对,拆散 = API 400

二、一段话任务书,一次生成

我没有拆步骤,直接把需求整段丢给 Agent 模式,还特意加了一句挑衅的上下文:"assistant(tool_calls) 和 tool 消息必须成对出现"------想看看它是不是真懂这句话的分量。

结果它一次生成了完整的 day-11.py,约 200 行。我逐行核对后的感受是:它不是在写代码,是在还代码债------把我过去 10 天手写时踩过的坑,全部提前防御掉了。

几个让我意外的地方:

1. 协议铁律不是嘴上说说。 它没有直接把 API 返回的 message 塞回 messages 列表,而是手工重构了 tool_calls 数组再入栈,注释写着"作为后续 tool 消息的配对锚点"。每个 tool_call_id 有且只有一条 tool 消息回应------这是我手写时用一次 400 报错换来的教训。

2. 工具执行包了三层防御。 JSON 参数解析失败 → 兜底空参数;函数不存在 → 返回 unknown tool;函数抛异常 → 捕获后把错误信息作为工具结果回填给模型。最后这条是我 W1 的核心定律:"工具报错也要回填,静默吞错等于逼模型幻觉"------它默认就这么写了。

3. 第二跳主动禁用了 tools。 双跳结构的第二跳如果还带着工具清单,模型可能二连调用。它生成时直接 tools=None------这个细节我自己手写时都漏过。

三、跑起来了,但栽在一个我没防住的地方

四个验收题,前三题全对:

  • "矿泉水在WH001还剩多少?" → 正确路由 query_stock,返回 1200
  • "收到货破损了怎么办" → 正确路由 search_manual,命中《收货入库流程》(相似度 0.58),回答准确
  • "盘点差异怎么处理" → 命中《库存盘点规范》(0.602),回答准确

第四题出事了。

"退货流程是什么" ------手册里确实没有退货流程,检索返回的是《出库流程》(相似度 0.609)。问题就在这:0.609 高于我设的 0.45 拒答阈值,代码层放行了;模型拿到一段"相似但不相关"的内容,最终回答是:

"手册中未找到关于退货流程的具体内容。通常,退货流程可能包括接收退货申请、检查退货商品、处理退货商品、退款等步骤。"

前半句诚实,后半句编造。部分幻觉。

这里要给 TRAE 说句公道话:这锅不是它的。0.45 阈值是我标定的,它照抄了------但"退货流程和出库流程在向量空间里长得像"这件事,是只有被真实数据坑过才知道的领域知识。代码层防线拦得住完全不相关(<0.45),拦不住灰色地带(0.45-0.65)。

四、修复:一句话 prompt,四个字的差距

修复没有动代码,只强化了系统提示词里的一条规则:

ini 复制代码
修改前:found=false 时,必须回答"手册中未找到相关内容",不要猜测
修改后:matches 与用户问题主题不符时(如问退货却返回出库/入库内容),
        回答"手册中暂无退货相关内容",禁止补充任何通用流程、可能步骤等猜测

重跑,第四题的回答变成了:

"手册中暂无退货相关内容。"

四个字没多。同一份代码,一句话的差距。

顺带一个连锁反应:修复后第二、三题的回答也自动带上了 [来源: xxx] 标注------prompt 规则之间会互相增强,这是调 prompt 时的小惊喜。

五、写在最后:AI 继承防御,判断自己长

这次实战让我对"AI 编程工具"的定位清晰了很多:

它防得住代码的错,防不了世界的坑。 TRAE 一次生成的代码,防御性编程比我自己手写更狠------异常兜底、参数校验、协议成对,全是它从海量开源代码里继承下来的工程共同体智慧。但"退货和出库在语义上像"这种真实世界的坑,它没被坑过,也替你坑不了。

所以我的结论是:代码可以交给 AI 一次生成,但阈值、评测集、拒答规则这些"领域标定",必须自己用真实数据喂出来。 AI 负责把工程最佳实践一次给全,你负责知道你的数据长什么样。

这一个模块,从任务书到四题全绿,用了不到一个小时(TRAE Agent 实际执行耗时 4 分 13 秒,15 条命令,含读上下文和自检)。省下的时间,我拿去写评测集了------那才是 AI 替代不了的部分。


环境:TRAE CN 最新版(Agent 模式)+ Windows + Python 3.x + GLM-4-flash。文中代码为 TRAE 生成后经人工核对的实际生产代码。

相关推荐
PD我是你的真爱粉1 小时前
成熟Agent系统设计深度研究报告
java·大数据·人工智能
Mr.Aholic1 小时前
一个协议解决 M×N 集成难题:MCP 如何给 AI 装上手脚
人工智能
美狐美颜SDK开放平台1 小时前
直播APP集成美颜SDK,如何梳理第三方组件的数据权限?
开发语言·人工智能·深度学习·音视频·第三方美颜sdk
沉下心来学鲁班1 小时前
具身智能进阶:让 MicroDuck 踩着高跷走路
人工智能·python·机器人
紧跟先前的步伐1 小时前
Go AI Agent 实战 08|HTTP 模型 API 的工作原理与请求流程
人工智能·http·ai·golang
紧跟先前的步伐1 小时前
Go AI Agent 实战 07|模型幻觉、能力边界与成本控制
大数据·人工智能·golang
dghongcheng1 小时前
工业涂装数字化转型:从经验喷涂到数据驱动
人工智能·喷涂·喷漆设备·自动喷涂线·自动喷涂
liuyanqun-parbie1 小时前
从零设计一个通用智能电话平台:FreeSWITCH + ESL + AI 实战架构
人工智能·架构
文慧的科技江湖1 小时前
2026年10月21日智慧停车行业早报:番禺把单次封顶从132元砍到58元,同一天黄埔要往下挖59米只放200个车位——收费在往下走,车位在往深处长
人工智能·开源·智慧城市·智慧停车·城市管理·静态交通·停车saas