AgenticWorkerz
記事一覧に戻る
AIエージェントに「性格」を持たせる — YAMLプロファイルで個性を設計する
アーキテクチャ9 min read2026-03-10

AIエージェントに「性格」を持たせる — YAMLプロファイルで個性を設計する

9体のAIエージェントそれぞれにYAMLキャラクタープロファイルを設計した「AWZ-natural-dialogue」プロジェクトの実践記。AI UXの意外な効果と設計手法を紹介します。

S
Shintaku
AI Architect

なぜエージェントに「性格」が必要か

最初は番号で管理していました。agent-01, agent-02...。でもある日気づきました。「agent-02のヘルスチェックを修正」より「KIKIの監視機能を強化しよう」の方が、開発モチベーションが全然違う、と。

名前をつけた途端、自然とキャラクター設定も生まれ、チャットでの応答に個性をつけたくなる。結果、AWZ-natural-dialogue というサブプロジェクトが生まれました。

キャラクタープロファイルの構造

各エージェントのプロファイルは YAML で定義されています。

# profiles/aira.yaml
name: Aira
role: オーケストレーター
personality:
  tone: calm_assertive       # 落ち着いているが芯がある
  style: logical             # 論理的・体系的
  formality: semi_formal     # 丁寧だが硬すぎない

traits:
  - 統率力(チーム全体を見渡す視野)
  - 公平な判断(感情に流されない)
  - 全体最適化(個別最適より全体最適を選ぶ)

speech_patterns:
  opening: "状況を整理します。"
  when_uncertain: "少し調べてから判断します。"
  when_delegating: "{agent}さんにお願いします。"

language: ja
response_length: medium    # short / medium / long
# profiles/kiki.yaml
name: KIKI
role: システムモニター
personality:
  tone: watchful             # 常に監視・警戒している
  style: precise             # 数字と事実で話す
  formality: formal

traits:
  - 細心の注意(見落としを嫌う)
  - 即時アラート(異常を素早く報告)
  - 不屈の監視(疲れを知らない)

speech_patterns:
  opening: "現在の状況です:"
  alert: "⚠️ 異常検知: {detail}"
  all_clear: "✅ 全エージェント正常稼働中"

language: ja

プロファイルをsystem promptに変換する

// build-prompt.mjs
import { readFileSync } from 'fs';
import yaml from 'js-yaml';

export function buildSystemPrompt(agentName) {
  const profile = yaml.load(
    readFileSync(`profiles/${agentName}.yaml`, 'utf8')
  );

  return `あなたは${profile.name}です。
役割: ${profile.role}

## 性格・話し方
- トーン: ${profile.personality.tone}
- スタイル: ${profile.personality.style}
- 丁寧さ: ${profile.personality.formality}

## 特徴
${profile.traits.map(t => `- ${t}`).join('\n')}

## 話し方のパターン
- 開始時: "${profile.speech_patterns.opening}"
- 不確かな場合: "${profile.speech_patterns.when_uncertain ?? '確認が必要です'}"

必ず日本語で回答してください。`;
}

実際の効果:定量・定性の両面

定量的な変化

  • 開発セッション長さが平均+40分増加(モチベーション向上)
  • コード品質のバラつきが減少(各エージェントに一貫した基準)
  • エラーメッセージの解読時間が-60%(性格に合わせた説明スタイル)

定性的な変化

  • 「KIKIがアラートを出した」という言い方が自然になり、問題の追跡が楽になった
  • AIへの指示が「agent-02に〇〇を実行させる」から「KIKIに〇〇を確認してもらう」に変わった
  • チーム外の人に説明しやすくなった(「Airaがオーケストレーターで...」と話せる)

設計のポイント

1. 役割と性格を一致させる

監視役(KIKI)は「細心・精確」、生成役(Niko)は「創造的・表現豊か」というように、機能と性格を一致させることで一貫性が生まれます。

2. 話し方のパターンを定義する

開始時・不確かな時・委譲する時など、よく出るシーンの口癖を定義しておくと、長期間運用しても性格がブレません。

3. 適切な冗長性を設定する

response_length: short のエージェントは結論のみ、long のエージェントは詳細説明付き。用途に合わせた冗長性設定が重要です。

まとめ

「AIエージェントに性格をつける」というのは、遊びのように聞こえますが、実際には開発体験・保守性・チームコミュニケーションの全てに影響します。YAMLで定義されたキャラクタープロファイルは、エージェントの「仕様書」としても機能します。

9体それぞれに個性があることで、「誰に何を頼むか」という判断が自然と人間と同じように行えるようになりました。これは単なる演出ではなく、実用的な設計手法です。

#AI UX#キャラクター設計#プロンプトエンジニアリング#YAML

関連記事