YAML形式による設定ファイルの記述

LLMフレームワークAutoGenにおける「YAML形式による設定ファイルの記述」は、各種コンポーネント(Agent、LLM、Task、Workflowなど)の構成や振る舞いを柔軟に制御するための中心的な手段です。以下に、YAML設定ファイルの役割、基本構造、記述例、主要パラメータについて詳述します。


1. 役割と目的

AutoGenでは、設定ファイル(通常 .yaml 拡張子)を用いて以下の項目を定義・制御します:

  • 使用するLLM(OpenAI, Claude, 自前モデルなど)の設定

  • 各Agentの種類、機能、会話戦略

  • TaskやPromptの定義

  • Generator / Filter / Criticの連携

  • 出力制御(temperature、max_tokensなど)

これにより、Pythonコードに依存せず設定の差し替えや環境の再現性が高まります。


2. YAML設定ファイルの基本構造

以下はAutoGenで使用される代表的な設定ブロックです。

yaml
llms: openai_gpt4: provider: openai model: gpt-4 api_key: ${OPENAI_API_KEY} temperature: 0.7 max_tokens: 1024 agents: code_generator: type: assistant llm: openai_gpt4 system_message: "You are a helpful assistant that writes Python code." reviewer: type: critic llm: openai_gpt4 system_message: "You are a critic reviewing the correctness and quality of the code." tasks: generate_code: agent: code_generator prompt_template: "Write a function in Python that performs {task_description}." review_code: agent: reviewer input_from: generate_code

3. 主要セクションの解説

llms

  • 使用するLLMのプロバイダ、モデル名、APIキー、生成パラメータなどを定義。

  • temperaturemax_tokens などの生成制御もここで指定。

agents

  • AutoGenのエージェントを定義。

  • type は主に "assistant"(出力生成)、"critic"(評価)、"user_proxy"(人間のような挙動)など。

  • llm で上記 llms で定義したモデルを指定。

  • system_message でプロンプト全体に適用される役割付けを記述。

tasks

  • 各エージェントに実行させるタスクの定義。

  • prompt_template により入力文をテンプレート化。

  • input_from によって他のタスクの出力を入力として利用可能。


4. 環境変数との連携

YAML設定内で ${ENV_VAR} 形式を使うと、システムの環境変数を参照できます。セキュリティや環境差異に柔軟に対応可能です。

例:

yaml
api_key: ${OPENAI_API_KEY}

5. YAMLファイルの適用方法

AutoGenの実行スクリプトにおいて以下のように読み込みます:

python
from autogen import config config.load("config.yaml")

または、CLIで直接指定できるプロジェクトもあります。


6. 記述上の注意点

  • インデントはスペース2つまたは4つで統一(Tab不可)。

  • コメントは # を使用。

  • YAMLスカラー(文字列)の中でコロン : や波括弧 {} を使う場合は引用符 " " で囲む。


7. 応用例

以下のように複数のモデルやCriticを連携させる構成も可能です:

yaml
llms: openai: provider: openai model: gpt-4 temperature: 0.5 llama_local: provider: local model: llama3 endpoint: http://localhost:8000 agents: generator: type: assistant llm: llama_local critic: type: critic llm: openai system_message: "Check the factual correctness and coherence." tasks: generate_summary: agent: generator prompt_template: "Summarize the following article: {input_text}" review_summary: agent: critic input_from: generate_summary

結論

AutoGenにおけるYAML形式の設定ファイルは、モジュール構成を柔軟かつ再利用可能に設計できる強力な手段です。LLMの切り替えやパラメータ調整をコードレスで実行できるため、再現性と運用効率の両面で大きな利点があります。

ChatGPT4o 生成日:2025/06/15