今までの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を定義に則りコールする
という感じですが、
という感じですが、会話的な言葉でよいのです。