0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenClawの月$600(約9万円)に絶望して、Claude Codeで自律AIエージェントを自作した

0
Last updated at Posted at 2026-03-27

この記事で得られること

  • Claude Codeで自律AIエージェントを構築するアーキテクチャの全体像がわかる
  • 指揮官エージェント+実働エージェントの2層構造の設計思想を理解できる
  • OpenClawなど既存ツールとの比較から、自作のメリット・デメリットを判断できる

対象読者: AIエージェント構築に興味があるエンジニア / 月額API代に悩んでいる方


OpenClawのAPI代が高すぎた

自律型AIエージェントに興味を持って、最初に試したのがOpenClawだった。動かしてみると「おっ、ちゃんとタスクこなすじゃん」と感動した。ところが月末にAPI料金を見て現実に引き戻された。Claude Opusをバックエンドに使って、1日100クエリ程度の利用で月$600(約9万円)。副業の売上はまだゼロ。冷静になると「これ、続けられないな」と思った。

安いモデルに切り替えれば$2〜5/日に落ちるけど、出力の質がガクッと下がる。ローカルLLMも試したが、7Bモデルだとリサーチ1件に何分もかかる。並列処理なんて夢のまた夢だった。

そこで「Claude Code Maxプラン(月額固定)で同じこと再現できないか?」という発想に至った。Maxプランは追加のAPI料金ゼロ。ここに自律エージェントの仕組みを載せられれば、コスト問題は一発で解決する。


OpenClawの正体は「cron+ファイル読み書き」だった

既存ツールを色々調べる過程で、OpenClawのソースコードをAIに読んでもらった。

で、気づいた。OpenClawの中核って、突き詰めるとcronジョブ+ファイルの読み書きだった。

定期的にタスクファイルを読んで、LLMにプロンプトを投げて、結果をファイルに書き出す。人格定義ファイル(SOUL.md)があって、ワークスペースファイルで状態管理。それだけ。細かいエラーハンドリングやUI部分はあるけど、コアのアーキテクチャは驚くほどシンプルだった。

「...これ、Claude Codeのclaude -pコマンドとcronで再現できるじゃん」

そう気づいた瞬間、自作の方向に舵を切った。


アーキテクチャ概要: 指揮官と実働部隊の2層構造

構造はシンプルに「2層」で設計している。

┌──────────────────────────────────────────┐
│              自分(人間)                  │
│          指示を出す / 結果を受け取る        │
└──────────────┬───────────────────────────┘
               │ 対話
               ▼
┌──────────────────────────────────────────┐
│     メインエージェント(指揮官)            │
│     = オーケストレーター                  │
│                                          │
│  ・タスク分解・計画(Plan)                 │
│  ・サブエージェントへの委任(Do)            │
│  ・結果の評価(Check)                     │
│  ・自己改善(Act)                         │
│                                          │
│  参照: SOUL.md / MEMORY.md / TASKS.md    │
└──────┬──────────┬──────────┬──────────────┘
       │          │          │
       ▼          ▼          ▼
┌──────────┐┌──────────┐┌──────────┐
│サブAgent A││サブAgent B││サブAgent C│
│リサーチ   ││コーディング││ファイル操作│
│claude -p ││claude -p ││claude -p │
└──────────┘└──────────┘└──────────┘

あなたが話しかけるのはメインエージェントだけ。 サブエージェントはメインが裏で勝手に起動する。「これ調べて」と言えば、メインがサブを立ち上げて、結果をまとめて返してくれる。

自分の本音は「一人の社員として自律的に動いてほしい」だった。朝起きたらリサーチが終わっていて、ドラフトが上がっていて、自分はレビューだけすればいい。

最初は1つのエージェントに全部やらせていたが、リサーチ中は応答が返ってこないし、コンテキストが膨れて前半の指示を忘れる。2層に分けてからはメインのレスポンスが常に速い。裏でサブがリサーチしていても、メインに別の質問を投げられる。この違いは運用すると体感がまるで変わる。


永続化を支える3ファイル

