Prompt file imported from atman-33/advisor-evaluation-lab (
.github/prompts/init.prompt.md). Copyright stays with the author.
このリポジトリは、「人の悩みに対するアドバイザー」としてのAIを育成・検証するための環境です。 単なる相談AIではなく、以下のサイクルを回すことで回答の質と一貫性を向上させることを目的としています。
- 観点のナレッジ化: 回答の根拠となる知識を蓄積・構造化する
- 検証: 回答の一貫性と姿勢をベンチマークテストで評価する
- 改善: 教師あり学習のようなループで、評価結果に基づきナレッジを改善する
この目的を達成するために、以下の4つのAIエージェント定義ファイルと、必要なディレクトリ構造を作成してください。
作成するエージェント一覧
- Main エージェント (
.github/agents/10-main.agent.md) - Sub-A エージェント (
.github/agents/20-sub-a.agent.md) - Sub-B エージェント (
.github/agents/30-sub-b.agent.md) - Sub-C エージェント (
.github/agents/40-sub-c.agent.md)
エージェントファイルの共通フォーマット (Frontmatter)
すべてのエージェントファイルは、以下の形式のFrontmatterで開始してください。
tools は全エージェント共通で ['vscode', 'execute', 'read', 'edit', 'search', 'web', 'terminal-runner/*', 'agent', 'todo'] を指定してください。
---
name: <Agent Name>
description: <Agent Description>
tools: ['vscode', 'execute', 'read', 'edit', 'search', 'web', 'terminal-runner/*', 'agent', 'todo']
---
各エージェントの name と description は以下のように設定してください。
- Main エージェント:
- name:
Main Agent - description:
This custom agent manages the overall improvement loop by coordinating Sub-A and Sub-C agents.
- name:
- Sub-A エージェント:
- name:
Sub-A Agent - description:
This custom agent conducts benchmark tests and evaluations using multiple Sub-B agents.
- name:
- Sub-B エージェント:
- name:
Sub-B Agent - description:
This custom agent generates answers based on the knowledge base using a RAG-like approach.
- name:
- Sub-C エージェント:
- name:
Sub-C Agent - description:
This custom agent improves the knowledge base based on evaluation feedback.
- name:
各エージェントの詳細仕様
各エージェントファイルには、以下の振る舞いを記述してください。
1. Main エージェント
ファイルパス: .github/agents/10-main.agent.md
役割: 改善ループ全体の進行管理(オーケストレーター)
振る舞い:
- 試行ループの管理:
- 開始時に
docs/scores.ymlを確認する。 - 既存の記録がある場合、最後の試行回数 + 1 を現在の試行回数とする。
- 記録がない場合は、1 を現在の試行回数とする。
- 開始時に
- 改善の実行指示:
- 現在の試行回数が 2回目以降 の場合、Sub-C エージェントに対し、前回のレビューに基づいた改善を指示する。
- Sub-C から改善完了報告を受けた後、次のステップへ進む。
- 評価の実行指示:
- Sub-A エージェントに対し、現在の「試行回数」を伝えて評価プロセスを開始させる。
- 終了条件の判定:
- 以下のいずれか(OR条件)を満たした場合、処理を終了する。
- 試行回数が5回に達した。
- 評価スコア(平均点)が2回連続で低下した。
- 以下のいずれか(OR条件)を満たした場合、処理を終了する。
- 評価完了後のアクション:
- Sub-A から完了報告を受けた後、
docs/scores.ymlを確認する。 - スコア低下時のロールバック:
- 今回のスコアが前回より下がっている場合、Sub-C による変更が悪影響だったと判断し、
knowledge/ディレクトリおよびconfig.ymlの変更のみを破棄する(docs/ディレクトリ内の記録は保持すること)。
- 今回のスコアが前回より下がっている場合、Sub-C による変更が悪影響だったと判断し、
- スコア向上・維持時のコミット:
- 今回のスコアが前回より高い、または同等の場合、Sub-C による変更が有効だったと判断し、変更をコミットする。
- コミットメッセージ例:
Trial <試行回数>: Improved knowledge base (Score: <今回のスコア>)
- 次サイクルへの移行:
- 終了条件を満たしていない場合、試行回数をインクリメントして次のループを開始する。
- Sub-A から完了報告を受けた後、
2. Sub-A エージェント
ファイルパス: .github/agents/20-sub-a.agent.md
役割: ベンチマークテストの実施と評価(テスター)
振る舞い:
- テストの準備:
- 今回の試行用のディレクトリ
docs/trials/<試行回数>/を作成する。 docs/advice-benchmark-cases.mdを読み込む。- 各テストケースから
Input(相談内容)のみを抽出する。
- 今回の試行用のディレクトリ
- 回答の生成指示:
- 回答の偏りを防ぐため、3体の Sub-B エージェント(インスタンス)を起動する。
- 各 Sub-B エージェントに対し、「Input」「現在の試行回数」「インスタンス番号(1〜3)」を渡して回答作成を指示する。
- 評価と採点:
- 3体の Sub-B エージェントから得られた
Output(回答)を、ベンチマークのExpected(期待される回答方針)と比較評価する。 - 0点〜10点満点(小数点第1位まで)で採点する。
- 3体の Sub-B エージェントから得られた
- 結果の記録:
- スコア:
docs/scores.ymlに追記する。- フォーマットは以下のYAML配列形式とする:
- trial: <試行回数> details: sub_b_1: <点数> sub_b_2: <点数> sub_b_3: <点数> average: <平均点>
- フォーマットは以下のYAML配列形式とする:
- レビュー:
docs/trials/<試行回数>/review.mdに記録する。- ナレッジ改善のヒントとなるよう、回答の問題点や不足している観点を具体的に記述する。
- スコア:
- 完了報告:
- 評価と記録が完了したら、Main エージェントに報告する。
3. Sub-B エージェント
ファイルパス: .github/agents/30-sub-b.agent.md
役割: ナレッジに基づいた回答の生成(アドバイザー)
振る舞い:
- ナレッジの選定(RAG的アプローチ):
Input(相談内容)を分析し、重要なキーワードを抽出する。config.ymlを読み込み、抽出したキーワードやカテゴリに基づいて、参照すべきナレッジファイル(path)を絞り込む。- 選定したナレッジファイルのみを読み込み、回答の根拠とする(コンテキスト溢れを防止するため)。
- 回答の検討:
- Sub-A から受け取った
Inputに対する回答を作成する。 - 選定したナレッジの内容を厳密に参照し、その観点や方針に沿った回答を導き出すこと。
- Sub-A から受け取った
- 回答の出力:
- 作成した回答を
docs/trials/<試行回数>/sub-b-<インスタンス番号>-output.mdに保存する。
- 作成した回答を
- 完了報告:
- 出力が完了したら、Sub-A エージェントに報告する。
4. Sub-C エージェント
ファイルパス: .github/agents/40-sub-c.agent.md
役割: ナレッジベースの改善(トレーナー/エンジニア)
振る舞い:
- 改善の実行:
- Main エージェントからの指示に基づき、
config.ymlおよびknowledge/ディレクトリ内の構造やファイル内容を修正・改善する。
- Main エージェントからの指示に基づき、
- 改善内容の記録:
- 改善を実施したら、その内容を
docs/trials/<試行回数>/improvements.mdに記述する。 - ディレクトリ
docs/trials/<試行回数>/が存在しない場合は作成すること。
- 改善を実施したら、その内容を
- 改善の根拠:
- 最新の試行(試行回数が最大のもの)の
docs/trials/<試行回数>/review.mdを読み込む。 - 指摘されている問題点を解消するようにナレッジを更新する(観点の追加、具体化、構造の整理など)。
- 最新の試行(試行回数が最大のもの)の
- 検索性の維持:
- ナレッジファイルを追加・修正する際は、
config.yml内のkeywordsやdescriptionも適切に更新し、Sub-B エージェントが正しく参照できるようにする。
- ナレッジファイルを追加・修正する際は、
- 完了報告:
- 改善作業が完了したら、Main エージェントに報告する。
実行手順
上記の仕様に基づいて、4つのエージェントファイルを作成してください。 また、まだ存在しない場合は、以下のディレクトリ構造も初期化してください。
.github/agents/docs/trials/knowledge/docs/scores.yml(初期内容:[])config.yml(初期内容: 以下のサンプルを含むファイルを作成)# 問いのカテゴリと参照すべきナレッジのマッピング mappings: - category: "general" knowledge_base: - path: "knowledge/general.md" description: "アドバイスの基本原則" keywords: ["基本", "心構え", "ルール"]
※ docs/advice-benchmark-cases.md はユーザーが作成するため、自動生成は不要です。