安全概览
Captain Who 采用本地优先的桌面架构:应用状态主要保存在本机,Agent 的 Tool 调用经过类型校验、权限判断和必要的用户审批。账户登录和软件许可校验是独立的账户服务流程,不会同步桌面项目或对话。应用不是通用操作系统沙箱,不能替代账户隔离、磁盘加密、备份和终端安全软件。
主要保护边界
- 聊天界面不能直接获得任意 Node.js、文件系统或进程能力;敏感操作由受信应用层处理。
- Tool 名称和模型说明不构成授权;应用根据真实 Tool 身份、当前项目、权限和参数决定允许、询问或拒绝。
- 批准绑定具体动作。模型不能仅通过文字让一次批准自动扩大为永久权限。
- 外部 MCP、Skill、网页内容、附件和模型输出都按不可信输入处理。
- 文件、命令、浏览器目标、上传下载和生成制品经过各自的路径与身份校验。
- 文件更新和删除绑定先前读取到的版本;成功后仍会重新验证并记录 FileChange 审计结果。
- 对可能已经产生副作用但无法确认结果的调用,系统会报告未知状态,而不是自动重放。
- 正式签名 macOS 发行版在完整初始化后,通过可访问的官方更新源发现版本;由用户选择开始下载,下载、完整性校验和原生准备完成后,应用会退出并重新启动以安装。更新请求不携带账户授权或 Cookie 作为更新身份标识。
用户仍需承担的判断
- 选择可信的模型 Provider、Skill、MCP Server 和网页;
- 检查每次审批中的目标、参数和可能影响;
- 只在确有需要时启用完全权限或自动执行;
- 保护本机账户、应用数据、项目目录和凭据;
- 在外部调用超时或断开后,先到目标系统核实再决定是否重试。
重要残余风险
- 文件和命令限制是应用策略,不是进程容器;被授权的进程可能访问操作系统允许的其他资源。
- 外部 MCP Server 是本机进程,其自身行为和供应链不由 Captain Who 保证。
- 模型、搜索和图片生成密钥由独立凭据后端保存;SQLite 只保存引用和状态。系统凭据存储或未签名 macOS 开发构建的私有凭据文件仍依赖本机账户、磁盘和备份安全。
- 账户、会话和许可校验需要网络及可用的账户服务;无法完成校验时,新的 Agent 回合可能无法启动。该校验不代表账户服务可读取桌面任务内容。
- Full/Custom Automation 可以在用户不看屏幕时产生副作用,暂停任务也不会停止已开始的 Run。
- 原生通知可能缺失、延迟或在极小崩溃窗口重复,并可能出现在锁屏通知中心;敏感任务应关闭内容预览。
- 如果设备或用户账户已经被攻破,Captain Who 不能提供可信执行环境保证。
实际数据去向和权限模式见数据与权限。