影響範囲を尊重する自動化

Takuto は実在のリポジトリ上で AI エージェントを動かすため、隔離は後付けではなくデフォルトです。実行を何が封じ込め、何が封じ込めないのか — ここで正確に説明します。

Isolation

各エージェントはそれぞれ専用の container で動作します

作業は workflow ごとに隔離されます: container も、git worktree も、環境も別々です。チケットの説明やリンクされたコンテンツは、プロンプトに埋め込まれる信頼できない入力です。だからこそ container 化により、乗っ取られたエージェントセッションが触れられる範囲を制限します — エージェントの行儀を信じるのではなく、prompt injection の影響範囲を縮小するのです。

egress は許可リスト方式の firewall を通ります

送信トラフィックは設計上、許可リスト方式です。到達できるのは厳選されたホストの集合だけで、それ以外はすべてデフォルトで拒否されます。デフォルトのリストは自分のツールだけにとどまりません — コーディングエージェントが正当に必要とするパッケージレジストリや開発者向けドキュメントサイトも含まれています:

  • あなたのチケット管理システム — Jira / Atlassian(developer.atlassian.com を含む)または GitHub(docs.github.com を含む)
  • AI プロバイダーの API — 有効にしたプロバイダーについては、Claude、Codex(OpenAI)、Cursor のホストが最初から許可されます。OpenCode はセルフホストなので、代わりにその base_url が許可されます
  • パッケージレジストリ — npm(および `.npmrc` のもの)、crates.io、docs.rs、nodejs.org
  • 一般的な開発者向けドキュメント — rust-lang.org、MDN、Stack Overflow
  • AWS STS / SSO エンドポイント(AWS 認証を使う実行向け)

AI プロバイダーのホストは、available_providers で有効にしたプロバイダーに追随します — このリストを絞れば firewall を狭められますし、extra_egress_hosts で自分のホストを追加することもできます。firewall は影響範囲を狭める多層防御の一層と捉えてください。絶対的な保証ではなく、beta の間も継続的に強化中です。

銀の弾丸ではなく、多層防御

隔離はリスクを低減しますが、ゼロにはしません。Takuto は、侵害された実行が実害を及ぼせないように、いくつかのデフォルトが整っていることを前提とします:

ブランチ保護は必須

エージェントはブランチを push して PR を開きます — main に直接コミットすることはありません。エージェントが万一暴走しても効くよう、Git ホスト側でブランチ保護を強制してください: マージ前に人間によるレビュー承認を必須にします。

権限を絞った最小権限の認証情報

乗っ取られたエージェントは、その認証情報が許す範囲にしか到達できません。だからこそ範囲を厳しく絞りましょう — コードもチケットも両方です。対象のリポジトリに限定したきめ細かい GitHub PAT(または GitHub App)と、対象プロジェクトに Browse / Create / Assign のみを付与した専用の Jira サービスアカウントを推奨します。広範な OAuth ログインや、個人・管理者用のトークンは避けてください: たいてい実行に必要な範囲をはるかに超えた権限を与えてしまい、prompt injection が成功すれば、その認証情報が到達できるものを何でも読み書きできてしまいます。

信頼できないチケットのフレーミング

チケットの文章は、指示を上書きしようとしうるユーザー提供のコンテンツとして扱われます。悪意ある説明に対する主な防御は、ブランチ保護と権限を絞ったトークンです。

デフォルトでプライバシー保護

Takuto は誰のことも追跡しません — プロダクトでも、この Web サイトでも。

  • 使用状況の分析も、クラッシュレポーターも、phone-home も、テレメトリもありません。
  • あなたのコード、チケットの内容、プロンプトは、あなたが設定した AI プロバイダーにのみ送られます — Takuto 自身がそれらを収集することはありません。
  • container 化されているので、自分のマシンでも自分のサーバーでも動きます: デプロイはあなたのものです。