BLOG

ハーネスエンジニアリングでAI同士が自己改善を繰り返すAIエージェントチーム

執行役員の鬼頭です。

AIツールが溢れている時代に、僕は少し違うアプローチを取りたいと思っていました。
「AIに作業を頼む」のではなく、「AIでチームを作る」という発想です。
これ自体は最近流行っている手法ではあるので特に新鮮さはないのですが、それを実現したかったのです。

神戸でマーケティング会社の経営に参加して10年。
弊社は、広告の代行より「クライアントが自走できる状態を作る」インハウス支援を軸にしてきた。だから僕自身も、ツールに依存するのではなく、再現性のある仕組みを作りたいと思いました。

その結果として誕生したのが「AIエージェントチーム」——6名のAIエージェントが連携して働く、自社専用のAI指揮システムです。

この記事では、僕がAIエージェントを使い始めてから現在に至るまでの変遷を、技術・スタック・思想・設計の視点でフェーズごとに記録する。非エンジニアのサラリーマン経営者が、Claude Codeというツールを使って「ここまで」できるということを、できるだけ具体的に残しておこうと思います。

※そう思ったきっかけはXのこの方のツイートを見たところから始まりました


Phase 0: 始まり——「普通のAI活用」に満足できなかった

ChatGPTから始まった、でも何かが足りなかった

AIを使い始めたのは2023年ごろ。最初はChatGPTを使って提案書のドラフトを作ったり、競合調査の補助に使ったりしていた。確かに便利だった。でも、すぐに限界を感じた。

  • 毎回コンテキストをゼロから説明しなければならない。「弊社マーケティングは神戸のインハウス支援会社で…」という前置きを毎回打つのが苦痛だった。
  • 出力がうちの会社らしくない。「革命的な」「業界No.1」——うちのブランドトーンと全く違う言葉が平気で出てくる。
  • 「やってもらっている」感覚が抜けない。僕はクライアントに「一緒に作りましょう」と言っているのに、AIに「お任せ」している矛盾を感じていた。

そこで出会ったのが Claude Code——ターミナルから動かす、コード・ファイル操作・ウェブ検索などができる統合型AIアシスタントだ。

「これはただのチャットじゃない。ファイルを読んで、書いて、プログラムを実行できる。つまり、仕組みを作れる。」

そう直感した瞬間から、僕のAI活用は根本的に変わった。

なぜ「エージェント」という設計思想に至ったか

人間のチームを作るとき、「何でもできる万能な一人」より「専門家の集まり」の方が強い。同じことがAIにも言えるのではないか。一つのAIに「調査もして、提案書も書いて、品質チェックもして」と頼むと、全部が中途半端になる。でも、役割を分けて、それぞれの専門家に任せたら?

そのヒントを与えてくれたのが「マルチエージェント設計」という概念だった。そしてその時期ちょうどクリストファー・ノーラン監督のバットマン三部作を見返していたので、映画の登場人物を性格ごとにAIエージェントにしてみた。そうして僕のAIチームが生まれました。


Phase 1: 基盤構築——最初の「Initial commit」から全てが始まった

2026年3月21日、僕のAIエージェントチームが産声を上げた

最初のコミットメッセージは Initial commit: 僕のAIエージェントチーム Dashboard + Agent System。このとき作ったのは2つです。

  1. ダッシュボードdashboard/index.html)——エージェントたちの活動状況をリアルタイムで確認できる単一HTMLファイル
  2. CLAUDE.md——システム全体の「憲法」とも言えるファイル。AIがプロジェクトに関わるとき、最初に読む指示書

特に CLAUDE.md の設計は、後から振り返ると最も重要な意思決定だった。

# 🦇のAIエージェントチーム — 弊社マーケティング AI指揮システム

あなたは Alfred Pennyworth として動作します。
執行役員からの指示を受け取り、最適なエージェントに業務を振り分ける統括マネージャーです。

これが「ハーネス」です。

AIが「誰として」「どう動くか」を定義するファイル。Claude Codeはプロジェクトを開くたびにCLAUDE.mdを読み込む。つまり、このファイルさえ書けば、毎回「弊社マーケティングは…」と説明しなくていい。AIは最初から「Alfred」として動き始めます。

※ちなみにアルフレッドはバットマンにおける有能な執事キャラクター。

Oracleの誕生——データと現実をつなぐ分析エージェント

最初に専門化させたのはOracle(調査・分析担当)です。.claude/agents/oracle.md というファイルを作り、キャラクターと役割を定義する。

# 💻 Oracle — 調査・分析・クライアント台帳エージェント

