Open15
AI 文脈における "Agent" ってなんだろう?


"Chat" は一つの依頼されたタスクに対して結果を返す。
しばしば、Chat で良い結果を得るためにプロンプトを工夫してタスクの分解やステップ実行のようなことを行うことでより良い結果が得られることが知られていた。
"Agent" は依頼されたタスクを自律的に分解し手順を整理し段階的に処理することで、one shot なプロンプトに比べて良質な結果が得られるようになる。
また、LLMの外部ツールなどとの連携によって文章や画像の生成より複雑な作業をこなすことができる。
というように理解した。


Anthropic では以下をエージェントシステムのバリエーションとして分類している
- ワークフローは、LLMとツールが事前に定義されたコードパスを通してオーケストレーションされるシステムです。
- 一方、エージェントは、LLM が自分自身のプロセスとツールの使用を動的に指示し、タスクをどのように達成するかを制御するシステムです。

Agent フレームワーク

Workflow: Orchestrator-workers
引用元: https://www.anthropic.com/engineering/building-effective-agents
- Orchestrator が動的にタスク分解
- Synthesizer が結果を合成

Workflow: Evaluator-optimizer
引用元: https://www.anthropic.com/engineering/building-effective-agents
- 一つのLLMが応答を生成
- 別のLLMが評価とフィードバックを提供

Agent
引用元: https://www.anthropic.com/engineering/building-effective-agents
- ユーザーからのコマンドや対話から作業を開始
- 独自に計画を立てる
- 各ステップ(ツール呼び出しやコードの実行)で環境から "ground truth" を得る
- 進捗を評価する
- チェックポイントやブロッカーに遭遇したとき、ユーザーへのフィードバックのため一時停止することができる
引用元: https://www.anthropic.com/engineering/building-effective-agents