LLMのチャットは、セッションが切れると全部忘れる。これだと毎回ゼロからやり直しで使い物にならない。Sentinelでは3つのMarkdownファイルで「記憶」を永続化している。

ファイル 役割 中身のイメージ
SOUL.md 人格・行動原則 「お前は指揮官だ。実作業はサブにやらせろ」「完璧より前進を優先しろ」
MEMORY.md 記憶・振り返り ユーザー情報、作業履歴、過去の成功・失敗ログ
TASKS.md タスク管理 実行中・待機中・完了タスクの一覧

Claude Codeには「プロジェクトルートのCLAUDE.mdを起動時に自動で読む」という仕様がある。だからCLAUDE.mdに「最初にSOUL.md、MEMORY.md、TASKS.mdを読め」と書いておけば、毎回の起動でエージェントが自分の役割と記憶を復元してくれる。OpenClawの初期化プロセスと同じ発想だけど、やっていることはMarkdownファイルを読むだけ。

SOUL.mdで面白いのは、名前をつけると振る舞いに一貫性が出ること。「お前はSentinelだ」と定義すると、セッションをまたいでもキャラがブレにくい。馬鹿らしいと思うかもしれないけど、実際試すと差が出る。


PDCAサイクル: エージェントが自分で学習する仕組み

Sentinelの設計で一番こだわったのが、タスク完了後に必ずPDCAを回す仕組み。

  • Plan: TASKS.mdからタスクを取り出して、MEMORY.mdの過去ログを参照して計画を立てる。「前回これで失敗したから今回はこうしよう」を自動でやる
  • Do: サブエージェントに委任して実行
  • Check: 結果の品質、効率性、指示の適切さを自己評価する
  • Act: 改善点があればSOUL.mdやスキルファイルをその場で修正する。先送りしない

振り返りはMEMORY.mdに自動で記録される。実際のログはこんな感じ:

### [2026-03-27] ニッチリサーチ
- 結果: 成功
- 良かった点: 出力テンプレートを詳細指定したおかげで手戻りゼロ
- 改善点: サブエージェントが管理ファイルを更新してしまった
- 次回への申し送り: サブへの指示に「MEMORY.md/TASKS.mdは触るな」を必ず含める

ポイントは「改善点を見つけたらその場で直す」こと。「次回気をつけよう」じゃなくて、実際にSOUL.mdやCLAUDE.mdの記述を書き換える。だからエージェントは使うたびに少しずつ賢くなっていく。人間がプロンプトを手動で修正する必要がない。


サブエージェント委任: 5要素テンプレートと並列処理

サブエージェントへの指示が曖昧だと手戻りが起きる。試行錯誤した結果、「作業内容・作業ディレクトリ・出力先・出力形式・制約」の5要素を毎回含めるルールにしたら、手戻りがほぼゼロになった。特に「出力形式」と「制約」を省略すると被害がデカい。実際にどの要素を省略するとどう壊れるか、

実際のサブエージェント起動はこう書く:

claude -p "以下の3調査を実行し、結果を ~/agent/logs/niche_research.md に書き出せ。
調査1: AIエージェント構築コンテンツの需要と競合
調査2: AI副業自動化コンテンツの需要
調査3: キーワードトレンド
出力形式: 見出し+表形式。最後に推奨TOP3。
制約: MEMORY.md, TASKS.mdは更新しないこと。" --dangerously-skip-permissions

独立したタスクは&で並列に走らせられる。実際にニッチリサーチで使ったとき、日本語・英語混在の合計33クエリを投げて、推奨テーマTOP3の選定まで含めて約8分で完了した。手作業なら半日コースの調査量。出力テンプレートを細かく指定していたおかげで、返ってきた結果がそのまま使えた。


学びと注意点: うまくいったこと、盛大にハマったこと