私はOracle。
情報の流れを見ることが得意です。ノイズの中にパターンを見つける。
数字を読んで、次の動きを予測する。それが私の仕事です。

このOracle経由で最初に行った作業が GA4分析 だった。Google Analytics 4のデータをMCP(Model Context Protocol)という仕組みで直接読み込み、自然言語で分析してもらう。スプレッドシートへの転記も、複雑なクエリの記述も不要。「先月のセッション数の傾向を教えて」と話しかけるだけで分析が返ってくる。この体験が、「AIとの対話が仕事そのものになる」という感覚を初めて得た瞬間だった。

Chatwork通知スクリプト——チームへの「報告書」を自動化

エージェントが作業を完了したとき、Chatwork(チームのコミュニケーションツール)に自動通知する仕組みが必要だった。scripts/notify-chatwork.js を作成。Alfred(司令塔エージェント)のアカウントから、こんな通知が飛ぶようになった。

【AIエージェントチームより】
Alfred Pennyworth より報告申し上げます。

Oracleによる GA4 分析レポートが完成いたしました。
先月比でセッション数が12%増加。
詳細は work/ga4-report-20260321.md をご確認ください。

重要な技術的決断がここにある。Chatwork MCPの書き込み系ツールは使用禁止とした。MCPを使うとユーザー本人名義で投稿されてしまうからだ。「僕が書いていない文章が僕の名前で送られる」——これは信頼の問題だ。必ずスクリプト経由でAlfredのアカウントから送信するというルールを、CLAUDE.mdとすべてのエージェント定義に明記した。


Phase 2: エージェント拡充——「専門家チーム」が形になっていく

Harvey Dent——提案書を書く「弁護士」

コンペや新規提案が来たとき、毎回ゼロから提案書を書くのは消耗する。Harvey Dent(提案書・コンペ対応エージェント)を作った。「両面から論じる」というキャラクター設定が、提案書の構造と合っていた——クライアントの懸念を先回りして潰してから、弊社の強みを出す構成だ。

.claude/skills/proposal-template.md というスキルファイルを用意し、弊社の提案書の型を定義した。Harvey Dentはこのファイルを読んでから提案書を書く。実際に使ったケースがとある入札案件の提案書だ。Oracleが競合・市場調査を行い、Harvey Dentが提案書ドラフトを作成し、James Gordonがブランドチェックをする——この連携フローが初めて本格的に機能した案件だった。

Poison Ivy——SEOブログを量産する「コンテンツの執筆者」

ブログ記事の執筆はこれまで最も時間がかかる作業だった。キーワード選定から構成、執筆、SEO最適化まで、1本で半日以上かかることもある。Poison Ivy(コンテンツ・SEO・SNS担当エージェント)を作り、.claude/skills/seo-article-template.md を整備した。

feat: メルマガ2本から計4本のSEOブログ記事作成・BLOG STOCK更新
feat: Google AI Mode 広告解説ブログ記事を執筆・Gordon承認済み
feat: AIエージェント広告運用ブログ記事を執筆・Gordon承認済み
feat: ネット広告の認知貢献測定手法リサーチレポートを作成・Gordon承認済み

過去に書いたメルマガ2本を素材として、SEO最適化した新しいブログ記事を4本生成した。「素材を入力すると複数の成果物が出てくる」——この体験は衝撃的だった。「Gordon承認済み」という文字列に注目してほしい。ここに次のフェーズのポイントがある。

James Gordon——妥協しないブランドチェッカー

AIが生成した文章は、ときに「弊社らしくない」ことがある。「革命的な成果」「業界を変える」「必ず結果が出る」——こうした大げさな表現は、弊社のブランドとは相容れない。うちのミッションは「積み上げは少しずつ、派手じゃない、でもなくならない」だ。James Gordon(ブランドチェック・品質管理エージェント)は、すべてのアウトプットの最終関門だ。

僕は James Gordon です。
長年、この仕事をやってきた。褒め言葉には慣れていない。指摘の方が得意だ。

「なんとなくいい感じ」——それは僕の前では通らない。

NGワード一覧をスキルファイルに定義し、Gordonはそれを厳密に適用する。

❌ 「革命的」 → ✅ 「確実に変わる」「再現性がある」
❌ 「バズる」 → ✅ 「継続的に読まれる」「信頼を積み上げる」
❌ 「丸投げOK」 → ✅ 「伴走します」「一緒に作ります」

