> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 产品更新

<Update label="2025-07-10" description="v1.7.2">
  ## 新功能：

  * **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 模型时解析函数调用响应的错误。
  * **团队指标**：修复了团队启用历史记录时团队指标的错误。
</Update>

<Update label="2025-06-30" description="v1.7.1">
  ## 新功能：

  * **调试级别**：为 `Agent` 和 `Team` 都添加了 `debug_level`。这是一个 `int` 值，可以是 `1`（默认）或 `2`（更详细的日志记录）。目前这仅启用了更详细的模型日志，但将来会更广泛地使用。

  ## 改进：

  * **团队的解析器模型**：为 `Team` 添加了 `parser_model` 支持。请在此处查看文档：[here](https://docs.agno.com/teams/structured-output#using-a-parser-model)。
  * **支持 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` 计算的问题。
</Update>

<Update label="2025-06-26" description="v1.7.0">
  ## 新功能：

  * **代理/团队添加工具**：为 `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]` 响应。
</Update>

<Update label="2025-06-23" description="v1.6.4">
  ## 新功能：

  * **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` 参数的问题。
</Update>

<Update label="2025-06-18" description="v1.6.3">
  ## 新功能：

  * **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 `ObjectId` is not JSON serializable 的问题。
</Update>

<Update label="2025-06-13" description="v1.6.1">
  ## 新功能：

  * **Nebius 嵌入**：添加了对 Nebius 上嵌入模型 的支持。
  * **Firestore 内存和存储**：为您的代理添加了 Firestore 作为内存和存储提供商的支持。

  ## 改进：

  * **改进的事件负载**：为代理事件添加了 `agent_name`，为团队事件添加了 `team_name`。还为团队成员事件添加了 `team_session_id`，以表明它属于顶层团队会话。
  * **团队运行事件**：为团队添加了 `stream_member_events`，以选择性地禁用成员事件的流式传输。
  * **DocumentKnowledgeBase 异步**：为 `DocumentKnowledgeBase` 添加了 `async` 支持。
  * **自定义工具上的枚举**：为自定义工具的参数添加了 `enum` 支持。

  ## Bug 修复：

  * **团队事件**：修复了团队和成员事件未包含在同一会话中的问题。今后，团队及其成员将拥有相同的会话 ID。
</Update>

