[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Upsonic--Upsonic":3,"tool-Upsonic--Upsonic":62},[4,18,28,37,45,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":24,"last_commit_at":25,"category_tags":26,"status":17},9989,"n8n","n8n-io\u002Fn8n","n8n 是一款面向技术团队的公平代码（fair-code）工作流自动化平台，旨在让用户在享受低代码快速构建便利的同时，保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点，帮助用户轻松连接 400 多种应用与服务，实现复杂业务流程的自动化。\n\nn8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”：既可以通过直观的可视化界面拖拽节点搭建流程，也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外，n8n 原生集成了基于 LangChain 的 AI 能力，支持用户利用自有数据和模型构建智能体工作流。在部署方面，n8n 提供极高的自由度，支持完全自托管以保障数据隐私和控制权，也提供云端服务选项。凭借活跃的社区生态和数百个现成模板，n8n 让构建强大且可控的自动化系统变得简单高效。",184740,2,"2026-04-19T23:22:26",[16,14,13,15,27],"插件",{"id":29,"name":30,"github_repo":31,"description_zh":32,"stars":33,"difficulty_score":10,"last_commit_at":34,"category_tags":35,"status":17},10095,"AutoGPT","Significant-Gravitas\u002FAutoGPT","AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台，核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点，让用户只需设定目标，AI 即可自主规划步骤、调用工具并持续运行直至完成任务。\n\n无论是开发者、研究人员，还是希望提升工作效率的普通用户，都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体；研究人员能基于开源架构探索多智能体协作机制；而非技术背景用户也可直接选用预置的智能体模板，立即投入实际工作场景。\n\nAutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑，每个块负责单一动作，灵活且易于调试。同时，平台支持本地自托管与云端部署两种模式，兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本，即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛，让人人都能成为 AI 的创造者与受益者。",183572,"2026-04-20T04:47:55",[13,36,27,14,15],"语言模型",{"id":38,"name":39,"github_repo":40,"description_zh":41,"stars":42,"difficulty_score":10,"last_commit_at":43,"category_tags":44,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":46,"name":47,"github_repo":48,"description_zh":49,"stars":50,"difficulty_score":24,"last_commit_at":51,"category_tags":52,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",161692,"2026-04-20T11:33:57",[14,13,36],{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":59,"last_commit_at":60,"category_tags":61,"status":17},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[13,27],{"id":63,"github_repo":64,"name":65,"description_en":66,"description_zh":67,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":65,"owner_name":65,"owner_avatar_url":73,"owner_bio":74,"owner_company":75,"owner_location":75,"owner_email":76,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":24,"env_os":100,"env_gpu":100,"env_ram":100,"env_deps":101,"category_tags":111,"github_topics":112,"view_count":24,"oss_zip_url":75,"oss_zip_packed_at":75,"status":17,"created_at":127,"updated_at":128,"faqs":129,"releases":158},10183,"Upsonic\u002FUpsonic","Upsonic","Build autonomous AI agents in Python.","Upsonic 是一个专为 Python 开发者设计的开源 AI 智能体框架，旨在帮助用户快速构建安全、可靠且可直接投入生产环境的自主 AI 应用。它解决了传统开发中智能体安全性难保障、多模型切换复杂以及记忆管理繁琐等痛点，让开发者无需从零搭建底层架构即可专注于业务逻辑。\n\n无论是需要自动化客户服务、金融数据分析，还是处理文档提取与合规监控的开发团队，Upsonic 都能提供强有力的支持。其核心亮点在于“安全优先”的设计理念，内置的策略引擎能自动过滤输入输出及工具交互中的风险内容。此外，Upsonic 拥有独特的自主执行能力，智能体可在沙箱环境中直接读写和执行代码，无需预先配置复杂工具；同时原生支持多种 OCR 引擎、灵活的会话记忆管理以及多智能体协同工作流。\n\n该框架兼容 OpenAI、Anthropic、Azure 等主流大模型提供商，并集成了 MCP 工具标准，非常适合希望高效落地 AI 应用的软件工程师、数据科学家及技术研究人员使用。通过简洁的 API 接口，Upsonic 让构建具备长期记忆、团队协作能力及严格安全控制的智能体变得像编写普通 Python 脚本一样简单。","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FUpsonic_Upsonic_readme_90c0cb42d403.png\" width=\"600\" \u002F>\n\n# Upsonic\n\n**Production-Ready AI Agent Framework with Safety First**\n\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fupsonic.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fupsonic)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENCE)\n[![Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fupsonic.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fupsonic\u002F)\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FUpsonic\u002FUpsonic.svg?style=social&label=Star)](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic)\n[![GitHub issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FUpsonic\u002FUpsonic.svg)](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-upsonic.ai-brightgreen.svg)](https:\u002F\u002Fdocs.upsonic.ai)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)\n\n[Documentation](https:\u002F\u002Fdocs.upsonic.ai) • [Quickstart](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart) • [Examples](https:\u002F\u002Fdocs.upsonic.ai\u002Fexamples) • [Discord](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)\n\n\u003C\u002Fdiv>\n\n---\n\n## Overview\n\nUpsonic is an open-source AI agent framework for building production-ready agents. It supports multiple AI providers (OpenAI, Anthropic, Azure, Bedrock) and includes built-in safety policies, OCR, memory, multi-agent coordination, and MCP tool integration.\n\n## What Can You Build?\n\n- **Document Analysis**: Extract and process text from images and PDFs\n- **Customer Service Automation**: Agents with memory and session context\n- **Financial Analysis**: Agents that analyze data, generate reports, and provide insights\n- **Compliance Monitoring**: Enforce safety policies across all agent interactions\n- **Research & Data Gathering**: Automate research workflows with multi-agent collaboration\n- **Multi-Agent Workflows**: Orchestrate tasks across specialized agent teams\n\n## Quick Start\n\n### Installation\n\n```bash\nuv pip install upsonic\n# pip install upsonic\n```\n\n### Basic Agent\n\n```python\nfrom upsonic import Agent, Task\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"Stock Analyst Agent\")\n\ntask = Task(description=\"Analyze the current market trends\")\n\nagent.print_do(task)\n```\n\n### Agent with Tools\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.tools.common_tools import YFinanceTools\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"Stock Analyst Agent\")\n\ntask = Task(\n    description=\"Give me a summary about tesla stock with tesla car models\",\n    tools=[YFinanceTools()]\n)\n\nagent.print_do(task)\n```\n\n### Agent with Memory\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.storage import Memory, InMemoryStorage\n\nmemory = Memory(\n    storage=InMemoryStorage(),\n    session_id=\"session_001\",\n    full_session_memory=True\n)\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", memory=memory)\n\ntask1 = Task(description=\"My name is John\")\nagent.print_do(task1)\n\ntask2 = Task(description=\"What is my name?\")\nagent.print_do(task2)  # Agent remembers: \"Your name is John\"\n```\n\n**Ready for more?** Check out the [Quickstart Guide](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart) for additional examples including Knowledge Base and Team workflows.\n\n## Key Features\n\n- **Autonomous Agent**: An agent that can read, write, and execute code inside a sandboxed workspace, no tool setup required\n- **Safety Engine**: Policy-based content filtering applied to user inputs, agent outputs, and tool interactions\n- **OCR Support**: Unified interface for multiple OCR engines with PDF and image support\n- **Memory Management**: Session memory and long-term storage with multiple backend options\n- **Multi-Agent Teams**: Sequential and parallel agent coordination\n- **Tool Integration**: MCP tools, custom tools, and human-in-the-loop workflows\n- **Production Ready**: Monitoring, metrics, and enterprise deployment support\n\n## Core Capabilities\n\n### Autonomous Agent\n\n`AutonomousAgent` extends `Agent` with built-in filesystem and shell tools, automatic session memory, and workspace sandboxing. Useful for coding assistants, DevOps automation, and any task that needs direct file or terminal access.\n\n```python\nfrom upsonic import AutonomousAgent, Task\n\nagent = AutonomousAgent(\n    model=\"anthropic\u002Fclaude-sonnet-4-5\",\n    workspace=\"\u002Fpath\u002Fto\u002Fproject\"\n)\n\ntask = Task(\"Read the main.py file and add error handling to every function\")\nagent.print_do(task)\n```\n\nAll file and shell operations are restricted to `workspace`. Path traversal and dangerous commands are blocked.\n\n---\n\n### Safety Engine\n\nThe Safety Engine applies policies at three points: user inputs, agent outputs, and tool interactions. Policies can block, anonymize, replace, or raise exceptions on matched content.\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.safety_engine.policies.pii_policies import PIIAnonymizePolicy\n\nagent = Agent(\n    model=\"anthropic\u002Fclaude-sonnet-4-5\",\n    user_policy=PIIAnonymizePolicy,  # anonymizes PII before sending to the LLM\n)\n\ntask = Task(\n    description=\"My email is john.doe@example.com and phone is 555-1234. What are my email and phone?\"\n)\n\n# PII is anonymized before reaching the LLM, then de-anonymized in the response\nresult = agent.do(task)\nprint(result)  # \"Your email is john.doe@example.com and phone is 555-1234\"\n```\n\nPre-built policies cover PII, adult content, profanity, financial data, and more. Custom policies are also supported.\n\nLearn more: [Safety Engine Documentation](https:\u002F\u002Fdocs.upsonic.ai\u002Fconcepts\u002Fsafety-engine\u002Foverview)\n\n---\n\n### OCR and Document Processing\n\nUpsonic provides a unified OCR interface with a layered pipeline: Layer 0 handles document preparation (PDF to image conversion, preprocessing), Layer 1 runs the OCR engine.\n\n```bash\nuv pip install \"upsonic[ocr]\"\n```\n\n```python\nfrom upsonic.ocr import OCR\nfrom upsonic.ocr.layer_1.engines import EasyOCREngine\n\nengine = EasyOCREngine(languages=[\"en\"])\nocr = OCR(layer_1_ocr_engine=engine)\n\ntext = ocr.get_text(\"invoice.pdf\")\nprint(text)\n```\n\nSupported engines: EasyOCR, RapidOCR, Tesseract, PaddleOCR, DeepSeek OCR, DeepSeek via Ollama.\n\nLearn more: [OCR Documentation](https:\u002F\u002Fdocs.upsonic.ai\u002Fconcepts\u002Focr\u002Foverview)\n\n## Upsonic AgentOS\n\nAgentOS is an optional deployment platform for running agents in production. It provides a Kubernetes-based runtime, metrics dashboard, and self-hosted deployment.\n\n- **Kubernetes-based FastAPI Runtime**: Deploy agents as isolated, scalable microservices\n- **Metrics Dashboard**: Track LLM costs, token usage, and performance per transaction\n- **Self-Hosted**: Full control over your data and infrastructure\n- **One-Click Deployment**: Automated deployment pipelines\n\n\u003Cimg width=\"3024\" height=\"1590\" alt=\"AgentOS Dashboard\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FUpsonic_Upsonic_readme_c552e833e9e7.png\" \u002F>\n\n## IDE Integration\n\nAdd Upsonic docs as a source in your coding tools:\n\n**Cursor:** Settings → Indexing & Docs → Add `https:\u002F\u002Fdocs.upsonic.ai\u002Fllms-full.txt`\n\nAlso works with VSCode, Windsurf, and similar tools.\n\n## Documentation and Resources\n\n- **[Documentation](https:\u002F\u002Fdocs.upsonic.ai)** - Complete guides and API reference\n- **[Quickstart Guide](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart)** - Get started in 5 minutes\n- **[Examples](https:\u002F\u002Fdocs.upsonic.ai\u002Fexamples)** - Real-world examples and use cases\n- **[API Reference](https:\u002F\u002Fdocs.upsonic.ai\u002Freference)** - Detailed API documentation\n\n## Community and Support\n\n> **💬 [Join our Discord community!](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)** — Ask questions, share what you're building, get help from the team, and connect with other developers using Upsonic.\n\n- **[Discord](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)** - Chat with the community and get real-time support\n- **[Issue Tracker](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues)** - Report bugs and request features\n- **[Changelog](https:\u002F\u002Fdocs.upsonic.ai\u002Fchangelog)** - See what's new in each release\n\n## License\n\nUpsonic is released under the MIT License. See [LICENCE](LICENCE) for details.\n\n## Contributing\n\nWe welcome contributions from the community! Please read our contributing guidelines and code of conduct before submitting pull requests.\n\n---\n\n**Learn more at [upsonic.ai](https:\u002F\u002Fupsonic.ai)**\n","\u003Cdiv align=\"center\">\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FUpsonic_Upsonic_readme_90c0cb42d403.png\" width=\"600\" \u002F>\n\n# Upsonic\n\n**以安全为先的生产就绪型AI智能体框架**\n\n[![PyPI版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fupsonic.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fupsonic)\n[![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](LICENCE)\n[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fupsonic.svg)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fupsonic\u002F)\n[![GitHub星标](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FUpsonic\u002FUpsonic.svg?style=social&label=Star)](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic)\n[![GitHub问题](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FUpsonic\u002FUpsonic.svg)](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues)\n[![文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-upsonic.ai-brightgreen.svg)](https:\u002F\u002Fdocs.upsonic.ai)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscord-Join%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)\n\n[文档](https:\u002F\u002Fdocs.upsonic.ai) • [快速入门](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart) • [示例](https:\u002F\u002Fdocs.upsonic.ai\u002Fexamples) • [Discord](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)\n\n\u003C\u002Fdiv>\n\n---\n\n## 概述\n\nUpsonic是一个开源的AI智能体框架，用于构建生产就绪的智能体。它支持多家AI服务提供商（OpenAI、Anthropic、Azure、Bedrock），并内置了安全策略、OCR、记忆功能、多智能体协作以及MCP工具集成。\n\n## 你能构建什么？\n\n- **文档分析**：从图片和PDF中提取并处理文本\n- **客户服务自动化**：具备记忆和会话上下文的智能体\n- **财务分析**：能够分析数据、生成报告并提供洞察的智能体\n- **合规性监控**：在所有智能体交互中强制执行安全策略\n- **研究与数据收集**：通过多智能体协作自动化研究流程\n- **多智能体工作流**：协调专业智能体团队之间的任务\n\n## 快速开始\n\n### 安装\n\n```bash\nuv pip install upsonic\n# pip install upsonic\n```\n\n### 基本智能体\n\n```python\nfrom upsonic import Agent, Task\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"股票分析师智能体\")\n\ntask = Task(description=\"分析当前市场趋势\")\n\nagent.print_do(task)\n```\n\n### 带工具的智能体\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.tools.common_tools import YFinanceTools\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"股票分析师智能体\")\n\ntask = Task(\n    description=\"给我一份关于特斯拉股票及特斯拉车型的摘要\",\n    tools=[YFinanceTools()]\n)\n\nagent.print_do(task)\n```\n\n### 带记忆功能的智能体\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.storage import Memory, InMemoryStorage\n\nmemory = Memory(\n    storage=InMemoryStorage(),\n    session_id=\"session_001\",\n    full_session_memory=True\n)\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", memory=memory)\n\ntask1 = Task(description=\"我的名字是John\")\nagent.print_do(task1)\n\ntask2 = Task(description=\"我叫什么名字？\")\nagent.print_do(task2)  # 智能体会记住：\"你的名字是John\"\n```\n\n**想了解更多吗？** 请查看[快速入门指南](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart)，其中包含更多示例，如知识库和团队工作流。\n\n## 核心特性\n\n- **自主智能体**：能够在沙盒化的工作空间内读取、写入并执行代码的智能体，无需设置工具\n- **安全引擎**：基于策略的内容过滤，应用于用户输入、智能体输出以及工具交互\n- **OCR支持**：统一的接口支持多种OCR引擎，并可处理PDF和图像\n- **内存管理**：会话内存和长期存储，支持多种后端选项\n- **多智能体团队**：顺序和并行的智能体协调\n- **工具集成**：MCP工具、自定义工具以及人机协作工作流\n- **生产就绪**：监控、指标和企业级部署支持\n\n## 核心能力\n\n### 自主智能体\n\n`AutonomousAgent`扩展了`Agent`类，内置了文件系统和Shell工具、自动会话内存以及工作空间沙盒化功能。适用于编码助手、DevOps自动化以及任何需要直接访问文件或终端的任务。\n\n```python\nfrom upsonic import AutonomousAgent, Task\n\nagent = AutonomousAgent(\n    model=\"anthropic\u002Fclaude-sonnet-4-5\",\n    workspace=\"\u002Fpath\u002Fto\u002Fproject\"\n)\n\ntask = Task(\"读取main.py文件，并为每个函数添加错误处理\")\nagent.print_do(task)\n```\n\n所有文件和Shell操作都被限制在`workspace`目录内。路径遍历和危险命令将被阻止。\n\n---\n\n### 安全引擎\n\n安全引擎在三个环节应用策略：用户输入、智能体输出以及工具交互。这些策略可以对匹配的内容进行拦截、匿名化、替换或抛出异常。\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.safety_engine.policies.pii_policies import PIIAnonymizePolicy\n\nagent = Agent(\n    model=\"anthropic\u002Fclaude-sonnet-4-5\",\n    user_policy=PIIAnonymizePolicy,  \u002F\u002F 在发送给LLM之前匿名化PII\n)\n\ntask = Task(\n    description=\"我的邮箱是john.doe@example.com，电话是555-1234。请问我的邮箱和电话是多少？\"\n)\n\n# PII在到达LLM之前会被匿名化，然后在响应中解匿名\nresult = agent.do(task)\nprint(result)  \u002F\u002F \"您的邮箱是john.doe@example.com，电话是555-1234\"\n```\n\n预置策略涵盖PII、成人内容、脏话、金融数据等。同时也支持自定义策略。\n\n了解更多信息：[安全引擎文档](https:\u002F\u002Fdocs.upsonic.ai\u002Fconcepts\u002Fsafety-engine\u002Foverview)\n\n---\n\n### OCR与文档处理\n\nUpsonic提供了一个统一的OCR接口，采用分层管道设计：第0层负责文档准备（PDF转图像、预处理），第1层运行OCR引擎。\n\n```bash\nuv pip install \"upsonic[ocr]\"\n```\n\n```python\nfrom upsonic.ocr import OCR\nfrom upsonic.ocr.layer_1.engines import EasyOCREngine\n\nengine = EasyOCREngine(languages=[\"en\"])\nocr = OCR(layer_1_ocr_engine=engine)\n\ntext = ocr.get_text(\"invoice.pdf\")\nprint(text)\n```\n\n支持的引擎包括：EasyOCR、RapidOCR、Tesseract、PaddleOCR、DeepSeek OCR以及通过Ollama调用的DeepSeek OCR。\n\n了解更多信息：[OCR文档](https:\u002F\u002Fdocs.upsonic.ai\u002Fconcepts\u002Focr\u002Foverview)\n\n## Upsonic AgentOS\n\nAgentOS是一个可选的部署平台，用于在生产环境中运行智能体。它提供了基于Kubernetes的运行时、指标仪表盘以及自托管部署功能。\n\n- **基于Kubernetes的FastAPI运行时**：将智能体部署为隔离且可扩展的微服务\n- **指标仪表盘**：跟踪LLM成本、token使用情况以及每笔交易的性能\n- **自托管**：完全掌控您的数据和基础设施\n- **一键部署**：自动化部署流水线\n\n\u003Cimg width=\"3024\" height=\"1590\" alt=\"AgentOS仪表盘\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FUpsonic_Upsonic_readme_c552e833e9e7.png\" \u002F>\n\n## IDE 集成\n\n在您的编码工具中添加 Upsonic 文档作为源：\n\n**Cursor：** 设置 → 索引与文档 → 添加 `https:\u002F\u002Fdocs.upsonic.ai\u002Fllms-full.txt`\n\n同样适用于 VSCode、Windsurf 及其他类似工具。\n\n## 文档与资源\n\n- **[文档](https:\u002F\u002Fdocs.upsonic.ai)** - 完整指南和 API 参考\n- **[快速入门指南](https:\u002F\u002Fdocs.upsonic.ai\u002Fget-started\u002Fquickstart)** - 5 分钟内开始使用\n- **[示例](https:\u002F\u002Fdocs.upsonic.ai\u002Fexamples)** - 实际应用示例和用例\n- **[API 参考](https:\u002F\u002Fdocs.upsonic.ai\u002Freference)** - 详细的 API 文档\n\n## 社区与支持\n\n> **💬 [加入我们的 Discord 社区！](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)** — 提问、分享您的项目、获得团队帮助，并与其他使用 Upsonic 的开发者交流。\n\n- **[Discord](https:\u002F\u002Fdiscord.gg\u002FpmYDMSQHqY)** - 与社区聊天并获取实时支持\n- **[问题跟踪器](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues)** - 报告错误和请求功能\n- **[更新日志](https:\u002F\u002Fdocs.upsonic.ai\u002Fchangelog)** - 查看每次发布的新内容\n\n## 许可证\n\nUpsonic 采用 MIT 许可证发布。详情请参阅 [LICENCE](LICENCE)。\n\n## 贡献\n\n我们欢迎社区的贡献！请在提交拉取请求前阅读我们的贡献指南和行为准则。\n\n---\n\n**访问 [upsonic.ai](https:\u002F\u002Fupsonic.ai) 了解更多**","# Upsonic 快速上手指南\n\nUpsonic 是一个面向生产环境的开源 AI Agent 框架，主打“安全优先”。它支持多种大模型提供商（OpenAI, Anthropic, Azure, Bedrock），内置安全策略、OCR 识别、记忆管理、多智能体协作以及 MCP 工具集成。\n\n## 环境准备\n\n*   **操作系统**：Linux, macOS, Windows\n*   **Python 版本**：3.9 或更高版本\n*   **前置依赖**：\n    *   推荐安装 `uv` (高性能 Python 包管理器) 以加速安装过程。\n    *   若未安装 `uv`，可使用标准 `pip`。\n*   **API Key**：需准备对应大模型服务商的 API Key（如 Anthropic, OpenAI 等），并通过环境变量配置（例如 `export ANTHROPIC_API_KEY=your_key`）。\n\n> **国内开发者提示**：如遇网络连接问题，建议配置国内镜像源加速安装。\n> *   使用 `uv` 时：`uv pip install upsonic --index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n> *   使用 `pip` 时：`pip install upsonic -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 安装步骤\n\n推荐使用 `uv` 进行安装，以获得更快的解析和下载速度：\n\n```bash\nuv pip install upsonic\n# 或者使用标准 pip\n# pip install upsonic\n```\n\n若需要使用 OCR 功能（文档分析），请安装额外依赖：\n\n```bash\nuv pip install \"upsonic[ocr]\"\n```\n\n## 基本使用\n\n### 1. 创建基础 Agent\n\n最简单的用法是实例化一个 Agent 并分配任务。以下示例使用 Anthropic 模型分析市场趋势：\n\n```python\nfrom upsonic import Agent, Task\n\n# 初始化 Agent，指定模型和名称\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"Stock Analyst Agent\")\n\n# 定义任务\ntask = Task(description=\"Analyze the current market trends\")\n\n# 执行任务并打印结果\nagent.print_do(task)\n```\n\n### 2. 使用工具增强 Agent\n\nUpsonic 支持直接挂载工具。以下示例让 Agent 调用金融数据工具来分析特斯拉股票：\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.tools.common_tools import YFinanceTools\n\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", name=\"Stock Analyst Agent\")\n\ntask = Task(\n    description=\"Give me a summary about tesla stock with tesla car models\",\n    tools=[YFinanceTools()]  # 挂载金融工具\n)\n\nagent.print_do(task)\n```\n\n### 3. 赋予 Agent 记忆能力\n\n通过配置 `Memory` 模块，Agent 可以在会话中记住上下文信息：\n\n```python\nfrom upsonic import Agent, Task\nfrom upsonic.storage import Memory, InMemoryStorage\n\n# 配置内存存储\nmemory = Memory(\n    storage=InMemoryStorage(),\n    session_id=\"session_001\",\n    full_session_memory=True\n)\n\n# 将内存绑定到 Agent\nagent = Agent(model=\"anthropic\u002Fclaude-sonnet-4-5\", memory=memory)\n\n# 第一轮对话：告知名字\ntask1 = Task(description=\"My name is John\")\nagent.print_do(task1)\n\n# 第二轮对话：询问名字（Agent 将能回忆起上一轮内容）\ntask2 = Task(description=\"What is my name?\")\nagent.print_do(task2)  # 输出: \"Your name is John\"\n```\n\n### 4. 高级特性：自主代理 (Autonomous Agent)\n\n对于需要操作文件系统或执行代码的场景，可使用 `AutonomousAgent`。它在沙箱环境中运行，自动具备文件读写和 Shell 执行能力：\n\n```python\nfrom upsonic import AutonomousAgent, Task\n\nagent = AutonomousAgent(\n    model=\"anthropic\u002Fclaude-sonnet-4-5\",\n    workspace=\"\u002Fpath\u002Fto\u002Fproject\"  # 限制操作范围在此目录\n)\n\ntask = Task(\"Read the main.py file and add error handling to every function\")\nagent.print_do(task)\n```\n\n---\n更多详细用法（如多智能体团队协作、安全策略定制、知识库集成等），请访问 [官方文档](https:\u002F\u002Fdocs.upsonic.ai)。","某金融科技公司数据团队需要每日自动处理数百份非结构化的财报 PDF 和新闻截图，提取关键财务指标并生成合规分析报告。\n\n### 没有 Upsonic 时\n- **开发周期漫长**：工程师需分别集成 OCR 库、编写复杂的正则表达式解析文本，并手动调用大模型 API，耗时数周才能搭建原型。\n- **多步骤协作困难**：从“读取图片”到“分析数据”再到“撰写报告”需编写大量胶水代码串联不同脚本，流程极易断裂且难以调试。\n- **安全隐患突出**：缺乏内置的内容过滤机制，代理可能输出未经审查的敏感建议或执行危险操作，合规风险极高。\n- **记忆上下文丢失**：在处理跨文档的关联分析时，难以让 AI 记住之前的会话状态，导致每次任务都需重新输入背景信息。\n\n### 使用 Upsonic 后\n- **极速落地应用**：利用 Upsonic 内置的 OCR 支持和统一接口，团队仅用几行 Python 代码即可构建具备阅读 PDF 和图片能力的智能代理。\n- **原生多代理协同**：通过定义“数据提取代理”和“合规审核代理”，Upsonic 自动编排串行工作流，无需手动管理中间状态传递。\n- **安全默认开启**：启用 Safety Engine 后，所有输入输出自动经过策略过滤，确保生成的金融建议符合公司合规标准，杜绝越权行为。\n- **会话记忆持久化**：配置 Memory 模块后，代理能自动关联历史财报数据与当前任务，在长周期分析中保持上下文连贯性。\n\nUpsonic 将原本需要数周开发的复杂多模态分析流程，简化为安全、可维护且生产就绪的 Python 脚本，极大提升了自动化效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FUpsonic_Upsonic_c552e833.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FUpsonic_ca35e7f5.jpg","Task oriented AI agent framework for Digital workers and vertical AI agents",null,"info@upsonic.co","UpsonicAI","https:\u002F\u002Fdocs.upsonic.ai\u002F","https:\u002F\u002Fgithub.com\u002FUpsonic",[81,85,88,92],{"name":82,"color":83,"percentage":84},"Python","#3572A5",96.9,{"name":86,"color":87,"percentage":10},"Jupyter Notebook","#DA5B0B",{"name":89,"color":90,"percentage":91},"Makefile","#427819",0.1,{"name":93,"color":94,"percentage":95},"Shell","#89e051",0,7833,728,"2026-04-20T06:35:56","MIT","未说明",{"notes":102,"python":103,"dependencies":104},"该工具是一个 AI Agent 框架，主要通过 API 调用外部大模型（如 OpenAI, Anthropic, Azure, Bedrock），因此本地无需高性能 GPU。若启用 OCR 功能，需安装额外的可选依赖包（如 upsonic[ocr]）。支持多种存储后端用于记忆管理。可选部署平台 AgentOS 基于 Kubernetes。","3.8+",[105,106,107,108,109,110],"upsonic","EasyOCR (可选)","RapidOCR (可选)","Tesseract (可选)","PaddleOCR (可选)","DeepSeek OCR (可选)",[36,14,13],[113,114,115,116,117,118,119,120,121,122,123,124,125,126,6],"openai","computer-use","claude","mcp","agent-framework","agent","llms","reliability","model-context-protocol","rag","ucp","universal-commerce-protocol","autonomous-agent","autonomous-agents","2026-03-27T02:49:30.150509","2026-04-20T20:24:34.617078",[130,135,140,144,149,153],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},45700,"在 Python 3.12.4 中运行时报错 'TypeError: ForwardRef._evaluate() missing 1 required keyword-only argument' 如何解决？","该问题通常由 pydantic 版本兼容性引起。解决方案有两种：\n1. 将 pydantic 升级到 2.7.4 版本：`pip install pydantic==2.7.4`\n2. 或者将 Python 版本降级到 3.12.3，该版本与此依赖库兼容性更好。","https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues\u002F116",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},45701,"AgentID 工具包如何集成到 Upsonic 的代理生命周期中？需要手动编写代码吗？","不需要手动编写检测代码。AgentIDTools 工具包直接插入 Upsonic 的工具系统中。只需将 AgentIDTools 添加到代理的工具列表中，当代理运行使用该工具的任务时，验证会自动通过工具方法执行。首次使用时会自动运行 `register_or_verify`，后续的重新验证频率由 `reverify_interval` 参数控制。","https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues\u002F553",{"id":141,"question_zh":142,"answer_zh":143,"source_url":139},45702,"AgentID 的信任评分（Trust Score）是如何计算的？仅基于证书有效性吗？","信任评分不仅仅基于证书是否有效，而是综合了行为和证书状态的多维度指标，包括：\n- 证书有效性（过期会被标记）\n- 信任等级（L1-L4，基于能力）\n- 行为风险评分（基于 30 天基线的异常检测）\n- 上下文连续性评分（检测模型或内存变化）\n- 疤痕评分（终身负面事件记录）\n- 负面信号（验证失败、异常）\n- 已解决的信号（恢复的事件）\n所有计算均在每次验证调用时在服务器端完成，旨在判断“代理的行为是否仍像它自己”。",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},45703,"在 macOS (Intel x64) 上运行时遇到 Rubicon Objective-C 导入失败或架构识别错误怎么办？","此问题通常出现在 Intel x64 架构的 Mac 上，原因是 Rubicon 未能正确识别架构。建议的替代方案是使用 `pyobjc` 库，它是 macOS 原生的 Objective-C 桥接库。配合 Quartz 框架，它可以替代 pyautogui 实现类似的自动化功能，虽然有一定的学习曲线，但能更好地兼容 macOS 环境。","https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues\u002F10",{"id":150,"question_zh":151,"answer_zh":152,"source_url":139},45704,"对于金融科技的审计追踪，AgentID 的证书生命周期和注册机制是怎样的？","AgentID 采用“一次注册，全年有效”的机制。在一个证书的全年有效期内，代理保持相同的 `agent_id`，无需在密钥轮换时重新注册。这种设计确保了标识符的稳定性，非常适合需要映射到法律实体或系统的金融科技审计场景，避免了频繁重新注册导致的血缘关系断裂。",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},45705,"是否有计划使用 React 或 Web 技术重构当前的 PyQt 用户界面？","目前项目方倾向于坚持使用纯 PyQt 开发，不引入浏览器内核（如 Chromium）或 React\u002FFastAPI 架构。维护者认为当前使用原生 PyQt 功能已经足够好，且更适合非程序员用户使用。虽然社区提出了使用 PyQT Webkit 或 Electron 类方案的建议，但这被视为项目规模大幅增长后的潜在考虑方向，而非当前的优先事项。","https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fissues\u002F44",[159,164,169,174,179,184,189,194,199,204,209,214,219,224,229,234,239,244,249,254],{"id":160,"version":161,"summary_zh":162,"released_at":163},360634,"v0.75.0","## 新特性：\n- KnowledgeBase 状态机：新增 `KBState` 枚举状态机（`UNINITIALIZED → CONNECTED → INDEXED → CLOSED`），用以替代布尔标志位，并在无效状态时抛出 `RuntimeError` 异常，从而实现更安全的生命周期管理。\n- KnowledgeBase 内容管理 API：新增同步与异步 API，包括 `aadd_source`、`aadd_text`、`aremove_document`、`arefresh`、`adelete_by_filter` 和 `aupdate_document_metadata`，用于全面的文档管理。\n- KnowledgeBase 存储表：新增 `KnowledgeRow` 数据类，支持对所有 7 种存储提供商（SQLite、PostgreSQL、MongoDB、Redis、JSON、InMemory、Mem0）进行完整的 CRUD 操作，用于文档跟踪和内容哈希去重。\n- 增量变更检测：KnowledgeBase 现在会检查向量数据库中的 `doc_content_hash`，以跳过未更改的文档，并在重新索引已编辑的文档之前删除过时的分块。\n- KnowledgeBase 的隔离搜索：新增 `isolate_search` 参数（默认为 `True`），可自动注入 `knowledge_base_id` 过滤条件，使多个 KnowledgeBase 能够安全地共享同一个集合。\n\n## 改进：\n- 向量数据库负载标准化：在所有 6 家向量数据库提供商（Qdrant、Milvus、Pgvector、Pinecone、Weaviate、Chroma）中强制执行严格统一的负载契约，确保无论后端如何，`VectorSearchResult.payload` 的形状都保持一致。\n- KnowledgeBase 架构重构：弃用了 `ToolKit` 继承方式，改为通过 `get_tools()` 返回 `FunctionTool.from_callable()`；新增了 `build_context()`\u002F`abuild_context()` 用于生成系统提示词，并实现了集合名称的自动派生。\n- 向量数据库 `aupsert` 验证：对所有单条记录数组增加了严格的长度验证，并提供清晰的 `ValueError` 错误信息；同时，在所有 6 家提供商中引入了专门的 `knowledge_base_ids` 参数。\n\n## Bug 修复：\n- 修复自主代理打印默认值：将自主代理类的 `print` 属性设置为默认值 `True`，以便无需手动配置即可查看代理输出。\n- 修复 MCP 流式 HTTP 客户端：解决了 MCP 流式 HTTP 客户端连接处理方面的问题。\n- 修复 MCP 会话重复：修复了 MCP 会话被重复创建的 bug。\n- 修复 Milvus 元数据泄漏：`aupdate_metadata` 现在不会再将用户指定的字段静默重置为配置默认值。\n- 修复 Pgvector 删除 bug：解决了 `adelete_by_metadata` 中的点号路径 bug，并修复了 `_row_to_payload` 中的 JSONB 展平问题。\n- 修复 Qdrant 负载展平：禁用了 `_flatten_payload` 方法，该方法会在读取时主动破坏标准化的负载契约。\n- 修复向量数据库标准字段偏差：修正了 Milvus 和 Weaviate 中 3 处过时的硬编码字面量，这些字面量缺少 `knowledge_base_id`，导致过滤器静默失败并丢失标量索引。\n\n\n完整更新日志：https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.74.4...v0.75.0\n\n### 拉取请求：\n- 修复：将自主代理类的 print 属性默认设置为 True：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#565](https:\u002F\u002Fgithub.com\u002FUpsonic\u002F","2026-04-14T09:57:41",{"id":165,"version":166,"summary_zh":167,"released_at":168},360635,"v0.74.4","## 新特性：\n\n- **邮件接口**：一个功能齐全的基于 SMTP\u002FIMAP 的邮件接口，使代理能够发送、接收和处理电子邮件，支持附件处理、白名单访问控制以及心跳自动轮询。可与任何标准邮件服务提供商配合使用，包括 Gmail、Outlook、Yahoo、Zoho 以及自托管服务器。\n\n## 改进：\n\n- **内存标志分离**：保存和加载内存标志已被分离，从而对代理内存持久化行为实现更细粒度的控制。\n- **向量数据库标志分离**：设置和查询向量数据库的标志已被分离，允许独立控制向量数据库的初始化和查询操作。\n- **知识库查询默认启用**：`query_knowledge_base` 现在默认设置为 `True`，无需显式配置即可开箱即用地进行知识库查询。\n- **PromptLayer 线程安全**：修复了 PromptLayer 集成中的线程问题，以防止在并发代理操作期间出现竞态条件。\n- **StreamableHTTPClientParams 认证支持**：为 `StreamableHTTPClientParams` 添加了 `auth` 属性，从而为可流式传输的 HTTP MCP 连接提供认证支持。\n\n## 错误修复：\n\n- **`check_command_exists` 中的命令注入漏洞（CWE-78）**：将不安全的 `subprocess.run` shell 调用替换为 `shutil.which()`，以防止通过 shell 元字符执行任意命令。\n- **脏话策略实施**：修正了安全引擎中的脏话策略逻辑，以确保正确的内容过滤和策略执行。\n\n**完整变更日志地址**：[v0.74.3...v0.74.4](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.74.3...v0.74.4)\n\n### 拉取请求：\n\n- 修复：防止 `check_command_exists` 中的命令注入漏洞（CWE-78）：[spidershield-contrib](https:\u002F\u002Fgithub.com\u002Fspidershield-contrib) 在 [#559](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F559) 中\n- 功能：邮件接口：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#560](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F560) 中","2026-04-02T17:39:45",{"id":170,"version":171,"summary_zh":172,"released_at":173},360636,"v0.74.3","## 新特性：\n\n- **Exa 网络搜索工具包**：智能体可通过 `ExaTools` 使用 Exa 进行神经网络和关键词网络搜索、URL 内容检索、相似页面发现，以及生成面向大语言模型的带引用的答案。\n- **E2B 沙箱工具包**：智能体可在隔离的 E2B 云沙箱中运行 Python、JavaScript、Java、R 和 Bash，并通过 `E2BTools` 实现文件传输、Shell 命令执行、软件包安装及生命周期管理。\n- **Daytona 沙箱工具包**：智能体可在 Daytona 云环境中通过 `DaytonaTools` 执行代码、管理文件、使用 Git 工作流以及控制沙箱生命周期。\n\n## 改进：\n\n- **用户策略覆盖范围**：安全策略现在会评估所有已配置的输入源（任务描述、上下文、系统提示、聊天记录以及有作用域限制的工具输出），而不仅限于任务描述，从而确保内容净化始终与策略作用域保持一致。\n- **OCR 引擎初始化**：OCR 提供商采用线程安全的惰性初始化机制，使得并发调用方共享同一个读取器实例，避免首次加载时的竞争条件。\n\n## 错误修复：\n\n- **OCR 重复下载问题**：并行或重复初始化 OCR 引擎可能导致模型被冗余下载；通过加锁机制确保每个提供商的引擎仅被创建一次。\n\n**完整变更日志地址**：[v0.74.2...v0.74.3](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.74.2...v0.74.3)\n\n### 拉取请求：\n\n- 修复：为 OCR 引擎初始化添加线程同步，防止多次下载：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#557](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F557) 中提出。","2026-03-30T13:45:12",{"id":175,"version":176,"summary_zh":177,"released_at":178},360637,"v0.74.2","## 新功能\n\n- **技能安全策略**：针对技能内容（提示注入、机密泄露和代码注入）的可选安全引擎策略，在验证技能时运行，并提供结构化日志记录以及丰富的仪表板，以便清晰查看通过或阻断情况。\n\n## 改进\n\n- **执行时间和指标**：更清晰地报告总耗时、模型耗时、工具耗时、暂停时间及框架开销，并在适用情况下与使用元数据和 OpenTelemetry 风格的属性保持一致。\n- **代理流水线\u002F消息构建**：将原有的单体式消息构建工作拆分为多个专注步骤（系统提示、上下文、用户输入、组装），使顺序和可观测性与流水线的其他部分保持一致。\n- **流式处理对齐**：之前流式路径中缺失的构建相关步骤现已纳入，因此流式运行会展示与非流式运行相同的步骤进展。\n\n## 修复的缺陷\n\n- **总耗时跟踪**：修复了错误的总耗时聚合问题，使端到端计时与实际墙钟行为一致。\n- **指标设置**：修正了运行级别指标的设置和传播方式，确保仪表板和追踪记录显示一致的值。\n- **单元测试**：调整了错误依赖 API 密钥的测试用例，使其无需实时凭据即可在 CI 环境中可靠运行。\n\n**完整变更日志**：[v0.74.1…v0.74.2](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.74.1...v0.74.2)\n\n### 拉取请求\n\n- 重构：修复指标设置问题，为技能添加安全策略：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#552](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F552) 中","2026-03-24T10:10:52",{"id":180,"version":181,"summary_zh":182,"released_at":183},360638,"v0.74.1","## Bug 修复\n\n* **技能集成冒烟测试**：部分技能集成测试曾失败；现已更新，使测试套件与当前技能行为一致，并能稳定通过。\n\n**完整变更日志**：[v0.74.0...v0.74.1](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.74.0...v0.74.1)\n\n### 拉取请求\n\n* 修复：修复技能集成测试：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#551](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F551) 中","2026-03-18T01:10:47",{"id":185,"version":186,"summary_zh":187,"released_at":188},360639,"v0.74.0","## 新特性\n\n* **Apify 工具（参数支持）**：Apify 演员和运行工具现在接受参数，以便代理可以将结构化输入传递给演员和运行。\n* **Discord 界面**：通过 `DiscordInterface` 实现新的 Discord 集成——网关 WebSocket、基于用户的聊天会话、附件、通过按钮进行的人工干预、流式编辑、白名单和打字提示选项。\n* **技能集成**：技能可从多个来源加载，并在代理运行中作为一等公民上下文被应用。\n\n## 改进\n\n* **PgVector 提供者（标识符安全）**：模式和表名经过验证（仅允许字母数字和下划线），DDL 使用带引号的标识符，从而在集合名称来自配置或代理时，增强对不安全标识符的防护。\n\n## 错误修复\n\n* **MCP `call_tool`（可流式传输的 HTTP \u002F SSE）**：工具调用失败，因为可流式传输的 HTTP\u002FSSE 返回的是类似于标准输入输出的 `(read, write, session_id)` 元组，而不是会话对象——现已与 `connect` 保持一致，因此 TaskGroup 错误不再每次工具调用时都会发生。\n* **MCP 工具结果（`EmbeddedResource`）**：嵌入式资源 URI 上的 `AnyUrl` 导致 JSON 序列化失败；现使用 `str()` 对 URI 进行规范化处理。\n* **MCP 烟雾测试**：烟雾测试已更新，以适应可流式传输的 HTTP\u002FSSE `call_tool` 行为。\n\n**完整变更日志**：[v0.73.2...v0.74.0](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.73.2...v0.74.0)\n\n### 拉取请求\n\n* vectordb：加强 pgvector 提供者的安全性，防止潜在的 SQL 注入攻击：[RinZ27](https:\u002F\u002Fgithub.com\u002FRinZ27) 在 [#541](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F541) 中\n* fix：MCP `call_tool` 在可流式传输的 HTTP 和 SSE 传输方式下会失败：[Jimgitsit](https:\u002F\u002Fgithub.com\u002FJimgitsit) 在 [#550](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F550) 中\n* feat：为 Apify 工具添加参数支持：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#547](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F547) 中","2026-03-18T00:07:27",{"id":190,"version":191,"summary_zh":192,"released_at":193},360640,"v0.73.2","## 错误修复\n- **Apify 工具函数模式**：修正了 Apify 行为体的函数工具模式设置，以便框架能够将预期的模式传递给模型。\n\n**完整变更日志**：[v0.73.1...v0.73.2](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.73.1...v0.73.2)\n\n### 拉取请求\n- 修复：Apify 工具函数模式修复：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#546](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F546) 中","2026-03-13T10:38:57",{"id":195,"version":196,"summary_zh":197,"released_at":198},360641,"v0.73.1","## 新特性\n\n- **Clanker 类型别名**：`Clanker` 现在是 `Agent` 的别名，已从包中导出，因此您可以互换使用这两个名称，而无需维护两种不同的类型。\n- **README IDE 集成**：新增章节，介绍如何使用 Mintlify 的 `llms-full.txt` 文件，在 Cursor、Windsurf 和 VS Code 中配置文档上下文，以便在 IDE 中获得完整的文档支持。\n\n## 改进\n\n- **PromptLayer 和 Langfuse 追踪**：日志流中支持评分和命名评分的附加功能、事后评分 API 以及数据集运行的关联；Langfuse 客户端扩展了数据集创建\u002F列出\u002F获取及数据集项 API，以支持评估工作流。\n- **文档可发现性**：通过 IDE 集成说明，更容易将助手指向规范的文档导出版本。\n\n## Bug 修复\n\n- **追踪集成测试**：调整并修复了单元测试，使其能够顺利通过经过重构的 PromptLayer\u002FLangfuse 行为验证。\n\n**完整变更日志**：[v0.73.0...v0.73.1](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.73.0...v0.73.1)\n\n### 拉取请求\n\n- doc：在 README 中添加 IDE 集成章节：[IremOztimur](https:\u002F\u002Fgithub.com\u002FIremOztimur) 在 [#544](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F544)\n- feat：Clanker 类型别名（包括 Langfuse\u002FPromptLayer 重构及测试修复）：[DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#545](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F545)","2026-03-12T18:51:01",{"id":200,"version":201,"summary_zh":202,"released_at":203},360642,"v0.73.0","## 新特性\n\n- **为提供商提供模型设置数据类**：为多个大语言模型提供商提供类型化的模型配置类，使模型设置更加清晰、类型安全。\n- **Langfuse 和 PromptLayer 集成**：为代理运行集成 Langfuse 和 PromptLayer 的追踪与可观测性功能。\n- **HITL 集成（用户输入、用户确认、动态用户输入）**：新增执行过程中的人工介入流程，支持用户输入、确认及动态输入。\n- **Telegram HITL 集成**：通过 Telegram 提供人工介入支持，用于远程确认。\n- **Apify 集成**：与 Apify 集成，可在框架中使用 Apify 的 Actor 和工具。\n- **示例仓库作为 Git 子模块**：将官方 [Upsonic\u002FExamples](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FExamples) 仓库以 Git 子模块形式添加到 `examples\u002F` 目录下。\n- **模型和工具执行时间跟踪及指标表**：在指标表中展示模型和工具调用的执行时间以及框架开销。\n- **新增模型提供商**：除现有提供商外，进一步支持更多大语言模型提供商。\n\n## 改进\n\n- **README 内容和示例**：简化概述和关键特性；新增 AutonomousAgent 章节并附代码示例；更新 Safety Engine 示例为 PIIAnonymizePolicy；新增 OCR 安装与使用示例；压缩 AgentOS 章节内容。\n- **Discord 社区徽章及行动号召**：在页眉徽章栏中添加 Discord 徽章，并在快速导航及“社区与支持”部分加入邀请链接，以提升社区可见性。\n- **ToolKit 重构**：重构 ToolKit 实现，使其结构更清晰、更易于维护。\n- **任务和代理指标重构**：重构任务和代理的指标收集与报告机制。\n- **Anthropic 输入类型**：增强对 Anthropic 提供商的输入类型处理。\n- **团队打印逻辑**：调整团队打印行为，使其与代理打印保持一致，确保控制台输出的一致性。\n- **使用情况跟踪**：重构使用情况跟踪实现。\n\n## 错误修复\n\n- **AutonomousAgent 流式传输**：修复 AutonomousAgent 的流式传输行为。\n- **上下文管理中间件**：修复上下文管理中间件的行为。\n- **Bedrock 环境变量**：修正 AWS Bedrock 的环境变量处理。\n\n---\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.6...v0.73.0\n\n### 拉取请求\n\n- docs: 更新 README 内容和示例：[@IremOztimur](https:\u002F\u002Fgithub.com\u002FIremOztimur) 在 [#535](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F535) 中\n- feat: 将 Examples 仓库作为 Git 子模块添加：[@IremOztimur](https:\u002F\u002Fgithub.com\u002FIremOztimur) 在 [#542](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F542) 中\n- doc: 在 README 中添加 Discord 社区徽章：[@IremOztimur](https:\u002F\u002Fgithub.com\u002FIremOztimur) 在 [#543](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F543) 中\n- feat: 新增模型设置类：[@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) 在 [#540](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F540) 中","2026-03-09T16:43:40",{"id":205,"version":206,"summary_zh":207,"released_at":208},360643,"v0.72.6","## 新特性：\n- **Qdrant 配置冒烟测试：** 为 IN_MEMORY 和 CLOUD 模式下的每个 QdrantConfig 属性添加测试类。\n\n## 改进：\n- **Qdrant 文本索引创建：** TextIndexParams 现在始终包含分词器和默认值，从而确保 Cloud 和本地环境无需处理“未知分词器类型”问题。\n- **Qdrant 错误处理：** 字段索引失败时会抛出一个 VectorDBError；全文索引和 collection_exists 方法不再吞掉异常（仅处理 404\u002F未找到错误）。\n- **Qdrant 冒烟测试断言：** 冒烟测试得到增强。\n\n## Bug 修复：\n- **Qdrant Cloud 上的文本索引：** 通过在模式和索引创建中始终设置分词器及默认参数，修复了“未知分词器类型”问题。\n- **Qdrant 吞掉的异常：** _create_field_indexes、_server_side_full_text_search 和 collection_exists 现在会传播错误，而不是静默忽略它们。\n\n---\n\n完整变更日志：[v0.72.5...v0.72.6](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.5...v0.72.6)\n\n### 拉取请求：\n- _(合并后请添加 PR 名称和链接。)_\n","2026-02-23T01:39:56",{"id":210,"version":211,"summary_zh":212,"released_at":213},360644,"v0.72.5","## New Features:\r\n- **Agent metrics**: Agent runs now expose accumulated usage (tokens, cost) and tool execution tracking for observability and cost monitoring.\r\n- **SuperMemory integration**: New vector database provider `SuperMemoryProvider` for RAG and knowledge base, with async SuperMemory API support, configurable via `SuperMemoryConfig` or `upsonic[supermemory]`.\r\n\r\n## Improvements:\r\n- **Tool managers (Task vs Agent)**: Task-level tools use a dedicated `ToolManager` on the task; agent and task tool definitions are combined and resolved correctly for validation and execution.\r\n- **Anthropic default max tokens**: Default `max_tokens` for Anthropic API increased from 4096 to 16384 for longer responses.\r\n- **Pydantic response format in streaming**: When using a Pydantic `response_format` on a task, streaming tool calls for the output tool are validated with `model_validate` and handled correctly in streaming mode.\r\n\r\n## Bug Fixes:\r\n- **finish_reason \"length\"**: When the model hits `max_tokens` and returns `finish_reason == \"length\"`, tool calls are no longer executed with possibly truncated arguments; the agent is informed via a tool-return message and can retry with shorter content or smaller steps.\r\n\r\n---\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.4...v0.72.5\r\n\r\n### Pull Requests:\r\n- feat: supermemory storage, agent metrics: [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#536](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F536)\r\n","2026-02-21T16:33:40",{"id":215,"version":216,"summary_zh":217,"released_at":218},360645,"v0.72.4","## Bug Fixes:\r\n- **Firecrawl & Anthropic API:** Fixed incorrect Firecrawl and Anthropic API usage so the framework works with current API versions.\r\n\r\n---\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.3...v0.72.4\r\n\r\n### Pull Requests:\r\n- fix: fix wrong api usage and anthropic api usage for new versions: [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#533](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F533)\r\n- Version 0.72.4: [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#534](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F534)\r\n","2026-02-19T10:05:35",{"id":220,"version":221,"summary_zh":222,"released_at":223},360646,"v0.72.3","## New Features:\r\n- Agent execution timeout: Optional `timeout` (seconds) on `do`, `do_async`, `print_do`, and `print_do_async`; execution is cancelled after the limit and `ExecutionTimeoutError` is raised unless partial results are requested.\r\n- Partial result on timeout: When `partial_on_timeout=True` and a timeout is set, the agent returns whatever text was generated so far instead of raising; uses streaming internally to accumulate output progressively.\r\n- Firecrawl custom tool: New Firecrawl integration in `src\u002Fupsonic\u002Ftools\u002Fcustom_tools\u002Ffirecrawl.py` with sync\u002Fasync support; added as optional dependency `firecrawl-py>=4.14.1` in `pyproject.toml`.\r\n- ExecutionTimeoutError: New exception in `upsonic.exceptions` for timeout scenarios, carrying the timeout value for programmatic handling.\r\n\r\n## Improvements:\r\n- Persistent background event loop: Sync entry points (`do`, `print_do`, workspace greeting, tool policy validation, `recommend_model_for_task`) use a single daemon-thread event loop instead of `asyncio.run()` per call, avoiding \"Event loop is closed\" and connection-pool issues with SDK clients.\r\n- Token usage on partial\u002Ftimeout: When execution ends due to timeout with partial results, `CallManagementStep` is run so `task.total_input_token` and `task.total_output_token` remain accurate.\r\n- Pipeline cancellation handling: Pipeline manager wraps final `yield` in try\u002Fexcept for `GeneratorExit` so cancellation by `asyncio.wait_for` does not propagate; `RunCompletedEvent` only emitted when `step_results` is non-empty.\r\n- Mem0 storage: Implementation and tests updated for mem0 sync\u002Fasync storage (comprehensive smoke tests and fixes).\r\n- Retry and usage utilities: Retry logic and usage tracking adjusted for timeout and partial-result flows where applicable.\r\n- Firecrawl and custom tools: Gmail, Slack, and financial tools aligned with shared patterns; Firecrawl tool tests added (unit and smoke).\r\n\r\n## Bug Fixes:\r\n- Sync execution event loop: Fixed sync agent\u002Fteam methods failing or leaving closed event loops when called repeatedly by using a persistent background loop instead of per-call `asyncio.run()`.\r\n- Firecrawl tool attributes: Corrected tool attribute definitions and usage in Firecrawl custom tool and tests.\r\n- Unit test usage: Fixed unit test usage and expectations for new timeout and partial-result behavior.\r\n\r\n---\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.2...v0.72.3\r\n\r\n### Pull Requests:\r\n- feat: add timeout and partial result handling in Agent execution [@onuratakan](https:\u002F\u002Fgithub.com\u002Fonuratakan) in [#532](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F532)","2026-02-17T14:35:15",{"id":225,"version":226,"summary_zh":227,"released_at":228},360647,"v0.72.2","## New Features:\r\n- Agent\u002FTeam as MCP tool: Agent and Team can be converted to MCP via `as_mcp()` and used as MCP tools; other agents can consume them via `MCPHandler`.\r\n- Nested Teams: Teams can contain both Agents and other Teams; entities are unified under `entities` (with backward-compatible `agents` alias) and support sequential, coordinate, and route modes.\r\n- Team leader and router: When creating a Team, optional `leader` and `router` Agent instances can be passed for coordinate and route modes instead of auto-created agents from `model`.\r\n- Team async and streaming: Team exposes `do_async`\u002F`ado` and `astream`\u002F`stream` so a Team can be used as an entity inside another Team or in async pipelines.\r\n- Agent\u002FTeam task list execution: Agent and Team accept a list of tasks for `do`, `do_async`, `print_do`, and `print_do_async`; multiple tasks run sequentially and return a list of results.\r\n- Eval and MCP smoke tests: New smoke tests for Accuracy\u002FPerformance\u002FReliability evals and for Agent\u002FTeam as MCP, nested teams (sequential, coordinate, route), and task metrics.\r\n- Makefile deps_smoke: New `make deps_smoke` target installs optional dependencies (storage, faiss) required by smoke tests.\r\n\r\n## Improvements:\r\n- Printing and price tracking: `call_end` and `agent_end` run price_id tracking regardless of `print_output`, so cost is tracked even when output is suppressed.\r\n- Tool calls display: New `show_tool_calls` parameter on Agent and in `call_end` allows showing tool-calls tables even when full print output is disabled.\r\n- Team sync execution in Jupyter: Team’s sync `do` uses `_run_sync()` to run the async workflow in a new thread when a loop is already running (e.g. Jupyter).\r\n- Autonomous agent Jupyter compatibility: Autonomous agent’s sync `execute_heartbeat` uses the same thread-pool pattern when a loop is already running.\r\n- MCP server environment: MCP stdio\u002FSSE server processes inherit the full current-process environment (API keys, PYTHONPATH, .env) with user-provided overrides.\r\n- Workspace and greeting: Workspace references use `AGENTS.md` (replacing `Agents.md`); greeting prompt tightened and debug print removed.\r\n- Storage lazy loading: Storage package uses a single lazy-load loop with optional backends guarded by `_safe_get`, so missing optional deps do not break other storage imports.\r\n- Coordinator and delegation: CoordinatorSetup, TaskAssignment, ContextSharing, DelegationManager, and ResultCombiner support both Agent and Team entities; delegation tool no longer requires session memory and supports optional debug logging.\r\n- Agent entity ID: Agent exposes `get_entity_id()` for a unified interface with Team in coordinator manifests and MCP tool naming.\r\n\r\n## Bug Fixes:\r\n- print_do not working in Jupyter: Team and Agent sync entry points now use a dedicated thread with `asyncio.run()` when a loop is already running, so `print_do` and `do` complete instead of hanging or raising event loop errors.\r\n- Smoke tests and new printing usage: Smoke tests updated to the new printing contract (print capture, `print_do`\u002F`print_do_async` where needed, relaxed assertions, `uv run pytest` with optional deps) so the suite passes consistently.\r\n- Fixed retry and Task error status conflict.\r\n\r\n---\r\n\r\nFull Changelog: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.1...v0.72.2\r\n\r\n### Pull Requests:\r\n- feat: Agent\u002FTeam as mcp tool, Team can be put inside Team [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#526](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F526)\r\n- fix: fix smoke tests by using new printing usage [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#529](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F529)\r\n- chor: version 0.72.2 [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#530](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F530)\r\n- fix: fix retry and task error status collision [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#531](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F531)","2026-02-14T12:56:12",{"id":230,"version":231,"summary_zh":232,"released_at":233},360648,"v0.72.1","## New Features:\r\n- **Asynchronous OCR processing**: Added async-first OCR pipeline with `get_text_async` and `process_file_async` entry points so document processing can run without blocking.\r\n- **Document conversion layer (Layer 0)**: New document-to-image conversion layer using PyMuPDF for PDF rendering, EXIF-based orientation correction, and optional downscaling for large images before OCR.\r\n- **OCR engine API and timeouts**: OCR providers refactored into instantiated engine classes (e.g. `EasyOCREngine`, `RapidOCREngine`, `TesseractOCREngine`, `DeepSeekOCREngine`, Paddle engines); added `OCRTimeoutError` and optional per-page timeouts for long-running jobs.\r\n\r\n## Improvements:\r\n- **OCR PDF backend**: PDF conversion switched from pdf2image\u002Fpoppler to PyMuPDF (fitz) for rendering; `ocr` extra dependency updated accordingly.\r\n- **OCR image preprocessing**: `load_image` now applies EXIF-based orientation correction so rotated images are normalized before OCR.\r\n- **Dependency and tooling**: Updated vulnerable packages and pinned\u002Fspecified uv version for reproducible installs.\r\n\r\n## Bug Fixes:\r\n- **LLM usage tracking**: Fixed usage (input\u002Foutput\u002Freasoning tokens and details) not being accumulated when agent runs used `do_async` without returning output, or when `RunUsage.incr` received usage objects with non-dict or missing `details`; usage is now correctly aggregated across agent, safety engine LLM, reflection, reliability layer, cache, culture, tools, and storage.\r\n\r\n---\r\n\r\n**Full Changelog:** https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.72.0...v0.72.1\r\n\r\n### Pull Requests:\r\n- fix: fix LLM usage tracking – [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#525](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F525)\r\n- chore: update vulnerable packages and specify uv version – [angryfoxx](https:\u002F\u002Fgithub.com\u002Fangryfoxx) in [#523](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F523)\r\n- feat: implement asynchronous OCR processing and add new document conversion layer – [onuratakan](https:\u002F\u002Fgithub.com\u002Fonuratakan) in [#527](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F527)\r\n- chore: version 0.72.1 – [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#528](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F528)","2026-02-12T12:43:11",{"id":235,"version":236,"summary_zh":237,"released_at":238},360649,"v0.72.0","## New Features\r\n\r\n- **Telegram interface:** Adds a full Telegram bot interface and tooling so agents can be used over Telegram (webhook, messages, media).\r\n- **Chat and Task modes for interfaces:** All interfaces (Slack, WhatsApp, Gmail, Telegram) support Chat mode (single `Chat` instance) and Task mode (single `Agent` instance) for consistent behavior.\r\n- **Autonomous Agent:** New `AutonomousAgent` class — a pre-configured agent with built-in filesystem and shell toolkits, workspace sandboxing, and default in-memory storage for coding assistants, DevOps automation, and system administration tasks.\r\n- **Context management middleware:** Automatic context window management that prunes tool call history and summarizes old messages when the conversation approaches the model's context limit, replacing the previous compression strategy.\r\n\r\n- **Workspace support:** Agents can be configured with a workspace folder containing an Agents.md file whose content is included in the system prompt and used to generate a greeting message before the first task or chat.\r\n\r\n## Improvements\r\n\r\n- **Benchmarks documentation:** `benchmarks\u002FQUICKSTART.md` was translated from Turkish to English for consistent English docs.\r\n- **CLI and interface compatibility:** Interfaces can now be started via the `upsonic run` CLI command instead of only programmatically.\r\n- **Optional context compression model:** Context management middleware accepts an optional context_compression_model parameter, allowing a separate (typically larger-context-window) model for the summarization step while keeping the primary model for regular operations.\r\n\r\n## Bug Fixes\r\n\r\n- **Gmail encoding:** Fixed encoding for non-ASCII characters in the Gmail interface so messages with non-ASCII letters are handled correctly.\r\n\r\n---\r\n\r\n**Full Changelog:** [v0.71.6...v0.72.0](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.71.6...v0.72.0)\r\n\r\n### Pull Requests\r\n\r\n- docs: translate benchmarks QUICKSTART.md to English: [IremOztimur](https:\u002F\u002Fgithub.com\u002FIremOztimur) in [#522](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F522)\r\n- feat: telegram interface, chat\u002Ftask modes for interfaces: [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#521](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F521)\r\n- refactor: cli and interface compatibility: [DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#524](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F524)\r\n","2026-02-09T09:55:51",{"id":240,"version":241,"summary_zh":242,"released_at":243},360650,"v0.71.6","## Improvements:\r\n* Anonymization: We moved the anonymization step to an earlier part of the pipeline for a better developer experience.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.71.5...v0.71.6","2026-02-06T07:18:45",{"id":245,"version":246,"summary_zh":247,"released_at":248},360651,"v0.71.5","## New Features:\r\n- Benchmark Module: Added a benchmark module for analyzing framework speed\r\n- New Tool: Added Bocha Web Search Tool\r\n## Improvements:\r\n* Anonymization: Resolved an issue with the anonymization action in the safety policies\r\n* Test Run Commands: Updated the test run commands for a better test run experience\r\n\r\n## New Contributors\r\n* @weijintaocode made their first contribution in https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F518\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.71.4...v0.71.5\r\n\r\n### Pull Requests:\r\n- feat: add comprehensive benchmark system for performance analysis by @IremOztimur in https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F511\r\n- add bocha web search tool by @weijintaocode in https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F518\r\n- fix: Resolved anonymization action logic by @onuratakan in https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F519\r\n- docs: fix test command in CONTRIBUTING.md to use uv run by @IremOztimur in https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F520\r\n","2026-02-05T15:18:43",{"id":250,"version":251,"summary_zh":252,"released_at":253},360652,"v0.71.4","## New Features:\r\n- Event Streaming Chat: Added event streaming capability to chat functionality, enabling real-time visibility into tool calls, text deltas, and execution events through `chat.stream(events=True)`.\r\n\r\n## Improvements:\r\n- Agent Printing Hierarchy: Refactored the agent printing system with a clear priority hierarchy (environment variable > constructor parameter > method name) for better control over output behavior.\r\n---\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.71.3...v0.71.4\r\n\r\n### Pull Requests:\r\n- Refactor agent printing hierarchy: [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#515](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F515)\r\n- Add event streaming chat: [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#516](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F516)\r\n- Version 0.71.4: [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#517](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F517)\r\n","2026-01-31T16:06:56",{"id":255,"version":256,"summary_zh":257,"released_at":258},360653,"v0.71.3","## Improvements:\r\n- Culture Prompt Enhancement: Added original description of Culture into the prompt to provide better context and clarity for agents using the Culture system.\r\n\r\nFull Changelog address: https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fcompare\u002Fv0.71.2...v0.71.3\r\n\r\n### Pull Requests:\r\n- adding original description of Culture into the prompt: [@DoganK01](https:\u002F\u002Fgithub.com\u002FDoganK01) in [#514](https:\u002F\u002Fgithub.com\u002FUpsonic\u002FUpsonic\u002Fpull\u002F514)","2026-01-30T10:25:49"]