Eigenwise/atomic-agents
Building AI agents, atomically
Atomic Agents – 快速、少术语的概览
它是什么 – 一个 Python 库,让你可以将 agentic AI 应用程序构建成一系列小型、单一用途的组件(Agent、工具、上下文提供器)。将每个组件视为乐高积木:你编写一个小型、类型良好的类,然后与其他组件组合,创建功能完整的聊天机器人、RAG 系统、网络搜索助手等。
为何重要 – 现有的 Agent 框架通常将许多责任捆绑在一起,使行为难以预测。Atomic Agents 强制要求:
- 原子性 – 每个组件只做一件事,并具有清晰的输入输出架构(通过 Pydantic)。
- 可重用性与可组合性 – 无需重写整个管道即可替换工具或更改提示词。
- 可预测性 – 严格的架构保证组件间流动的数据形状,这对生产级可靠性很有用。
核心概念
- 系统提示词生成器 – 构建发送给 LLM 的提示词,可选择性地由 上下文提供器(例如最近的搜索结果)增强。
- 输入/输出架构 – 验证 Agent 接收和返回内容的 Pydantic 模型。
- 上下文提供器 – 在运行时将动态信息注入提示词的插件式类。
- 链接 – 因为架构对齐,一个 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;没有发明任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目