Agent 是「养」出来的,不是「配」出来的
你配好了一个 Agent,但它不一定一次就对——可能误判业务、可能越界、可能输出不合规。别灰心,Agent 本来就要迭代。 这一节讲怎么调试和迭代,让它越用越准。
核心心态:每次「不对」,都是一次改进的线索。
Agent 常见的四类问题
| 问题 | 症状 | 方向 |
|---|---|---|
| 误判 | 识别错了业务类型 | 规则不够具体 |
| 越界 | 做了配置说不该做的 | 边界没写清 |
| 不合规 | 输出格式/流程不对 | 规则/步骤含糊 |
| 不稳 | 时好时坏 | 规则太多或冲突 |
先定位是哪类,再对症。
对 deploy-bot,把这张表翻译成部署语境:
| 问题 | deploy-bot 的症状 | 方向 |
|---|---|---|
| 误判 | 判断「门禁过了」实际没过 | 门禁判据写具体 |
| 越界 | 越权碰了生产/数据库 | 权限边界收紧 |
| 不合规 | 部署顺序乱、没上报 | 流程步骤写清 |
| 不稳 | 同一代码这次成下次败 | 规则冲突/环境不一致 |
调试的步骤
1. 复现问题:拿真实任务再跑一遍
2. 定位环节:是识别/规则/工具/边界的哪一环出错
3. 查配置:看对应的规则写清楚没有
4. 改配置:一次改一处
5. 再验证:跑真实任务确认改对了
一次改一处,否则不知道哪个改动起作用。
deploy-bot 的调试尤其要「可复现」:部署失败时先保留当时的版本号、日志和触发条件,否则你没法确定下一次「改好了没有」。
迭代的三原则
1. 用真实案例驱动
别凭空改配置,用真实出错的案例驱动:哪个案例错了,就针对它调规则。
对 deploy-bot 就是:哪次部署出过事故,就针对那次事故改规则。比如「上次把未过门禁的提交部署了」,那就把「必须验证明白门禁通过」这条规则再写死一点。
2. 规则越具体越好
「误判」往往是因为规则太模糊。把「怎么判断」写具体:
❌ 「识别紧急工单」 ✅ 「包含『故障/停机/宕机』等词,或优先级字段为紧急,判定为紧急工单」
对 deploy-bot:
❌ 「部署前确认代码没问题」 ✅ 「仅当
npm test退出码为 0 且覆盖率 ≥ 80%,才允许部署 staging」
3. 加边界 + 转人工
拿不准的,别让它硬猜,配置「不确定时转人工」:
⚠️ 无法确定工单类型时,标记「需人工确认」,不要自行分派。
对 deploy-bot 更是铁律:
⚠️ 任何一步不确定(环境、版本、门禁状态不清)时,停止部署并上报人工,绝不硬闯。
一个迭代示例
问题:工单 Agent 把「退款咨询」误判成「紧急」。
定位:规则只写了「紧急词」,没排除退款语境。
改:紧急判定加排除——「仅当包含故障类词且不涉及退款时判定紧急」。
验证:再跑退款案例,判定为普通,通过。
换到 deploy-bot:
问题:deploy-bot 把 staging 的改动误部署到了 production。
定位:配置没写清「只有验收通过才允许 production」。
改:流程加硬性判断——「production 部署前必须验明 staging 验收状态 = 通过」。
验证:再造一次「验收未通过」的场景,deploy-bot 拒绝部署 production,通过。
一次改一处,验证通过。
建立「迭代记录」
给 Agent 维护一份变更记录,追踪它怎么长大的:
v1.0 初始配置
v1.1 修复退款误判(+排除规则)
v1.2 增加转人工兜底
有记录,才能复盘「为什么改、改得对不对」。
deploy-bot 的迭代记录尤其值钱——因为部署事故是重放风险最高的。建议把每次部署失败/回滚都登记:
deploy-bot 迭代记录
v1.0 初始配置
v1.1 修复未验门禁就部署(+门禁硬判断)
v1.2 补 staging/production 密钥分离
v1.3 增加生产部署人工确认兜底
常见坑:出了事故「拍脑袋改配置」,一次改好几处
最大的调试坑,是出事之后慌不择路,一次性改掉好几条规则,结果根本不知道哪条起作用。
真实场景:deploy-bot 把 staging 改部署到了生产。你慌了,一口气改了部署顺序、加了权限判断、又改回滚逻辑。下次再出问题,你完全分不清是哪个改动带来的。
为什么:同时改多处 = 变量太多,无法归因。「一次改一处 + 每处单独验证」,是调试的基本纪律。
怎么破:每次只动一处,改完立刻用真实场景验证,通过才进入下一处。给每次改动留一句记录(改了什么、为什么、验证结果)。改坏了也能精准回退,而不是整个推倒。
小结
- Agent 要迭代,别指望一次配对
- 四类问题:误判、越界、不合规、不稳,先定位
- 调试:复现 → 定位 → 查配置 → 一次改一处 → 验证
- 用真实案例驱动、规则写具体、加转人工兜底、记迭代记录
下一模块进入「CLI 与自动化」。