※この記事は、個人が自宅のミニPCに構築した自律型AIエージェント環境の設計と運用をまとめたものです。「AIに仕事を任せる仕組み」を、コストを抑えつつ安全に作りたい人向けの実例として書きました。
TL;DR
- 自宅のミニPC(Ryzen 7 7735HS / 24GB / Windows 11)に、複数のAIエージェントを**「会社組織」**として動かしている
- **秘書役のローカルLLM(Gemma2)**が依頼を判断して専門エージェントに振り分け、日々の進行は watcher(PM2)が自動で回す。**Claude Code(Opus)**は対話・ブラウザ操作が要るときだけ起動、最終承認は人間(私)、という役割分担
- チケット駆動 → QA品質ゲート → 自動配置 → 承認 → git commitのパイプラインで、品質を担保しながら半自律で回る
- 機密性の高いデータはローカルLLMで完結させ外部に出さない。全ツール呼び出しをフックで検査するゼロトラスト
- ランニングコストは月約3,400円・消費電力35W(平均約18W)
なぜ作ったのか
「AIに作業を任せたい」と思ったとき、最初はClaudeやAntigravity(Googleのエージェント型AI開発環境)にその都度お願いしていました。でも、
- 毎回コンテキストを説明し直すのが面倒
- 機密を含むデータをクラウドに送りたくない作業がある
- API利用料が積み上がる
- 「言われたことだけやる」ので品質が安定しない
これらを解決するため、人間の会社組織を真似て、役割を持ったエージェントが連携して動く仕組みを自宅PCに作りました。
全体像:AIを「会社」として設計する
ポイントは、1つの万能AIに全部やらせるのではなく、役割を分けて連携させることです。
| 役割 | 担当 | 仕事 |
|---|---|---|
| 受付・振り分け(秘書) | ローカルLLM(Gemma2:2b) | 依頼を判断して専門エージェントへ振り分け+承認後の git commit |
| パイプライン管理 | watcher(PM2で常駐) | 作業中チケットの監視・エージェント実行・QA・段階移動を自動化 |
| 専門エージェント | 各種 | 実作業。多くはローカルで完結(オフライン) |
| 窓口・対話/ブラウザ操作 | Claude Code(Opus) | 人間対応と、対話・ブラウザ操作・Web検索が必要なタスクのときだけ起動 |
| 最終承認 | 人間(私) | 成果物を確認して承認 |
| 裏方 | 監査・鮮度点検・アナリスト | 品質・安全性・改善提案を定期実行 |
ポイントは2つです。
- 判断(軽い処理)はローカルの小型LLMに任せ、難しい処理だけクラウドの高性能モデルを使う(コスト削減の肝)
- 日々のパイプラインは watcher+ローカルLLMが自動で回す。資料作成・OCR・議事録などはClaudeを介さずローカル完結(議事録は完全ローカル)。クラウドのClaudeが起動するのは、ブラウザ操作やWeb検索など対話が要るタスクのときだけで、毎回介入するわけではありません。
仕事の流れ:チケット駆動パイプライン
人間の会社で「依頼書 → 作業 → 検品 → 承認 → 記録」と流れるのと同じことを、フォルダとスクリプトで再現しています。
依頼(Webから)
→ 秘書(Gemma2)が判断・振り分け → チケットを doing/ に作成
→ 専門エージェントが実行
→ QA品質ゲート(成果物を実際に開いて検証)
→ 総務エージェントが成果物を適切なフォルダへ自動配置+索引化
→ waiting/(人間の承認待ち)
→ 承認されたら秘書が git commit
チケットは単なるフォルダ移動で管理しています。
workspace/tickets/
├── doing/ # 作業中(ここで起票して着手)
├── waiting/ # 承認待ち
└── done/ # 完了
失敗したら自分で直す(自己修正ループ)
エージェントの処理が失敗したら、エラーログをそのままAIに渡して原因診断・修正・再実行させています。無限ループを防ぐため上限3回で打ち切り、直らなければ人間に通知します。
品質ゲート(QA)
承認に回す前に、成果物をファイル種別ごとに実際に開いて検証します(xlsx/docx/pdf/jsonを開く、Pythonは構文チェック、など)。「テストを通った状態」になってから人間に回るので、承認がラクになります。
コストを抑える鍵:ローカルLLMで判断を回す
処理を難易度でレベル分けし、軽いものほどローカルで処理します。
| レベル | 処理内容 | 担当 |
|---|---|---|
| L1 | 軽量・判断・分類 | Gemma2(ローカル・無料) |
| L2 | 機密を含む画像/文書のOCR | ローカルのビジョンLLM(無料) |
| L3 | 標準的なコード生成・推論 | クラウドの標準モデル |
| L4 | 最重要の意思決定 | クラウドの最上位モデル |
ほとんどの「振り分け・分類・機密処理」がローカルで完結するので、クラウドAPIの課金は本当に必要なときだけになります。
セキュリティ:AIに権限を渡す前提の「ゼロトラスト」
AIエージェントにファイル操作やコマンド実行を任せる以上、「暴走したらどうするか」を最初に設計する必要があります。
- 全ツール呼び出しをフックで検査:エージェントが何か操作する前に、フックが内容を検査し、危険な操作はブロック、すべてを監査ログに記録する
- 機密はローカル完結:機密性の高い文書・画像・音声の処理はローカルLLMで行い、クラウドへ送らない
-
権限の物理的な遮断:
.envなど秘密情報の読み込みや、機密の外部送信は、設定(permissions)で物理的に禁止 - 破壊的操作の予防:削除の禁止、上書き前のバックアップ、全成果物のGit管理
※具体的な検知ルールや自宅環境の詳細は、攻撃面になり得るのでこの記事では伏せています。考え方だけ共有します。
ナレッジが勝手に貯まる仕組み(Obsidian)
エージェントを動かしっぱなしにすると、知見が散逸します。そこで:
- 会話ログを定期的に自動でWiki化(一定間隔+セッション終了時)
- 概念ノート(MOC)を抽出して相互リンク+要約まで自動生成
- 決定事項は
MEMORY.mdに蓄積し、セッション開始時に文脈を自動復元
これで「前回の続きから」が本当に効くようになり、属人的なメモが勝手に構造化されていきます。
"真似できる粒":CLAUDE.md という発想
このシステムの土台は、AIに渡す「就業規則」=CLAUDE.md です。これはAIエージェント(Claude Code)が毎回読み込む指示書で、ここに
- パスや環境変数の扱い方
- 役割分担とワークフロー
- やってはいけないこと(削除禁止・機密の外部送信禁止 など)
- 成果物の保存ルール
を書いておくと、エージェントが一貫した振る舞いをするようになります。「AIに毎回説明する」のをやめて、規則として一度書く——これが安定運用の第一歩でした。
ハマったところ(正直な失敗談)
きれいに動くまでには事故もありました。
- BIOSのメモリ設定(UMA)をいじってWindowsが起動しなくなった:ローカルLLMにメモリを割り当てようとしてBIOSを変更したら起動不能に。ハード・ファーム設定は安易に触らないこと、を痛感しました
- 小型LLMにJSONを出させると壊れる:Gemma2:2bのような小型モデルは構造化出力が苦手。素直に「見出し+箇条書き」で出させて正規表現でパースする方が安定しました
- ローカルLLMのRAM不足:大きめのモデルはメモリに載りきらず、モデルサイズと実装メモリの兼ね合いの調整が必要でした
ハードウェアとコスト
ハードウェア
| 項目 | 内容 |
|---|---|
| マシン | ミニPC Ryzen 7 7735HS / 24GB / 512GB SSD |
| OS | Windows 11 Pro |
| 消費電力 | 約35W(TDP)/平均約18W・24時間稼働 |
| ローカルLLM | Ollama(Gemma2 など) |
月額コストの内訳
| 項目 | 金額 | 備考 |
|---|---|---|
| クラウドAPI | 約3,000円 | 使用量による。難しい処理のときだけ |
| 電気代 | 約400円 | 平均約18W × 24h × 30日 × 約31円/kWh |
| ローカルLLM | 0円 | Ollamaでローカル実行(無料) |
| 合計 | 約3,400円/月 |
まとめ
- AIエージェントは「1体の万能AI」より「役割を分けた会社組織」として設計すると、品質・コスト・安全性を同時に扱いやすい
- 判断はローカル小型LLM、難所だけクラウドでコストを抑える
- ローカルLLMだけで構成すれば(ブラウザ操作やWeb検索などクラウド依存の処理を使わなければ)完全オフラインでの運用も可能。機密重視・ネット不通でも止まらない環境にできる
- チケット駆動+QA+自己修正ループで、半自律でも品質が安定する
- AIに権限を渡すなら**ゼロトラスト(全操作の検査・ローカル完結)**を最初に設計する
- 土台は
CLAUDE.mdという「AIへの就業規則」
自宅PCとローカルLLM中心でも、ここまで作れます。同じように「AIに仕事を任せたい」人の参考になれば幸いです。質問・ツッコミ歓迎です。
