综合介绍
Atomic Agents 是一个围绕原子性概念设计的极其轻量级和模块化的框架,用于构建代理AI管道和应用程序。该框架提供了一组工具和代理,可以组合创建强大的应用程序。它基于 Instructor 构建,并利用 Pydantic 进行数据和模式验证与序列化。所有逻辑和控制流都用 Python 编写,使开发者能够应用传统软件开发中的最佳实践和工作流程,而不影响灵活性或清晰度。Atomic Agents 旨在通过模块化、可预测性、可扩展性和控制性来满足企业对一致性和可靠性输出的需求。
推荐阅读:再见 LangChain!Atomic Agent火了!
功能列表
- 模块化:通过组合小型、可重用的组件来构建AI应用程序。
- 可预测性:定义清晰的输入和输出模式,确保行为一致。
- 可扩展性:轻松替换组件或集成新组件,而不会破坏整个系统。
- 控制性:单独微调系统的每个部分,从系统提示到工具集成。
- 数据验证:利用 Pydantic 进行数据和模式验证与序列化。
- Python开发:所有逻辑和控制流都用 Python 编写,便于开发者使用。
使用帮助
安装流程
- 确保已安装 Python 3.11 或更高版本。
- 使用 pip 安装 Atomic Agents:
pip install atomic-agents
- 根据需要安装提供者,例如 OpenAI 和 Groq:
pip install openai groq
使用指南
创建代理
- 定义系统提示:确定代理的行为和目的。
- 定义输入模式:指定代理输入的结构和验证规则。
- 定义输出模式:指定代理输出的结构和验证规则。
- 存储记忆:保存对话历史或其他相关数据。
- 上下文提供者:在运行时将动态上下文注入代理的系统提示中。
示例代码
from atomic_agents import Agent, SystemPrompt, InputSchema, OutputSchema
# 定义系统提示
system_prompt = SystemPrompt("你是一个帮助用户解决问题的AI助手。")
# 定义输入和输出模式
input_schema = InputSchema({"type": "object", "properties": {"question": {"type": "string"}}})
output_schema = OutputSchema({"type": "object", "properties": {"answer": {"type": "string"}}})
# 创建代理
agent = Agent(system_prompt=system_prompt, input_schema=input_schema, output_schema=output_schema)
# 使用代理
response = agent.run({"question": "今天的天气怎么样?"})
print(response["answer"])
开发工作流程
- 创建新分支:为新功能或修复创建分支。
git checkout -b feature-branch
- 进行代码更改:在适当的项目目录中进行更改。
- 格式化代码:使用 Black 格式化代码。
black atomic_agents
- 代码检查:使用 Flake8 进行代码检查。
flake8 atomic_agents
- 运行测试:确保所有测试通过。
pytest --cov atomic_agents
- 提交更改:提交并推送到远程仓库。
git commit -m 'Add some feature'
git push origin feature-branch
- 创建拉取请求:在 GitHub 上创建拉取请求,描述更改内容并链接相关问题。