持久化聊天记录 把对话存进了磁盘,聊天记录再也不会丢。但我们的 Agent 还留着一个从第一篇就埋下的隐患:模型说调用什么工具,它就调用什么,中间没有任何检查。
模型要是脑子一抽,往 run_command 里塞了个 rm -rf /,我们的 Agent 会眼都不眨地执行掉。
Claude Code 不会这么干。它在每次工具执行前都会先停一下,让你决定要不要放行:
Allow Bash(npm test)?
▸ Yes
Yes, and don't ask again for `npm test`
No, tell Claude what to do differently权限检查是怎么实现的 已经拆解过 Claude Code 内部那套三层权限判定。这篇我们动手实现一个简化版,砍掉 settings.json 里的静态规则配置,只保留最常用的三种权限模式:
default:默认模式,写文件、跑命令都要你确认,只有读文件这类只读操作自动放行acceptEdits:读写文件都自动放行,跑命令仍要授权bypass:一切放行,不再打扰你
plan 模式要配合 System Prompt 一起改,比这三种复杂,留到后面单独讲。