141 lines
5.6 KiB
Markdown
141 lines
5.6 KiB
Markdown
# 多智能体框架与运行时
|
||
|
||
`AI Agent` `多智能体` `FastAPI` `RAG` `LLM` `Python`
|
||
|
||
## Agno 是什么?
|
||
|
||
Agno 是一个多智能体框架、运行时和控制平面。用它来构建在您的云端运行的私有、安全 AI 产品。
|
||
|
||
- **构建**:具备记忆、知识库、护栏和 100+ 集成的智能体、团队与工作流。
|
||
- **运行**:基于无状态 FastAPI 运行时的生产级部署,支持水平扩展。
|
||
- **管理**:控制平面直连您的运行时,数据不离开您的环境。
|
||
|
||
## 为什么选择 Agno?
|
||
|
||
- **您的云,您的数据**:完全运行在您的基础设施中,没有任何数据离开您的环境。
|
||
- **第一天就可用于生产**:预构建的 FastAPI 运行时,包含 SSE 端点,随时可部署。
|
||
- **极致性能**:比 LangGraph 快 529 倍,内存占用低 24 倍。
|
||
|
||
## 快速开始
|
||
|
||
从[入门指南](https://github.com/agno-agi/agno/tree/main/cookbook/00_getting_started)开始,然后:
|
||
|
||
- 浏览 [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook) 获取真实世界示例
|
||
- 阅读[文档](https://docs.agno.com)了解更多
|
||
|
||
## 资源
|
||
|
||
- 文档:[docs.agno.com](https://docs.agno.com)
|
||
- Cookbook:[Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook)
|
||
- 社区论坛:[community.agno.com](https://community.agno.com/)
|
||
- Discord:[discord](https://discord.gg/4MtYHHrgA8)
|
||
|
||
## 示例
|
||
|
||
以下是一个智能体示例,它连接到 MCP 服务器,在数据库中管理对话状态,并通过 FastAPI 应用提供服务,可通过 [AgentOS UI](https://os.agno.com) 进行交互。
|
||
|
||
```python agno_agent.py
|
||
from agno.agent import Agent
|
||
from agno.db.sqlite import SqliteDb
|
||
from agno.models.anthropic import Claude
|
||
from agno.os import AgentOS
|
||
from agno.tools.mcp import MCPTools
|
||
|
||
# ************* 创建智能体 *************
|
||
agno_agent = Agent(
|
||
name="Agno Agent",
|
||
model=Claude(id="claude-sonnet-4-5"),
|
||
# 为智能体添加数据库
|
||
db=SqliteDb(db_file="agno.db"),
|
||
# 为智能体添加 Agno MCP 服务器
|
||
tools=[MCPTools(transport="streamable-http", url="https://docs.agno.com/mcp")],
|
||
# 将历史会话记录添加到上下文
|
||
add_history_to_context=True,
|
||
markdown=True,
|
||
)
|
||
|
||
|
||
# ************* 创建 AgentOS *************
|
||
agent_os = AgentOS(agents=[agno_agent])
|
||
# 获取 AgentOS 的 FastAPI 应用
|
||
app = agent_os.get_app()
|
||
|
||
# ************* 运行 AgentOS *************
|
||
if __name__ == "__main__":
|
||
agent_os.serve(app="agno_agent:app", reload=True)
|
||
```
|
||
|
||
## AgentOS - 多智能体系统的生产运行时
|
||
|
||
构建智能体很容易,将其作为安全、可扩展的服务运行却很难。AgentOS 通过提供高性能运行时来解决这一问题,用于在生产环境中提供多智能体系统服务。主要特性包括:
|
||
|
||
1. **预构建 FastAPI 应用**:AgentOS 包含一个即用型 FastAPI 应用,用于运行您的智能体、团队和工作流,为构建 AI 产品提供显著的先发优势。
|
||
|
||
2. **集成控制平面**:[AgentOS UI](https://os.agno.com) 直接连接到您的运行时,让您可以实时测试、监控和管理系统,具备完整的运营可见性。
|
||
|
||
3. **隐私优先设计**:AgentOS 完全运行在您的云端,确保完整的数据隐私。数据不离开您的环境,非常适合注重安全的企业。
|
||
|
||
## 隐私优先设计
|
||
|
||
这是我们最重视的部分。
|
||
|
||
AgentOS 运行在**您的**云端。控制平面 UI 直接从您的浏览器连接到您的运行时。您的数据从不经过我们的服务器。无留存成本,无供应商锁定,无合规难题。
|
||
|
||
这不是隐私模式或企业附加功能,这就是 Agno 的工作方式。
|
||
|
||
## 功能特性
|
||
|
||
### 核心能力:
|
||
- 模型无关——支持 OpenAI、Anthropic、Google、本地模型等
|
||
- 通过 `input_schema` 和 `output_schema` 实现类型安全的输入/输出
|
||
- 异步优先,专为长时间运行任务设计
|
||
- 原生多模态支持(文本、图像、音频、视频、文件)
|
||
|
||
### 记忆与知识:
|
||
- 会话历史和状态的持久化存储
|
||
- 跨会话持久化的用户记忆
|
||
- 支持 20+ 向量存储、混合搜索、重排序的智能体 RAG
|
||
- Culture——跨智能体的共享长期记忆
|
||
|
||
### 执行控制:
|
||
- 人在回路(确认、审批、覆盖)
|
||
- 用于验证和安全的护栏机制
|
||
- 智能体生命周期的前/后钩子
|
||
- 原生 MCP 和 A2A 支持
|
||
- 100+ 内置工具包
|
||
|
||
### 生产就绪:
|
||
- 即用型 FastAPI 运行时
|
||
- 集成控制平面 UI
|
||
- 准确性、性能、延迟评估
|
||
- 可恢复工作流的持久化执行
|
||
- RBAC 和按智能体权限管理
|
||
|
||
## 性能
|
||
|
||
我们对性能极度重视,因为智能体工作负载会生成数百个实例并运行长时间任务。无状态、水平可扩展性不是可选项。
|
||
|
||
**基准测试**(Apple M4 MacBook Pro,2025 年 10 月):
|
||
|
||
| 指标 | Agno | LangGraph | PydanticAI | CrewAI |
|
||
|------|------|-----------|------------|--------|
|
||
| 实例化 | **3μs** | 1,587μs(慢 529 倍) | 170μs(慢 57 倍) | 210μs(慢 70 倍) |
|
||
| 内存 | **6.6 KiB** | 161 KiB(高 24 倍) | 29 KiB(高 4 倍) | 66 KiB(高 10 倍) |
|
||
|
||
自行运行基准测试:[`cookbook/12_evals/performance`](https://github.com/agno-agi/agno/tree/main/cookbook/12_evals/performance)
|
||
|
||
## IDE 集成
|
||
|
||
要启用 AI 辅助开发,将我们的文档添加到您的 IDE:
|
||
|
||
**Cursor:** 设置 → 索引与文档 → 添加 `https://docs.agno.com/llms-full.txt`
|
||
|
||
同样支持 VSCode、Windsurf 及其他支持 AI 的编辑器。
|
||
|
||
## 贡献
|
||
|
||
欢迎贡献代码。请参阅[贡献指南](https://github.com/agno-agi/agno/blob/v2.0/CONTRIBUTING.md)。
|
||
|
||
## 遥测
|
||
|
||
Agno 会记录使用了哪些模型提供商,以便我们优先安排更新。可通过设置 `AGNO_TELEMETRY=false` 来禁用。 |