Eigenwise/atomic-agents
Building AI agents, atomically
Atomic Agents – 簡潔で専門用語を抑えた概要
これは何か – 小さな単一目的のコンポーネント(エージェント、ツール、コンテキストプロバイダー)のセットとして エージェンティック AI アプリケーションを構築できる Python ライブラリです。各ピースを LEGO ブロックと考えてください。小さく型の明確なクラスを書き、それを他のクラスと組み合わせて、フル機能のチャットボット、RAG システム、ウェブ検索アシスタントなどを作成します。
なぜ重要なのか – 既存のエージェントフレームワークは、多くの責任をまとめてバンドルすることが多く、動作を予測しにくくしています。Atomic Agents は以下を強制します:
- 原子性 – 各コンポーネントは 1 つのことを行い、明確な入出力スキーマ(Pydantic 経由)を持ちます。
- 再利用性と構成可能性 – パイプライン全体を書き直すことなく、ツールを交換したりプロンプトを変更したりできます。
- 予測可能性 – 厳密なスキーマにより、コンポーネント間を流れるデータの形状が保証され、本番環境での信頼性に役立ちます。
中核となるアイデア
- システムプロンプトジェネレーター – LLM に送信されるプロンプトを構築し、オプションで コンテキストプロバイダー(例:最近の検索結果)によって強化されます。
- 入出力スキーマ – エージェントが受け取る内容と返す内容を検証する Pydantic モデル。
- コンテキストプロバイダー – 実行時に動的情報をプロンプトに注入するプラグイン式クラス。
- チェーン – スキーマが整列しているため、あるエージェントの出力を別のツールやエージェントに直接フィードでき、「クエリ生成 → ウェブ検索実行 → 要約」などのパイプラインを可能にします。
使用方法(README の例より)
from atomic_agents import AtomicAgent, AgentConfig, BasicChatInputSchema, BaseIOSchema
from atomic_agents.context import SystemPromptGenerator, ChatHistory
from pydantic import Field
class CustomOutputSchema(BaseIOSchema):
chat_message: str = Field(..., description="The reply")
suggested_questions: list[str] = Field(..., description="Follow‑up ideas")
prompt = SystemPromptGenerator(
background=["You are helpful and suggest follow‑ups."],
steps=["Understand user input.", "Reply concisely.", "Suggest 3 questions."],
output_instructions=["Return a clear answer and three questions."]
)
agent = AtomicAgent[BasicChatInputSchema, CustomOutputSchema](
config=AgentConfig(
client=instructor.from_openai(OpenAI()),
model="gpt-5-mini",
system_prompt_generator=prompt,
history=ChatHistory(),
)
)
resp = agent.run(BasicChatInputSchema(chat_message="Tell me about atomic agents"))
print(resp.chat_message, resp.suggested_questions)
このライブラリは、プロンプト構築、スキーマ検証、履歴管理を処理します。
ツールエコシステム – Atomic Forge – バンドルされた CLI(atomic)を使用すると、既製の ツール(検索、計算機、YouTube トランスクリプト、PDF リーダーなど)をダウンロードできます。各ツールには独自の入出力スキーマが付属しているため、エージェントとすぐにチェーンできます。
インストールとエコシステム
pip install atomic-agents(CLI を含む)。- オプションのプロバイダー拡張(
instructor[groq]、instructor[anthropic]など)により、OpenAI 以外の LLM にアクセスできます。 - ドキュメント、Discord、subreddit がコミュニティサポートを提供します。
誰が検討すべきか – LLM 駆動の製品を構築する Python 開発者で、エージェントとツールを構成するためのクリーンで型安全な方法を求めており、特に予測可能な出力とコンポーネントの簡単な交換が必要な場合に適しています。
上記の詳細はすべてリポジトリの README から直接取得したものであり、追加機能は発明されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト