マルチエージェントフレームワーク「Atomic Agents」を試す
多分Redditのエージェントフレームワークスレで見かけたと思う。スレはもう探せないけど、
- LangGraph複雑すぎる
- AutoGenやCrewAIは制御できなさすぎる
- もっと使いやすいものがほしい
みたいなモチベーションから作られた模様。
GitHubレポジトリ
Atomic Agents
Atomic Agentsフレームワークは、非常に軽量で、モジュール化され、拡張性があり、使いやすい設計となっています。主な目的は、冗長な複雑さ、不必要な抽象化、隠れた前提を排除しつつ、原子的(atomicity)な手法を通じてAIアプリケーションを構築するための柔軟で強力なプラットフォームを提供することです。このフレームワークは、一連のツールとエージェントを提供しており、それらを組み合わせることで強力なアプリケーションを作成できます。Instructorの上に構築されており、データとスキーマの検証およびシリアライズのためにPydanticの力を活用しています。
Atomic Agentsの動機や哲学について詳しく知りたい場合は、以下の概要ビデオをご覧ください:
概要ビデオを見る
コードにすぐに触れてみたい場合は、以下のクイックスタートビデオをご覧ください:
クイックスタートビデオを見る
なぜAtomic Agentsなのか?
既存のエージェントAIフレームワークは、自律的なマルチエージェントシステムの構築に焦点を当てていますが、実際のアプリケーションに必要な制御性や予測可能性を欠いていることがよくあります。ビジネスでは、ブランドや目標に沿った一貫性があり、信頼できる出力を生成するAIシステムが求められています。
Atomic Agentsは、このニーズに応えるために以下を提供します:
- モジュール性: 小さく再利用可能なコンポーネントを組み合わせてAIアプリケーションを構築できる。
- 予測可能性: 入力と出力のスキーマを明確に定義し、一貫した動作を保証する。
- 拡張性: コンポーネントを簡単に入れ替えたり、新しいものを統合してもシステム全体に影響を与えない。
- 制御性: システムプロンプトからツール統合まで、各部分を個別に微調整可能。
エージェントの構造
Atomic Agentsでは、エージェントはいくつかの主要なコンポーネントで構成されています:
- システムプロンプト: エージェントの動作や目的を定義する。
- 入力スキーマ: エージェントの入力に対する構造と検証ルールを指定する。
- 出力スキーマ: エージェントの出力に対する構造と検証ルールを指定する。
- メモリ: 会話履歴やその他の関連データを保存する。
- コンテキストプロバイダー: 実行時にエージェントのシステムプロンプトに動的コンテキストを注入する。
以下に、ハイレベルのアーキテクチャ図を示します:
refered from https://github.com/BrainBlend-AI/atomic-agents and translated into Japanese by kun432
refered from https://github.com/BrainBlend-AI/atomic-agents and translated into Japanese by kun432
とりあえず軽く試した感じだと、日本語でやり取りすると、うまくいかない、というか
- 途中で応答がなくなる
- 空の回答が返ってくる
が起きる。英語だけだと応答がなくなることはないのだけど、こちらも途中で回答が切れたりする。うーん。
Issueあげた