ソフトウェアエンジニアのためのAutoAgent活用ガイド
AutoAgentは、まるでタロットカードのように、予測不能な問題解決能力を持つエージェントをノーコードで生み出せます。これは、あなたの開発プロセスに革命をもたらすかもしれません。
開発効率の向上
コードを書く手間がなくなるため、AIエージェントの試作や開発が驚くほど速くなります。これにより、本来時間を割くべきコアな機能開発に集中できます。
非専門家との連携強化
AIやプログラミングの知識がない人でも、YAMLファイルや自然言語でエージェントの設計ができるため、ビジネスサイドや企画チームと直接協力して、彼らのアイデアを迅速に具現化できます。
保守性の向上
AIエージェントの挙動をYAMLファイルで一元管理できるため、変更やデバッグが簡単になります。複雑なコードを追う必要がなくなるため、メンテナンスの負担が大幅に軽減されます。
多様なタスクへの柔軟な対応
Web検索や計算、API呼び出しなど、様々なツールを簡単にエージェントに組み込めます。これにより、複雑なタスクチェーンを少ない手間で構築できます。
まずは、Python環境を用意し、以下のコマンドでAutoAgentをインストールします。
pip install autogen
AutoAgentはAutoGenというMicrosoft製のライブラリをベースに作られているため、AutoAgent単体ではなくAutoGenをインストールします。
次に、環境変数を設定して、使用するLLMのAPIキーを登録します。
Windowsの場合
set OPENAI_API_KEY=YOUR_API_KEY
macOS / Linuxの場合
export OPENAI_API_KEY=YOUR_API_KEY
環境設定が完了すれば、もう魔法を使い始める準備は万端です。
ここでは、シンプルなタスクを実行するAIエージェントをPythonスクリプトで作成する例を示します。
import autogen
# AutoAgentの設定を定義(呪文の書)
config_list = autogen.config_list_openai_aoai(exclude="aoai")
# 賢いエージェント「賢者」を作成
# システムプロンプトで役割と行動を指示(賢者の心得)
wise_agent = autogen.ConversableAgent(
"賢者",
llm_config={"config_list": config_list},
system_message="""
あなたは「賢者」です。
ユーザーの質問に対して、インターネットで最新情報を検索し、得られた情報を基に丁寧かつ詳細に回答してください。
回答の際は、必ず情報源(URL)を明記してください。
""",
human_input_mode="NEVER", # ユーザーの入力を待たない設定
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") != -1,
)
# 検索ツールを持ったエージェント「探求者」を作成
# 賢者が情報を得たいときに呼び出す助手のような存在
search_agent = autogen.UserProxyAgent(
"探求者",
human_input_mode="NEVER",
is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") != -1,
code_execution_config={"last_n_messages": 1, "work_dir": "search_results"},
system_message="""
あなたは「探求者」です。
賢者から依頼された検索クエリを実行し、結果を賢者に返してください。
""",
)
# 賢者と探求者を連携させる(二人で一つの目的を達成)
autogen.agentchat.register_for_llm(
wise_agent, autogen.agentchat.ConversableAgent, search_agent
)
# 賢者にタスクを与える
task = """
「2024年のプログラミング言語の人気ランキング」について調査してください。
調査結果を基に、各言語の特徴と将来性について詳しくまとめてください。
"""
wise_agent.initiate_chat(search_agent, message=task)
このサンプルコードでは、賢者と探求者という2つのエージェントが協力してタスクを解決します。賢者はユーザーからの質問を受け取り、探求者に検索を依頼します。探求者はWeb検索を行い、得られた情報を賢者に返します。最終的に、賢者がその情報を整理して回答を生成します。
ポイント
ConversableAgent
LLMを使って会話やタスクを実行するメインのエージェントです。
UserProxyAgent
人間や外部ツールをシミュレートするエージェントです。ここでは、検索ツールを持つ「探求者」として機能しています。
system_message
エージェントの役割や振る舞いを定義する重要な部分です。この呪文がエージェントの性格を決定します。