<Update label="2025-06-10" description="v1.6.0">
  ## 改进：

  * **新的流式事件**：我们改进了流式事件系统。请参阅底部的“重大变更”部分了解详情。
  * **团队中的成员事件**：上述更改包括将成员事件与顶层团队事件一起流式传输。

  ## Bug 修复：

  * **Apify 工具**：修复了 ApifyTools 的初始化以正确注册函数。

  ## 重大变更：

  * **对无流式运行的更新**：
    * `RunResponse` 现在没有 `event` 属性。它仍然代表整个运行的响应。
    * 其他属性 `RunResponse.status` 现在指示运行响应是 `RUNNING`、`PAUSED` 还是 `CANCELLED`。
  * **对流式运行的更新**：
    * 在流式传输的情况下，您现在会收到重新格式化的运行事件。如果您运行 `agent.run(..., stream=True)` 或 `agent.arun(..., stream=True)`，这些事件就会被流式传输。
    * 代理具有以下事件类型：
      * `RunResponseContent`
      * `RunError`
      * `RunCancelled`
      * `ToolCallStarted`
      * `ToolCallCompleted`
      * 配合 `stream_intermediate_steps=True`：
        * `RunStarted`
        * `RunCompleted`
        * `ReasoningStarted`
        * `ReasoningStep`
        * `ReasoningCompleted`
        * `MemoryUpdateStarted`
        * `MemoryUpdateCompleted`
    * 在此处查看详细文档：[here](https://docs.agno.com/agents/run)。
  * **对团队的更新**：
    * 团队具有以下事件类型：
      * `TeamRunResponseContent`
      * `TeamRunError`
      * `TeamRunCancelled`
      * `TeamToolCallStarted`
      * `TeamToolCallCompleted`
      * 配合 `stream_intermediate_steps=True`：
        * `TeamRunStarted`
        * `TeamRunCompleted`
        * `TeamReasoningStarted`
        * `TeamReasoningStep`
        * `TeamReasoningCompleted`
        * `TeamMemoryUpdateStarted`
        * `TeamMemoryUpdateCompleted`
    * 团队还将生成成员执行时的事件。
    * 在此处查看详细文档：[here](https://docs.agno.com/teams/run)。
  * **对工作流程的更新**：
    * 您现在应该生成 `WorkflowRunResponseStartedEvent` 和 `WorkflowRunResponseCompletedEvent` 事件。
</Update>

<Update label="2025-06-06" description="v1.5.10">
  ## 新功能：

  * **Playground 文件上传**：我们现在支持通过 Agno Playground 进行文件上传。这将把 PDF、CSV、Docx 等文件直接发送给代理/团队，供下游 LLM 解释。如果您已将知识库附加到代理/团队，它将把文件上传到知识库。
  * **异步评估**：支持 `async` 和评估。请在此处的示例中查看：[here](https://github.com/agno-agi/agno/tree/main/cookbook/evals)。

  ## 改进：

  * **Exa 研究**：在 `ExaTools` 上添加了 `research` 工具。在此处查看有关研究如何工作的更多信息：[their docs](https://docs.exa.ai/reference/exa-research)。
  * **Whatsapp 类型指示器**：为 Whatsapp 响应添加类型指示器。

  ## Bug 修复：

  * **消息中的状态修复**：修复了嵌套 JSON 在消息中以及将状态添加到消息中的问题。
</Update>

<Update label="2025-06-05" description="v1.5.9">
  ## 新功能：

  * **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 枚举。
</Update>

<Update label="2025-06-03" description="v1.5.8">
  ## 新功能：

  * **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 工具初始化错误：

    ```
    AttributeError: 'Searxng' object has no attribute 'include_tools'
    ```

    并添加了全面的单元测试。

  * **修复 Gemini 的 enum 作为响应模型的错误**：在 1.5.6 版本中，引入了一个 bug（[bug](https://discord.com/channels/965734768803192842/965734768803192845/1377999191632121926)），现在允许 enum 作为 Gemini 响应模型的数据类型。

  * **OpenAI 解析结构化输出**：随着 OpenAI 库的更改，我们不再需要单独解析结构化输出。

  * **修复准确性评估监控**：在准确性评估中添加了处理监控的逻辑，用于在运行函数中评估团队。

  ## 更新

  * **应用程序更新**：
    * `FastAPIApp` 不再有默认的 `prefix`，并且 `/run` → `/runs`（即创建的运行端点是 `<your_domain>/runs`）。
    * `serve_fastapi_app` 已被 `FastAPIApp` 实例上的 `.serve()` 替换。
    * `serve_whatsapp_app` 已被 `WhatsappAPI` 实例上的 `.serve()` 替换。
</Update>

<Update label="2025-05-30" description="v1.5.6">
  ## 新功能

  * **团队评估**：所有类型的评估现在都支持团队！

  ## 改进：

  * **异步工作流程**：为工作流程添加了 `arun` 支持，因此它们现在可以与 `async` Python 一起使用。
  * **并行内存更新**：在生成用户记忆和会话摘要时提高了速度。
  * **重新实现 `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。](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`。
</Update>

<Update label="2025-05-27" description="v1.5.5">
  ## 新功能：

  * **Claude 文件上传**：我们现在可以直接将文件上传到 Anthropic，然后将其用作代理的输入。
  * **Claude 4 代码执行工具**：更新了 Claude 以在安全、沙箱化的环境中执行 Python 代码。
  * **使用 Anthropic 模型进行提示缓存**：允许从提示中的特定前缀恢复。这种方法显著减少了重复任务或具有一致元素提示的处理时间和成本。
  * **Vercel v0 模型**：添加了对新的 Vercel v0 模型和 cookbook 示例的支持。
  * **Qdrant 混合搜索支持**
  * **Markdown 知识库**：添加了对 Markdown 知识库 的原生支持。
  * **AI/ML API 平台集成**：引入了与 [AI/ML API](https://aimlapi.com/models/?utm_source=agno\&utm_medium=github\&utm_campaign=integration) 的集成，该平台提供 AI/ML 模型。AI/ML API 提供 300 多个 AI 模型，包括 Deepseek、Gemini、ChatGPT。模型运行在企业级速率限制和正常运行时间内。
  * **更新 Pydantic 和数据类在函数处理中的用法**：添加了对将 Pydantic 和数据类对象作为函数输入 的支持。请在此处查看示例：[here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/tool_concepts/custom_tools/complex_input_types.py)。

  ## 改进：

  * **ExaTools 类中 API 调用的超时处理**：
    * 为 Exa API 调用添加了超时功能，以防止搜索操作无限期挂起。该实现使用 Python 的 `concurrent.futures` 模块来强制执行所有 Exa API 操作（搜索、获取内容、查找相似项和生成答案）的超时。
    * 此更改解决了 Exa 搜索函数无限期挂起的问题，该问题可能导致服务中断和资源泄漏。
  * **获取最近 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](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"`。
  * **为 `OpenAIChat` 添加 `role_map`**：这允许使用某些不遵循 OpenAI 角色映射的模型，通过 `OpenAILike` 使用。
  * **在 Pgvector 的 Upsert 中使用内容哈希作为 ID**：在 upsert 中使用可重现的 `content_hash` 作为 ID。
  * **向量数据库插入仅传递最后一个块的元数据**：向量数据库插入仅传递最后一个块的元数据。问题链接- [https://discord.com/channels/965734768803192842/1219054452221153463/1376631140047130649](https://discord.com/channels/965734768803192842/1219054452221153463/1376631140047130649)
  * **移除参数清理**：替换为更安全的方法，不会破坏不应清理的参数。
  * **处理 Playground 上运行异步代理时的异步工具**：修复了在 Playground 中使用异步工具（例如 MCP 工具）的代理时发生的回归问题。
</Update>

<Update label="2025-05-23" description="v1.5.4">
  ## 新功能：

  * **用户控制流**：这是 Agno 人工干预流和工具的 Beta 版本。
    * 我们现在允许代理运行在某些用户需求完成前“暂停”，然后再继续运行代理。
    * 这还添加了 `agent.continue_run` 和 `agent.acontinue_run` 函数。
    * 可用的控制流：
      * 用户确认流 → 使用 `@tool(requires_confirmation=True)` 装饰函数，代理将在执行工具前等待用户确认。
      * 需要用户输入 → 使用 `@tool(requires_user_input=True)` 装饰函数，代理将停止并要求用户输入后再继续。
      * 外部工具执行 → 使用 `@tool(external_execution=True)` 装饰函数，表示您将在代理上下文之外执行此函数。
      * 动态用户输入 → 向代理添加 `UserControlFlowTools()`，使代理能够动态停止流并按需要求用户输入。
    * 在此处查看大量示例：[here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/user_control_flows)。
  * **Mem0 工具包**：添加了一个用于管理 Mem0 中内存的工具包。
  * **Firecrawl 搜索**：添加了对 `FirecrawlTools` 中 Firecrawl 网页搜索的支持。

  ## Bug 修复：

  * **Firecrawl 工具和读取器**：修复了 Firecrawl 读取器和工具的参数解析。
  * **所有工具的包含/排除**：确保所有工具包都支持 `include_tools` 和 `exclude_tools`。
</Update>

<Update label="2025-05-21" description="v1.5.3">
  ## 改进：

  * **改进的准确性评估**：更新了准确性评估的工作方式，以实现更精确的基于代理的评估。

  ## Bug 修复：

  * **MCP 客户端超时**：客户端超时现在可以正常工作并使用参数上设置的超时。
</Update>

<Update label="2025-05-20" description="v1.5.2">
  ## 新功能：

  * **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` 和 `text` S3 读取器添加了异步支持。
  * **工具包的 `stop_after_tool_call` 和 `show_result`**：现在，基础的 Toolkit 类具有类似于 `@tool` 装饰器的 `stop_after_tool_call_tools` 和 `show_result_tools`。
</Update>

<Update label="2025-05-16" description="v1.5.1">
  ## 新功能：

  * **Nebius 模型提供商**：添加 [Nebius](https://studio.nebius.com/) 作为模型提供商。
  * **扩展的向量数据库过滤器支持**：为其他向量数据库添加了过滤支持。
    * pgvector
    * Milvus
    * Weaviate
    * Chroma

  ## 改进：

  * **Redis SSL**：为 `Redis` 存储添加了 `ssl` 参数。
</Update>

<Update label="2025-05-13" description="v1.5.0">
  ## 新功能：

  * **Azure OpenAI 工具**：通过 Azure AI Foundry 添加了通过 Dall-E 进行图像生成的功能。
  * **OpenTelemetry 仪器化**：我们为 [OpenInference](https://github.com/Arize-ai/openinference) 项目做出了贡献，并添加了 Agno 代理的自动仪器化。这为 Agno 代理添加了跟踪仪器化，以支持任何 OpenTelemetry 兼容的可观测性提供商。其中包括 Arize、Langfuse 和 Langsmith。已添加示例以说明如何使用每个示例（[here](https://github.com/agno-agi/agno/tree/main/cookbook/observability)）。
  * **Evals 更新**：添加了用于运行具有预生成答案的准确性评估的逻辑，以及对所有评估类的次要改进。
  * **Milvus 向量数据库的混合搜索和重排器**：为 Milvus 添加了 `hybrid_search` 支持。
  * **支持带 Streamable-HTTP 的 MCP**：现在支持 MCP 服务器的 streamable-HTTP 传输。

  ## 改进：

  * **知识过滤器 Cookbook**：与其在本地存储示例数据，不如现在在运行时从 s3 中拉取数据，以使存储库的 fork 尽可能轻量。

  ## Bug 修复：

  * **团队模型状态**：修复了与团队模型之间共享状态相关的问题。
  * **并发代理运行**：修复了与并发运行代理相关的某些竞争条件。

  ## 重大变更：

  * **Evals 重构**：
    * 我们的性能评估类已从 `PerfEval` 重命名为 `PerformanceEval`。
    * 我们的准确性评估类有新的必需字段：`agent`、`prompt` 和 `expected_answer`。
  * **并发代理运行**：我们在流式传输（`stream=True`）期间删除了某些事件中的重复信息。现在，单个事件将包含更多相关数据。
</Update>

<Update label="2025-05-10" description="v1.4.6">
  ## 新功能：

  * **Cerebras 模型提供商**：添加 Cerebras 作为模型提供商。
  * **Claude 网页搜索**：添加对 [Claude 的新网页搜索工具](https://www.anthropic.com/news/web-search) 的支持。
  * **知识库元数据过滤 (Beta)**：添加了按元数据过滤文档 的支持。
    * **两种应用过滤器的方法**：
      * **显式过滤**：直接将过滤器传递给代理或在运行/查询期间传递。

        ```python theme={null}
        # 选项 1：在代理初始化时进行过滤
        agent = Agent(
        					knowledge=knowledge_base, 
        					knowledge_filters={"filter_1": "abc"}
        				)
             
        # 选项 2：在运行执行时进行过滤
        agent.run("Tell me about...", knowledge_filters={"filter_1": "abc"})
        ```

        在此处查看文档：[here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/filters/pdf/filtering.py)

      * **代理过滤**：代理自动检测并应用用户查询中的过滤器。

        ```python theme={null}
        # 启用自动过滤器检测
        agent = Agent(
        					knowledge=knowledge_base, 
        					enable_agentic_knowledge_filters=True
        				)
             
        # 代理从查询中提取过滤器
        agent.run("Tell me about John Doe's experience...")
        ```

        在此处查看文档：[here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/filters/pdf/agentic_filtering.py)
    * 添加元数据到文档的两种方法：
      1. **在知识库初始化期间**：

         ```python theme={null}
         knowledge_base = PDFKnowledgeBase(path=[
              {
         		     "path": "file_1.pdf", 
         		     "metadata": {
         				     "user_id": "abc"
         				  }
         		 },
         		 {
         		     "path": "file_2.pdf", 
         		     "metadata": {
         				     "user_id": "xyz"
         				  }
         		 }
         ])
         ```

      2. **在单独加载文档期间**：

         ```python theme={null}
         knowledge_base.load_document(
              path="file.pdf",
              metadata={"user_id": "abc"}
         )
         ```
    * **兼容性**
      * **知识库类型**：`PDF`、`Text`、`DOCX`、`JSON` 和 `PDF_URL`
      * **向量数据库**：`Qdrant`、`LanceDB` 和 `MongoDB`

  ## 改进：

  * **工具中的用户和会话 ID**：为 `Agent` 和 `Team` 的 `session_data` 添加了 `current_user_id` 和 `current_session_id` 作为默认变量。

  ## Bug 修复：

  * **知识库 ID 冲突**：具有重叠名称的知识文件（例如 `abc.-.xyz.pdf` 和 `abc.-.def.pdf`）由于读取器使用格式化名称作为唯一的 ID 而导致唯一性冲突，因此被错误地识别。在所有读取器中引入了唯一的文档 ID，使用 `uuidv4()` 来确保严格的识别和防止冲突。
</Update>

<Update label="2025-05-06" description="v1.4.5">
  ## 新功能：

  * **通过 AWS Bedrock 提供嵌入器支持**：添加了 `AwsBedrockEmbedder`，默认嵌入模型为 `cohere.embed-multilingual-v3`。
  * **Gemini 视频生成工具**：为 `GeminiTools` 添加了视频生成功能。

  ## 改进：

  * **Apify 重构**：完全重构了 `ApifyTools`，使其与 Apify 执行器完全兼容。

  ## Bug 修复：

  * **Llama API 中的工具可选参数**：修复了函数方面的边缘情况。
</Update>

<Update label="2025-05-03" description="v1.4.4">
  ## 新功能：

  * **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` 的支持。
</Update>

<Update label="2025-04-30" description="v1.4.3">
  ## **新功能：**

  * **Llama API：** 添加了原生 SDK 和类似 OpenAI 的模型类。

  ## **改进：**

  * **Claude：** 为 Claude 添加了 AWS 会话令牌支持。
  * **DynamoDB：** 为 AWS 基于配置文件的身份验证添加了支持。

  ## **Bug 修复：**

  * **会话指标：** 修复了会话指标显示为 0 的问题。
  * **HF Embedder 修复：** 修复了 Hugging Face Embedder。
</Update>

<Update label="2025-04-25" description="v1.4.2">
  ## 新功能：

  * **MCP SSE 支持**：添加了连接到 SSE MCP 服务器 的支持。
  * **工具钩子**：您现在可以有一个包装所有工具调用的钩子。这适用于 `Toolkits` 和自定义工具。请参阅此示例：[this example](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/tool_concepts/toolkits/tool_hook.py)。
  * **团队会话状态**：您现在可以在提供给团队负责人/成员的工具中跨团队负责人和团队成员管理单个状态字典。请参阅此示例：[this example](https://github.com/agno-agi/agno/blob/main/cookbook/teams/team_with_shared_state.py)。
  * **Cartesia 工具**：为 Cartesia 添加了文本转语音功能的支持。
  * **Gemini 图像工具**：添加了一个使用 Gemini 模型生成图像的工具。
  * **Groq 音频工具**：添加了一个使用 Groq 模型进行翻译、转录和生成音频的工具。

  ## 改进：

  * **PubmedTools 扩展结果**：为 `PubmedTools` 添加了扩展结果集。
  * **工具结果的多样性**：自定义工具现在可以具有任何返回类型，并且将在提供给模型之前进行处理。

  ## Bug 修复：

  * **Teams 共享模型 Bug**：修复了在团队成员之间使用单个模型的问题。这应该会减少团队执行中的工具调用失败。
</Update>

<Update label="2025-04-23" description="v1.4.0">
  ## 新功能：

  * **内存通用可用**：我们对 Agentic 用户内存管理的工作方式进行了改进和调整。此功能现已推出 Beta 版并普遍可用。有关更多信息，请参阅这些 [示例](https://github.com/agno-agi/agno/tree/main/cookbook/agent_concepts/memory) 和这些 [文档](https://docs.agno.com/agents/memory)。
  * **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 上设置。
</Update>

<Update label="2025-04-21" description="v1.3.5">
  ## 改进：

  * **进一步的异步向量数据库支持**：添加了对以下数据库的支持：
    * [Clickhouse](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/clickhouse_db/async_clickhouse.py)
    * [ChromaDB](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/chroma_db/async_chroma_db.py)
    * [Cassandra](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/cassandra_db/async_cassandra_db.py)
    * [PineconeDB](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/pinecone_db/async_pinecone_db.py)
    * [Pgvector](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/pgvector_db/async_pg_vector.py)
  * **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](https://github.com/agno-agi/agno/issues/2883)
</Update>

<Update label="2025-04-18" description="v1.3.4">
  ## 新功能：

  * **Web Browser 工具**：引入了一个 `webbrowser` 工具供代理与 Web 进行交互。
  * **代理支持**：为 URL 和 PDF 工具添加了 `proxy` 参数支持，用于网络定制。

  ## 改进：

  * **会话状态**：添加了用于管理代理会话状态的示例。
  * **AzureOpenAIEmbedder**：现在考虑在 `client_params` 参数中传递的 `client_params`，以获得更灵活的配置。
  * **LiteLLM**：现在使用内置的环境验证来简化设置。
  * **Team 类**：为团队数据序列化添加了 `mode` 属性，以增强团队配置。
  * **插入/更新/日志优化**：仅当读取器中存在文档时，才触发插入/更新/日志操作。
  * **数据库首选项**：会话状态现在优先使用基于数据库的存储（如果可用）。
  * **内存管理**：内部内存系统已更新，以更好地处理会话和提高资源效率。
  * **模块导出**：仅导入的 Init 文件现在使用 `__all__` 显式导出符号。

  ## Bug 修复：

  * **DynamoDB 存储**：修复了基于 DynamoDB 的设置中的存储处理问题。
  * **DeepSeek**：修复了 API 密钥验证逻辑中的错误。
</Update>

<Update label="2025-04-17" description="v1.3.3">
  ## 改进：

  * **Gemini 文件上传**：启用了对上传文件的直接使用 Gemini。
  * **指标更新**：在可用时向模型添加了音频、推理和缓存的令牌计数指标。
  * **推理更新**：我们现在原生支持 Ollama 和 AzureOpenAI 推理模型。

  ## Bug 修复：

  * **PPrint Util Async**：添加了 `apprint_run_response` 以支持异步。
  * **Mistral 推理**：修复了将 Mistral 模型用于思维链推理的问题。
</Update>

<Update label="2025-04-16" description="v1.3.2">
  ## 新功能：

  * **Redis Memory DB**：添加 Redis 作为 `Memory` 的存储提供商。请参见此处：[here](https://docs.agno.com/examples/concepts/memory/mem-redis-memory)。

  ## 改进：

  * **内存更新**：进行了各种性能改进并添加了便捷函数：
    * `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 的边缘情况。
</Update>

<Update label="2025-04-12" description="v1.3.0">
  ## 新功能：

  * **内存改版 (Beta)**：这是 Agno Memory 完全改版的 Beta 版本。这包括一个支持添加、更新和删除用户内存以及使用模型进行语义搜索的新 `Memory` 类。这还增加了代理代表您管理内存的额外功能。请在此处查看文档：[here](https://docs.agno.com/memory/introduction)。
  * **运行中的用户 ID 和会话 ID**：您现在可以在 `agent.run()` 中传递 `user_id` 和 `session_id`。这将确保代理针对 `session_id` 所属的会话进行设置，并且代理只能访问当前用户的内存。这使您能够使用单个代理配置构建多用户和多会话应用程序。
  * **Redis 存储**：为 Redis 作为会话存储提供商添加了支持。
</Update>

<Update label="2025-04-11" description="v1.2.16">
  ## 改进：

  * **Teams 改进**：对团队进行了多项改进，以使任务转发给成员代理更可靠，并使团队领导者更具对话性。还添加了各种使用团队进行推理的示例。
  * **Teams 知识**：为 `Team` 添加了 `knowledge`，以更好地与 `Agent` 的功能保持一致。这附带了 `retriever` 用于设置自定义检索器，以及 `search_knowledge` 用于启用代理式 RAG。

  ## Bug 修复：

  * **Gemini Grounding Chunks**：修复了 Gemini Grounding 在流式传输中使用时出现的错误。
  * **OpenAI 在结构化输出中的默认值**：OpenAI 不允许在结构化输出中使用默认值。为了使我们的结构化输出尽可能兼容且没有不利影响，我们更新了 `OpenAIResponses` 和 `OpenAIChat`。
</Update>

<Update label="2025-04-08" description="v1.2.14">
  ## 改进：

  * **改进的 Github 工具**：为 `GithubTools` 添加了更多功能。
  * **Windows 脚本支持**：将所有实用脚本转换为 Windows 兼容。
  * **MongoDB VectorDB 异步支持**：现在可以在异步知识库中使用 MongoDB。

  ## Bug 修复：

  * **Gemini 工具格式化**：修复了使用 Gemini 时函数未正确解析的各种情况。
  * **ChromaDB 版本兼容性**：修复以确保 ChromaDB 和 Agno 与更新版本的 ChromaDB 兼容。
  * **团队成员交互**：修复了成员响应内容为空导致团队停止的问题。现在已解决此问题。
  * **Claude 空响应**：修复了响应不包含任何工具调用内容导致 Anthropic API 错误的情况。
</Update>

<Update label="2025-04-07" description="v1.2.12">
  ## 新功能：

  * **时区标识符**：在 Agent 类中添加了新的 `timezone_identifier` 参数，以将时区与当前日期一起包含在说明中。
  * **Google Cloud JSON 存储**：为 Google Cloud 添加了基于 JSON 的会话存储支持。
  * **推理工具**：添加了 `ReasoningTools`，用于代理的高级推理记事本。

  ## 改进：

  * **异步向量数据库和知识库改进**：已更新更多知识库以支持 `async-await`：- `URLKnowledgeBase` → 在此处查找一些示例：[here](https://github.com/agno-agi/agno/blob/9d1b14af9709dde1e3bf36c241c80fb295c3b6d3/cookbook/agent_concepts/knowledge/url_kb_async.py)。- `FireCrawlKnowledgeBase` → 在此处查找一些示例：[here](https://github.com/agno-agi/agno/blob/596898d5ba27d2fe228ea4f79edbe9068d34a1f8/cookbook/agent_concepts/knowledge/firecrawl_kb_async.py)。- `DocxKnowledgeBase` → 在此处查找一些示例：[here](https://github.com/agno-agi/agno/blob/f6db19f4684f6ab74044a4466946e281586ca1cf/cookbook/agent_concepts/knowledge/docx_kb_async.py)。
</Update>

<Update label="2025-04-07" description="v1.2.11">
  ## Bug 修复：

  * **修复结构化输出**：修复了推理的结构化输出情况。
</Update>

<Update label="2025-04-07" description="v1.2.10">
  ## 1.2.10

  ## 新功能：

  * **知识工具**：添加了 `KnowledgeTools`，用于在知识库中思考、搜索和分析文档。
</Update>

<Update label="2025-04-05" description="v1.2.9">
  ## 1.2.9

  ## 改进：

  * **简化的 MCP 接口**：添加了 `MultiMCPTools` 以支持多个服务器连接，并简化了接口以允许传递 `command`。在此处查看如何使用它的示例：[these examples](https://github.com/agno-agi/agno/blob/382667097c31fbb9f08783431dcac5eccd64b84a/cookbook/tools/mcp)。
</Update>

<Update label="2025-04-04" description="v1.2.8">
  ## 1.2.8

  # 更新日志

  ## 新功能：

  * **工具包说明**：扩展了 `Toolkit` 的 `instructions` 和 `add_instructions`，以支持您指定与工具使用方式相关的附加说明。如果 `add_instructions=True`，这些说明将被添加到模型的“系统消息”中。

  ## Bug 修复：

  * **Teams 传输函数**：某些团队的工具定义在某些模型上失败。此问题已修复。
</Update>

<Update label="2025-04-02" description="v1.2.7">
  ## 1.2.7

  ## 新功能：

  * **Gemini 图像生成**：添加了使用 `gemini-2.0-flash-exp-image-generation` 模型直接从 Gemini 生成图像 的支持。

  ## 改进：

  * **Vertex AI**：改进了 Vertex AI 与 Gemini Model 类的使用，以更紧密地遵循官方 Google 规范。
  * **函数结果缓存改进**：我们现在对所有 Agno 工具包和使用 `@tool` 装饰器的自定义函数都有结果缓存。请在此处查看文档：[here](https://docs.agno.com/tools/functions)。
  * **异步向量数据库和知识库改进**：已将更多知识库转换为支持 `async-await`，因此将在 `agent.arun` 和 `agent.aprint_response` 中使用。这也意味着 `knowledge_base.aload()` 是可能的，这在某些情况下应大大提高加载速度。已转换以下内容：
    * 向量数据库：
      * `LanceDb` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/lance_db/async_lance_db.py)。
      * `Milvus` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/milvus_db/async_milvus_db.py)。
      * `Weaviate` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/vector_dbs/weaviate_db/async_weaviate_db.py)。
    * 知识库：
      * `JSONKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/json_kb_async.py)。
      * `PDFKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/pdf_kb_async.py)。
      * `PDFUrlKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/pdf_url_kb_async.py)。
      * `CSVKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/csv_kb_async.py)。
      * `CSVUrlKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/csv_url_kb_async.py)。
      * `ArxivKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/arxiv_kb_async.py)。
      * `WebsiteKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/website_kb_async.py)。
      * `YoutubeKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/youtube_kb_async.py)。
      * `TextKnowledgeBase` → 此处有一个 cookbook 来说明如何使用它：[Here](https://github.com/agno-agi/agno/blob/main/cookbook/agent_concepts/knowledge/text_kb_async.py)。

  ## Bug 修复：

  * **递归分块无限循环**：修复了递归分块在处理大文档时陷入无限循环的问题。
</Update>

<Update label="2025-03-28" description="v1.2.6">
  ## 1.2.6

  ## Bug 修复：

  * **Gemini 函数调用结果修复**：修复了函数调用结果格式化失败的错误，并添加了正确的角色映射。
  * **推理修复**：修复了默认推理的问题，并改进了推理模型的日志记录。
</Update>

<Update label="2025-03-27" description="v1.2.5">
  ## 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` 映射。
</Update>

<Update label="2025-03-25" description="v1.2.4">
  ## 1.2.4

  ## 改进：

  * **Teams 工具选择**：使 `tool_choice` 可配置。

  ## Bug 修复：

  * **未创建的会话**：使在没有迁移的情况下在现有表中未创建会话的问题更加可见。请阅读有关 [存储模式迁移](https://docs.agno.com/agents/storage) 的文档。
  * **Todoist 修复**：修复了 `TodoistTools` 上的 `update_task`。
</Update>

<Update label="2025-03-24" description="v1.2.3">
  ## 1.2.3

  ## 改进：

  * **Teams 错误处理**：改进了模型在转发任务给成员时出错的情况下的流程。
</Update>

<Update label="2025-03-24" description="v1.2.2">
  ## 1.2.2

  ## Bug 修复：

  * **Teams 内存**：修复了内存无法在多个会话之间正确持久化的问题。
</Update>

<Update label="2025-03-24" description="v1.2.1">
  ## 1.2.1

  ## Bug 修复：

  * **Teams Markdown**：修复了团队响应中 markdown 的问题。
</Update>

<Update label="2025-03-24" description="v1.2.0">
  ## 1.2.0

  ## 新功能：

  * **金融数据集工具**：添加了用于 [https://www.financialdatasets.ai/](https://www.financialdatasets.ai/) 的工具。
  * **Docker 工具**：添加了用于管理本地 docker 环境的工具。

  ## 改进：

  * **Teams 改进**：为团队启用了推理。
  * **MCP 简化**：简化了 `MCPTools` 的创建，用于连接到外部 MCP 服务器。请参阅更新后的 [文档](https://docs.agno.com/tools/mcp#example%3A-filesystem-agent)。

  ## Bug 修复：

  * **Azure AI Factory**：修复了 Azure AI Factory 中损坏的导入。
</Update>

<Update label="2025-03-23" description="v1.1.17">
  ## 1.1.17

  ## 改进：

  * **更好的调试日志**：增强了调试日志的可读性和清晰度。
</Update>

<Update label="2025-03-22" description="v1.1.16">
  ## 1.1.16

  ## 新功能：

  * **异步 Qdrant 向量数据库**：实现了 Qdrant 向量数据库的异步支持，提高了性能和效率。
  * **Claude Think 工具**：引入了 Claude **Think 工具**，遵循指定的实现指南。
</Update>

<Update label="2025-03-21" description="v1.1.15">
  ## 1.1.15

  ## 改进：

  * **工具结果缓存**：增加了对选定搜索器和抓取器的缓存。这仅用于测试目的，应在测试代理时大大提高迭代速度、避免速率限制并降低成本（如有）。适用于：
    * DuckDuckGoTools
    * ExaTools
    * FirecrawlTools
    * GoogleSearchtools
    * HackernewsTools
    * NewspaperTools
    * Newspaper4kTools
    * Websitetools
    * YFinanceTools
  * **显示工具调用**：改进了使用 `print_response` 和 `aprint_response` 时显示工具调用的方式。现在，它们显示在不同于响应面板的单独面板中。它也可以与 `response_model` 结合使用。
</Update>

<Update label="2025-03-20" description="v1.1.14">
  ## 1.1.14 - Teams 重构

  ## 新功能：

  * **Teams 重构**：宣布代理团队的新迭代，具有以下功能：
    * 以“协作”、“协调”或“路由”三种模式之一创建 `Team`。
    * 对之前的团队实现中存在的许多错误进行了各种改进。包括从成员代理返回结构化输出（用于“路由”模式）、将图像、音频和视频传递给成员代理等。
    * 添加了诸如团队成员之间的“代理共享上下文”以及将单个团队成员的响应共享给其他团队成员等功能。
    * 这还伴随着代理和团队调试日志的重构。使用 `debug_mode=True` 和 `team.print_response(...)` 来查看其运行情况。
    * 文档在此处：[here](https://docs.agno.com/teams/introduction)。请查看此处的示例实现：[here](https://github.com/agno-agi/agno/blob/c8e47d1643065a0a6ee795c6b063f8576a7a2ef6/cookbook/examples/teams)。
    * 这是第一个版本。请提供反馈。更新和改进将随之而来。
    * 仍然支持 `Agent(team=[])`，但已被弃用（见下文）。
  * **LiteLLM**：已添加 [LiteLLM](https://www.litellm.ai/) 支持，既有原生实现，也有通过 `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](https://docs.agno.com/teams/introduction)）的发布，`Agent.team` 已被弃用。这将在未来的主要版本发布中删除。
</Update>

<Update label="2025-03-14" description="v1.1.13">
  ## 1.1.13

  ## 改进：

  * **OpenAIResponses 文件搜索**：添加了对 OpenAI 内置的 [“文件搜索”](https://platform.openai.com/docs/guides/tools-file-search) 功能的支持。这会自动上传附加到代理提示的 `File` 对象。
  * **OpenAIReponses 网页引用**：添加了在使用 OpenAI 内置的“网页搜索”工具后提取 URL 引用的支持。
  * **Anthropic 文档引用**：添加了在将 `File` 对象附加到代理提示时从 Claude 响应中提取文档引用的支持。
  * **Cohere Command A**：添加了对 Cohere 新旗舰模型 的支持和示例。

  ## Bug 修复：

  * **Ollama 工具**：修复了参数未键入的工具问题。
  * **Anthropic 结构化输出**：修复了影响 Anthropic 和 Azure 中的 Anthropic 的问题，即在某些情况下结构化输出不起作用。这总体上应该能改善使用不原生支持结构化输出的模型使用结构化输出的体验。现在也支持 Pydantic 模型中的枚举作为类型。
  * **Google Maps Places**：Google 对 Places API 的支持已发生变化，这使其保持最新状态，以便我们可以继续支持“搜索地点”。
</Update>

<Update label="2025-03-13" description="v1.1.12">
  ## 1.1.12

  ## 新功能：

  * **引用**：改进了从模型捕获、显示和存储引用的支持，并与 Gemini 和 Perplexity 集成。

  ## 改进：

  * **CalComTools**：改进了工具初始化。

  ## Bug 修复：

  * **MemoryManager**：添加了 Limit 参数，修复了 MongoMemoryDb 中的 KeyError。
</Update>

<Update label="2025-03-13" description="v1.1.11">
  ## 1.1.11

  ## 新功能：

  * **OpenAI Responses**：添加了一个新的模型实现，支持 OpenAI 的 Responses API。这包括对其 [“websearch”](https://platform.openai.com/docs/guides/tools-web-search#page-top) 内置工具的支持。
  * **Openweather API 工具**：添加了获取实时天气信息的工具。

  ## 改进：

  * **存储重构**：合并了代理和工作流程存储类，以更好地为代理、团队和工作流程对齐存储。此更改向后兼容，不应导致任何中断。
</Update>

<Update label="2025-03-12" description="v1.1.10">
  ## 1.1.10

  ## 新功能：

  * **文件提示**：引入了一种新的 `File` 类型，可以添加到提示中并发送到模型提供商。目前仅支持 Gemini 和 Anthropic Claude。
  * **LMStudio**：添加了对 [LMStudio](https://lmstudio.ai/) 作为模型提供商的支持。请参阅 [文档](https://docs.agno.com/models/lmstudio)。
  * **AgentQL 工具**：添加了支持 [AgentQL](https://www.agentql.com/) 的工具，用于将代理连接到网站进行抓取等。请参阅 [文档](https://docs.agno.com/tools/toolkits/agentql)。
  * **Browserbase 工具**：添加了 [Browserbase](https://www.browserbase.com/) 工具。

  ## 改进：

  * **Cohere Vision**：添加了对使用 Cohere 模型进行图像理解 的支持。请参阅此 cookbook：[this cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/models/cohere/image_agent.py) 进行尝试。
  * **Embedder 默认日志记录**：改进了使用默认 OpenAI embedder 时的日志记录。

  ## Bug 修复：

  * **Ollama Embedder**：修复了在不同版本中获取 Ollama 嵌入的问题。
</Update>

<Update label="2025-03-06" description="v1.1.9">
  ## 1.1.9

  ## 新功能：

  * **IBM Watson X**：添加了对 IBM Watson X 作为模型提供商的支持。在此处查找文档：[here](https://docs.agno.com/models/ibm-watsonx)。
  * **DeepInfra**：添加了对 [DeepInfra](https://deepinfra.com) 的支持。在此处查找文档：[here](https://docs.agno.com/models/deepinfra)。
  * **支持 MCP**：引入了 `MCPTools` 以及有关如何使用 MCP 和 Agno 代理的示例。

  ## Bug 修复：

  * **Mistral 与推理**：修复了 Mistral 在从其他提供商生成的推理内容时失败的情况。
</Update>

<Update label="2025-03-03" description="v1.1.8">
  ## 1.1.8

  ## 新功能：

  * **Playground 中的视频文件上传**：现在您可以上传视频文件并让模型解释视频。此功能仅受部分具有视频处理功能的 `Gemini` 模型支持。

  ## Bug 修复：

  * **Huggingface**：修复了 `Huggingface` 模型集成中的多个问题。在非流式传输情况下，工具调用现已完全支持。
  * **Gemini**：解决了手动设置助手角色和工具调用指标的问题。
  * **OllamaEmbedder**：修复了未返回任何嵌入的问题。
</Update>

<Update label="2025-02-26" description="v1.1.7">
  ## 1.1.7

  ## 新功能：

  * **Playground 中的音频文件上传**：现在您可以上传音频文件并让模型解释音频、进行情感分析、提供音频转录等。

  ## Bug 修复：

  * **Claude 思维流式传输**：修复了 Claude 在流式传输激活时以及异步运行时 的思维过程。
</Update>

<Update label="2025-02-24" description="v1.1.6">
  ## 1.1.6

  ## 新功能：

  * **Claude 3.7 支持**：添加了对最新 Claude 3.7 Sonnet 模型 的支持。

  ## Bug 修复：

  * **Claude 工具使用**：修复了与 Claude 模型交互时，工具和内容无法在同一块中使用的问题。
</Update>

<Update label="2025-02-24" description="v1.1.5">
  ## 1.1.5

  ## 新功能：

  * **音频响应**：代理现在可以提供音频响应（支持流式和非流式）。

    * 音频可在 `agent.run_response.response_audio` 中找到。

    * 这仅适用于具有 `gpt-4o-audio-preview` 模型的 `OpenAIChat`。请参阅其文档：[their docs](https://platform.openai.com/docs/guides/audio) 了解更多关于其工作原理的信息。例如：

      ```python theme={null}
      from agno.agent import Agent
      from agno.models.openai import OpenAIChat
      from agno.utils.audio import write_audio_to_file

      agent = Agent(
          model=OpenAIChat(
              id="gpt-4o-audio-preview",
              modalities=["text", "audio"],  # 提供文本和音频响应。
              audio={"voice": "alloy", "format": "wav"},
          ),
      )
      agent.print_response(
          "Tell me a 5 second story"
      )
      if agent.run_response.response_audio is not None:
          write_audio_to_file(
              audio=agent.run_response.response_audio.base64_audio, filename=str(filename)
          )
      ```

    * 在 Agent Playground 上查看 [audio\_conversation\_agent cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/playground/audio_conversation_agent.py) 进行测试。

  * **[Together.ai](http://Together.ai) 和 XAi 的图像理解支持**：您现在可以使用 XAi 和 Together.ai 的模型向代理提供图像。

  ## 改进：

  * **自动化测试**：为所有模型添加了集成测试。其中大部分将在每次拉取请求时运行，并在发布新版本之前运行一套集成测试。
  * **Gemini 的 grounding 和搜索**：[Grounding 和 Search](https://ai.google.dev/gemini-api/docs/grounding?lang=python) 可用于提高 Gemini 模型响应的准确性和时效性。

  ## Bug 修复：

  * **结构化输出更新**：修复了本机结构化输出未在模型上使用的各种情况。
  * **Ollama 工具解析**：修复了 Ollama 与具有可选参数的工具的情况。
  * **Gemini 内存摘要器**：修复了 Gemini 模型用作内存摘要器的情况。
  * **Gemini 自动工具调用**：启用自动工具调用（当提供工具时），使行为与其他模型保持一致。
  * **修复了 FixedSizeChunking 的重叠问题**：修复了重叠设置时分块失败的问题。
  * **Claude 具有多种类型的工具**：修复了 Claude 工具在处理参数类型联合时中断的问题。
  * **JSON 响应解析**：修复了 JSON 模型响应在字典值中返回带引号字符串的情况。
</Update>

<Update label="2025-02-17" description="v1.1.4">
  ## 1.1.4

  ## 改进：

  * **Gmail 工具**：为 `GmailTools` 添加了 `get_emails_by_thread` 和 `send_email_reply` 方法。

  ## Bug 修复：

  * **Gemini 列表参数**：修复了 Gemini 中使用列表类型参数的函数的问题。
  * **Gemini 安全参数**：修复了 Gemini 中传递安全参数的问题。
  * **ChromaDB 多文档**：修复了将多个文档加载到 ChromaDB 的问题。
  * **Agentic 分块**：修复了即使提供了模型，代理分块仍需要 OpenAI 的问题。
</Update>

<Update label="2025-02-16" description="v1.1.3">
  ## 1.1.3

  ## Bug 修复：

  * **Gemini 工具调用历史记录**：修复了 Gemini 拒绝历史消息中的工具调用的问题。
</Update>

<Update label="2025-02-15" description="v1.1.2">
  ## 1.1.2

  ## 改进：

  * **o3 模型的推理**：为 OpenAI 的 o3 模型添加了推理支持。
  * **Gemini embedder 更新**：更新 `GeminiEmbedder` 以使用新的 [Google genai SDK](https://github.com/googleapis/python-genai)。此更新在接口上引入了一个细微的变化：

    ```python theme={null}
    # 之前
    embeddings = GeminiEmbedder("models/text-embedding-004").get_embedding(
        "The quick brown fox jumps over the lazy dog."
    )

    # 之后
    embeddings = GeminiEmbedder("text-embedding-004").get_embedding(
        "The quick brown fox jumps over the lazy dog."
    )
    ```

  ## Bug 修复：

  * **Singlestore 修复**：修复了查询 SingleStore 时 embeddings 列以二进制格式返回的问题。
  * **MongoDB Vectorstore 修复**：修复了 MongoDB 中的多个问题，包括初始化期间的集合重复创建和删除。所有已知问题均已解决。
  * **LanceDB 修复**：修复了 LanceDB 中的各种错误，并添加了 `on_bad_vectors` 作为参数。
</Update>

<Update label="2025-02-14" description="v1.1.1">
  ## 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。

    ```python theme={null}
    MODELS_LAB_URLS = {
        "MP4": "https://modelslab.com/api/v6/video/text2video",
        "MP3": "https://modelslab.com/api/v6/voice/music_gen",
        "GIF": "https://modelslab.com/api/v6/video/text2video",
    }

    MODELS_LAB_FETCH_URLS = {
        "MP4": "https://modelslab.com/api/v6/video/fetch",
        "MP3": "https://modelslab.com/api/v6/voice/fetch",
        "GIF": "https://modelslab.com/api/v6/video/fetch",
    }
    ```

    `FileType` 枚举现在包括 `MP3` 类型：

    ```jsx theme={null}
    class FileType(str, Enum):
        MP4 = "mp4"
        GIF = "gif"
        MP3 = "mp3"
    ```

  ## Bug 修复：

  * **Gemini 无参数函数**：解决了 Gemini 拒绝具有空属性的函数声明的问题。
  * **修复指数级内存增长**：修复了代理内存呈指数级增长的某些情况。
  * **Chroma DB**：修复了与插入和搜索相关的元数据相关的各种问题。
  * **Gemini 结构化输出**：修复了 Gemini 未正确生成结构化输出的错误。
  * **MistralEmbedder**：修复了 `MistralEmbedder` 实例化的相关问题。
  * **推理**：修复了设置推理模型的问题。
  * **音频响应**：修复了将音频伪像流式传输到 Playground 的问题。
</Update>

<Update label="2025-02-12" description="v1.1.0">
  ## 1.1.0 - 模型重构和云支持

  ## 模型改进：

  * **模型重构**：对我们的模型实现进行了彻底检查，以提高性能并实现跨模型的更好功能奇偶性。
    * 这也改善了 Agent UI 上的指标和可见性。
    * 除 `AwsBedrock` 外，所有模型均支持 async-await。
  * **Azure AI Foundry**：我们现在支持 Azure AI Foundry 上的所有模型。在此处了解更多信息：[here](https://learn.microsoft.com/azure/ai-services/models)。
  * **AWS Bedrock 支持**：我们重新设计的 AWS Bedrock 实现现在支持所有 Bedrock 模型。请务必注意 [哪些模型支持哪些功能](https://docs.aws.amazon.com/bedrock/latest/userguide/conversation-inference-supported-models-features.html)。
  * **通过 Google SDK 的 Gemini**：通过 [Google 的 genai SDK](https://github.com/googleapis/python-genai) 的 1.0.0 版本，我们可以改进我们之前的 Gemini 实现。这将为将来的 Gemini 功能集成提供便利。
  * **模型失败重试**：我们添加了更好的第三方错误（例如，速率限制错误）处理，如果设置 `exponential_backoff` 为 `True`，代理现在将选择重试，并带有指数退避。

  ## 其他改进

  * **Exa Answers 支持**：添加了对 [Exa answers](https://docs.exa.ai/reference/answer) 功能 的支持。
  * **GoogleSearchTools**：更新了 `GoogleSearch` 的名称为 `GoogleSearchTools` 以实现一致性。

  ## 弃用

  * 通过 Vertex API 直接实现的 `Gemini` 已被 Google SDK 实现的 `Gemini` 取代。
  * 通过 OpenAI 客户端实现的 `Gemini` 已被 Google SDK 实现的 `Gemini` 取代。
  * `OllamaHermes` 已被移除，因 `Ollama` 的实现已得到改进。

  ## Bug 修复

  * **团队成员名称**：修复了一个错误，该错误导致团队成员名称中包含非字母数字字符的团队会引发异常。
</Update>

<Update label="2025-02-07" description="v1.0.8">
  ## 1.0.8

  ## 新功能：

  * **Perplexity 模型**：我们现在支持 [Perplexity](https://www.perplexity.ai/) 作为模型提供商。
  * **Todoist 工具包**：添加了一个用于在 Todoist 上管理任务的工具包。
  * **JSON 读取器**：添加了一个 JSON 文件读取器，用于知识库。

  ## 改进：

  * **LanceDb**：为 LanceDb 实现了 `name_exists` 函数。

  ## Bug 修复：

  * **存储增长 bug**：修复了在存储中每次运行都重复 `run_messages.messages` 的错误。
</Update>

<Update label="2025-02-05" description="v1.0.7">
  ## 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` 参数的代理添加了小的修复和示例。
</Update>

<Update label="2025-02-05" description="v1.0.6">
  ## 1.0.6

  ## 新功能：

  * **Google Maps 工具包**：添加了一个丰富的 Google Maps 工具包，包括商业发现、路线、导航、地理编码位置、附近地点等。
  * **URL 读取器和知识库**：添加了可以处理任何 URL 并将文本内容存储在文档存储中的读取器和知识库。

  ## Bug 修复：

  * **Zoom 工具修复**：更新了 Zoom 工具以包含身份验证步骤和其他杂项修复。
  * **Github search\_repositories 分页**：分页无法正常工作，此问题已修复。
</Update>

<Update label="2025-02-03" description="v1.0.5">
  ## 1.0.5

  ## 新功能：

  * **Gmail 工具**：添加了 Gmail 工具，包括邮件搜索、发送邮件等。

  ## 改进：

  * **Exa 工具包升级**：为 `ExaTools` 添加了 `find_similar`。
  * **Claude Async**：Claude 模型现在可以使用 `await agent.aprint_response()` 和 `await agent.arun()`。
  * **Mistral Vision**：现在支持 Mistral Vision 模型。添加了各种示例来说明 [示例](https://github.com/agno-agi/agno/blob/main/cookbook/models/mistral/image_file_input_agent.py)。
</Update>

<Update label="2025-02-02" description="v1.0.4">
  ## 1.0.4

  ## Bug 修复：

  * **Claude 工具调用**：修复了 Claude 与不带参数的工具一起使用时出现问题。
</Update>

<Update label="2025-01-31" description="v1.0.3">
  ## 1.0.3

  ## 改进：

  * **OpenAI 推理参数**：为 OpenAI 模型添加了推理参数。
</Update>

<Update label="2025-01-31" description="v1.0.2">
  ## 1.0.2

  ## 改进：

  * **模型客户端缓存**：缓存了所有模型客户端的实例化，提高了 Agno 代理的实例化时间。
  * **XTools**：将 `TwitterTools` 重命名为 `XTools`，并更新了功能以兼容 Twitter API v2。

  ## Bug 修复：

  * **Agent Dataclass 兼容性**：移除了 agent dataclass 装饰器中的 `slots=True`，它与 Python \< 3.10 不兼容。
  * **AzureOpenAIEmbedder**：将 `AzureOpenAIEmbedder` 改为数据类以匹配其他 embedder。
</Update>

<Update label="2025-01-31" description="v1.0.1">
  ## 1.0.1

  ## 改进：

  * **Mistral 模型缓存**：为 Mistral 模型启用了缓存。
</Update>

<Update label="2025-01-30" description="v1.0.0">
  ## 1.0.0 - Agno

  这是从 `phidata` 到 `agno` 的主要重构，随 Agno AI 正式发布而发布。

  有关其他指导，请参阅 [迁移指南](../how-to/phidata-to-agno)。

  ## 接口更改：

  * `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` 类型。

      ```python theme={null}
      class Image(BaseModel):
          url: Optional[str] = None  # 图像的远程位置
          filepath: Optional[Union[Path, str]] = None  # 图像的绝对本地位置
          content: Optional[Any] = None  # 实际图像字节内容
          detail: Optional[str] = None # low, medium, high 或 auto（根据 OpenAI 规范 https://platform.openai.com/docs/guides/vision?lang=node#low-or-high-fidelity-image-understanding）
          id: Optional[str] = None
      ```

    * `agent.run(audio=[])` 和 `agent.print_response(audio=[])` 现在是 `Audio` 类型。

      ```python theme={null}
      class Audio(BaseModel):
          filepath: Optional[Union[Path, str]] = None  # 音频的绝对本地位置
          content: Optional[Any] = None  # 实际音频字节内容
          format: Optional[str] = None
      ```

    * `agent.run(video=[])` 和 `agent.print_response(video=[])` 现在是 `Video` 类型。

      ```python theme={null}
      class Video(BaseModel):
          filepath: Optional[Union[Path, str]] = None  # 视频的绝对本地位置
          content: Optional[Any] = None  # 实际视频字节内容
      ```

    * `RunResponse.images` 现在是 `ImageArtifact` 类型的列表。

      ```python theme={null}
      class ImageArtifact(Media):
          id: str
          url: str  # 文件的远程位置
          alt_text: Optional[str] = None
      ```

    * `RunResponse.audio` 现在是 `AudioArtifact` 类型的列表。

      ```python theme={null}
      class AudioArtifact(Media):
          id: str
          url: Optional[str] = None  # 文件的远程位置
          base64_audio: Optional[str] = None  # Base64 编码的音频数据
          length: Optional[str] = None
          mime_type: Optional[str] = None
      ```

    * `RunResponse.videos` 现在是 `VideoArtifact` 类型的列表。

      ```python theme={null}
      class VideoArtifact(Media):
          id: str
          url: str  # 文件的远程位置
          eta: Optional[str] = None
          length: Optional[str] = None
      ```

    * `RunResponse.response_audio` 现在是 `AudioOutput` 类型。

      ```python theme={null}
      class AudioOutput(BaseModel):
          id: str
          content: str  # Base64 编码
          expires_at: int
          transcript: str
      ```

    * 模型：

    * `Hermes` → `OllamaHermes`

    * `AzureOpenAIChat` → `AzureOpenAI`

    * `CohereChat` → `Cohere`

    * `DeepSeekChat` → `DeepSeek`

    * `GeminiOpenAIChat` → `GeminiOpenAI`

    * `HuggingFaceChat` → `HuggingFace`

  * Embedder 现在都接受 `id` 而不是 `model` 作为参数。例如：

    ```python theme={null}
    db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"

    knowledge_base = PDFUrlKnowledgeBase(
        urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
        vector_db=PgVector(
            table_name="recipes",
            db_url=db_url,
            embedder=OllamaEmbedder(id="llama3.2", dimensions=3072),
        ),
    )
    knowledge_base.load(recreate=True)
    ```

  * Agent Storage 类
    * `PgAgentStorage` → `PostgresDbAgentStorage`
    * `SqlAgentStorage` → `SqliteDbAgentStorage`
    * `MongoAgentStorage` → `MongoDbAgentStorage`
    * `S2AgentStorage` → `SingleStoreDbAgentStorage`

  * Workflow Storage 类
    * `SqlWorkflowStorage` → `SqliteDbWorkflowStorage`
    * `PgWorkflowStorage` → `PostgresDbWorkflowStorage`
    * `MongoWorkflowStorage` → `MongoDbWorkflowStorage`

  * Knowledge Base
    * `phi.knowledge.pdf.PDFUrlKnowledgeBase` → `agno.knowledge.pdf_url.PDFUrlKnowledgeBase`
    * `phi.knowledge.csv.CSVUrlKnowledgeBase` → `agno.knowledge.csv_url.CSVUrlKnowledgeBase`

  * 读取器
    * `phi.document.reader.arxiv` → `agno.document.reader.arxiv_reader`
    * `phi.document.reader.docx` → `agno.document.reader.docx_reader`
    * `phi.document.reader.json` → `agno.document.reader.json_reader`
    * `phi.document.reader.pdf` → `agno.document.reader.pdf_reader`
    * `phi.document.reader.s3.pdf` → `agno.document.reader.s3.pdf_reader`
    * `phi.document.reader.s3.text` → `agno.document.reader.s3.text_reader`
    * `phi.document.reader.text` → `agno.document.reader.text_reader`
    * `phi.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` 参数来修复语义分块。

  ## 新功能：

  * **代理评估**：推出评估功能，以衡量代理的性能、准确性和可靠性。
</Update>