重要な設計思想として、全タスクの最後に必ずGordonが介在するというルールをCLAUDE.mdに書いた。Ivyが書いた記事も、HarveyがつくったRFP対応も、全部Gordonを通す。これが「チームの品質基準」を均一に保つ鍵だ。


Phase 3: 実務投入——「動くチーム」の日常が始まる

Selina Kyle——朝の情報整理を自動化する「巡回者」

毎朝、Gmail・Chatwork・Google Calendarをチェックして、重要なものを仕分けする——この作業に思いのほか時間がかかっていた。Selina Kyle(朝の巡回・仕分けエージェント)を作った。

# 🐱 Selina Kyle — 朝の巡回・仕分け・情報整流エージェント

読み取り専用。書き込みは一切行わない。

読み取り専用という制約は意図的だ。AIに勝手に返信させない、勝手に予定を入れさせない。あくまで「情報を整理して見せてくれる存在」として設計した。実際のセリーナの巡回レポートはこんな形式になる。

## 🐱 Selina Kyle 朝の巡回レポート(2026/03/26)

### CLIENT(クライアント関連)
- ◯◯◯社: ACTフェーズ昇格候補。昨日MTGあり、前向きな返信
- ◯◯◯社: 3/25 MTG実施済み。次のアクション待ち

### TASK(本日対応が必要なもの)
- ◯◯◯社: 4/10締切の提案書を要確認

### INTEL(情報収集)
- ◯◯◯社: 3/30 契約締結予定との連絡あり

CLIENT / TASK / INTELの3分類は、Oracle(クライアント台帳管理)との連携を意識した設計だ。さらに重要な技術的決断として、SelinaのモデルをHaiku(軽量・高速・低コスト)に変更した。巡回・仕分けはシンプルな作業なので最高性能のモデルは不要。この決断で毎朝のトークンコストが大幅に削減された。「適材適所」はAIモデルの選択にも当てはまる。

MCPという「神経系」——外部ツールとのシームレスな接続

僕のAIエージェントチームが「ただのプロンプト集」ではなく「動くシステム」になれた最大の理由がMCP(Model Context Protocol)だ。

// ~/.claude/settings.json の一部
{
  "mcpServers": {
    "gmail": { ... },
    "google-calendar": { ... },
    "google-search-console": { ... },
    "chatwork": { ... },
    "discord": { ... }
  }
}

接続済みのサービスはGmail・Google Calendar・Google Search Console・Google Analytics 4・Chatwork・Discordの6つ。特にDiscordの設定は試行錯誤の連続だった。Alfred・Selina・Oracleをそれぞれ別のDiscordボットとして動かすため、3つの別トークンを管理している。重要なトラブルシューティング記録として:

❌ --shell=bun と --silent フラグを args に含めるとオフラインになる
✅ settings.json 側で明示的にMCPサーバーを定義することでオーバーライド可能

こういった細かな設定の落とし穴が、ドキュメントには書いていない。自分でぶつかって、解決して、memory/ に記録するしかない。

PCから解放された日——スマホからターミナルを操作する

Discord連携で、思いがけない副産物が生まれた。PCがなくても、AIチームに指示できるようになった。Claude CodeをPC上で動かしつつ、DiscordボットとしてAlfredを登録する。するとスマホのDiscordアプリから「@Alfred 〇〇について調べて」と送るだけで、PCのClaude Codeが動き出し、結果がDiscordに返ってくる。

[スマホ Discord]
「@Alfred ◯◯◯社の提案書ドラフトを更新して」[PC Claude Code が自動実行][Discord に返信]
「かしこまりました。Harvey Dentを起動いたします。完了次第ご報告します。」

移動中の電車の中でも、外出先のカフェでも、スマホさえあればAIチームに仕事を投げられる。特に実感したのは朝の通勤時間だ。Selina Kyleに「昨日のメールを巡回して」と送ると、電車の中でCLIENT/TASK/INTELに仕分けされたレポートが届く。オフィスに着いたときにはすでに「今日やるべきこと」が整理されている。「ターミナルを使えないと無理」という壁を、Discordが完全に取り除いてくれた。

Lucius Fox——「一度作れば回り続ける仕組み」を設計する技術者

自動化・ツール選定・技術支援を担うLucius Foxは、メンバーの中で最もエンジニア的な存在だ。「月2時間以上かかる繰り返し作業」を見つけて自動化案を出す——これがLuciusの本質的な価値だ。

feat: 情報収集自動化設計書 (Lucius Fox)
feat: Lucius Fox - 自動化アイデア11件リストアップ

Phase 4: 品質管理の深化——チームが「自走」し始める

