生成AIエージェントの開発が進む中で、AutoGen Studioは「複数エージェントをノーコードで連携・実行できる」ツールとして注目を集めています。
一方、LM Studioは「ローカルPCでOpenAI互換APIを立ち上げ、さまざまなLLMを動かせる」環境を提供します。
この2つを組み合わせることで、クラウドAPIを使わずに、自分のPC上で安全にAutoGenエージェントを動かすことが可能になります。
社内データを外に出せない環境でも、AIの連携動作を検証できるのが大きなメリットです。
この記事では、LM Studioで起動したローカルモデル(今回はgpt-oss-20b)をAutoGen Studioから接続し、実際にエージェントが対話・ツール実行できるところまでを構築してみます。
AutoGen Studioのセットアップ
セットアップは公式ドキュメントがあるので、そちらに沿って実行します。
https://microsoft.github.io/autogen/stable/user-guide/autogenstudio-user-guide/installation.html
python3 -m venv .venv
source .venv/bin/activate
pip install -U autogenstudioAutoGen Studioのインストールはこれだけです。非常に簡単ですね。
インストールが終わったら、下記のコマンドで実行します。
autogenstudio ui --port 8081ブラウザを立ち上げ、下記のアドレスを開きます。
http://localhost:8081/下記が表示されれば起動OKです。

LM Studioのセットアップ
LM Studioをインストールしてモデルをダウンロードします。
今回は割愛しますが、手順は下記のリンクを参照してください。
今回は「gpt-oss-20b」を使用ます。

このモデル名と「LLM Server Base URL」が後で必要になるので、コピーかメモしておきます。

以上でLM Studioの準備は完了です。
AutoGen Studioの設定
次にAutoGen Studioに戻り、LM Studioとの接続確認をしてみます。
メニューから「TeamBuilder」を選び、「New Team」をクリックします。

下記の設定画面が表示されます。
右側にある「AssistantAgent」にLM Studioを設定するようになります。

「AssistantAgent」の右上にある、編集アイコンをクリックします。

右側からにゅっと出てくるEdit Componentから、「JSON Editor」をクリックします。
※この画面で設定できればよいのですが、ダイアログにない項目はJSONを直接記載する必要があるため、JSON Editorから設定します。

JSONコードが表示されるため、ここの17行目〜19行目を書き換えていきます。
{
"provider": "autogen_agentchat.agents.AssistantAgent",
"component_type": "agent",
"version": 1,
"component_version": 1,
"description": "An agent that provides assistance with tool use.",
"label": "AssistantAgent",
"config": {
"name": "assistant_agent",
"model_client": {
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for OpenAI hosted models.",
"label": "OpenAIChatCompletionClient",
"config": {
"model": "gpt-4o-mini"
}
},書き換える内容は下記になります。
"config": {
"model": "gpt-oss-20b",
"base_url": "http://localhost:1234/v1",
"api_key": "lm-studio",
"parallel_tool_calls": false,
"model_info": {
"vision": false,
"function_calling": true,
"json_output": false,
"family": "unknown",
"structured_output": false,
"context_length": 8192
}
}この2つの項目は、LM Studioの設定によって書き換えてください。
・model:LM Studioでロードしてモデル名
・base_url:LM StudioのLLM Server Base URL
置き換えたJSONは下記になります。
{
"provider": "autogen_agentchat.agents.AssistantAgent",
"component_type": "agent",
"version": 1,
"component_version": 1,
"description": "An agent that provides assistance with tool use.",
"label": "AssistantAgent",
"config": {
"name": "assistant_agent",
"model_client": {
"provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
"component_type": "model",
"version": 1,
"component_version": 1,
"description": "Chat completion client for OpenAI hosted models.",
"label": "OpenAIChatCompletionClient",
"config": {
"model": "gpt-oss-20b",
"base_url": "http://localhost:1234/v1",
"api_key": "lm-studio",
"parallel_tool_calls": false,
"model_info": {
"vision": false,
"function_calling": true,
"json_output": false,
"family": "unknown",
"structured_output": false,
"context_length": 8192
}
}
},画面右下の「Save Changes」をクリックして保存します。
これでLM Studioとの接続設定は終わったので、右上の「Run」をクリックして動作を確認してみましょう。

プロンプトに質問を入力します。

assistant_agentのLM Studioから回答があり、接続できることが確認できました。

エージェントの追加
エージェントを追加して、2つのエージェントでやりとりした結果を回答してもらいましょう。
左側のAgentsから「AssistantAgent」をドラッグし、フローの左側の「Drop agents here」へドラッグ&ドロップします。

AssistantAgentが追加され、2つになりました。

追加された「assistant_agent_1」の右上にある編集ボタンを押して、前回と同じようにJSONの”config”部分を書き換えます。
(今回は同じLM Studioに対して、2つのエージェントから問い合わせを行うようにしています。)
続いて1つ目のエージェントと、2つ目のエージェントの役割を設定します。
・1つ目のエージェント:首都を回答
・2つ目のエージェント:観光スポットを回答
こんな感じで設定してみましょう。
1つ目のエージェント(右上)の編集ボタンを押して、System Messageに首都を答えてもらうように編集します。
元々のメッセージには終わったら「TERMINATE」を送るように記述されていますが、TERMINATEが送られると次のエージェントに連携されず終了していまうので、こちらのエージェントには記載しません。
「Save Changes」をクリックして保存します。

次に2つ目のエージェント(右下)の編集ボタンを押して、System Messageに観光スポットを答えてもらうように編集します。
こちらにはTERMINATEを送るように追加しています。
編集したら「Save Changes」をクリックして保存しましょう。

それでは実行してみましょう。
プロンプトに「フランス」とだけ入力します。

1つ目のエージェントが首都を回答し、2つ目のエージェントがそれをもとに観光スポットを回答してくれました。
まとめ
AutoGen StudioとLM Studioをつなぎ、複数のエージェントを連携させることができました。
今回は1つのモデルでしたが、状況に応じて好みのモデルを使用してエージェント連携させることが可能です。
今回はAssistantAgentだけでしたが、AutoGen Studioには他にも様々な機能があり、活用することでより高度なワークフローが実現できます。
Toolsにある機能が気になるので、次はこのあたりを深堀りしてみたいと思います。



コメント