三个项目三个翻车现场。上周我一口气让 AI「帮我把这事儿跑完」结果没有一个善终。不是模型不够聪明是我把「执行」这件事想得太轻了——以为只要把任务说清楚Agent 自己就能又好又快办妥。说白了通用 Agent 一把梭最大的坑是它分不清哪个操作能直接干、哪个操作干了就收不回。删库、发错消息、误触生产变更这些事只要发生一次你那点效率红利全赔进去都不够。翻车不是偶然我最早那套做法很朴素把任务描述丢给 Agent让它自己判断、自己调工具、自己收尾。听起来很美第一次翻车在一个批量重命名的活儿上。我让它「把 logs 目录里带日期的文件整理一下」它顺手把几个还在用的脚本也按规则改了名CI 当场挂掉。你猜怎么着它一句没跟我提还是我在群里被测试同学 才知道。第二个更离谱。我让它「帮我把测试环境的配置同步到预发」它读了描述自作主张把生产数据库的连接串也一并改了。幸亏我们这边发布前还有二次确认不然就是一晚上救火我大概率得写事故复盘。第三个是发消息。我让它「给上周提 issue 的几个用户回个简短说明」它把草稿群发成了所有人可见的公开 还带了个我压根没写过的语气。我盯着屏幕愣了三秒撤回都来不及只能硬着头皮挨个道歉。这三次我都在用同一个模式语言指令 → 信任执行。问题不在模型能力在于执行根本没有边界。我试过的那些弯路我试过在系统提示里写死「危险操作必须问我」。这玩意儿跟立规矩不写罚则一个样——模型心情好听一句忙起来或者它自认为忙起来就跳过去了。软约束嘛没有硬闸门兜着全看它愿不愿意守。我也试过把每一步都拆开人工点确认。跑下来发现跟我自己动手没区别还慢三倍纯纯的胶水流程。更别提有些任务本来就是长程多步的逐步点头的体验烂到我想直接关掉对话。我甚至想过干脆不让它执行、只让 AI 出方案。但有些活儿它就是得真跑比如部署、定时清理、批量操作文件光给方案不落地等于没说。出方案不执行和瞎执行是两个极端都不够用。tri-action 把「执行」接住了后来我把执行这块单独拆给 tri-action 管。它的逻辑跟通用「直接执行」不一样它不是接到一句话就去调工具而是先读 tri-intent 的快照把意图认准是 I14操作执行再走一条固定链路——解析、校验、分级、确认门、执行、返回。意图识别这一步它自己不做直接吃上游结论所以不会临场重新理解你的需求。关键在「分级」。tri-action 把每个操作按风险打到四个等级这是我踩坑之后才觉得香的设计L0 只读查数据、搜东西、读文件不产生副作用直接跑。L1 可逆建草稿、设提醒这种能撤的直接跑。L2 不可逆删文件、提交表单、发消息得先给你看操作清单和影响范围你点头才动。L3 高风险资金交易、生产变更、批量删除除了清单还得附不可逆说明和风险评估确认过了才执行。我当初特别讨厌那种「AI 默默把事办了还以为帮你省心」的设计。tri-action 反过来L2/L3 不给你确认门它是不会动的这是铁律。而且失败不擅自重试——这一点我踩过坑才懂重复扣款、重复发送这种事自动重试一次就够你喝一壶。不可逆操作失败后它只把原始错误甩回来问你绝不自己再来一遍。我用它落地一份执行清单大概长这样# .tribro/actions/I14_20260211_143022_6a5c037d/task.yamlintent:I14operation:action:delete_files# 操作动作target:./logs/archive/*# 操作对象tool:filesystem# 目标工具params:older_than:30ddry_run:falserisk_level:L2# 不可逆删除confirm_gate:required:truechecklist:# 操作清单-删除 ./logs/archive/ 下 30 天前的文件-影响范围仅归档日志不含活跃日志irreversible_note:删除后不可恢复请确认路径无误on_failure:auto_retry:false# L2 不擅自重试ask_user:true这份清单一旦落到.tribro/actions/下L2 的操作会先停在确认门这一步把清单和影响范围甩给你看你确认了它才真删。高风险的 L3 还会额外写一份 confirm-log.md连内容哈希都算上事后能审计是谁确认过、正文改没改过。对我来说这比「一句 prompt 约束」靠谱太多——它是流程级的硬闸不是模型的心情。我现在怎么看这件事我现在的判断很直白凡是带副作用的执行别让 Agent 一把梭。让它能跑的前提是先有人给它定好「哪些能跑、哪些得问、失败了别自己再来一遍」。tri-action 干的就是把「操作执行」从泛化推理里单独摘出来用分级和确认门接住那部分最容易翻车的能力。如果让我重来我会更早把这层边界画清楚而不是等第三个项目出事才长记性。通用执行像个没装护栏的工地而 tri-action 给高风险操作装了闸门——它不炫技就是老老实实拦住最该拦的那一下。我做的 App 雷达鸭里有些定时任务就是这么编排的——批量同步和更新走 L2 确认门宁可多一步确认也不让自动重试把数据搞花。关于作者老三做了十多年软件开发现在是软件设计师兼人工智能应用工程师平时主要折腾鸿蒙ArkTS北向和 Web 前端也爱研究 AI 自动化偶尔在 CSDN 写点鸿蒙和 AI 的实战笔记。本文遵循 MIT 协议转载请注明出处。请根据 https://skillhub.cn/install/skillhub.md安装 tri-action。