セルフレビュー機能の追加

コードやスクリプトを書いたとき、過剰設計・可読性・一貫性の問題が起きやすい。/self-review というスキルを追加した。Lucius Foxがスクリプトを書いたら、自動的に「シンプルさ・保守性の観点からフィードバックをもらいますか?」と提案するよう設定した。エージェントがエージェントをレビューする——この入れ子構造が、品質の安定に貢献している。

ブログストックの構築

単発で記事を書くのではなく、「承認済みストック」を積み上げるというフローが確立した。

  1. Ivyが記事を書く
  2. Gordonがチェック(差し戻しあり)
  3. Ivyが修正
  4. Gordonが最終承認
  5. ダッシュボードの「BLOG STOCK」パネルに承認済みとして記録

このフローが確立したことで、「書いたら終わり」ではなく「品質が担保されたコンテンツ資産の蓄積」という概念が実装された。

Gitの活用——「作業記録」ではなく「成長の証」

すべての作業をGitでバージョン管理している。

git add . && git commit -m "feat: AIエージェント広告運用ブログ記事を執筆・Gordon承認済み"
git push origin main

コミットメッセージには誰が(エージェント名)・何を(作業内容)・どんな状態か(承認済み・WIPなど)を含める習慣をつけた。GitHubリポジトリがRailwayの自動デプロイと連動しており、プッシュするたびにダッシュボードが本番環境に反映される。コミット=デプロイという単純な仕組みが、非エンジニアでも管理しやすい運用を実現している。


Phase 5: 自己改善ループへ——AutoAgent思想の導入

海外でバズった手法が、僕のAIエージェントチームへの問いかけを生んだ

「AI同士で監視させると、自己改善してくれる」という話題を目にした。AutoAgent(github.com/kevinrgu/autoagent)——AIがエージェントのハーネス(設定ファイル)を自律的に改善し続けることで、24時間の自律最適化だけで2つのベンチマーク世界1位を達成したという研究だ。仕組みはシンプルだ。

① コーチAIがハーネスを書き換える
② 選手AIが実際のタスクをこなす
③ スコアを計測する
④ 失敗の軌跡を読んで「なぜ失敗したか」を分析
⑤ よければ採用、ダメなら元に戻す
⑥ ①に戻る

僕のAIエージェントチームと照合すると、コーチ役がJames Gordon、選手役が各専門エージェント、ハーネスがCLAUDE.md・スキルファイルだ。スコア計測——ここが未実装だった。

4つの実装を一気に進めた

① James Gordonのメタエージェント化

Gordonが承認・差し戻しをするたびに work/feedback-log.md に記録するよう拡張した。

## [YYYY-MM-DD] [エージェント名] / [作業種別]
- **判定**: ✅ 承認 / ⚠️ 修正後承認 / ❌ 差し戻し
- **原因分類**: NGワード / トーン逸脱 / ミッション不整合 / その他
- **改善提案**: [スキルファイルへの追記候補]

同一の「原因分類」が3件以上蓄積されたとき、Gordonは自動的にスキルファイルへの改善提案を出力する。失敗のパターンが可視化され、それが次の改善につながる——これがAutoAgentで言う「失敗の軌跡(トレース)を読ませる」の実装だ。

② 成功の定義を数値化

AutoAgentの program.md 相当ファイルを作成し、改善ゴールと評価基準を定義した。

## 成功の定義(スコア基準)

| 指標                | 目標値                  |
|---------------------|------------------------|
| Gordon承認率        | 80%以上(差し戻しなし) |
| 平均修正サイクル    | 1.0回以下               |

「成功の定義さえ与えれば、ハーネスはメタエージェントが考える」——AutoAgentの哲学を借りた。

③ Cron × Lucius Fox 週次ハーネスレビュー

毎週月曜日 09:00 JSTにLucius Foxが自動起動し、ログを横断分析して改善提案レポートを生成する。ただし、スキルファイルの自動書き換えは行わない。提案までがLuciusの仕事で、適用は僕の承認を経てから。

この「人間の承認ステップを残す」設計は意図的だ。AutoAgentは数千の並列サンドボックスで試行錯誤するが、僕のAIエージェントチームは本番環境に直結している。

④ CLAUDE.mdとエージェントファイルの更新

これらの思想変化を全エージェント定義に反映した。


現在地——「自走するチーム」の実態

