Skip to content

05 · 划边界 ​

边界不是"告诉它别做什么",是"让它做不了"。提示词里的禁止是软约束,跑三十圈之后可能就忘了;工具和权限层面的限制是硬约束,忘不了。能用硬的,就不要用软的。

三层边界,硬度递减 ​

层怎么做硬度
① 不给根本不提供这个工具、这个目录、这个账号权限硬。它做不到
② 拦一道工具照给,但执行前必须人点头硬。它提得出,但过不去
③ 说一句提示词里写"不要做 X"软。多数时候有效,但会失效

设计边界时,从上往下试:

这件事能不能靠"不给"解决? 能,就到此为止,别再往下。 不能(因为它确实需要这个能力)→ 能不能加一道人工确认? 再不能 → 才轮到写在提示词里。

大多数人的顺序是反的:先在提示词里写一长串"不许",然后发现它偶尔还是做了。

① 不给:从权限开始 ​

文件 ​

给它能读什么、能写什么,精确到目录:

text
❌ 给它整个用户目录的读写权限
✅ 只读:./docs/、./data/
   可写:./output/          ← 一个专门的输出目录
   其余:不可访问

那个专门的输出目录很关键:它写坏了,你删掉重来就行,不影响任何原始材料。

账号与凭据 ​

给它的每一个 key、每一个账号,问一句:这个凭据能干的事,是不是远超它需要的?

text
❌ 给一个管理员 API key,因为"这样最省事"
✅ 建一个只读的、只能访问特定几张表的账号

凭据的权限范围,就是它能造成的破坏范围上限。

网络 ​

能不能上网、能上哪些站,是一条很值得设的边界:

  • 完全不联网:处理本地材料的 Agent,这样最安全。
  • 白名单:只能访问你列出的几个域名。
  • 随便上:风险最高。它可能读到带指令的内容(04 章那个坑),也可能把数据发出去。

沙箱 ​

如果它要执行命令或跑代码,必须在沙箱里——一个隔离的环境,跑坏了不影响你的机器。

这一条没有折中方案

"我看着它跑,不对就 Ctrl+C" 不是方案。它一圈可能只要两秒。

能执行任意命令的 Agent,只能在沙箱里跑。

② 拦一道:什么必须人点头 ​

这个清单基本不用讨论:

动作为什么
往外发(邮件、消息、提交、发布)收件人不是你自己,出去了收不回
删除、覆盖不可逆
花钱(下单、支付、开资源)不可逆,且金额可能失控
改配置、改权限影响面超出这一次任务
动生产环境的任何东西不解释

怎么"拦"

两种做法:

同步拦:Agent 提出要执行,流程暂停,等你确认。适合动作少的场景。

攒起来拦:Agent 不直接执行,而是把要做的事写成一份计划(03 章最后那节),跑完之后你一次看完、一次确认、批量执行。动作多的时候这种远好用——十次弹窗确认,人第三次就开始乱点了。

③ 说一句:提示词里的边界怎么写才有效 ​

软约束也要写,只是别指望它兜底。三条写法:

一、写成具体动作,不是原则。

text
❌ 注意保护敏感信息。
✅ 不要在输出里写出完整的手机号、身份证号、银行卡号——
   一律脱敏成前三后四,中间用 * 代替。

二、配上出路(提示词篇 06 章那条铁律)。

text
❌ 不要修改原始文件。
✅ 不要修改 ./data/ 下的任何文件。需要改动时,
   把改动后的版本写到 ./output/ 下,文件名加 .modified 后缀。

三、在长跑里重复。 Agent 跑三十圈,第一圈的约束早被挤到边上了(07 章)。关键约束要么放进系统提示(每轮都在),要么在工具返回里反复带上。

一个容易漏的边界:范围蔓延 ​

前面讲的都是"别碰什么"。还有一类边界是"别越做越多":

text
你让它:查清三家竞品的定价。
它顺手:把三家的功能对比也做了,把市场份额也查了,
       还写了一份"我们的定价建议"。

听起来像加分,实际上是问题:多出来的部分你没验收标准,而它们和你要的东西混在一起交付,你还得花时间分辨哪些是你要的。

解法在目标那一章:

text
只做上面列出的这些,不要扩展范围。
你认为值得做但我没要求的事,**列在最后作为建议,不要直接做**。

一张速查表 ​

你的场景建议的边界
只处理你给的材料,不联网不给网络工具;只读输入目录;输出到独立目录
要查公开信息只读工具;域名白名单或至少禁止提交表单;外部内容标成数据
要读内部系统只读账号,权限收到具体范围;不给写工具
要写文件 / 改代码沙箱 + 独立输出目录 + 版本控制(能 diff、能回滚)
要发消息 / 发邮件必须人工确认;优先用"产出计划再批量执行"
要跑命令必须沙箱;命令白名单;禁止网络

一句话收口 ​

提示词管的是它想不想,权限管的是它能不能。跑三十圈之后,只有后者还站得住。

下一步 ​

06 · 设上限:失控的四种形状

一份讲通用概念的入门手册 · 不绑定任何一家模型或工具 · 例子可直接照抄