尊重你 “影响范围” 的自动化
Takuto 让 AI agent 在真实仓库上干活,所以隔离是默认设定 —— 而不是事后补救。下面就讲清楚:一次运行被什么所约束,又有什么是它约束不了的。
每个 agent 都跑在自己的 container 里
每个 workflow 的工作都是隔离的:独立的 container、独立的 git worktree、独立的环境。工单描述及其链接的内容是嵌入 prompt 中的不可信输入,因此容器化限制了被劫持的 agent 会话能触及的范围 —— 它缩小了 prompt injection 的影响范围,而不是指望 agent 自己规矩行事。
egress 经由允许清单防火墙
出站流量按设计走允许清单:只有一份精心挑选的主机集合可以访问,其余一概默认拒绝。这份默认清单不止涵盖你自己的工具 —— 它还放行了编码 agent 正当所需的 package registry 和开发者文档站点:
- 你的工单系统 —— Jira / Atlassian(含 developer.atlassian.com)或 GitHub(含 docs.github.com)
- AI 提供商 API —— Claude、Codex(OpenAI)和 Cursor 会按你启用的提供商开箱即用地放行;OpenCode 是自托管的,因此放行的是它的 base_url
- Package registry —— npm(外加你的 .npmrc)、crates.io、docs.rs、nodejs.org
- 常用开发者文档 —— rust-lang.org、MDN、Stack Overflow
- 用于 AWS 认证运行的 AWS STS / SSO 端点
AI 提供商主机会跟随你在 available_providers 里启用的那些提供商 —— 收窄这份清单即可收紧防火墙,或用 extra_egress_hosts 添加你自己的主机。请把防火墙视为纵深防御中缩小影响范围的一层 —— 它并非绝对保证,在 beta 阶段仍在持续加固。
纵深防御,而非万能灵药
隔离能降低风险,但不能消除风险。Takuto 期望你预先就位几项默认设定,好让一次被攻破的运行无法造成实质损害:
必须开启分支保护
agent 推送分支、提交 PR —— 它们从不直接提交到 main。在 Git 托管端强制开启分支保护,这样即便某个 agent 行为失常它依然成立:合并前必须经过人工审批评审。
受限的最小权限凭据
被劫持的 agent 只能触及其凭据所允许的范围,所以要把权限收得尽量紧 —— 代码和工单都要如此。代码侧优先用仅限目标仓库的细粒度 GitHub PAT(或一个 GitHub App);工单侧用一个专用的 Jira 服务账户,仅授予目标项目上的 Browse / Create / Assign 权限。避免使用宽泛的 OAuth 登录以及个人或管理员 token:它们授予的权限通常远超一次运行所需,一旦 prompt injection 得手,凡是该凭据能触及的东西都可能被读取或篡改。
把工单文本视为不可信
工单文本被当作可能试图覆盖指令的用户提供内容来对待。面对恶意描述,分支保护和最小权限 token 才是主要防线。
默认即隐私
Takuto 不追踪任何人 —— 产品上如此,本网站上也如此。
- 无使用分析、无崩溃上报、无 phone-home、无遥测。
- 你的代码、工单内容和 prompt 只会发往你自己配置的 AI 提供商 —— Takuto 本身从不收集它们。
- 容器化意味着它跑在你的机器或你自己的服务器上:部署归你所有。
当前默认放行的主机
在默认配置下(四个 AI 提供商全部启用),允许清单会在启动时解析为下列主机,并周期性地重新解析。AI 提供商分组只会针对你实际启用的提供商被放行:
GitHub
github.comapi.github.comraw.githubusercontent.comobjects.githubusercontent.comcodeload.github.comdocs.github.com
此外还包括 GitHub 公布的 IPv4 地址段,从 api.github.com/meta 获取(覆盖会轮换的 CDN)。
Atlassian / Jira
api.atlassian.comdeveloper.atlassian.comacli.atlassian.com
Claude
api.anthropic.comapi.claude.aiclaude.aiconsole.anthropic.comcdn.anthropic.comstatsig.anthropic.comstatsig.claude.ai
Codex (OpenAI)
api.openai.comauth.openai.comchatgpt.complatform.openai.com
Cursor
api.cursor.comapi2.cursor.shcursor.shrepo42.cursor.shcursor.comdownloads.cursor.com
OpenCode
自托管 —— 只会放行你配置的 base_url 主机(若已设置)。
包管理仓库
registry.npmjs.orgcrates.iostatic.rust-lang.org
开发者文档
docs.rsdoc.rust-lang.orgdeveloper.mozilla.orgnodejs.orgstackoverflow.com
AWS
sts.amazonaws.comsts.ap-northeast-1.amazonaws.comportal.sso.ap-northeast-1.amazonaws.com
错误上报(Sentry)
sentry.ioo0.ingest.sentry.ioo1.ingest.sentry.ioo2.ingest.sentry.io
Figma
api.figma.com
这是目前的默认允许清单,在未来的版本中可能会有所变化。你也可以用 extra_egress_hosts 添加你自己的主机,或设置 allow_all_https = true 以放行全部出站 HTTPS。