问题:子进程是 YOLO 无尽模式吗?
飞书机器人启动的每个 Claude 子进程
完全跳过权限确认
可以直接读写文件、执行命令、安装依赖
📝 代码证据
🔄 模式对比
🛡️ 普通模式
- Claude:我需要创建文件 app.js
- 系统:弹出确认对话框
- 用户:点击"允许"
- Claude:好的,开始创建文件
每个工具使用都需要确认
适合桌面 CLI 交互
⚡ YOLO 模式(飞书机器人)
- Claude:我需要创建文件 app.js
- 系统:直接创建,不弹窗
- Claude:文件已创建,内容如下...
完全自动化,无需等待
适合聊天机器人场景
🏠 生活类比:管家 vs 机器人
普通模式:每次管家要动你的东西,都先敲门问"可以吗?"
YOLO 模式:给了机器人全权授权,它直接按计划执行所有任务
飞书机器人 = 拥有完全授权的家政机器人
💡 为什么飞书机器人要用 YOLO 模式?
- 用户体验流畅:聊天机器人不能频繁弹窗让用户确认,太打断对话
- 自动化执行:机器人的核心价值就是"自动完成任务",不是"问完再做"
- 无法交互确认:飞书消息是异步的,没有实时确认弹窗机制
- 内部环境可信:机器人在受控的服务器环境,不会误删系统文件
- 工作目录隔离:每个会话有独立目录(如 /home/event),不会影响其他用户
🛡️ 安全防护措施
目录隔离
每个群聊/用户有独立工作目录,互不影响。禁用 cd 命令防止逃逸。
工作目录固定
project_path 在会话创建时确定,运行时只读,防止状态不一致。
命令过滤
禁止危险命令(如 rm -rf /),限制在项目目录范围内操作。
操作日志
所有文件操作记录到 feishu_message_log 表,可追溯审计。
进程超时
子进程有执行时间限制,防止无限循环占用资源。
自动清理
进程退出后自动清理临时文件,24小时清理过期会话。
⚠️ 重要提醒:YOLO 模式的责任
由于机器人拥有完全权限,需要特别注意:
- 不要在机器人工作目录下存放重要文件(可能被覆盖)
- 机器人可以执行任意 Shell 命令(需信任 Claude 的安全性)
- 机器人可以安装依赖包(可能消耗网络和磁盘资源)
- 代码执行失败可能产生大量临时文件(自动清理机制会处理)
- 敏感信息(API 密钥等)可能被读取(不要放在工作目录)
📌 核心原则:机器人工作目录应该是专用的沙盒环境,不混放其他重要数据
🌐 不同场景下的权限模式
飞书机器人
YOLO 模式 ✅
--dangerously-skip-permissions
AI 初老师机器人
YOLO 模式 ✅
生成应用需要完全自动化
Web UI(浏览器)
普通模式 🔐
用户可以点击确认
终端 CLI
普通模式 🔐
默认需要输入 y 确认
🎯 一句话总结
飞书机器人 = 完全自动化的 YOLO 模式
每个子进程都带 --dangerously-skip-permissions 参数
无需任何用户确认,直接执行所有工具调用