trustless とは
AI コーディングエージェント(Claude Code / OpenCode / Codex)はサービスを呼ぶために API キーを必要とする。従来の構成ではキーは .env やエージェントの環境変数に入る — つまりキーはエージェントのコンテキストウィンドウの中に存在し、プロンプトインジェクションや過剰に冗長なデバッグログで漏れる可能性がある。
trustless はそのモデルを反転させる: エージェントはシークレットを名前で参照し、broker がプロセス層・トランスポート層で値を解決する。エージェントは平文を一切保持しない。
従来: agent → キーを見る → キーを使う → キーがコンテキストに入る → 漏れる
trustless: agent → 「GITHUB_TOKEN を使って」と言う → broker が解決 → agent は API レスポンスを受け取る
4つの層
trustless run
サブプロセスに環境変数として凭据を注入し、stdout/stderr を脱敏 — 生値・base64・URLエンコード変種のキー値がエージェント可視の出力に現れない。
trustless proxy
ホスト単位で header/query を注入する HTTP フォワードプロキシ(EDINET / e-Stat / xAI / OpenRouter 等)。HTTPS は MITM 対応。エージェント側の設定変更は不要。
trustless serve
OpenAI 互換エンドポイントなら何でも使える統合 DLP リバースプロキシ。送信 LLM リクエストをパターンスキャン(キーワード→RE2→エントロピー)し、マシンから出る前にマスク。SIGHUP でホットリロード。
trustless dlp scrub
予防は失敗する。だから消去がある。セッションDB・ログへの2層脱敏(既知値 + パターン)+ FTS再構築 + VACUUM — バイト単位で本当に消える。「隠しただけ」ではない。
OAuth トークン(Google / Lark)は自動リフレッシュ付きで管理され、すべての解決は追記型の構造化監査ログ(ファイル / journald)に記録される。
競合との比較
「AI エージェントからキーを遠ざける」領域には複数のツールがある。trustless はサブプロセス注入 + 出力脱敏・統合 DLP(出送信脱敏)・既存パスワードマネージャバックエンドを単一の依存ゼロバイナリに組み合わせた唯一のツール。
| trustless | tene | vaulty | agent-secrets | |
|---|---|---|---|---|
| 注入方式 | サブプロセス env + HTTP プロキシ | サブプロセス env | HTTP プロキシ + MCP | サブプロセス env(lease) |
| 既存バックエンド(pass/Bitwarden) | ✅ | ❌ 独自 vault | ❌ 独自 vault | ❌ 独自 vault |
| 出力脱敏 | ✅ run + proxy | ❌ | ✅ | ❌ |
| DLP(出送信脱敏) | ✅ 統合 | ❌ | 一部(request) | ❌ |
| OAuth トークン管理 | ✅(google/lark, refresh) | ❌ | ❌ | ❌ |
| 依存 | 0(単一バイナリ) | Go static | Go static | Go static |
| ライセンス | MIT | MIT | MIT | MIT |
2026年8月時点の比較。
信頼できる理由
- 321 tests(-race) — 脅威モデルは想定ではなく検証されている
- 外部依存ゼロ — 単一の Go バイナリ。ランタイム不要・デーモン不要(プロキシを使う場合を除く)
- 全リリースが cosign 署名 + SBOM 付き — 自身の完全性を証明できない憑据ツールは、インストールする価値がない
- MIT ライセンス — 読める・監査できる・フォークできる