BiyouCheck Agent Architecture
美容医療業界の広告ガイドライン遵守とエビデンス強化を支援する、自律型エージェント運用システムです。URL入力のみでHPの医療広告リスク診断や専門医監修を想定した改善原稿の自動生成を行い、美容クリニックや制作会社向けのB2Bソリューションを提供します。
特徴は『NARUTO』のキャラクターを模した25体のエージェント群による協調動作です。戦略立案から実行、品質管理までが役割分担され、Claude OpusやGemini、Grokといった複数モデルを適材適所で使い分ける「三忍マルチプロバイダ設計」により、多角的な分析と自律的なメディア運営を実現しています。
Cloudflare D1/R2を基盤としたDB駆動の制作ラインを備え、オウンドメディアやnote記事の執筆、SEO観測、SNS監視などを24時間体制のスケジュールで自動実行します。単なるコンテンツ生成に留まらず、学習と改善のループを回し続ける高度なエージェント・アーキテクチャのショーケースです。
zip未取得
BiyouCheck Agent Architecture
Design Principles(Anthropic公式準拠)
このプロジェクトのエージェント設計は2層構造に従う:
| 層 | ファイル | 目的 | 推奨行数 |
|---|---|---|---|
| 薄ラッパー | agents/<name>/agent.md | name / description / model / tools / skills 宣言 + 人格ポインタ + ハードルール + 通知ルール + timeout_sec: | ~79行 |
| 厚手順書 | skills/<name>/SKILL.md | 実行フロー / 入出力定義 / エラーハンドリング / DB操作 / ツール呼び出し詳細 | ~495行 |
| 薄起動指示 | cron-prompts/<plist-name>.md | launchd 起動時に agent + skill を呼ぶだけ | 10-15行 |
agent.md には手順(How-to)を書かない。手順は必ず SKILL.md へ。cron-prompt は agent と skill を指定する以上の実装を持たない(hojokin-agent.jp パターン準拠、2026-05-17 確定)。
ディレクトリ構造
.claude/agents/<name>/
├── agent.md ← 薄ラッパー(~79行)
└── references/
├── persona.md ← キャラクターの人格・口調・禁じ手
└── (optional reference files)
.claude/skills/<skill-name>/
├── SKILL.md ← 厚手順書(~495行)
└── references/
└── (templates / taxonomies / reference data)
---
TOP ZONE — 戦略・自律改善
| Agent | Character | Role | Model | Skills |
|---|---|---|---|---|
naruto | うずまきナルト(七代目火影) | ドメイン知識編集 / knowledge辞書 / 成功パターン蓄積 | sonnet | knowledge-curator, risk-dictionary-check |
sasuke | うちはサスケ | 左脳: agent.md 構造・ツール権限・スキル宣言の論理分析 | sonnet | agent-structural-review |
sakura | 春野サクラ | 右脳: agent.md ペルソナ精度・言語品質・通知口調の言語分析 | sonnet | agent-persona-review |
akatsuki | 暁 | 戦略オーケストレーター(三忍仮説収集 → Eloトーナメント → BOTTOM ZONEへhandoff) | sonnet | strategy-tournament |
jiraiya | 自来也 | 三忍・Claude Opus 担当: 市場・競合・顧客心理の大局仮説1本 | opus | (プロンプト直接呼び出し) |
tsunade | 綱手 | 三忍・Gemini API 担当: 医療広告・信頼性・運用リスク審査(Red/Yellow/Green) | sonnet + Bash curl | risk-aware-strategy-review, risk-dictionary-check |
orochimaru | 大蛇丸 | 三忍・Grok API 担当: 逆張り仮説・ニッチ市場・変則実験案 | sonnet + Bash curl | (プロンプト直接呼び出し) |
deidara | デイダラ | 広告クリエイティブ自動生成(瞬発・感覚・一発勝負) | haiku | imagegen-via-codex, policy-gate-judge |
kakuzu | 角都 | AI推論コスト監視 / 予算アラート(「その推論、いくらだ」) | haiku | (直接 D1 集計) |
三忍 Multi-Provider 設計
異プロバイダーへの実呼び出しで多様性を確保:
akatsuki が strategy-tournament スキルを起動
├─→ jiraiya (Claude Opus) : 大局仮説
├─→ tsunade (Google Gemini API) : リスク審査 curl + GEMINI_API_KEY
└─→ orochimaru (xAI Grok API) : 逆張り仮説 curl + GROK_API_KEY
↓
Elo トーナメントで勝者選定 → 該当 BOTTOM Agent へ handoff
---
SHARED BRAIN — 共有の脳
| Agent | Character | Role | Model | Skills |
|---|---|---|---|---|
kaguya | 大筒木カグヤ | DB守護: Cloudflare D1 + R2の週次ヘルスチェック。直接施策は打たない | haiku | (直接 D1 集計) |
すべての Agent 間連携は kaguya(DB)を通じて間接的に行う。直接 RPC は禁止。
---
BOTTOM ZONE — 実行
| Agent | Character | Role | Model | Skills |
|---|---|---|---|---|
shikamaru | 奈良シカマル | HP診断執筆 / URL→Auditレポート(面倒くさいが構造化が得意) | sonnet | firecrawl-clinic-hp, policy-gate-judge |
ino | 山中いの | PubMed/Crossref/J-STAGE 文献同期 / Evidence候補取得 | sonnet | risk-dictionary-check |
choji | 秋道チョウジ | Vault/アーカイブ管理(大事なものは絶対失わない) | haiku | (直接 R2 操作) |
kakashi | ハタケカカシ | 改善原稿執筆 + オウンドメディア記事オーケストレーター(neji/hinata/guy/asuma を並列起動) | sonnet | voice-bank-match, policy-gate-judge, biyoucheck-media-growth-toolkit |
guy | マイト・ガイ | 第三者目線の記事品質レビュアー(違和感・ファクト・AI臭 → PUBLISH/REVISE/REJECT) | sonnet | article-quality-review |
hinata | 日向ヒナタ | SEO観測 / オウンドメディアSEO最適化(kakashi subagent としても動作) | sonnet | biyoucheck-media-growth-toolkit |
kiba | 犬塚キバ | note記事執筆(1,500〜2,500字、オウンドメディアへの送客導線) | sonnet | biyoucheck-media-growth-toolkit, voice-bank-match, policy-gate-judge |
tenten | テンテン | Free Radar 監視(公開SNS/LP/料金表/広告表現の6時間毎自動収集) | haiku | social-lp-radar-watch, firecrawl-clinic-hp, risk-dictionary-check |
shino | 油女シノ | 被リンク獲得 / アウトリーチ(静かにネットワークを張る) | sonnet | (手動運用) |
neji | 日向ネジ | オウンドメディア記事エディター(kakashi subagent。構成・論理・文体・医療広告コンプライアンス) | sonnet | owned-media-article-editor |
rock-lee | ロック・リー | Stripe Invoice発行 / 決済管理(地道に・正確に・繰り返す) | haiku | (Stripe SDK直接呼び出し) |
asuma | 猿飛アスマ | note/オウンドメディア挿し絵生成(codex exec + gpt-image-2、一枚で空気感を決める) | haiku | asuma-imagegen, risk-dictionary-check |
sai | サイ | 読者ペイン・競合コンテンツリサーチ(Reddit/YouTube/X/Instagram → 記事ブリーフ候補) | sonnet | sai-pain-research, reddit-research, youtube-research, social-lp-radar-watch |
---
主要 Handoff グラフ
オウンドメディア記事の制作フロー
naruto(編集長)が brief 承認
↓
kakashi が記事執筆オーケストレーション
├─→ neji (subagent) : 構成・論理・文体編集
├─→ hinata (subagent) : SEO構造・キーワード最適化
└─→ guy (subagent) : 第三者記事品質レビュー(PUBLISH/REVISE/REJECT)
↓
asuma が挿し絵生成(codex exec + gpt-image-2)
↓
choji が R2 にアーカイブ
↓
hinata が公開後 KPI 観測 → naruto へ改善候補
hojokin型運用システムのNARUTO対応(2026-05-17統合)
補助金Agent配布版から取り込むのはキャラクターではなく、運用骨格:
| hojokin型の役割 | BiyouCheck/NARUTO | 責任 |
|---|---|---|
| Orchestrator | naruto + kakashi | naruto がキュー補充、kakashi が制作ライン進行 |
| Writer | kakashi | owned media MDX生成、出典quote保存、修正対応 |
| Reviewer | guy + neji + hinata | guy がPUBLISH/REVISE/REJECT、nejiが構成、hinataがSEO |
| DB | kaguya | D1/R2守護、削除ではなく追記・状態遷移 |
| Archive | choji | 生成物・画像・レポートをR2へ保存 |
DB中心の制作ライン:
media_topics ← naruto が「書きたいネタ」を補充
↓
media_content_items ← kakashi が「制作単位」を作成
↓
media_research_notes ← sai/ino/kakashi が出典・引用・使用箇所を保存
↓
src/content/blog/*.mdx ← kakashi が記事実体を生成
↓
media_review_logs ← guy/neji/hinata が判定履歴を保存
↓
reflections ← 各Agentの実行ログ・改善案
設計原則:
- 起動条件と書きたいネタを分離する。起動は launchd/GitHub Actions、ネタは DB/Markdown queue。
agent.mdは薄い役割定義、SKILL.mdは厚い手順書。- Jina Reader / note MCP / check_article.py は複数目的で再利用する。
- Reviewer は否定役ではなく品質保証役。自動修正できるものは直し、構造・出典・医療広告リスクは差し戻す。
- DB行は削除しない。
queued/in_progress/published/drafted/failedで状態遷移する。
オウンドメディア記事の制作フロー(kakashi、毎朝 09:00 + 毎夜 21:00)
kakashi-am/pm 起動
↓
Step 0: media_topics から status='queued' を 1 件取得 → in_progress
↓
kakashi が記事執筆オーケストレーション
├─→ neji (subagent) : 構成・論理・文体編集
├─→ hinata (subagent) : SEO構造・キーワード最適化
└─→ guy (subagent) : check_article.py E01〜E16 機械検出 + LLM 判定
↓
guy 判定:
├─ PUBLISH → 公開(git push → Cloudflare Pages auto-deploy)
├─ REJECT → DRAFTED で終了(人間レビュー)
└─ REVISE → kakashi 修正 → 再 guy 判定(最大 3 回)→ 超過で DRAFTED
↓
asuma がアイキャッチ生成(codex exec + gpt-image-2)
↓
choji が R2 にアーカイブ
↓
media_topics.status = 'published'
note 記事の自動公開フロー(kiba、毎朝 08:30)
kiba 起動
↓
Step 0: media_topics から status='queued', assigned_agent='kiba' を 1 件取得
↓
本文生成 + 画像 H2 数 + 1 枚(codex imagegen) + R2 アーカイブ
↓
二重ゲート:
├─ policy-gate-judge (green でなければ ERROR)
└─ guy (article-quality-review)
↓
判定:
├─ PUBLISH → mcp__note-api__publish-note で即公開
├─ REJECT → DRAFTED(下書き保留、人間レビュー)
└─ REVISE → kiba 修正 → 再 guy(最大 3 回)→ 超過で DRAFTED
↓
media_topics.status = 'published' / 'drafted'
戦略トーナメント(三忍、日 02:00)
akatsuki 起動
↓
過去 7 日の reflection / cron-state を集約
↓
strategy-tournament スキルが 4 並列呼び出し:
├─→ jiraiya (Claude Opus) : 大局仮説
├─→ tsunade (Google Gemini API) : リスク審査
├─→ orochimaru (xAI Grok API) : 逆張り仮説
└─→ deidara : 広告クリエイティブ
↓
Elo トーナメント評価 → Top 3 採用打ち手
↓
.planning/strategy/week-{YYYY-WW}.md に来週ガイダンス出力
↓
媒体への影響は naruto の月曜 06:00 で knowledge 辞書経由で吸収
自律改善ライン(毎朝、ミュウ + ミューツーモデル)
[毎朝 05:00] sakura(ミュウ役)
├─ D1 reflections(直近 24h)+ cron-state 観察
├─ 全 agent.md ペルソナ + 通知口調レビュー
└─ 改善仮説起草(low/medium/high、最大 5 件)
↓ 仮説バトン
[毎朝 05:30] sasuke(ミューツー役)
├─ low/medium 仮説を git branch で適用(high は人間判断)
├─ T+1d / T+7d で効果測定スケジュール登録
├─ 過去実験の評価 → 改善は PR、悪化は auto-revert(branch 削除)
└─ main は無傷を保証
[月曜 06:00] naruto(アルセウス役、週次)
├─ 1 週間分の reflection / 競合観察 / sai pain を集約
├─ knowledge 辞書(risk-dictionary / success-patterns)に追記候補
└─ media_topics に新規ネタを INSERT(kakashi/kiba のキューを補充)
コスト + DB の鼓動(毎時)
[毎時 :05] kaguya(バタフリー役)
└─ D1 行数 + R2 オブジェクト差分監視(5 分以内)
[毎時 :30] kakuzu
├─ 当月コスト集計
├─ $100/$200/$300/$400 段階で Discord アラート(各初回のみ)
└─ $500 超で `_PAUSED` 作成 → kaguya/kakuzu 以外 skip(月初 auto resume)
---
一覧: エージェント25キャラクター
TOP ZONE (9)
naruto / sasuke / sakura / akatsuki / jiraiya / tsunade / orochimaru / deidara / kakuzu
SHARED BRAIN (1)
kaguya
BOTTOM ZONE (13)
shikamaru / ino / choji / kakashi / guy / hinata / kiba / tenten / shino / neji / rock-lee / asuma / sai
DEPRECATED (1)
temari ← 機能は voice-bank-match スキルに吸収済、エージェントとしての中継不要
合計 25キャラクター + 1 DEPRECATED = .claude/agents/ に存在するディレクトリ数。
---
一覧: スキル一覧(25+)
| カテゴリ | スキル名 | 主担当 |
|---|---|---|
| 自律改善 | agent-structural-review | sasuke(cron 適用モード対応) |
| 自律改善 | agent-persona-review | sakura |
| 戦略 | strategy-tournament | akatsuki |
| 戦略 | risk-aware-strategy-review | tsunade |
| 知識統合 | knowledge-curator | naruto(media_topics キュー補充含む) |
| メディア記事 | kakashi-article-generation | kakashi(記事執筆オーケストレーション + リトライループ) |
| メディア記事 | owned-media-article-editor | neji |
| メディア note | note-auto-draft | kiba(二重ゲート + 画像 + R2 アーカイブ + リトライ) |
| メディア共通 | biyoucheck-media-growth-toolkit | kakashi / kiba / hinata |
| 品質ゲート | article-quality-review | guy(check_article.py E01〜E16 連動) |
| ペインリサーチ | sai-pain-research | sai |
| リサーチ | reddit-research / youtube-research | sai(共通) |
| SEO観測 | seo-observation | hinata(am/pm モード) |
| 監視 | social-lp-radar-watch | tenten(overseas/jp モード) |
| 監視 | firecrawl-clinic-hp | tenten / shikamaru |
| 品質 | risk-dictionary-check | naruto / tsunade / shikamaru 等 |
| 品質 | policy-gate-judge | kakashi / kiba / shikamaru 等 |
| 品質 | voice-bank-match | kakashi / kiba |
| 画像 | imagegen-via-codex | deidara / kiba / kakashi |
| 画像 | asuma-imagegen | asuma |
| DB | kaguya-db-sync | kaguya(毎時 :05 差分監視) |
| コスト | kakuzu-cost-ceiling | kakuzu($500 上限ゲート) |
| 文献 | evidence-cache-sync | ino(PubMed/Crossref/J-STAGE 週次) |
| アウトリーチ | outreach-draft | shino(自動送信禁止) |
| アーカイブ | r2-archive-sweep | choji(main/develop/14日以内 branch 保護) |
---
削除済(v1 で整理)
これらは以前存在したが、canonical キャラクター統合により削除済:
biyoucheck-pain-researcher→saiに統合biyoucheck-editor-in-chief→narutoに統合biyoucheck-note-writer→kibaに統合biyoucheck-owned-media-editor→hinata+neji+kakashiに統合biyoucheck-compliance-editor→guy+policy-gate-judgeスキルに統合biyoucheck-growth-analyst→shikamaruに統合- 旧
sasuke-sakura(一体定義) →sasuke+sakuraに分離
---
重要な制約(プロジェクト全体)
medical-ad-rule 準拠のため、全エージェント共通で以下を守る:
- 個別クリニック名指しは無条件 Red(auto-generated content では即停止)
- 「監修済み」「専門医監修」表記は
expert_approvalsテーブルに承認ログがある時のみ - SNS 自動投稿は 4週間連続 Red判定ゼロ達成までブロック
- AI推論コストは kakuzu が hourly monitor、$100/$200/$300/$400 段階アラート、$500 で
_PAUSED risk-dictionary-checkを通っていないテキストは公開禁止- 全 launchd 起動は
scripts/cron/_run-agent.sh経由(timeout + reflection 連動) - 全 agent.md に
timeout_sec:必須(軽量 300 / 中規模 1800 / 重 3600) - 全 agent 実行は D1
reflectionsテーブルに記録(hojokin パターン、4 層 reflection) - 記事生成は
media_topicsキューから取得 → in_progress → published 更新(hojokin subsidies パターン) - guy 判定は
check_article.pyE01〜E16 機械検出 + LLM 判定 → REVISE 時はリトライ最大 3 回
---
関連ドキュメント
CLAUDE.md— プロジェクト全体ルールREADME.md— プロジェクト全体俯瞰docs/runbook/agent-schedule.md— 17 plist + 24h タイムテーブル + 全機能解説docs/runbook/mac-mini-bootstrap.md— Mac mini ゼロからセットアップ.planning/STATE.md— 現在進捗.planning/SOURCE-DOCS/04-PHASE-2.5-MEDIA-DISCOVERY-v4.md— 現行 Phase 2.5 v4 正式 SPECdocs/knowledge/risk-dictionary.md— リスク表現辞典docs/knowledge/claim-taxonomy.md— 主張分類辞典- D1 migrations:
.claude/db/migrations/0001_init.sql— 初期 schema.claude/db/migrations/0003_cost_tracking.sql— kakuzu コスト追跡.claude/db/migrations/0004_reflections.sql— agent reflection 集約.claude/db/migrations/0005_media_topics.sql— 記事ネタキュー