Documentation Index
Fetch the complete documentation index at: https://ikun.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
新功能:
- MySQL 存储:添加了对
MySQLStorage作为代理/团队/工作流程会话存储后端的支持。 - XAi 实时搜索:添加了对 XAi 模型提供商上实时搜索的支持。
- OpenAI 深度研究:添加了对
o4-mini-deep-research和o3-deep-research模型的支持。 - Stagehand MCP 示例:添加了使用 Agno 和 Stagehand MCP 的示例。
- Atla 可观测性示例:添加了使用 Agno 和 Atla 可观测性的示例。
- Scrapegraph 示例:添加了使用 Agno 和 Scrapegraph 的示例。
改进:
- 性能评估中的内存增长:在
PerformanceEval上添加了memory_growth_tracking属性,以启用内存增长的额外调试日志。 - 工具钩子中的代理/团队:在工具钩子中添加了
agent和team作为可选参数,以提高灵活性。
Bug 修复:
- Gemini 2.5 指标:修复了 Gemini 指标以正确包含“思考”令牌。
- Claude 工具调用:修复了在使用 Claude 模型时解析函数调用响应的错误。
- 团队指标:修复了团队启用历史记录时团队指标的错误。
新功能:
- 调试级别:为
Agent和Team都添加了debug_level。这是一个int值,可以是1(默认)或2(更详细的日志记录)。目前这仅启用了更详细的模型日志,但将来会更广泛地使用。
改进:
- 团队的解析器模型:为
Team添加了parser_model支持。请在此处查看文档:here。 - 支持 Gemini 思考:为
Gemini模型类添加了thinking_budget和include_thoughts参数。 - Serper 工具:对工具包进行了更新,以包含新的工具
search_news、search_scholar和scrape_webpage。 - Valyu 工具:新的 Valyu 工具包,用于对学术来源进行深度搜索。
- Oxylabs:添加了
OxylabsTools,用于为代理添加更多网页抓取功能。
Bug 修复:
- DuckDB CSV 解析错误:对于 CSV 文件,使用自定义的
read_csv方法来改进 CSV 解析。 - 完整的团队指标:修复了团队上
full_team_session_metrics计算的问题。
新功能:
- 代理/团队添加工具:为
Agent和Team添加了方便的函数 →add_tool(tool),以便在初始化后追加新工具。 - 流式结构化输出:在流式传输期间实现了结构化输出。这意味着在传递
response_model时不会关闭流式传输。结构化输出本身不会流式传输,但它是在运行具有流式传输的代理/团队时迭代器响应的一部分。响应模型在单个RunResponseContentEvent和最终的RunResponseCompletedEvent上设置。
改进:
- Linear Teams 工具:添加了用于从 Linear 获取团队列表的工具。
Bug 修复:
- 大写结构化输出:解决了 Pydantic 模型字段包含大写字段名的情况。
重大变更:
- 如果您在设置了
response_model的Agent或Team上使用run(..., stream=True)或arun(..., stream=True),当前行为将关闭流式传输并响应单个RunResponse对象。在进行了上述更改后,您将收到Iterator[RunResponseEvent]/AsyncIterator[RunResponseEvent]响应。
新功能:
- Brightdata 工具包:通过 Brightdata 添加了多个基于 Web 的工具。
- OpenCV 视频/图像工具包:添加了通过网络摄像头捕获图像/视频的工具。
- DiscordClient 应用:添加了一个 DiscordClient 应用,用于将您的代理或团队连接到 Discord,形式为一个 Discord 机器人。
改进:
- FileTools 文件搜索:为
FileTools添加了search。
Bug 修复:
- 修复用户控制流与历史记录:修复了用户控制流(HITL)在消息历史记录中失败的问题。
- 修复 Lance DB upsert 方法以支持知识过滤器:修复了
upsert函数未使用filters参数的问题。 - 更新 MongoDB 混合搜索以支持过滤器:MongoDB 现在正确地为混合搜索使用过滤器。
- 修复了
team.rename_session(...)引发的AttributeError:修复了rename_session函数未使用session_id参数的问题。
新功能:
- Playground 中的用户控制流:Agno 平台现在支持 Playground 中的用户控制流。
- RunResponse 中的团队和代理事件:在
RunResponse/TeamRunResponse中添加了store_events参数,以选择性地添加代理/团队运行过程中发生的所有事件。 - Playground 中的团队成员响应:Agno 平台现在显示团队运行时成员的响应。
- Playground 中的幕后花絮:Agno 平台现在显示代理和团队运行时发生的事情。
csv和csv_url知识库的元数据过滤支持:为这些知识库类型添加了知识过滤器支持。
更新
- 从异步函数名称中删除了
a前缀:现在,asearch_knowledge_base等函数的名称与同步版本发送到模型时相同。函数名称对于准确的函数调用很重要。
Bug 修复:
- AG-UI 修复:修复了使用 Agno AG-UI 应用时与缺少消息相关的错误。
- 聊天历史修复:修复了未设置
agent_id时历史记录不可用的问题。 - 使用代理时 MongoDB ObjectId 序列化问题:修复了在使用元数据中存在 ObjectId 的 mongodb 向量数据库时出现 Object of type
ObjectIdis not JSON serializable 的问题。
新功能:
- Nebius 嵌入:添加了对 Nebius 上嵌入模型 的支持。
- Firestore 内存和存储:为您的代理添加了 Firestore 作为内存和存储提供商的支持。
改进:
- 改进的事件负载:为代理事件添加了
agent_name,为团队事件添加了team_name。还为团队成员事件添加了team_session_id,以表明它属于顶层团队会话。 - 团队运行事件:为团队添加了
stream_member_events,以选择性地禁用成员事件的流式传输。 - DocumentKnowledgeBase 异步:为
DocumentKnowledgeBase添加了async支持。 - 自定义工具上的枚举:为自定义工具的参数添加了
enum支持。
Bug 修复:
- 团队事件:修复了团队和成员事件未包含在同一会话中的问题。今后,团队及其成员将拥有相同的会话 ID。
改进:
- 新的流式事件:我们改进了流式事件系统。请参阅底部的“重大变更”部分了解详情。
- 团队中的成员事件:上述更改包括将成员事件与顶层团队事件一起流式传输。
Bug 修复:
- Apify 工具:修复了 ApifyTools 的初始化以正确注册函数。
重大变更:
- 对无流式运行的更新:
RunResponse现在没有event属性。它仍然代表整个运行的响应。- 其他属性
RunResponse.status现在指示运行响应是RUNNING、PAUSED还是CANCELLED。
- 对流式运行的更新:
- 在流式传输的情况下,您现在会收到重新格式化的运行事件。如果您运行
agent.run(..., stream=True)或agent.arun(..., stream=True),这些事件就会被流式传输。 - 代理具有以下事件类型:
RunResponseContentRunErrorRunCancelledToolCallStartedToolCallCompleted- 配合
stream_intermediate_steps=True:RunStartedRunCompletedReasoningStartedReasoningStepReasoningCompletedMemoryUpdateStartedMemoryUpdateCompleted
- 在此处查看详细文档:here。
- 在流式传输的情况下,您现在会收到重新格式化的运行事件。如果您运行
- 对团队的更新:
- 团队具有以下事件类型:
TeamRunResponseContentTeamRunErrorTeamRunCancelledTeamToolCallStartedTeamToolCallCompleted- 配合
stream_intermediate_steps=True:TeamRunStartedTeamRunCompletedTeamReasoningStartedTeamReasoningStepTeamReasoningCompletedTeamMemoryUpdateStartedTeamMemoryUpdateCompleted
- 团队还将生成成员执行时的事件。
- 在此处查看详细文档:here。
- 团队具有以下事件类型:
- 对工作流程的更新:
- 您现在应该生成
WorkflowRunResponseStartedEvent和WorkflowRunResponseCompletedEvent事件。
- 您现在应该生成
新功能:
- Playground 文件上传:我们现在支持通过 Agno Playground 进行文件上传。这将把 PDF、CSV、Docx 等文件直接发送给代理/团队,供下游 LLM 解释。如果您已将知识库附加到代理/团队,它将把文件上传到知识库。
- 异步评估:支持
async和评估。请在此处的示例中查看:here。
改进:
- Exa 研究:在
ExaTools上添加了research工具。在此处查看有关研究如何工作的更多信息:their docs。 - Whatsapp 类型指示器:为 Whatsapp 响应添加类型指示器。
Bug 修复:
- 消息中的状态修复:修复了嵌套 JSON 在消息中以及将状态添加到消息中的问题。
新功能:
- AG-UI 应用:通过与 AG-UI 兼容的 FastAPI APP 暴露您的 Agno 代理和团队。
- vLLM 支持:添加了通过 Agno 运行 vLLM 模型 的支持。
- Serper 工具包:添加了
SerperTools工具包来搜索 Google。 - LangDB 支持:将 LangDB AI Gateway 支持添加到 Agno。
- LightRAG 服务器支持:添加了 LightRAG 支持,它提供了一个快速的、基于图的 RAG 系统,用于增强文档检索和知识查询功能。
- 解析器模型:添加了使用外部模型将结构化输出应用于模型响应 的功能。
- Pdf Bytes Knowledge:引入了一个新的知识库类:
PDFBytesKnowledgeBase,它允许通过字节或 IO 流而不是文件路径来摄取内存中的 PDF 内容。 - Qdrant Mcp 服务器:为 Qdrant 添加了 MCP 支持。
- Daytona 集成:添加了
DaytonaTools工具包,让代理在 Daytona 沙盒中远程执行代码。 - 扩展 Crawl4ai 中的 URL 添加:在 Crawl4ai 工具包中直接引入了新的 URL 扩展功能。我们的代理经常遇到爬虫无法有效抓取的缩短 URL,导致数据检索不完整。通过此更新,缩短的 URL 会在爬虫处理之前扩展到其最终目的地。
- AWS SES 工具:添加了
AWSSESTools以通过 AWS SES 发送电子邮件。 - 支持位置感知的代理:添加了
add_location_to_instructions,以自动检测代理正在运行的当前位置并将其添加到系统消息中。
改进:
- FastAPIApp 更新:FastAPIApp 已更新,并将
agent替换为agents,将team替换为teams,并添加了workflows。这现在也要求您指定要运行的代理/团队/工作流程。- 例如:
http://localhost:8001/runs?agent_id=my-agent
- 例如:
- ZepTools 更新:更新了
ZepTools以删除已弃用的功能。 - GmailTools 附件:
GmailTools现在支持附件。 - 通过使用带有重试和 async_fetch_with_retry 的 fetch 来提高代码的可重用性:更新了
fetch_with_retry和async_fetc_with_retry以在url_reader.py中重用。 - 为评估示例添加名称:在评估示例中包含 name 参数。
- XTools 搜索:为
XTools添加了search_posts。
Bug 修复:
- Claude Prompt Tokens:修复了 prompt tokens 未在 Claude 模型类中传播的错误。
- 为 base App 类向注册表添加类型:可以拥有不同类型的应用,例如
slack、whatsapp等。 - 接受空 PDF URL 数组:修复了空 PDF URL 数组未被接受的问题,从而在不添加新文档的情况下阻止知识库查询。
- Anthropic 缓存指标传播:修复了尽管原始 Anthropic API 工作正常,但 Anthropic 的提示缓存指标未传播到代理响应的错误。这个最小修复确保缓存性能指标被正确捕获和报告。
- 处理 RunResponse 字典解析中不可序列化的对象:
- 更新了
RunResponse.to_dict()以处理不可序列化的字段,例如 Python 枚举。
- 更新了
新功能:
- Slack 应用:引入
SlackApp以允许您为 Slack 创建代理!该应用允许代理响应个人消息或群聊,并创建线程来响应消息。 - 可视化工具:添加了使用
matplotlib的VisualizationTools,使代理能够制作图表。 - Brave Search 工具:引入了用于集成
BraveSearch的新工具包,允许代理使用 brave 搜索 api 在网上进行搜索。
改进:
- 为传统 RAG 传递过滤器:即使
self.add_references=True,也能正确传递knowledge_filters,这是传统 RAG 的情况(区别于 Agentic RAG)。 - 为 Mem0 添加 infer 参数:为
Mem0Tools添加了 infer 作为参数。
Bug 修复:
-
Searxng 工具初始化:修复了 Searxng 工具初始化错误:
并添加了全面的单元测试。
- 修复 Gemini 的 enum 作为响应模型的错误:在 1.5.6 版本中,引入了一个 bug(bug),现在允许 enum 作为 Gemini 响应模型的数据类型。
- OpenAI 解析结构化输出:随着 OpenAI 库的更改,我们不再需要单独解析结构化输出。
- 修复准确性评估监控:在准确性评估中添加了处理监控的逻辑,用于在运行函数中评估团队。
更新
- 应用程序更新:
FastAPIApp不再有默认的prefix,并且/run→/runs(即创建的运行端点是<your_domain>/runs)。serve_fastapi_app已被FastAPIApp实例上的.serve()替换。serve_whatsapp_app已被WhatsappAPI实例上的.serve()替换。
新功能
- 团队评估:所有类型的评估现在都支持团队!
改进:
- 异步工作流程:为工作流程添加了
arun支持,因此它们现在可以与asyncPython 一起使用。 - 并行内存更新:在生成用户记忆和会话摘要时提高了速度。
- 重新实现
tool_call_limit:对tool_call_limit进行了改造,使其能在整个代理运行中工作。 - Gemini / OpenAI 结构化响应:改进了 Gemini 和 OpenAI 结构化响应支持。现在可以在定义结构化响应时使用 Dict 类型。
Bug 修复:
- Mistral 带工具的结构化输出:修复了导致 Mistral 模型与结构化输出和工具一起使用的问题。
- 运行无提示图像:修复了在未提供提示时图像被忽略的问题。
- Pgvector Upsert 修复:修复了 Pgvector upsert 未正确复制元数据的问题。
- 处理 OpenAIResponses 失败的 AgnoInstrumentor:PR 已合并到 Arize 的 openinference 仓库中:https://github.com/Arize-ai/openinference/pull/1701。
- Pinecone 过滤器:为 pinecone 向量数据库启用了过滤器。
- Combined KB 异步:为 Combined KB 添加了缺失的异步方法。
- 团队会话状态修复:
team_session_state现在可以在团队的所有成员和子团队之间正确传播和共享。 - Gemini 整数类型修复:
- 具有
Dict[str, int]字段(和其他 Dict 类型)的 Pydantic 模型在使用 OpenAI 和 Gemini 模型作为response_schema时会失败,因为模式格式不兼容。
- 具有
- 会话名称:运行后现在可以使用
session_name。 - 在 RedisStorage 中处理 UUID 进行序列化:修复了错误对象类型 UUID 是不可 JSON 序列化的。
更新:
- 对于管理
team_session_state,您现在必须在Team上设置team_session_state而不是session_state。
新功能:
- Claude 文件上传:我们现在可以直接将文件上传到 Anthropic,然后将其用作代理的输入。
- Claude 4 代码执行工具:更新了 Claude 以在安全、沙箱化的环境中执行 Python 代码。
- 使用 Anthropic 模型进行提示缓存:允许从提示中的特定前缀恢复。这种方法显著减少了重复任务或具有一致元素提示的处理时间和成本。
- Vercel v0 模型:添加了对新的 Vercel v0 模型和 cookbook 示例的支持。
- Qdrant 混合搜索支持
- Markdown 知识库:添加了对 Markdown 知识库 的原生支持。
- AI/ML API 平台集成:引入了与 AI/ML API 的集成,该平台提供 AI/ML 模型。AI/ML API 提供 300 多个 AI 模型,包括 Deepseek、Gemini、ChatGPT。模型运行在企业级速率限制和正常运行时间内。
- 更新 Pydantic 和数据类在函数处理中的用法:添加了对将 Pydantic 和数据类对象作为函数输入 的支持。请在此处查看示例:here。
改进:
- ExaTools 类中 API 调用的超时处理:
- 为 Exa API 调用添加了超时功能,以防止搜索操作无限期挂起。该实现使用 Python 的
concurrent.futures模块来强制执行所有 Exa API 操作(搜索、获取内容、查找相似项和生成答案)的超时。 - 此更改解决了 Exa 搜索函数无限期挂起的问题,该问题可能导致服务中断和资源泄漏。
- 为 Exa API 调用添加了超时功能,以防止搜索操作无限期挂起。该实现使用 Python 的
- 获取最近 N 个会话的消息:
- 为代理提供了一个工具,例如
get_previous_session_messages(number_of_sessions: int),它返回代理可以分析的消息列表。 - 使用
search_previous_sessions_history启用。
- 为代理提供了一个工具,例如
- Redis 过期:添加了
expire键以在 Redis 键上设置 TTL。 - 将 Anthropic 缓存写入代理会话指标:为代理会话指标添加了
cache_creation_input_tokens,以便跟踪 Anthropic 缓存写入统计信息。
Bug 修复:
- Huggingface Embedder 更新:
- Huggingface 已更改其 API 的某些内容,并弃用了
InferenceClient()上的.post- https://discuss.huggingface.co/t/getting-error-attributeerror-inferenceclient-object-has-no-attribute-post/156682 - 由于这些模型不再由
HF Inference API提供,我们也无法再将id: str = "jinaai/jina-embeddings-v2-base-code"作为默认值。将默认值更改为id: str = "intfloat/multilingual-e5-large"。
- Huggingface 已更改其 API 的某些内容,并弃用了
- 为
OpenAIChat添加role_map:这允许使用某些不遵循 OpenAI 角色映射的模型,通过OpenAILike使用。 - 在 Pgvector 的 Upsert 中使用内容哈希作为 ID:在 upsert 中使用可重现的
content_hash作为 ID。 - 向量数据库插入仅传递最后一个块的元数据:向量数据库插入仅传递最后一个块的元数据。问题链接- https://discord.com/channels/965734768803192842/1219054452221153463/1376631140047130649
- 移除参数清理:替换为更安全的方法,不会破坏不应清理的参数。
- 处理 Playground 上运行异步代理时的异步工具:修复了在 Playground 中使用异步工具(例如 MCP 工具)的代理时发生的回归问题。
新功能:
- 用户控制流:这是 Agno 人工干预流和工具的 Beta 版本。
- 我们现在允许代理运行在某些用户需求完成前“暂停”,然后再继续运行代理。
- 这还添加了
agent.continue_run和agent.acontinue_run函数。 - 可用的控制流:
- 用户确认流 → 使用
@tool(requires_confirmation=True)装饰函数,代理将在执行工具前等待用户确认。 - 需要用户输入 → 使用
@tool(requires_user_input=True)装饰函数,代理将停止并要求用户输入后再继续。 - 外部工具执行 → 使用
@tool(external_execution=True)装饰函数,表示您将在代理上下文之外执行此函数。 - 动态用户输入 → 向代理添加
UserControlFlowTools(),使代理能够动态停止流并按需要求用户输入。
- 用户确认流 → 使用
- 在此处查看大量示例:here。
- Mem0 工具包:添加了一个用于管理 Mem0 中内存的工具包。
- Firecrawl 搜索:添加了对
FirecrawlTools中 Firecrawl 网页搜索的支持。
Bug 修复:
- Firecrawl 工具和读取器:修复了 Firecrawl 读取器和工具的参数解析。
- 所有工具的包含/排除:确保所有工具包都支持
include_tools和exclude_tools。
新功能:
- Agno 应用 (Beta):推出 Agno 应用,提供便捷的功能来协助构建生产就绪的应用程序。第一个支持的应用是:
FastAPIApp→ 一个非常简单的 FastAPI 服务器,提供对您的agent或team的访问。WhatsappAPIApp→ 一个实现 Whatsapp 协议的应用,允许您在 Whatsapp 上运行 Agno 代理。支持图像/音频/视频输入,并可以生成图像作为响应。支持推理。
- Couchbase 向量数据库支持:为知识库添加了对 Couchbase 作为向量数据库的支持。
- Teams 知识过滤器更新:现在可以与团队一起使用过滤器(手动和代理式)。
- Azure Cosmos DB for MongoDB (vCore) 向量数据库支持:在 MongoDB 向量数据库类中,通过启用
cosmos_compatibility=True来支持 cosmosdb mongo vcore。 - Google Big Query 工具:添加了支持 Google BigQuery 的工具包。
- S3 读取器的异步支持:为
pdf和textS3 读取器添加了异步支持。 - 工具包的
stop_after_tool_call和show_result:现在,基础的 Toolkit 类具有类似于@tool装饰器的stop_after_tool_call_tools和show_result_tools。
新功能:
- Azure OpenAI 工具:通过 Azure AI Foundry 添加了通过 Dall-E 进行图像生成的功能。
- OpenTelemetry 仪器化:我们为 OpenInference 项目做出了贡献,并添加了 Agno 代理的自动仪器化。这为 Agno 代理添加了跟踪仪器化,以支持任何 OpenTelemetry 兼容的可观测性提供商。其中包括 Arize、Langfuse 和 Langsmith。已添加示例以说明如何使用每个示例(here)。
- Evals 更新:添加了用于运行具有预生成答案的准确性评估的逻辑,以及对所有评估类的次要改进。
- Milvus 向量数据库的混合搜索和重排器:为 Milvus 添加了
hybrid_search支持。 - 支持带 Streamable-HTTP 的 MCP:现在支持 MCP 服务器的 streamable-HTTP 传输。
改进:
- 知识过滤器 Cookbook:与其在本地存储示例数据,不如现在在运行时从 s3 中拉取数据,以使存储库的 fork 尽可能轻量。
Bug 修复:
- 团队模型状态:修复了与团队模型之间共享状态相关的问题。
- 并发代理运行:修复了与并发运行代理相关的某些竞争条件。
重大变更:
- Evals 重构:
- 我们的性能评估类已从
PerfEval重命名为PerformanceEval。 - 我们的准确性评估类有新的必需字段:
agent、prompt和expected_answer。
- 我们的性能评估类已从
- 并发代理运行:我们在流式传输(
stream=True)期间删除了某些事件中的重复信息。现在,单个事件将包含更多相关数据。
新功能:
- Cerebras 模型提供商:添加 Cerebras 作为模型提供商。
- Claude 网页搜索:添加对 Claude 的新网页搜索工具 的支持。
- 知识库元数据过滤 (Beta):添加了按元数据过滤文档 的支持。
改进:
- 工具中的用户和会话 ID:为
Agent和Team的session_data添加了current_user_id和current_session_id作为默认变量。
Bug 修复:
- 知识库 ID 冲突:具有重叠名称的知识文件(例如
abc.-.xyz.pdf和abc.-.def.pdf)由于读取器使用格式化名称作为唯一的 ID 而导致唯一性冲突,因此被错误地识别。在所有读取器中引入了唯一的文档 ID,使用uuidv4()来确保严格的识别和防止冲突。
新功能:
- OpenAI 文件支持:添加了对附加到具有
OpenAIChat模型的代理提示的File的支持。
改进:
- Llama API:Llama 和 LlamaOpenAI 模型类的各种改进,包括结构化输出和图像输入支持。
- 异步自定义检索器:
retriever参数现在可以是一个async函数,用于agent.arun和agent.aprint_response。 - Gemini 视频 URL 输入:为 Gemini 添加了
Video(url=...)的支持。
Bug 修复:
- OpenAI 响应 o3 / o4 工具:修复了
OpenAIResponses上高级推理模型的 broken tool use。 - CLI 支持上的 MCP:修复了在使用
agent.acli_app调用MCPTools时对MCPTools的支持。
新功能:
- MCP SSE 支持:添加了连接到 SSE MCP 服务器 的支持。
- 工具钩子:您现在可以有一个包装所有工具调用的钩子。这适用于
Toolkits和自定义工具。请参阅此示例:this example。 - 团队会话状态:您现在可以在提供给团队负责人/成员的工具中跨团队负责人和团队成员管理单个状态字典。请参阅此示例:this example。
- Cartesia 工具:为 Cartesia 添加了文本转语音功能的支持。
- Gemini 图像工具:添加了一个使用 Gemini 模型生成图像的工具。
- Groq 音频工具:添加了一个使用 Groq 模型进行翻译、转录和生成音频的工具。
改进:
- PubmedTools 扩展结果:为
PubmedTools添加了扩展结果集。 - 工具结果的多样性:自定义工具现在可以具有任何返回类型,并且将在提供给模型之前进行处理。
Bug 修复:
- Teams 共享模型 Bug:修复了在团队成员之间使用单个模型的问题。这应该会减少团队执行中的工具调用失败。
新功能:
- 内存通用可用:我们对 Agentic 用户内存管理的工作方式进行了改进和调整。此功能现已推出 Beta 版并普遍可用。有关更多信息,请参阅这些 示例 和这些 文档。
- OpenAI 工具:添加了
OpenAITools以通过 OpenAI 的 API 实现文本转语音和图像生成。 - Zep 工具:添加了
ZepTools和AsyncZepTools,以使用zep-cloud为您的代理管理内存。
改进:
- Azure AI Foundry 推理:添加了通过 Azure AI Foundry 进行推理模型 的支持。例如,Deepseek-R1。
- 包含/排除工具:为所有工具包添加了
include_tools和exclude_tools。这允许选择性地启用/禁用工具包中的工具,这对于较大的工具包尤其有用。
Bug 修复:
- Gemini 与内存内存:修复了与 Gemini 与
Memory一起使用时的deepcopy问题。
重大变更:
- 内存:代理现在默认使用改进的
Memory而不是已弃用的AgentMemory.-agent.memory.messages→run.messages for run in agent.memory.runs(或agent.get_messages_for_session())-create_user_memories→enable_user_memories,现在直接在 Agent/Team 上设置。-create_session_summary→enable_session_summaries,现在直接在 Agent/Team 上设置。
改进:
- 进一步的异步向量数据库支持:添加了对以下数据库的支持:
- Agno 平台上的推理:
- 为 Agno 平台上的推理添加了广泛的支持。快去看看您最喜欢的推理代理吧!
- SDK 更改:
- 在不同类型的推理中发送正确的事件,并填充
stream/non-stream、async/non-async的RunResponse上的reasoning_content。 - 在
Reasoning events中统一所有推理类型的 JSON 结构。
- 在不同类型的推理中发送正确的事件,并填充
- Google 缓存支持:添加了缓存文件并向 Gemini 发送缓存内容 的支持。
Bug 修复
- Firecrawl 抓取:修复了 Firecrawl 执行期间的非序列化类型问题。https://github.com/agno-agi/agno/issues/2883
新功能:
- Web Browser 工具:引入了一个
webbrowser工具供代理与 Web 进行交互。 - 代理支持:为 URL 和 PDF 工具添加了
proxy参数支持,用于网络定制。
改进:
- 会话状态:添加了用于管理代理会话状态的示例。
- AzureOpenAIEmbedder:现在考虑在
client_params参数中传递的client_params,以获得更灵活的配置。 - LiteLLM:现在使用内置的环境验证来简化设置。
- Team 类:为团队数据序列化添加了
mode属性,以增强团队配置。 - 插入/更新/日志优化:仅当读取器中存在文档时,才触发插入/更新/日志操作。
- 数据库首选项:会话状态现在优先使用基于数据库的存储(如果可用)。
- 内存管理:内部内存系统已更新,以更好地处理会话和提高资源效率。
- 模块导出:仅导入的 Init 文件现在使用
__all__显式导出符号。
Bug 修复:
- DynamoDB 存储:修复了基于 DynamoDB 的设置中的存储处理问题。
- DeepSeek:修复了 API 密钥验证逻辑中的错误。
新功能:
- Redis Memory DB:添加 Redis 作为
Memory的存储提供商。请参见此处:here。
改进:
- 内存更新:进行了各种性能改进并添加了便捷函数:
agent.get_session_summary()→ 用于从代理获取上一会话摘要。agent.get_user_memories()→ 用于获取当前用户的记忆。- 您还可以向
MemoryManager或SessionSummarizer添加其他说明。
- Confluence 绕过 SSL 验证:如果需要,您现在可以跳过 Confluence 连接的 SSL 验证。
- 为团队提示提供更多灵活性:添加了
add_member_tools_to_system_message以从提供给团队领导者的系统消息中删除成员工具名称,这允许灵活性,使团队传输函数在更多情况下工作。
Bug 修复:
- LiteLLM 流式工具调用:修复了 LiteLLM 中工具调用流式传输的问题。
- E2B casing 问题:修复了解析的 Python 代码中的问题,这些问题可能导致某些值变为小写。
- 团队成员 ID:修复了导致团队中断的团队成员 ID 的边缘情况。
改进:
- Teams 改进:对团队进行了多项改进,以使任务转发给成员代理更可靠,并使团队领导者更具对话性。还添加了各种使用团队进行推理的示例。
- Teams 知识:为
Team添加了knowledge,以更好地与Agent的功能保持一致。这附带了retriever用于设置自定义检索器,以及search_knowledge用于启用代理式 RAG。
Bug 修复:
- Gemini Grounding Chunks:修复了 Gemini Grounding 在流式传输中使用时出现的错误。
- OpenAI 在结构化输出中的默认值:OpenAI 不允许在结构化输出中使用默认值。为了使我们的结构化输出尽可能兼容且没有不利影响,我们更新了
OpenAIResponses和OpenAIChat。
改进:
- 改进的 Github 工具:为
GithubTools添加了更多功能。 - Windows 脚本支持:将所有实用脚本转换为 Windows 兼容。
- MongoDB VectorDB 异步支持:现在可以在异步知识库中使用 MongoDB。
Bug 修复:
- Gemini 工具格式化:修复了使用 Gemini 时函数未正确解析的各种情况。
- ChromaDB 版本兼容性:修复以确保 ChromaDB 和 Agno 与更新版本的 ChromaDB 兼容。
- 团队成员交互:修复了成员响应内容为空导致团队停止的问题。现在已解决此问题。
- Claude 空响应:修复了响应不包含任何工具调用内容导致 Anthropic API 错误的情况。
新功能:
- 时区标识符:在 Agent 类中添加了新的
timezone_identifier参数,以将时区与当前日期一起包含在说明中。 - Google Cloud JSON 存储:为 Google Cloud 添加了基于 JSON 的会话存储支持。
- 推理工具:添加了
ReasoningTools,用于代理的高级推理记事本。
改进:
1.2.7
新功能:
- Gemini 图像生成:添加了使用
gemini-2.0-flash-exp-image-generation模型直接从 Gemini 生成图像 的支持。
改进:
- Vertex AI:改进了 Vertex AI 与 Gemini Model 类的使用,以更紧密地遵循官方 Google 规范。
- 函数结果缓存改进:我们现在对所有 Agno 工具包和使用
@tool装饰器的自定义函数都有结果缓存。请在此处查看文档:here。 - 异步向量数据库和知识库改进:已将更多知识库转换为支持
async-await,因此将在agent.arun和agent.aprint_response中使用。这也意味着knowledge_base.aload()是可能的,这在某些情况下应大大提高加载速度。已转换以下内容:- 向量数据库:
- 知识库:
JSONKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。PDFKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。PDFUrlKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。CSVKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。CSVUrlKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。ArxivKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。WebsiteKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。YoutubeKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。TextKnowledgeBase→ 此处有一个 cookbook 来说明如何使用它:Here。
Bug 修复:
- 递归分块无限循环:修复了递归分块在处理大文档时陷入无限循环的问题。
1.2.5
新功能:
- E2B 工具:添加了 E2B 工具以在 E2B Sandbox 中运行代码。
改进:
- Teams 工具:为
Team添加了tools和tool_call_limit。这意味着团队领导者本身也可以拥有用户提供的工具,从而可以充当代理。 - Teams 说明:改进了有关附加图像、音频、视频和文件的说明。这应该会提高将工件附加到针对成员代理的提示时的成功率。
- MCP 包含/排除工具:扩展了
MCPTools,允许您指定要特别包含或排除在 MCP 服务器所有可用工具中的工具。这对于限制模型可访问的工具非常有价值。 - 工具装饰器异步支持:
@tool()装饰器现在支持异步函数,包括异步预钩子和后钩子。
Bug 修复:
- 默认思维链推理:修复了当提供的推理模型无法进行推理时,推理不会默认为手动 CoT 的问题。
- Teams 非 markdown 响应:修复了团队中非 markdown 响应的问题。
- Ollama 工具选择:从 Ollama 用法中删除了
tool_choice,因为它不受支持。 - 工作流程从存储中检索会话:修复了
entity_id映射。
1.1.15
改进:
- 工具结果缓存:增加了对选定搜索器和抓取器的缓存。这仅用于测试目的,应在测试代理时大大提高迭代速度、避免速率限制并降低成本(如有)。适用于:
- DuckDuckGoTools
- ExaTools
- FirecrawlTools
- GoogleSearchtools
- HackernewsTools
- NewspaperTools
- Newspaper4kTools
- Websitetools
- YFinanceTools
- 显示工具调用:改进了使用
print_response和aprint_response时显示工具调用的方式。现在,它们显示在不同于响应面板的单独面板中。它也可以与response_model结合使用。
1.1.14 - Teams 重构
新功能:
- Teams 重构:宣布代理团队的新迭代,具有以下功能:
- 以“协作”、“协调”或“路由”三种模式之一创建
Team。 - 对之前的团队实现中存在的许多错误进行了各种改进。包括从成员代理返回结构化输出(用于“路由”模式)、将图像、音频和视频传递给成员代理等。
- 添加了诸如团队成员之间的“代理共享上下文”以及将单个团队成员的响应共享给其他团队成员等功能。
- 这还伴随着代理和团队调试日志的重构。使用
debug_mode=True和team.print_response(...)来查看其运行情况。 - 文档在此处:here。请查看此处的示例实现:here。
- 这是第一个版本。请提供反馈。更新和改进将随之而来。
- 仍然支持
Agent(team=[]),但已被弃用(见下文)。
- 以“协作”、“协调”或“路由”三种模式之一创建
- LiteLLM:已添加 LiteLLM 支持,既有原生实现,也有通过
OpenAILike接口。
改进:
- 将 structured_output 改为 response_format:为
Agent和Team添加了use_json_mode: bool = False参数,该参数与response_model=YourModel结合使用,用于指示代理/团队模型是否应强制以 json 而不是(现在默认的)结构化输出来响应。之前的行为默认为“json-模式”,但由于大多数模型现在支持原生结构化输出,我们现在默认使用原生结构化输出。由于现在只需要设置response_model,因此使用响应模型也变得更加简单。不再需要设置structured_output=True来专门从模型获取结构化输出。 - Website 工具 + 组合知识库:为
WebsiteTools添加了更新组合知识库的功能。
Bug 修复:
- AgentMemory:修复了
get_message_pairs()获取错误消息的问题。 - 函数中的 UnionType:修复了在函数参数中使用管道风格联合时的函数解析问题。
- Gemini 数组函数解析:修复了在某些 MCP 情况下导致 gemini 函数解析无法工作的 问题。
弃用:
- 结构化输出:
Agent.structured_output已被Agent.use_json_mode替换。这将在未来的主要版本发布中删除。 - Agent Team:随着我们新的 Teams 实现(here)的发布,
Agent.team已被弃用。这将在未来的主要版本发布中删除。
1.1.13
改进:
- OpenAIResponses 文件搜索:添加了对 OpenAI 内置的 “文件搜索” 功能的支持。这会自动上传附加到代理提示的
File对象。 - OpenAIReponses 网页引用:添加了在使用 OpenAI 内置的“网页搜索”工具后提取 URL 引用的支持。
- Anthropic 文档引用:添加了在将
File对象附加到代理提示时从 Claude 响应中提取文档引用的支持。 - Cohere Command A:添加了对 Cohere 新旗舰模型 的支持和示例。
Bug 修复:
- Ollama 工具:修复了参数未键入的工具问题。
- Anthropic 结构化输出:修复了影响 Anthropic 和 Azure 中的 Anthropic 的问题,即在某些情况下结构化输出不起作用。这总体上应该能改善使用不原生支持结构化输出的模型使用结构化输出的体验。现在也支持 Pydantic 模型中的枚举作为类型。
- Google Maps Places:Google 对 Places API 的支持已发生变化,这使其保持最新状态,以便我们可以继续支持“搜索地点”。
1.1.11
新功能:
- OpenAI Responses:添加了一个新的模型实现,支持 OpenAI 的 Responses API。这包括对其 “websearch” 内置工具的支持。
- Openweather API 工具:添加了获取实时天气信息的工具。
改进:
- 存储重构:合并了代理和工作流程存储类,以更好地为代理、团队和工作流程对齐存储。此更改向后兼容,不应导致任何中断。
1.1.10
新功能:
- 文件提示:引入了一种新的
File类型,可以添加到提示中并发送到模型提供商。目前仅支持 Gemini 和 Anthropic Claude。 - LMStudio:添加了对 LMStudio 作为模型提供商的支持。请参阅 文档。
- AgentQL 工具:添加了支持 AgentQL 的工具,用于将代理连接到网站进行抓取等。请参阅 文档。
- Browserbase 工具:添加了 Browserbase 工具。
改进:
- Cohere Vision:添加了对使用 Cohere 模型进行图像理解 的支持。请参阅此 cookbook:this cookbook 进行尝试。
- Embedder 默认日志记录:改进了使用默认 OpenAI embedder 时的日志记录。
Bug 修复:
- Ollama Embedder:修复了在不同版本中获取 Ollama 嵌入的问题。
1.1.5
新功能:
-
音频响应:代理现在可以提供音频响应(支持流式和非流式)。
-
音频可在
agent.run_response.response_audio中找到。 -
这仅适用于具有
gpt-4o-audio-preview模型的OpenAIChat。请参阅其文档:their docs 了解更多关于其工作原理的信息。例如: - 在 Agent Playground 上查看 audio_conversation_agent cookbook 进行测试。
-
音频可在
- Together.ai 和 XAi 的图像理解支持:您现在可以使用 XAi 和 Together.ai 的模型向代理提供图像。
改进:
- 自动化测试:为所有模型添加了集成测试。其中大部分将在每次拉取请求时运行,并在发布新版本之前运行一套集成测试。
- Gemini 的 grounding 和搜索:Grounding 和 Search 可用于提高 Gemini 模型响应的准确性和时效性。
Bug 修复:
- 结构化输出更新:修复了本机结构化输出未在模型上使用的各种情况。
- Ollama 工具解析:修复了 Ollama 与具有可选参数的工具的情况。
- Gemini 内存摘要器:修复了 Gemini 模型用作内存摘要器的情况。
- Gemini 自动工具调用:启用自动工具调用(当提供工具时),使行为与其他模型保持一致。
- 修复了 FixedSizeChunking 的重叠问题:修复了重叠设置时分块失败的问题。
- Claude 具有多种类型的工具:修复了 Claude 工具在处理参数类型联合时中断的问题。
- JSON 响应解析:修复了 JSON 模型响应在字典值中返回带引号字符串的情况。
1.1.2
改进:
- o3 模型的推理:为 OpenAI 的 o3 模型添加了推理支持。
-
Gemini embedder 更新:更新
GeminiEmbedder以使用新的 Google genai SDK。此更新在接口上引入了一个细微的变化:
Bug 修复:
- Singlestore 修复:修复了查询 SingleStore 时 embeddings 列以二进制格式返回的问题。
- MongoDB Vectorstore 修复:修复了 MongoDB 中的多个问题,包括初始化期间的集合重复创建和删除。所有已知问题均已解决。
- LanceDB 修复:修复了 LanceDB 中的各种错误,并添加了
on_bad_vectors作为参数。
1.1.1
改进:
-
Agent UI 中的文件/图像上传:Agent UI 现在支持文件和图像上传与提示。
- 支持的文件格式:
.pdf、.csv、.txt、.docx、.json - 支持的图像格式:
.png、.jpeg、.jpg、.webp
- 支持的文件格式:
- Firecrawl 自定义 API URL:允许用户为 Firecrawl 设置自定义 API URL。
-
更新
ModelsLabTools工具包构造函数:/libs/agno/tools/models_labs.py中的构造函数已更新,以适应音频生成 API 调用。这是一个重大更改,因为ModelsLabTools类的参数已更改。已删除url和fetch_url参数,现在根据用户提供的file_type来决定 API URL。FileType枚举现在包括MP3类型:
Bug 修复:
- Gemini 无参数函数:解决了 Gemini 拒绝具有空属性的函数声明的问题。
- 修复指数级内存增长:修复了代理内存呈指数级增长的某些情况。
- Chroma DB:修复了与插入和搜索相关的元数据相关的各种问题。
- Gemini 结构化输出:修复了 Gemini 未正确生成结构化输出的错误。
- MistralEmbedder:修复了
MistralEmbedder实例化的相关问题。 - 推理:修复了设置推理模型的问题。
- 音频响应:修复了将音频伪像流式传输到 Playground 的问题。
1.1.0 - 模型重构和云支持
模型改进:
- 模型重构:对我们的模型实现进行了彻底检查,以提高性能并实现跨模型的更好功能奇偶性。
- 这也改善了 Agent UI 上的指标和可见性。
- 除
AwsBedrock外,所有模型均支持 async-await。
- Azure AI Foundry:我们现在支持 Azure AI Foundry 上的所有模型。在此处了解更多信息:here。
- AWS Bedrock 支持:我们重新设计的 AWS Bedrock 实现现在支持所有 Bedrock 模型。请务必注意 哪些模型支持哪些功能。
- 通过 Google SDK 的 Gemini:通过 Google 的 genai SDK 的 1.0.0 版本,我们可以改进我们之前的 Gemini 实现。这将为将来的 Gemini 功能集成提供便利。
- 模型失败重试:我们添加了更好的第三方错误(例如,速率限制错误)处理,如果设置
exponential_backoff为True,代理现在将选择重试,并带有指数退避。
其他改进
- Exa Answers 支持:添加了对 Exa answers 功能 的支持。
- GoogleSearchTools:更新了
GoogleSearch的名称为GoogleSearchTools以实现一致性。
弃用
- 通过 Vertex API 直接实现的
Gemini已被 Google SDK 实现的Gemini取代。 - 通过 OpenAI 客户端实现的
Gemini已被 Google SDK 实现的Gemini取代。 OllamaHermes已被移除,因Ollama的实现已得到改进。
Bug 修复
- 团队成员名称:修复了一个错误,该错误导致团队成员名称中包含非字母数字字符的团队会引发异常。
1.0.8
新功能:
- Perplexity 模型:我们现在支持 Perplexity 作为模型提供商。
- Todoist 工具包:添加了一个用于在 Todoist 上管理任务的工具包。
- JSON 读取器:添加了一个 JSON 文件读取器,用于知识库。
改进:
- LanceDb:为 LanceDb 实现了
name_exists函数。
Bug 修复:
- 存储增长 bug:修复了在存储中每次运行都重复
run_messages.messages的错误。
1.0.7
新功能:
- Google Sheets 工具包:添加了一个用于读取、创建和更新 Google 表格的基本工具包。
- Weviate Vector Store:为 Weviate 作为向量存储添加了支持。
改进:
- Mistral Async:Mistral 现在通过
agent.arun()和agent.aprint_response()支持异步执行。 - Cohere Async:Cohere 现在通过
agent.arun()和agent.aprint_response()支持异步执行。
Bug 修复:
- 检索器作为知识源:为使用自定义
retriever参数的代理添加了小的修复和示例。
1.0.0 - Agno
这是从phidata 到 agno 的主要重构,随 Agno AI 正式发布而发布。有关其他指导,请参阅 迁移指南。接口更改:
-
phi.model.x→agno.models.x -
phi.knowledge_base.x→agno.knowledge.x(适用于所有知识库) -
phi.document.reader.xxx→agno.document.reader.xxx_reader(适用于所有文档读取器) -
所有 Agno 工具包现在都带有
Tools后缀。例如:DuckDuckGo→DuckDuckGoTools -
多模态接口更新:
-
agent.run(images=[])和agent.print_response(images=[])现在是Image类型。 -
agent.run(audio=[])和agent.print_response(audio=[])现在是Audio类型。 -
agent.run(video=[])和agent.print_response(video=[])现在是Video类型。 -
RunResponse.images现在是ImageArtifact类型的列表。 -
RunResponse.audio现在是AudioArtifact类型的列表。 -
RunResponse.videos现在是VideoArtifact类型的列表。 -
RunResponse.response_audio现在是AudioOutput类型。 - 模型:
-
Hermes→OllamaHermes -
AzureOpenAIChat→AzureOpenAI -
CohereChat→Cohere -
DeepSeekChat→DeepSeek -
GeminiOpenAIChat→GeminiOpenAI -
HuggingFaceChat→HuggingFace
-
-
Embedder 现在都接受
id而不是model作为参数。例如: -
Agent Storage 类
PgAgentStorage→PostgresDbAgentStorageSqlAgentStorage→SqliteDbAgentStorageMongoAgentStorage→MongoDbAgentStorageS2AgentStorage→SingleStoreDbAgentStorage
-
Workflow Storage 类
SqlWorkflowStorage→SqliteDbWorkflowStoragePgWorkflowStorage→PostgresDbWorkflowStorageMongoWorkflowStorage→MongoDbWorkflowStorage
-
Knowledge Base
phi.knowledge.pdf.PDFUrlKnowledgeBase→agno.knowledge.pdf_url.PDFUrlKnowledgeBasephi.knowledge.csv.CSVUrlKnowledgeBase→agno.knowledge.csv_url.CSVUrlKnowledgeBase
-
读取器
phi.document.reader.arxiv→agno.document.reader.arxiv_readerphi.document.reader.docx→agno.document.reader.docx_readerphi.document.reader.json→agno.document.reader.json_readerphi.document.reader.pdf→agno.document.reader.pdf_readerphi.document.reader.s3.pdf→agno.document.reader.s3.pdf_readerphi.document.reader.s3.text→agno.document.reader.s3.text_readerphi.document.reader.text→agno.document.reader.text_readerphi.document.reader.website→agno.document.reader.website_reader
改进:
- 数据类:将各种 Pydantic 模型实例更改为数据类以提高速度。
- 将
Embedder类从 pydantic 移至数据类
移除
- 移除了对
Assistant的所有引用。 - 移除了对
llm的所有引用。 - 移除了
PhiTools工具。 - 在
Agent类上,guidelines、prevent_hallucinations、prevent_prompt_leakage、limit_tool_access和task已被移除。您可以根据需要将它们合并到instructions参数中。
Bug 修复:
- 语义分块:通过将
similarity_threshold参数替换为threshold参数来修复语义分块。
新功能:
- 代理评估:推出评估功能,以衡量代理的性能、准确性和可靠性。