安全
Talos 在 v0.9.1 中承诺的权限策略、密钥脱敏边界与 sandbox 边界。
v0.9.1 已发布内容
Talos 是面向会审查其执行动作的开发者的本地编码 Agent。 安全模型建立在三个显式边界上:
- 只读工作区工具可在无需批准的情况下运行。
- 文件写入、删除、Git 写操作和 shell 执行 全部通过权限流程。这些工具对工作区生效的唯一路径 就是权限管线。
- 工具展示聚焦关键参数,当工具定义提供摘要字段时, 不直接显示原始 JSON。这样可以一眼完成批准审查。
本地密钥应存放在环境变量或私有配置文件中,不应写入源码。 Talos 不会自动提交变更 — Git 提交只会通过显式工具调用 或用户动作发生。
密钥脱敏边界
Provider API keys 可以作为 api_key 直接保存在
~/.talos/config.toml,也可以通过
api_key_env 从环境变量引用。
无论哪种方式,所有非文件持久化输出界面都会对 key 进行脱敏,
确保它不会出现在命令输出、日志、debug 打印、导出 transcript
或仓库文件中。
脱敏覆盖面包括:
-
talos --config-list—mask_secrets()会将api_key替换为***。 -
talos --config-get providers.X.api_key—is_secret_key()在值离开进程前输出***。 -
talos --config-set providers.X.api_key=...— 在确认行回显***。 -
ProviderConfig、Credentials和CredentialResponseData的自定义Debug实现会输出***, 不会输出原始 key。 -
Provider HTTP debug 快照使用
redact_secret()(first4 +****+ last4),让 key 在 debug 日志中可识别但不暴露。
对于偏好环境变量凭据的用户,
${ENV_VAR} 替换仍然受支持。
完整的设计理由、被否决的
skip_serializing 方案,以及反转触发条件
(例如接入 OS keychain)记录在
ADR-023。
公共站点仅镜像边界;ADR 才是事实来源。
权限策略
Talos 不会给模型对本地机器的无限制访问。权限管线是唯一能够 触达工作区的路径。可用以下规则快速判断:
-
只读工具(
read、ls、tree、glob、grep、diff、stat、四个*_symbol*/find_references工具、只读 Git 工具、只读意图的http_request等)运行不需要批准。 -
可写工具(
write、edit、delete、写侧 Git 工具、bash、写侧 MCP 工具)必须通过权限管线获得 显式批准。 -
http_request有 SSRF 防护且受权限门控; 出站网络调用不会自动发生。 -
没有只读标注的 MCP 工具会进入同一批准路径。
如果没有交互式批准能力(例如 CI shell 中的
talos -p),MCP 工具默认拒绝。 - Talos 永不自动提交。Git 写操作只会由操作者批准的 显式工具调用触发。
Sandbox 策略
Talos 是本地进程,不是远程服务。在 v0.9.1 中,启动时唯一的 Web 表面是
只读、token-gated 的 loopback dashboard;批准、写操作、日志和会话控制不会迁移到远程 Web 平面。
运行时设计目标是让默认核心保持本地且可审计。
加固细节(talos-sandbox/hardening.rs 中的四处生产
unsafe、libc FFI 约束、以及用于本地存储的
rusqlite/bundled 例外)都通过 ADR 跟踪;请参阅
ADR-007、
ADR-008,以及完整的
ADR 索引。
在 v0.9.1 中,Talos 也不是远程多用户服务、 marketplace runtime、浏览器自动化产品、Web 批准表面或自主后台守护进程。 已发布 / 计划中 / 研究中的边界划分见 路线图。
pre-1.0 阶段限制
-
talos-runtime可嵌入 facade 仍是 pre-1.0;在v1.0.0之前,SDK 表面仍可能变化。 -
共享
~/.agents/skills/目录发现已发布并默认启用。 符号链接遍历仍默认禁用,必须由显式 discovery policy 开启。 - 只读 dashboard 之外的 Web 控制面扩展(WEB-001)是独立的产品差异化轨道。远程访问、浏览器自动化、Web 批准和 Web 写操作/动作路由尚未发布,也不是安全边界。
-
本地只读 WASM 包仅在操作者通过
--plugin显式选择目录时启用。 它们没有 host calls 或写能力;远程分发与自动发现尚未发布。
问题报告:如果你发现运行时安全问题,请按项目治理文档中的 负责任披露流程处理。常规交接类工作的内部安全审查队列当前处于暂停, 但真实安全漏洞并不会暂停 — 请直接向维护者报告。