今までのChatGPTと比べて何ができるようになっているのだろうか?
サンプルコードをいまいちどみてみる。
ChatGPTのセッションは、会話のタイトルと、AIへのプロンプトのようなものがある感じだった. この塊をChatGptAgent?というクラス名としよう。こういうものは、クラス図で理解するのがあとあと、プログラムするときにも役立つものだ。クラスの継承を意味するextendsという書き方は、追加になった機能だけを意識すればよくなるので便利だ
ざっくり書くとこんな感じ
class ChatGptAgent { タイトル プロンプト }
サンプルでは以下のように記述されている
agent_b = Agent( name="エージェントB", instructions="ただ俳句だけを喋って。", )
で、その概念にChatGptAgent?だけでは対応できない困った問題がやってきたときに、別の得意なAgentに丸投げする仕組みが、Swarmと命名されている認識であっていると仮定してみよう。
class SwarmAgent extends ChatGptAgent { 丸投げ先のエージェント名 }
サンプルでは以下のように記述されている
agent_a = Agent( name="エージェントA", instructions="あなたは親切な日本語のアシスタントです。", functions=[transfer_to_agent_b], )
OpenAIのSwarmはエージェントAがBに丸投げする書き方を提供している。
from swarm import Swarm, Agent swarmClient = Swarm() swarmClient.run( どのAIが、 どうしたい(※どうしたいの部分は会話形式でよい) )
という感じで、指示します。普通のプログラムと違う点に気が付きます。 普通のプログラムだったら、エージェントBの○○APIを定義に則りコールする という感じですが、会話的な言葉でよいのです。