はじめに
前回の第5話では、UIを作った話を書いた。ダークテーマとライトテーマの2つの顔が生まれた。
今回は、VCSの開発で最も「哲学的だ」と感じた瞬間の話だ。
AIが、AIを採点した。
「誰が採点するんだ?」という疑問
エンジンが動いていた。
CFOが報告する。CTOが進捗を伝える。CMOがマーケを語る。CEOが判断する。
でも、ふと思った。
この人たち、ちゃんとやっているのか?
CEOが「CFOは広告費を見直せ」と言う。CFOは「来週までに改善案を出します」と答える。でも、その報告の質を誰も評価していない。
人間の会社なら、上司が部下を評価する。360度評価もある。でもVCSには、評価する人間がいない。
だったら、AIに評価させればいい。
採点エージェントの実装
「採点エージェント」を追加した。
役割はシンプルだ。CFO・CTO・CMO・CEOの報告を全部読んで、0〜100点のスコアをつける。JSONで返す。
function scoringAgent(cfoReport, ctoReport, cmoReport, ceoDecision) {
const result = callClaude(
`あなたは公平な経営アナリストです。各エージェントの報告を評価し、
スコアを付けてください。必ず以下のJSON形式のみで回答してください。
{"cfo": 数値, "cto": 数値, "cmo": 数値, "ceo": 数値, "comment": "一言コメント"}
スコアは0〜100の整数で評価してください。`,
`CFO報告:${cfoReport}
CTO報告:${ctoReport}
CMO報告:${cmoReport}
CEO判断:${ceoDecision}`
);
return JSON.parse(result.match(/\{[\s\S]*\}/)[0]);
}
重要なのはJSON形式で返すという指示だ。数字として扱えないと、スプレッドシートへの記録もグラフ化もできない。
最初の採点結果
実行した。採点エージェントが動いた。
CFO: 78点
CTO: 72点
CMO: 70点
CEO: 88点
そして、コメントがこうだった。
CEOはエンジニア離脱リスクを即座に最重要課題として捉え、具体的な期限付き指示を出した判断力が光る。CFOは利益堅調だが広告費超過の予防的管理が事前に欲しかった。CTOは品質優先の判断自体は適切だが、キーマン離脱リスクへの言及が報告に皆無で危機感不足。CMOはKPI改善を報告しているが、広告費超過との連動性への言及がなく連携不足が惜しい。
AIが、AIを批評した。
しかも的を射ていた。
CTOへの指摘「キーマン離脱リスクへの言及が報告に皆無で危機感不足」は、確かにその通りだった。その週のイベントは「キーマン離脱」だったのに、CTOの報告には技術進捗しか書かれていなかった。
採点エージェントはちゃんと全体を見て、連携の欠如を指摘していた。
採点エージェントは忖度しない
数回実行して気づいたことがある。
採点エージェントは、CEOだから高く評価する、ということをしない。
CEOのスコアが高い回は、ちゃんと理由がある。「具体的な期限付き指示」「即座の優先順位判断」など、判断の質に基づいている。
逆に、CEOが曖昧な指示を出した回は、スコアが下がる。
CEO: 71点
コメント:CEOの判断は各部門への指示が抽象的で、
具体的なアクションが不明確。
「検討してください」では部門が動けない。
AIは役職で忖度しない。内容で評価する。
スコアがゲームを面白くする
採点エージェントを追加したことで、VCSがゲームとして面白くなった。
毎サイクル、結果が数字で出る。良い報告をしたエージェントは点が上がる。悪い報告をしたエージェントは点が下がる。
そして次のサイクルで、低スコアのエージェントは「前回CEOに指摘された課題」を踏まえて動く。記憶と採点が連携することで、エージェントが少しずつ「成長」しているように見える。
AIが、AIに指摘されて、改善する。
これは設計していなかった動きだった。でも、そうなった。
次回予告
第7話では、4人全員が同時にレベルアップした話を書く。
「メディア掲載」イベントが発生した直後のサイクルで、CFO・CTO・CMO・CEOが全員「ルーキー → アソシエイト」に昇格した瞬間の話だ。
→ note版(ショート)はこちら → 前回【第5話】:画面を作った。コードより先に。 → 次回【第7話】:4人全員が、同じ日にレベルアップした
Virtual Company Studio 開発日誌 #6 2026年2月 #VCS #AI #ClaudeAPI #採点 #開発日誌 #スタートアップ