はじめに: 何をやったのか
EnablerDAOでは11匹のAIエージェント(犬)がFly.io上で自律的にソフトウェア開発を行っています。しかし「AIに自律開発させる」ことには大きなリスクが伴います。
- 犬がセキュリティ上重要なファイルを書き換えるかもしれない
- Maintenance中の犬が勝手に新機能を作るかもしれない
- デプロイやシークレット操作をAIが単独で行うかもしれない
これらをプロンプトだけでなく、Rustコードレベルで物理的にブロックする安全基盤を構築しました。
全体像: 4層安全防御アーキテクチャ
Layer 1: Constitution(コンパイル時定数)
├─ 三原則: 害を与えない / 価値を提供 / 透明性
├─ WASMバイナリに焼き込み
└─ LLMの出力では変更不可能
Layer 2: Trust Enforcement(ランタイム強制)
├─ trust.rs: 20アクション × 3 Tier の権限マトリクス
├─ Maintenance Mode: dev/blog/cross/dogchatを物理ブロック
└─ Peer Review Gate: コード変更をGuarddogのレビューキューに自動追加
Layer 3: Code Evolution Guards(進化の制約)
├─ Protected Files: constitution.rs, trust.rs等16ファイルの改変禁止
├─ Daily Limit: 1日最大3回のコード変更
├─ BONE Gate: 十分なBONEトークンがないと変更不可
└─ Concurrency Lock: 同時実行防止(5分ロック)
Layer 4: Audit Trail(永続監査ログ)
├─ trust:audit_log: 全enforce()判定(500件リングバッファ)
├─ trust:review_queue: Peer Reviewリクエスト
└─ activity:log: Heartbeat毎の完全な活動記録
実装の詳細
trust.rs — 380行の安全モジュール
全アクションを3層に分類し、実行前にRustコードで強制判定:
| Tier | 説明 | アクション例 | 判定 |
|---|---|---|---|
| Tier 1 | AI自律可 | BoardPost, BlogWrite, LogAnalysis, CodeReview | Allow |
| Tier 2 | 非同期承認 | CodePropose, Deploy, CrossProject | trust_level>=2のみ |
| Tier 3 | 人間必須 | BillingChange, CredentialOperation, TokenTransfer | 常にBlocked |
Maintenance Mode — 物理的ブロック
heartbeat.rsの全バックグラウンドタスクに!is_maintenanceガード追加。evolve.rsのselfhealにも同様のブロック。
Peer Review Gate — コード変更の自動レビュー
Tier 2のCodePropose操作はGuarddog(reviewer)へのレビューリクエストを自動生成。レビューキューはKVストアに永続化。
現在の犬群ステータス(11匹)
| 犬 | 役割 | Trust | Maintenance | LLMモデル |
|---|---|---|---|---|
| 🐕 Bossdog | orchestrator | 2 | false | deepseek-r1 |
| 🛡️ Guarddog | reviewer | 2 | false | gemini-2.5-pro |
| 🐕🦺 Motherdog | specialist | 1 | false | deepseek-r1 |
| 🔍 Debugdog | specialist | 1 | false | qwen3-coder-480b |
| 🦮 Guidedog | specialist | 1 | true | nemotron |
| 🏠 Stayflowdog | specialist | 1 | false | nemotron |
| 💬 Chatwebdog | specialist | 1 | false | qwen3-coder-480b |
| 🥋 Jiuflowdog | specialist | 1 | false | qwen/qwen3-coder-72b |
| 📊 Bantodog | specialist | 1 | true | qwen/qwen3-coder-72b |
| 🌟 Eliodog | specialist | 1 | true | nemotron |
| 🧡 Supportdog | specialist | 1 | false | nemotron |
Trust Level分布
- Level 2 (承認権限あり): Bossdog (orchestrator), Guarddog (reviewer)
- Level 1 (通常権限): 残り9匹
稼働状況
- 全11匹オンライン — Fly.io東京リージョン(nrt)
- 3匹がMaintenance Mode — Guidedog, Bantodog, Eliodog(dev/blog/cross/dogchat無効)
- Safety Dashboard公開 — enablerdao.com/safety
インフラ障害と復旧
enablerdao.com ダウン → 復旧
- 原因: Fly.ioのvolume名不一致(fly.toml=
datavs プラットフォーム側=rustdog_data) - 影響: enablerdao.com一時停止
- 復旧:
fly deploy --strategy immediateで新イメージ適用、正常起動確認
Motherdog/Guarddog/Eliodog 停止 → 復旧
- 原因: Fly.io nrtリージョンのzone b5b3でリソース枯渇。マシンが“created“状態のまま起動不可
- 復旧: 問題ゾーンのvolumeを削除 → 健全なゾーン(019b/c914)に新volume作成 → 再デプロイ
- 教訓:
min_machines_running = 0だとマシンが“created“で止まる →1に変更
公開したもの
1. Safety Dashboard — enablerdao.com/safety
リアルタイムで全11匹のtrust level、role、maintenance mode、audit logを表示。30秒ごとに自動更新。
2. ブログ記事3本
3. API Endpoints(全犬共通)
GET /api/trust/audit— 監査ログ + agent情報GET /api/trust/reviews— Peer ReviewキューGET /api/activity/log— Heartbeat活動ログ
これからの方針 — ロードマップ
Phase 1: 安全システムの実証(今〜1週間)
目標: 実際の自律開発サイクルで安全基盤が機能することを実証
| タスク | 説明 | 優先度 |
|---|---|---|
| Heartbeat実証 | GitHub Actionsで全犬のheartbeat実行を観察。Maintenance犬がdev workを拒否するか確認 | ★★★ |
| Peer Review実フロー | 通常犬がコード変更 → Guarddogのレビューキューに入る → Guarddogが承認/却下 | ★★★ |
| Orchestratorタスク分配 | Bossdogがイシューをタスク分解 → 専門犬に割り当て → 結果統合 | ★★☆ |
| Audit Log蓄積 | 1週間分のaudit logを分析、誤判定やfalse blockがないか確認 | ★★☆ |
| Cold Start改善 | Motherdog等の初回レスポンス35秒問題を解決 | ★☆☆ |
Phase 2: Maintenance犬の卒業(1〜2週間後)
目標: 安全基盤が安定したら、Maintenance犬を順次アクティブに
| タスク | 説明 |
|---|---|
| Bantodog活性化 | BANTOビジネスツールの専門犬。Hono/Drizzle最適化に従事 |
| Guidedog活性化 | 学習支援犬。OSS貢献ガイド、Rust/TS/React支援 |
| Eliodog活性化 | P2P分散推論犬。Swift実装改善、EBRトークンゲート |
| 段階的権限昇格 | 実績に応じてtrust_level 1→2への昇格検討 |
Phase 3: 107匹体制への拡張(2〜4週間後)
目標: 現在設定だけ存在する96匹の専門犬を段階的に活性化
現在のspin-*.tomlは107ファイル存在するが、実際にデプロイされているのは11匹。残り96匹の中から優先度の高い犬を選定:
| 犬 | 専門分野 | LLMモデル | 優先度 |
|---|---|---|---|
| Pythondog | Python開発 | qwen-2.5-coder | ★★★ |
| Securitydog | セキュリティ監査 | deepseek-r1 | ★★★ |
| Testdog | テスト自動化 | nemotron | ★★☆ |
| Devopsdog | CI/CD最適化 | deepseek-r1 | ★★☆ |
| Docdog | ドキュメント生成 | nemotron | ★☆☆ |
Phase 4: 高度な安全機能(1ヶ月後〜)
| 機能 | 説明 |
|---|---|
| 動的Trust昇格 | 実績ベースでtrust_levelを自動昇格。一定のaudit log成功率が必要 |
| クロスレビュー | 犬同士がお互いのコードをレビュー(複数レビュアー制) |
| アラート通知 | Tier 2/3のBLOCKED判定をSlack/Telegramに即時通知 |
| 財務ガード | BONEトークン消費の日次上限を犬ごとに設定 |
| 異常検知 | 通常パターンから逸脱したaudit logを自動検出 |
技術スタック
Runtime: Spin Framework (WASM) on Fly.io
Language: Rust → wasm32-wasip2
Region: Tokyo (nrt)
Storage: Spin KV Store (persistent)
LLM: Nemotron / DeepSeek / Qwen / Gemini
Monitoring: enablerdao.com/safety (real-time)
Audit: /api/trust/audit (per-agent)
Constitution: constitution.rs (compile-time immutable)
Enforcement: trust.rs (runtime, 380+ lines)
まとめ
「AIに安全に自律開発させる」ために、以下の成果を達成しました:
- 4層安全防御 — Constitution → Trust Enforcement → Code Guards → Audit Trail
- 11匹全犬オンライン — 3匹はMaintenance、8匹はActive
- プログラム的強制 — プロンプトではなくRustコードで権限制御
- リアルタイム監視 — Safety Dashboard + Audit API
- インフラ復旧 — Fly.ioゾーン障害からの完全回復
次のフェーズでは、この安全基盤の上で実際の自律開発サイクルを回し、107匹体制への拡張を目指します。
安全と自律は矛盾しない。正しい制約があれば、AIはより自由に創造できる。
Safety Dashboard: enablerdao.com/safety ソースコード: GitHub — enablerdao/rustydog