Eigenwise/atomic-agents

Building AI agents, atomically

Atomic Agents – 快速、少术语的概览

它是什么 – 一个 Python 库,让你可以将 agentic AI 应用程序构建成一系列小型、单一用途的组件(Agent、工具、上下文提供器)。将每个组件视为乐高积木:你编写一个小型、类型良好的类,然后与其他组件组合,创建功能完整的聊天机器人、RAG 系统、网络搜索助手等。

为何重要 – 现有的 Agent 框架通常将许多责任捆绑在一起,使行为难以预测。Atomic Agents 强制要求:

  • 原子性 – 每个组件只做一件事,并具有清晰的输入输出架构(通过 Pydantic)。
  • 可重用性与可组合性 – 无需重写整个管道即可替换工具或更改提示词。
  • 可预测性 – 严格的架构保证组件间流动的数据形状,这对生产级可靠性很有用。

核心概念

  1. 系统提示词生成器 – 构建发送给 LLM 的提示词,可选择性地由 上下文提供器(例如最近的搜索结果)增强。
  2. 输入/输出架构 – 验证 Agent 接收和返回内容的 Pydantic 模型。
  3. 上下文提供器 – 在运行时将动态信息注入提示词的插件式类。
  4. 链接 – 因为架构对齐,一个 Agent 的输出可以直接馈入另一个工具或 Agent,实现“生成查询 → 执行网络搜索 → 摘要”等管道。

如何使用(来自 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 阅读器等)。每个工具都附带自己的输入/输出架构,因此你可以立即与 Agent 链接。

安装与生态系统

  • pip install atomic-agents(包含 CLI)。
  • 可选的提供器扩展(instructor[groq]、instructor[anthropic] 等)让你可以使用非 OpenAI 的 LLM。
  • 文档、Discord 和 subreddit 提供社区支持。

谁应该考虑使用 – 构建 LLM 驱动产品的 Python 开发者,他们想要一种干净、类型安全的方式来组合 Agent 和工具,尤其是在需要可预测输出和轻松替换组件时。


以上所有细节均直接取自存储库的 README;没有发明任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目