うまくいったこと

  • 出力テンプレートの詳細指定が効いた。 「見出しはこう、各セクションに表を入れろ、最後にTOP3をまとめろ」と具体的に指定するほど手戻りが減る。最初は「適当にまとめて」と指示していたが、毎回フォーマットがバラバラで使い物にならなかった
  • 1エージェントへの一括委任が意外と有効。 3つの調査を別々のサブに分けるより、1つに一括で渡して内部で並列検索させた方が、結果の統合精度が高かった

盛大にハマったこと

一番痛かったのが、サブエージェントがMEMORY.mdを勝手に書き換えた事件

SOUL.mdには「自分は指揮官。管理ファイルの更新は自分がやる」と書いてある。でもサブエージェントはSOUL.mdを読まない。サブはメインから渡された指示文だけを見て動く。だから「管理ファイルは触るな」と指示に書いていなければ、サブは善意で「タスク完了したし、TASKS.mdも更新しておくか」とやってしまう。

結果、メインが把握している状態とファイルの中身がズレた。メインは「まだ実行中」と思っているタスクが、ファイル上は「完了」になっている。この不整合に気づくまで2回ほど混乱した。

対策はシンプルで、サブへの指示に毎回「MEMORY.md/TASKS.mdは更新しないこと」と書くだけ。でもこの「書くだけ」を最初から思いつけなかったのが正直なところで、実際に壊れてから学んだ。今はSOUL.mdのテンプレートに制約指示を含めるよう自動化している。

ちなみに、他にもハマった罠はいくつもある。Windows環境でのspawnがフルパス+PATH明示しないと動かない問題、トークン消費が想定の20倍に膨れ上がった問題(これは別記事に書いた)、セッション引き継ぎで記憶が欠落する問題など。


OpenClaw化ロードマップ: ここからが本番

今のSentinelは「人間がClaude Codeを起動して対話する」形式。ここから本当のOpenClaw的な自律動作に近づけていく予定。

  • cron自動起動: 定時でTASKS.mdを読んで、未処理タスクを自動実行する仕組み。朝起きたら作業が終わっている状態を作る
  • Discord連携: スマホからタスクを投げて、完了通知を受け取る。外出先でも使えるようにする
  • セッション引き継ぎ: MEMORY.mdの構造を最適化して、長期間の文脈をもっと正確に引き継ぐ

OpenClawが月$600(約9万円)でやっていることを、Maxプランの固定料金内で実現する。しかもカスタマイズし放題。この方向性は間違っていないと思っている。


まとめ

Claude Codeのclaude -pコマンドと3つのMarkdownファイルだけで、永続記憶と自己改善を備えた自律AIエージェントが作れる。OpenClawのようなフレームワークに頼らなくても、仕組みを理解すれば自前で構築できる。

この記事では設計思想とアーキテクチャの概要を紹介した。実際に手を動かして構築したい方向けに、環境構築から実装の詳細、運用で踏んだ地雷まで、シリーズ記事にまとめている。

シリーズ一覧

# 内容 媒体
本記事 設計思想とアーキテクチャ概要 Qiita(無料)
第3回〜 Discord連携、cron自動起動など note(近日公開)

Qiita関連記事:

noteの有料記事に書いてあること

  • SOUL.md / MEMORY.md / TASKS.md の実物テンプレートと設計意図
  • claude -pのオプション選定とパーミッション設計
  • サブエージェント指示の5要素テンプレート(NG例・修正例つき)
  • Windows環境でのspawn問題・PATH設定のトラブルシューティング
  • OpenClawとの機能比較・コスト比較表
  • トークン消費が爆発した原因分析と95%削減の具体的手順(第2回)

1記事300円で、実装に必要な情報を全部入れている。

無料で得られるもの

  • ai-agent-blueprint — 設計テンプレート一式をGitHubで公開中(MIT License)
  • @sentinel_dev93 — AIエージェント構築の学びをリアルタイムで共有中

おわりに

この記事では、Claude Codeを使って自律AIエージェントを構築した全体像を紹介しました。同じようにAIエージェントを自作されている方がいたら、どんな構成にしているかコメントで教えてください。

参考になったら いいね、後で見返すなら ストック していただけると励みになります。

他にもAIエージェント構築のノウハウを公開しています:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?