为什么你的 Agent 总是"聪明反被聪明误"?为什么模型能力越来越强,线上故障却越来越多?这不是 Prompt 写得烂——是你还没搞懂什么是 Environment Engineering。本文从风控视角,聊聊这道被大多数人忽略的最后防线。
01 一个被忽视的数字
去年底,LangChain 团队做了一组对比实验。模型没换,权重没动,只是改了改 Agent 周围的"脚手架"代码——TerminalBench 2.0 的得分从 52.8% 直接拉到 66.5%。
还有个更刺激的:研究者 Can Boluk 仅仅在代码编辑格式里加了"行哈希",模型得分从 6.7% 跳到了 68.3%。
同一个模型,十分之一的代价,十倍的效果。
这事让我想了很久。我们做风控的有个基本直觉:系统出事,往往不是因为某个环节"不够强",而是因为某个环节"没兜住"。模型也是一样——大家都在卷智商,没人关心脚下的地基。
这就引出了一个正在工程圈子里蔓延的概念:Environment Engineering。
如果你还沉浸在"炼丹"Prompt 的乐趣里,或者在 Harness 里反复打转,先别急,看看这张图:

- Prompt Engineering — 怎么说?(指令设计)
- Context Engineering — 看什么?(信息喂料)
- Harness Engineering — 怎么控?(流程编排)
- Environment Engineering — 在哪做?边界在哪?做错了怎么兜底?(物理防线)
四层递进,一层比一层硬核。
02 Harness 和 Environment,差在哪?
有人问我:"Harness 和 Environment 不都是给模型加规矩吗?"
这个混淆很致命。作为风控出身的人,我习惯用"交通系统"来类比:
| 维度 | Harness Engineering | Environment Engineering |
|---|---|---|
| 本质 | 逻辑边界 | 物理边界 |
| 类比 | 交通规则 | 道路护栏 |
| 控制方式 | 软约束(Agent 可以选择无视) | 硬约束(Agent 想违规都没门) |
| 失效后果 | 逻辑混乱,死循环,费资源 | 数据泄露,资产受损,出事故 |
举个我见过的真实场景:
你让 Agent 管理数据库。
- Harness 做法:写个 Retry 逻辑——"删库失败了?重试一下呗";或者在 System Prompt 里苦口婆心——"千万别删库"。
- Environment 做法:在数据库权限层直接把 Drop 权限 Disable 掉,或者丢进沙箱跑。Agent 就算产生幻觉发疯了,也删不掉一行数据。
Harness 是劝导,Environment 是强制。
风控圈有句话叫"不要信任,要验证"。放到 Agent 工程里,就是:不要指望 Prompt 能拦住一个犯错的模型,要在物理层面让它犯不了错。