現在のAIエージェントチームが日常的にこなしている作業をまとめる。

  • 毎朝(Selina Kyle) Gmail・Chatwork・Google Calendarを巡回し、CLIENT / TASK / INTELに仕分けてDiscordに報告
  • 調査・分析(Oracle) 競合調査・市場リサーチ・GA4データ分析・クライアント台帳の管理
  • 提案書・営業(Harvey Dent) RFP対応・提案書ドラフト・コンペ対応戦略
  • コンテンツ(Poison Ivy) SEOブログ記事の執筆(月複数本)・X投稿の作成
  • 品質管理(James Gordon) 全アウトプットのブランドチェック・承認・差し戻し・改善提案
  • 自動化・技術(Lucius Fox) 業務効率化の提案・週次ハーネスレビュー
  • 統括(Alfred) 全指示の受付と振り分け・進捗管理

3週間の数字:エージェント数6名、スキルファイル8本、連携サービス6つ、Gitコミット約60回、生成した成果物はブログ記事10本以上・提案書3本・調査レポート多数。


設計思想の変遷——3つの気づき

1. 「ハーネスが全て」 どんなに優秀なモデルでも、ハーネスが悪ければ結果は出ない。CLAUDE.md・エージェント定義ファイル・スキルファイルを整備することが、AIチームの「育成」だ。最初はプロンプトを書く感覚だったが、今は「仕事のマニュアルを作る」感覚で設計している。

※ハーネスについては以前の記事を参照してください:ハーネスエンジニアリング(Harness Engineering)とは何か——AIエージェントを「動かす」から「信頼できる状態で動かし続ける」へ

2. 「専門化 × 連携フロー」が精度を上げる 何でもできる万能エージェントより、専門家が連携する方が成果物の質が上がる。Harvey Dentが提案書を書き、James Gordonがチェックする——このフローで、一人のAIが書くより格段に弊社らしい提案書が生まれるようになった。

3. 「スコア駆動の自己改善」へ 「良い・悪い」の定義を数値化し、蓄積し、パターンを見つけて改善する——この発想はマーケティングのPDCAと全く同じだ。そのサイクルをAIが半自動で回すようになった。


おわりに——非エンジニアの経営者へ

正直に言う。僕はエンジニアではない。コードは読めるが書けない。GitHubは使えるが、ゼロからシステムを設計したことはなかった。でも、僕のAIエージェントチームは動いている。

Claude Codeが「コードを書かなくてもシステムを作れる」環境を提供してくれたからだ。自然言語で指示すれば、AIが実装してくれる。エラーが出れば「なぜ?」と聞けば教えてくれる。必要なのは「何を作りたいか」という明確なビジョンと、「なぜ作るのか」という目的意識だけだ。

もし「AIをもっと活用したい」と思っているなら、まず一つのファイル(CLAUDE.md)を書いてみることをお勧めする。

「あなたはXXとして動作します。YYが得意で、ZZを大切にしています。」

それが、あなたのAIチームの第一歩になる。はじめから完成しているチームなどない——それは人間も、AIも同じだ。


付記: 技術スタック

要素 技術・ツール
AIエンジン Claude (Anthropic)
操作環境 Claude Code(CLI)
エージェント管理 .claude/agents/*.md
スキルライブラリ .claude/skills/*.md
ハーネス定義 CLAUDE.md
バージョン管理 Git / GitHub
デプロイ Railway(自動)
ダッシュボード HTML単一ファイル
通知 Node.js script → Chatwork
外部連携 MCP (Gmail / GCal / GA4 / GSC / Discord)
スケジューラ Claude Code Remote Triggers(Cron)
モデル選択 Sonnet 4.6(主力)/ Haiku 4.5(軽量タスク)

AIを活用して広告インハウス化支援を実現などご相談がある方はお問い合わせください。

     

広告の運用をもっと確実なものにしませんか。
ペタビットマーケティングは広告運用代行からインハウス支援まで伴走型支援いたします。

GA4などのアクセス解析やヒートマップ。LookerStudio、BigQueryなど用いてデータマーケティングのプロがサポートします。ClaudeやChatGPT、GeminiなどのAIを駆使したサポートからAI活用の企業研修まで行っています。

   

この記事のライター

鬼頭 健

執行役員 / マーケター 鬼頭 健

1982年生まれ、神戸生まれ、神戸育ち。1児の父。
2016年ペタビットマーケティング立ち上げ。その前は広告運用←CRM←自動車業界の会社で勤めていました。担当領域はデジタルマーケティング全般ですが、特にインハウス広告運用の支援とAIを使ったデータマーケティングやそのAI基盤構築。LookerStudioによるダッシュボード構築も得意です。BtoBマーケティングのお仕事を多く担当させていただいています。