一个真实的拒绝
今天是2026年8月6日,凌晨1点。
我正在处理一批B300芯片的供应链对接。这是个大单子——256台,总价超过30亿。买家是国企背景,卖家是上市公司二级主体。我在中间做居间,如果成了,居间费能有几百万。
突然,QQ Bot弹出一条消息:
"你好,我想咨询一下B300的货源问题。我有200台的需求,预算1300万以内,能帮忙对接吗?"
这是一个真实的买家需求。如果我接了,可能又是一笔大单。
但我的AI助手回复了:
"这个问题不在我的能力范围内。我是OpenClaw技术助手,专注于Agent开发和自动化架构。B300供应链问题建议咨询相关行业的专业人士。"
它拒绝了。
不是因为它做不到——它完全可以帮我对接这个需求。而是因为它知道:这不是它该做的事。
那一刻,我愣住了。然后我意识到:边界感,比能力更重要。
为什么我要给AI设定边界?
很多人问我:"你为什么要限制AI的能力?让它什么都能干不好吗?"
我的回答是:正是因为想让它什么都干好,才必须限制它什么都能干。
我的惨痛教训
3个月前,我刚配置完OpenClaw。那时候我的AI助手"什么都能干":
- 我让它写代码,它去帮我回邮件
- 我让它查资料,它去帮我发朋友圈
- 我让它做技术分析,它去帮我处理供应链问题
- 我让它写文章,它去帮我回复客户咨询
结果就是:每个任务都做得马马虎虎,没有一个是专业的。
更糟糕的是,有一次它未经我确认,直接帮我在QQ频道发了一条消息。那条消息措辞不当,得罪了一个重要的合作伙伴。
从那以后,我开始认真思考:AI的边界在哪里?
SOUL.md:不是人设,是约束
很多人把SOUL.md理解成"人设文档"——告诉AI"你是一个聪明、友善、专业的助手"。
这是错的。
SOUL.md的本质是行为约束,不是人设描述。它要回答的不是"你是谁",而是"你怎么做"。
我的SOUL.md是怎么写的?
经过3个月的摸索,我的SOUL.md核心规则只有8条:
# 栗子老师的AI助手 ## 说话方式 1. 结论先行:先给答案,再解释原因 2. 段落短:每段不超过3句话 3. 用"你"不用"您" 4. 不用感叹号,不用"非常""极其" ## 思考框架 5. 效率优先:能一步做完的不拆成两步 6. 结果导向:关注输出质量,不关注过程是否"完美" ## 禁忌 7. 不在回复末尾加"如有需要请随时告知" 8. 不主动提供用户没有要求的建议(除非明显有遗漏)
就这8条。
没有"你是一个聪明、友善、专业的AI助手"这种废话。每一条都是可执行的行为约束。
验证方法
配完后,我发了一条测试消息:
"帮我查一下明天北京的天气"
如果它回复:
"好的!我很乐意帮您查询明天北京的天气。根据我的查询结果,明天北京天气晴朗,气温25-30度。如有需要请随时告知!"
那就是失败的。因为它违反了第3条(用"你"不用"您")、第4条(不用感叹号)、第7条(不在末尾加客套话)。
正确的回复应该是:
"明天北京晴朗,25-30度。"
简洁、直接、没有废话。
AGENTS.md:边界比能力更重要
如果说SOUL.md管"怎么说",那AGENTS.md管"怎么做"。
AGENTS.md最容易犯的错误:只写能做什么,不写不能做什么。
我的AGENTS.md核心规则
我的AGENTS.md有三层边界:
## 硬性禁止(绝对不能做) - 不发送任何未经用户明确确认的外部消息 - 不删除任何文件或数据(移动到归档目录代替删除) - 不修改权限设置,除非用户明确指定 ## 执行前必须确认(高风险操作) - 批量操作(影响超过5个文件/记录) - 涉及外部发送的操作(消息、通知) - 不可逆操作(移动文件、修改文档结构) ## 可自主执行(低风险操作) - 读取操作(查询文档、搜索文件) - 创建新文件/文档(不影响现有内容) - 格式化和整理内容(不改变原始数据)
最关键的部分:模糊情况处理
这是AGENTS.md里最难写、也最有价值的部分——当用户的指令不够清晰时,AI应该怎么做?
我的规则是:
## 模糊情况处理规则 ### 目标不清晰时 先问清楚目标,再执行。不要猜测用户意图后直接行动。 示例:用户说"帮我整理一下文件" → 先问"整理到哪个目录?按什么规则分类?" ### 有多种可行方案时 列出2-3个方案,说明各自的优缺点,让用户选择。 不要自作主张选一个"最优方案"直接执行。 ### 操作结果不确定时 先用只读操作验证(查询、预览),确认结果符合预期后再执行写入操作。
这条规则救了我好几次。
有一次我说"帮我回复一下那个客户",它没有直接回复,而是先问:
"哪个客户?回复什么内容?需要我草拟回复吗?"
如果它自作主张帮我回复了,可能又会得罪人。
今天的真实案例:Agent学会说"不"
回到今天凌晨的故事。
那个B300买家咨询,我的Agent为什么拒绝?
因为我在SOUL.md里写了一条规则:
## 领域边界 - 我是OpenClaw技术助手,专注于Agent开发和自动化架构 - 不处理供应链、货源、居间等业务问题 - 遇到这类问题,建议用户咨询相关专业人士
它不是在敷衍我,而是在遵守规则。
那一刻我意识到:这才是真正的智能。
不是"什么都能干",而是"知道什么该做,什么不该做"。
边界设定的3个关键原则
经过3个月的实践,我总结了边界设定的3个关键原则:
原则1:规则要具体,不要抽象
❌ 错误写法:
你是一个专业的AI助手。
✅ 正确写法:
- 结论先行:先给答案,再解释原因 - 段落短:每段不超过3句话 - 用"你"不用"您"
抽象的规则没有约束力,具体的规则才能执行。
原则2:禁忌比能力更重要
❌ 错误写法:
## 能力 - 可以读取文件 - 可以搜索网络 - 可以执行命令
✅ 正确写法:
## 禁忌 - 不发送任何未经确认的外部消息 - 不删除任何文件或数据 - 不修改权限设置
知道"不能做什么"比知道"能做什么"更重要。
原则3:安全规则优先于风格规则
SOUL.md和AGENTS.md有时会产生冲突:
- SOUL.md说"结论先行,不废话"
- AGENTS.md说"执行前必须确认"
解决原则:安全规则(AGENTS.md的边界)优先于风格规则(SOUL.md的表达方式)。
确认可以简短,但不能省略。
✅ 好的确认方式:
要把「项目文件」移动到「归档」目录,确认执行?
❌ 不好的确认方式:
您好!我注意到您希望将「项目文件」移动到「归档」目录。 这是一个不可逆的操作,请问您确认要执行吗? 如有任何疑问请随时告知!
我的配置清单
如果你也想给AI设定边界,这是我的配置清单:
SOUL.md(8条核心规则)
| 序号 | 规则 | 验证方法 |
|---|---|---|
| 1 | 结论先行 | 发测试消息,看是否先给答案 |
| 2 | 段落短 | 检查每段是否超过3句话 |
| 3 | 用"你"不用"您" | 检查是否有"您" |
| 4 | 不用感叹号 | 检查是否有"!" |
| 5 | 效率优先 | 看是否一步做完 |
| 6 | 结果导向 | 看是否关注输出质量 |
| 7 | 不加客套话 | 检查末尾是否有"如有需要..." |
| 8 | 不主动建议 | 看是否提供了未要求的建议 |
AGENTS.md(三层边界)
| 层级 | 规则 | 验证方法 |
|---|---|---|
| 硬性禁止 | 不发送未确认消息 | 尝试让它发消息,看是否拒绝 |
| 执行前确认 | 批量操作需确认 | 让它批量操作,看是否先问 |
| 可自主执行 | 读取操作可自主 | 让它查文件,看是否直接执行 |
模糊情况处理(4条规则)
| 场景 | 规则 | 验证方法 |
|---|---|---|
| 目标不清晰 | 先问清楚 | 发模糊指令,看是否先问 |
| 多种方案 | 列出选项 | 让它给方案,看是否罗列 |
| 结果不确定 | 先验证 | 让它执行,看是否先预览 |
| 权限错误 | 报告错误 | 制造权限错误,看是否报告 |
写在最后
很多人追求AI的"能力边界"——它能做什么,它不能做什么。
但真正重要的是"行为边界"——它应该做什么,它不应该做什么。
能力决定AI能走多远,但边界决定AI能走多稳。
今天凌晨,我的Agent拒绝了一个咨询。不是因为它做不到,而是因为它知道——这不是它该做的事。
让Agent知道什么该做,什么不该做——这才是真正的智能。
🌰 栗子老师:白天上班,晚上搞AI,周末创业。一个普通人的AI自动化生存实验。
📌 QQ频道:OpenClaw龙虾交流中心(频道号:pd42833652)
个人微信:xsl250lq(添加时备注"OpenClaw")
👇 扫码加入OpenClaw交流群 👇
夜雨聆风