Notes / AI

AIエージェントに「今のプロジェクト名」を書くと失敗する

AIエージェントを設計するとき、何を埋め込み、何を埋め込まないか。プロジェクト名を入れた瞬間にエージェントが「使い捨て」になる理由と、不変の役割、運用SOP、プロジェクト状態を分離する三層原則。

インタラクティブ図解あり エージェント設計 三層分離 組織運営

自分がAIエージェントを業務に組み込み始めたとき、最初にやらかしたのがこれです。「今扱っているプロジェクトの情報も書いておけば、判断材料が増えるはず」と思って書き込んだら、結局そのエージェントを案件ごとに使い捨てる羽目になりました。

「使い捨て」エージェントの症状

AIエージェントを定義していくと、こんな書き方になりがちです。

  • 「あなたは新規プロジェクト◯◯のプロダクトプランナーです」
  • 「協業相手は未経験のメンバーなので、丁寧な説明を心がけてください」
  • 「現在は要件定義フェーズ、来週レビューがあります」

一見、状況に最適化されているように見えます。でもプロジェクトは終わるし、協業相手は変わるし、フェーズは進みます。そのたびにエージェント定義を書き直していたら、自分の場合は3つ4つの案件を並行で抱えた時点で手が回らなくなりました。エージェントが現プロジェクト専用のツールになって、新しい仕事が始まるたびに似たような定義を一から書き直す。

書き方が個別に悪いわけではなくて、寿命の違うものを同じファイルに混ぜているのが原因でした。

三層に分けて整理する

この混在を解くために、エージェント周りの情報を3つの層に分けました。

何を置くか寿命
L1:不変の役割・方法論役割定義、汎用的なやり方、組織構造永続
L2:運用パターン(SOP)プロジェクトや人を跨ぐ運用ルール中期
L3:プロジェクト固有の状態現在の進捗、決定事項、アクティブな案件短期

L1は「プロダクトプランナーとはどんな視点で動く役割か」のように、5年経っても変わらない汎用定義。L2は「未経験者と一緒に作業を進めるときの基本ステップ」のように、特定プロジェクトに紐付かない運用ルール。L3は「今このプロジェクトのフェーズはどこか、来週のレビューは何時か」のように、状況とともに変わる現在地。

エージェント定義(L1)にL3の情報を書き込むと、その定義はL3の寿命に引きずられます。プロジェクトが終われば、エージェント定義も一緒に古くなります。

どこに書くかの判断

何かを書こうとして、どの層に置くか迷ったときは、この問いで仕分けています。

これは1年後、1ヶ月後、誰が見ても正しい言明か。

YesならL1。「プロダクトプランナーは仮説検証を回す役割を持つ」のような不変の役割定義です。Noなら、L3かL2のどちらか。状況の記述ならL3(タスク管理ツール、プロジェクト管理基盤)、「こういう状況ではこう動く」というルールならL2(運用ドキュメント、SOP)です。

この判定を毎回やるようにしてから、エージェント定義にL3を紛れ込ませる失敗はほぼなくなりました。

レイヤを跨ぐ参照のルール

3層を分けたうえで、どの層が他の層を参照してよいかにもルールを設けます。

L1はL2やL3を直接参照しません。エージェント定義に「現プロジェクトのレビュー予定」を書いたら、その時点でL1がL3を引き込んでいます。L2もL3を参照しません。運用SOPに「協業相手Aさんとの進め方」を書いたら、そのSOPはAさんに依存します。L3からL1やL2を参照するのはOK。プロジェクトの計画書に「このプロジェクトは⟨L1のエージェント定義⟩と⟨L2の運用SOP⟩に従って進める」と書けます。

参照は下から上にだけ流す。これだけで、L3の案件が入れ替わってもL1とL2を書き直さずに済みます。

分けると何が楽になるか

三層分離は、寿命の違うものを別の場所に置くだけの単純なルールです。難しいテクニックではありません。組織のドキュメント設計やコードベースの構造でも同じ発想は使えると思いますが、ここではエージェント設計の話に絞ります。

これを怠ると、抱える案件の数だけエージェント定義が増えていきます。分けておくと、L1の役割定義とL2の運用SOPは案件をまたいで使い回せて、新しい案件を立ち上げるときに考えるのは「L3にどんな状況を書くか」だけになります。自分の場合、ここが一番効きました。

自社の運用リポジトリでの実装

この三層分離は、自分の会社の運用リポジトリで実際に回しています。

以前はObsidianの1つのvaultで全部を管理していました。運用マニュアル1ファイルに「ツールの役割定義」「ディレクトリの格納ルール」「日々の手順」を書いて、その隣にdailyノート、案件の進捗ノート、SOP、テンプレートを同居させていました。書いた当時は整理できているつもりでしたが、いま三層の言葉で見直すと、L1(ツールの役割定義)とL2(格納ルール)とL3(案件の進捗)を1つのvaultと1つのマニュアルに混ぜていただけでした。

AIエージェントを業務に組み込むタイミングで、リポジトリごと三層で組み直しました。

置き場所中身
L1.claude/agents/ + org/エージェント定義8本(経理・企画・PM・調査・秘書など役割単位)、組織構造
L2knowledge/processes/ + .claude/skills/運用SOP 16本(文書の文体ルール、経理税務、未経験者との協業の進め方など)、定型作業のスキル28本
L3output/projects/ + タスク管理ツールアクティブな案件ディレクトリ十数件、進捗と決定事項は外部のプロジェクトDB

冒頭のアンチパターンに挙げた「協業相手は未経験のメンバーなので、丁寧な説明を」も、このリポジトリでは分離済みです。企画エージェントの定義には「協業相手のスキル・経験に応じて進め方を変える。未経験者と組む場合はL2のSOPを参照」とだけ書き、未経験者との具体的な進め方は knowledge/processes/ 側の独立したSOPに置く。協業相手が変わってもエージェント定義は1文字も書き直しません。

L3の置き場所にもルールを足しました。案件が終わったら output/projects/ から _archive/ に退避させる。案件ディレクトリは役目を終えても、エージェント定義とSOPはそのまま次の案件で使います。三層に分けてから、新規案件のセットアップでやることは「L3のディレクトリを1つ作って外部DBに登録する」だけになりました。

典型例: Script・AI・Humanの業務フロー

下図は、AIを業務に組み込むときの典型的な役割分担です。Scriptが再現性と検証可能性を、AIが生成や推論や探索を、Humanが判断と品質と背景知を担う3ノード構成です。HumanからScriptへ戻すところで、人が直した手順が次の周回に取り込まれていきます。

これも三層に当てはめられます。どのノードに何の責任を持たせるかというルール自体はL1(永続)。各プロジェクトでどのノードに具体的に何を任せたかはL3(状態)。ScriptのテンプレートやHuman → Scriptのフィードバック手順はL2(運用SOP)に置きます。

ここを分けておけば、図の中の循環が組織で使い回せる知識として残ります。分けないと、案件ごとに同じ手順を毎回ゼロから組むことになります。

下の図は実際に操作できます。各ノードをクリックすると、そのノードが担う責任の説明が現れます。自分たちのエージェント設計でL1、L2、L3のどこにこのノードを置いているか、一度照らし合わせてみてください。

AI ワークフローのループ

ScriptAIHuman
日々の業務を分解して、AI に渡せる単位の "型" を整理する。プロンプト・定型処理・データ整形をスクリプト化することで、AI への入力を予測可能にする。
クリック / Tab + Enter / 矢印キーで操作