尊重你 “影响范围” 的自动化

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.com
  • api.github.com
  • raw.githubusercontent.com
  • objects.githubusercontent.com
  • codeload.github.com
  • docs.github.com

此外还包括 GitHub 公布的 IPv4 地址段,从 api.github.com/meta 获取(覆盖会轮换的 CDN)。

Atlassian / Jira

  • api.atlassian.com
  • developer.atlassian.com
  • acli.atlassian.com

Claude

  • api.anthropic.com
  • api.claude.ai
  • claude.ai
  • console.anthropic.com
  • cdn.anthropic.com
  • statsig.anthropic.com
  • statsig.claude.ai

Codex (OpenAI)

  • api.openai.com
  • auth.openai.com
  • chatgpt.com
  • platform.openai.com

Cursor

  • api.cursor.com
  • api2.cursor.sh
  • cursor.sh
  • repo42.cursor.sh
  • cursor.com
  • downloads.cursor.com

OpenCode

自托管 —— 只会放行你配置的 base_url 主机(若已设置)。

包管理仓库

  • registry.npmjs.org
  • crates.io
  • static.rust-lang.org

开发者文档

  • docs.rs
  • doc.rust-lang.org
  • developer.mozilla.org
  • nodejs.org
  • stackoverflow.com

AWS

  • sts.amazonaws.com
  • sts.ap-northeast-1.amazonaws.com
  • portal.sso.ap-northeast-1.amazonaws.com

错误上报(Sentry)

  • sentry.io
  • o0.ingest.sentry.io
  • o1.ingest.sentry.io
  • o2.ingest.sentry.io

Figma

  • api.figma.com

这是目前的默认允许清单,在未来的版本中可能会有所变化。你也可以用 extra_egress_hosts 添加你自己的主机,或设置 allow_all_https = true 以放行全部出站 HTTPS。