[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-OpenHands--software-agent-sdk":3,"tool-OpenHands--software-agent-sdk":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 真正成长为懂上",161147,"2026-04-19T23:31:47",[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":73,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":110,"forks":111,"last_commit_at":112,"license":113,"difficulty_score":24,"env_os":114,"env_gpu":114,"env_ram":114,"env_deps":115,"category_tags":120,"github_topics":121,"view_count":24,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":124,"updated_at":125,"faqs":126,"releases":156},10107,"OpenHands\u002Fsoftware-agent-sdk","software-agent-sdk","A clean, modular SDK for building AI agents with OpenHands V1.","software-agent-sdk 是 OpenHands V1 推出的一款简洁、模块化的 Python 与 REST API 开发套件，专为构建能够操作代码的 AI 智能体（Agent）而设计。它旨在解决开发者在自动化编程任务中的痛点，无论是生成项目文档、更新依赖等日常维护，还是涉及多智能体协作的大型重构与代码重写，都能轻松应对。\n\n这款工具特别适合软件开发者、技术研究人员以及希望构建自定义 AI 开发体验的工程团队。其核心亮点在于灵活的工作空间机制：智能体既可以直接使用本地机器环境，也能通过 Agent Server 在 Docker 或 Kubernetes 等临时隔离环境中安全运行。此外，它也是 OpenHands CLI 和 OpenHands Cloud 背后的驱动引擎，证明了其在生产级应用中的可靠性。通过简单的几行代码，用户即可集成终端操作、文件编辑及任务追踪等工具，快速让大模型具备执行复杂软件开发任务的能力，是探索下一代自动化开发流程的理想起点。","\u003Ca name=\"readme-top\">\u003C\u002Fa>\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpenHands_software-agent-sdk_readme_6688a2275dec.png\" alt=\"Logo\" width=\"200\">\n  \u003Ch1 align=\"center\">OpenHands Software Agent SDK \u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FOpenHands\u002Fsoftware-agent-sdk?style=for-the-badge&color=blue\" alt=\"MIT License\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopenhands.dev\u002Fjoinslack\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSlack-Join%20Us-red?logo=slack&logoColor=white&style=for-the-badge\" alt=\"Join our Slack community\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocumentation-000?logo=googledocs&logoColor=FFE165&style=for-the-badge\" alt=\"Check out the documentation\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2511.03690\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPaper-000?logoColor=FFE165&logo=arxiv&style=for-the-badge\" alt=\"Tech Report\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1wOUdFCMyY6Nt0AIqF705KN4JKOWgeI4wUGUP60krXXs\u002Fedit?gid=811504672#gid=811504672\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSWEBench-77.6-000?logoColor=FFE165&style=for-the-badge\" alt=\"Benchmark Score\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003C!-- Keep these links. Translations will automatically update with the README. -->\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=de\">Deutsch\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=es\">Español\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=fr\">français\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ja\">日本語\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ko\">한국어\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=pt\">Português\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ru\">Русский\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=zh\">中文\u003C\u002Fa>\n\n  \u003Chr>\n\u003C\u002Fdiv>\n\nThe OpenHands Software Agent SDK is a set of Python and REST APIs for **building agents that work with code**.\n\nYou can use the OpenHands Software Agent SDK for:\n* One-off tasks, like building a README for your repo\n* Routine maintenance tasks, like updating dependencies\n* Major tasks that involve multiple agents, like refactors and rewrites\n\nImportantly, agents can either use the local machine as their workspace, or run inside ephemeral workspaces\n(e.g. in Docker or Kubernetes) using the Agent Server.\n\nYou can even use the SDK to build new developer experiences: it’s the engine behind the\n[OpenHands CLI](https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands-CLI) and [OpenHands Cloud](https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands).\n\nGet started with some [examples](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fhello-world) or [check out the docs](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk) to learn more.\n\n## Quick Start\n\nHere's what building with the SDK looks like:\n\n```python\nimport os\n\nfrom openhands.sdk import LLM, Agent, Conversation, Tool\nfrom openhands.tools.file_editor import FileEditorTool\nfrom openhands.tools.task_tracker import TaskTrackerTool\nfrom openhands.tools.terminal import TerminalTool\n\n\nllm = LLM(\n    model=\"anthropic\u002Fclaude-sonnet-4-5-20250929\",\n    api_key=os.getenv(\"LLM_API_KEY\"),\n)\n\nagent = Agent(\n    llm=llm,\n    tools=[\n        Tool(name=TerminalTool.name),\n        Tool(name=FileEditorTool.name),\n        Tool(name=TaskTrackerTool.name),\n    ],\n)\n\ncwd = os.getcwd()\nconversation = Conversation(agent=agent, workspace=cwd)\n\nconversation.send_message(\"Write 3 facts about the current project into FACTS.txt.\")\nconversation.run()\nprint(\"All done!\")\n```\n\nFor installation instructions and detailed setup, see the [Getting Started Guide](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fgetting-started).\n\n## Documentation\n\nFor detailed documentation, tutorials, and API reference, visit:\n\n**[https:\u002F\u002Fdocs.openhands.dev\u002Fsdk](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk)**\n\nThe documentation includes:\n- [Getting Started Guide](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fgetting-started) - Installation and setup\n- [Architecture & Core Concepts](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Farch\u002Foverview) - Agents, tools, workspaces, and more\n- [Guides](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fhello-world) - Hello World, custom tools, MCP, skills, and more\n- [API Reference](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fagent-server\u002Fapi-reference\u002Fserver-details\u002Falive) - Agent Server REST API documentation\n\n## Examples\n\nThe `examples\u002F` directory contains comprehensive usage examples:\n\n- **Standalone SDK** (`examples\u002F01_standalone_sdk\u002F`) - Basic agent usage, custom tools, and skills\n- **Remote Agent Server** (`examples\u002F02_remote_agent_server\u002F`) - Client-server architecture and WebSocket connections\n- **GitHub Workflows** (`examples\u002F03_github_workflows\u002F`) - CI\u002FCD integration and automated workflows\n\n## Skills for modern package tooling\n\nIf you enable public skills with `AgentContext(load_public_skills=True)`, the default\n`OpenHands\u002Fextensions` marketplace includes, for example, `uv` and `deno` skills.\nAgents can automatically pick up current package-management guidance for repositories\nthat use markers like `uv.lock`, `deno.json`, `deno.jsonc`, or `deno.lock`.\n\nSee `examples\u002F01_standalone_sdk\u002F03_activate_skill.py` for a minimal example that\nturns on public skill loading.\n\n## Contributing\n\nFor development setup, testing, and contribution guidelines, see [DEVELOPMENT.md](DEVELOPMENT.md).\n\n## Community\n\n- [Join Slack](https:\u002F\u002Fopenhands.dev\u002Fjoinslack) - Connect with the OpenHands community\n- [GitHub Repository](https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk) - Source code and issues\n- [Documentation](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk) - Complete documentation\n\n## Cite\n\n```\n@misc{wang2025openhandssoftwareagentsdk,\n      title={The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production Agents}, \n      author={Xingyao Wang and Simon Rosenberg and Juan Michelini and Calvin Smith and Hoang Tran and Engel Nyst and Rohit Malhotra and Xuhui Zhou and Valerie Chen and Robert Brennan and Graham Neubig},\n      year={2025},\n      eprint={2511.03690},\n      archivePrefix={arXiv},\n      primaryClass={cs.SE},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2511.03690}, \n}\n```\n\u003Chr>\n\n### Thank You to Our Contributors\n\n[![Contributors](https:\u002F\u002Fassets.openhands.dev\u002Freadme\u002Fopenhands-software-agent-sdk-contributors.svg)](https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fgraphs\u002Fcontributors)\n\n\u003Chr>\n\n### Trusted by Engineers at\n\n\u003Cdiv align=\"center\">\n\u003Cbr\u002F>\u003Cbr\u002F>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Ftiktok.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Ftiktok.svg\" alt=\"TikTok\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fvmware.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fvmware.svg\" alt=\"VMware\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Froche.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Froche.svg\" alt=\"Roche\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Famazon.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Famazon.svg\" alt=\"Amazon\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fc3-ai.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fc3-ai.svg\" alt=\"C3 AI\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fnetflix.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fnetflix.svg\" alt=\"Netflix\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fmastercard.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fmastercard.svg\" alt=\"Mastercard\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fred-hat.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fred-hat.svg\" alt=\"Red Hat\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fmongodb.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fmongodb.svg\" alt=\"MongoDB\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fapple.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fapple.svg\" alt=\"Apple\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fnvidia.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fnvidia.svg\" alt=\"NVIDIA\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fgoogle.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fgoogle.svg\" alt=\"Google\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n","\u003Ca name=\"readme-top\">\u003C\u002Fa>\n\n\u003Cdiv align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpenHands_software-agent-sdk_readme_6688a2275dec.png\" alt=\"Logo\" width=\"200\">\n  \u003Ch1 align=\"center\">OpenHands 软件代理 SDK\u003C\u002Fh1>\n\u003C\u002Fdiv>\n\n\n\u003Cdiv align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fblob\u002Fmain\u002FLICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FOpenHands\u002Fsoftware-agent-sdk?style=for-the-badge&color=blue\" alt=\"MIT 许可证\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fopenhands.dev\u002Fjoinslack\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSlack-加入我们-red?logo=slack&logoColor=white&style=for-the-badge\" alt=\"加入我们的 Slack 社区\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003Ca href=\"https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F文档-000?logo=googledocs&logoColor=FFE165&style=for-the-badge\" alt=\"查看文档\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Farxiv.org\u002Fabs\u002F2511.03690\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F论文-000?logoColor=FFE165&logo=arxiv&style=for-the-badge\" alt=\"技术报告\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdocs.google.com\u002Fspreadsheets\u002Fd\u002F1wOUdFCMyY6Nt0AIqF705KN4JKOWgeI4wUGUP60krXXs\u002Fedit?gid=811504672#gid=811504672\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSWEBench-77.6-000?logoColor=FFE165&style=for-the-badge\" alt=\"基准测试分数\">\u003C\u002Fa>\n  \u003Cbr>\n  \u003C!-- 请保留这些链接。翻译会随 README 自动更新。 -->\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=de\">Deutsch\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=es\">Español\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=fr\">français\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ja\">日本語\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ko\">한국어\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=pt\">Português\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=ru\">Русский\u003C\u002Fa> |\n  \u003Ca href=\"https:\u002F\u002Fwww.readme-i18n.com\u002FOpenHands\u002Fsoftware-agent-sdk?lang=zh\">中文\u003C\u002Fa>\n\n  \u003Chr>\n\u003C\u002Fdiv>\n\nOpenHands 软件代理 SDK 是一套用于 **构建与代码协作的代理** 的 Python 和 REST API。\n\n您可以使用 OpenHands 软件代理 SDK 来完成以下任务：\n* 一次性任务，例如为您的仓库生成 README 文件\n* 日常维护任务，例如更新依赖项\n* 涉及多个代理的重大任务，例如重构和重写\n\n重要的是，代理可以选择将本地机器作为工作空间，也可以在临时工作空间中运行（例如在 Docker 或 Kubernetes 中），通过代理服务器实现。\n\n您甚至可以使用该 SDK 构建全新的开发者体验：它是 [OpenHands CLI](https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands-CLI) 和 [OpenHands Cloud](https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands) 的核心引擎。\n\n从一些 [示例](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fhello-world) 开始，或 [查看文档](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk)，了解更多内容。\n\n## 快速入门\n\n以下是使用该 SDK 进行开发的示例：\n\n```python\nimport os\n\nfrom openhands.sdk import LLM, Agent, Conversation, Tool\nfrom openhands.tools.file_editor import FileEditorTool\nfrom openhands.tools.task_tracker import TaskTrackerTool\nfrom openhands.tools.terminal import TerminalTool\n\n\nllm = LLM(\n    model=\"anthropic\u002Fclaude-sonnet-4-5-20250929\",\n    api_key=os.getenv(\"LLM_API_KEY\"),\n)\n\nagent = Agent(\n    llm=llm,\n    tools=[\n        Tool(name=TerminalTool.name),\n        Tool(name=FileEditorTool.name),\n        Tool(name=TaskTrackerTool.name),\n    ],\n)\n\ncwd = os.getcwd()\nconversation = Conversation(agent=agent, workspace=cwd)\n\nconversation.send_message(\"将当前项目的 3 条事实写入 FACTS.txt 文件。\")\nconversation.run()\nprint(\"完成！\")\n```\n\n有关安装说明和详细设置，请参阅 [入门指南](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fgetting-started)。\n\n## 文档\n\n如需详细的文档、教程和 API 参考，请访问：\n\n**[https:\u002F\u002Fdocs.openhands.dev\u002Fsdk](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk)**\n\n文档包括：\n- [入门指南](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fgetting-started) - 安装和设置\n- [架构与核心概念](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Farch\u002Foverview) - 代理、工具、工作空间等\n- [指南](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fhello-world) - Hello World、自定义工具、MCP、技能等\n- [API 参考](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fagent-server\u002Fapi-reference\u002Fserver-details\u002Falive) - 代理服务器 REST API 文档\n\n## 示例\n\n`examples\u002F` 目录包含全面的使用示例：\n- **独立 SDK** (`examples\u002F01_standalone_sdk\u002F`) - 基本代理使用、自定义工具和技能\n- **远程代理服务器** (`examples\u002F02_remote_agent_server\u002F`) - 客户端-服务器架构和 WebSocket 连接\n- **GitHub 工作流** (`examples\u002F03_github_workflows\u002F`) - CI\u002FCD 集成和自动化工作流\n\n## 现代软件包管理工具的技能\n\n如果您通过 `AgentContext(load_public_skills=True)` 启用公共技能，那么默认的 `OpenHands\u002Fextensions` 市场将包含例如 `uv` 和 `deno` 技能。代理可以自动获取使用 `uv.lock`、`deno.json`、`deno.jsonc` 或 `deno.lock` 等标记的仓库的当前包管理指导信息。\n\n请参阅 `examples\u002F01_standalone_sdk\u002F03_activate_skill.py`，其中提供了一个启用公共技能加载的最小示例。\n\n## 贡献\n\n有关开发设置、测试和贡献指南，请参阅 [DEVELOPMENT.md](DEVELOPMENT.md)。\n\n## 社区\n\n- [加入 Slack](https:\u002F\u002Fopenhands.dev\u002Fjoinslack) - 与 OpenHands 社区交流\n- [GitHub 仓库](https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk) - 源代码和问题\n- [文档](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk) - 完整的文档\n\n## 引用\n\n```\n@misc{wang2025openhandssoftwareagentsdk,\n      title={The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production Agents}, \n      author={Xingyao Wang and Simon Rosenberg and Juan Michelini and Calvin Smith and Hoang Tran and Engel Nyst and Rohit Malhotra and Xuhui Zhou and Valerie Chen and Robert Brennan and Graham Neubig},\n      year={2025},\n      eprint={2511.03690},\n      archivePrefix={arXiv},\n      primaryClass={cs.SE},\n      url={https:\u002F\u002Farxiv.org\u002Fabs\u002F2511.03690}, \n}\n```\n\u003Chr>\n\n### 感谢我们的贡献者\n\n[![贡献者](https:\u002F\u002Fassets.openhands.dev\u002Freadme\u002Fopenhands-software-agent-sdk-contributors.svg)](https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fgraphs\u002Fcontributors)\n\n\u003Chr>\n\n### 受到以下公司工程师的信赖：\n\n\u003Cdiv align=\"center\">\n\u003Cbr\u002F>\u003Cbr\u002F>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Ftiktok.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Ftiktok.svg\" alt=\"TikTok\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fvmware.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fvmware.svg\" alt=\"VMware\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Froche.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Froche.svg\" alt=\"Roche\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Famazon.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Famazon.svg\" alt=\"Amazon\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fc3-ai.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fc3-ai.svg\" alt=\"C3 AI\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fnetflix.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fnetflix.svg\" alt=\"Netflix\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fmastercard.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fmastercard.svg\" alt=\"Mastercard\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fred-hat.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fred-hat.svg\" alt=\"Red Hat\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fmongodb.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fmongodb.svg\" alt=\"MongoDB\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fapple.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fapple.svg\" alt=\"Apple\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fnvidia.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fnvidia.svg\" alt=\"NVIDIA\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fwhite\u002Fgoogle.svg\">\n  \u003Cimg src=\"https:\u002F\u002Fassets.openhands.dev\u002Flogos\u002Fexternal\u002Fblack\u002Fgoogle.svg\" alt=\"Google\" height=\"17\" hspace=\"5\">\n\u003C\u002Fpicture>\n\u003C\u002Fdiv>","# OpenHands Software Agent SDK 快速上手指南\n\nOpenHands Software Agent SDK 是一套用于**构建代码工作智能体（Agents）**的 Python 和 REST API 工具集。它支持从简单的单次任务（如生成 README）到复杂的多智能体重构任务，并支持本地或容器化（Docker\u002FK8s）工作空间。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows (WSL2 推荐)\n*   **Python 版本**：Python 3.10 或更高版本\n*   **依赖项**：\n    *   `pip` (Python 包管理工具)\n    *   有效的 LLM API Key (例如 Anthropic, OpenAI 等)\n*   **可选**：Docker (如果您计划使用临时隔离的工作空间)\n\n## 安装步骤\n\n推荐使用 `pip` 进行安装。国内开发者若遇到网络延迟，可配置国内镜像源加速下载。\n\n### 1. 创建虚拟环境（推荐）\n\n```bash\npython -m venv openhands-env\nsource openhands-env\u002Fbin\u002Factivate  # Windows 用户请使用: openhands-env\\Scripts\\activate\n```\n\n### 2. 安装 SDK\n\n**标准安装：**\n```bash\npip install openhands-sdk\n```\n\n**使用国内镜像源加速安装（推荐）：**\n```bash\npip install openhands-sdk -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n### 3. 安装常用工具包\nSDK 核心库通常不包含所有具体工具的实现，根据示例代码，您可能需要安装相关的工具包（如文件编辑、终端操作等）：\n\n```bash\npip install openhands-tools -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 基本使用\n\n以下是一个最小化的示例，展示如何初始化一个大语言模型（LLM），配置工具（终端、文件编辑、任务追踪），并让智能体在当前目录下执行写入文件的操作。\n\n### 代码示例\n\n创建一个名为 `hello_agent.py` 的文件，并填入以下内容：\n\n```python\nimport os\n\nfrom openhands.sdk import LLM, Agent, Conversation, Tool\nfrom openhands.tools.file_editor import FileEditorTool\nfrom openhands.tools.task_tracker import TaskTrackerTool\nfrom openhands.tools.terminal import TerminalTool\n\n\n# 1. 初始化 LLM\n# 请确保环境变量中已设置 LLM_API_KEY，或者在此处直接传入\nllm = LLM(\n    model=\"anthropic\u002Fclaude-sonnet-4-5-20250929\",\n    api_key=os.getenv(\"LLM_API_KEY\"),\n)\n\n# 2. 定义智能体及其可用工具\nagent = Agent(\n    llm=llm,\n    tools=[\n        Tool(name=TerminalTool.name),\n        Tool(name=FileEditorTool.name),\n        Tool(name=TaskTrackerTool.name),\n    ],\n)\n\n# 3. 创建会话，指定工作空间为当前目录\ncwd = os.getcwd()\nconversation = Conversation(agent=agent, workspace=cwd)\n\n# 4. 发送指令并运行\nconversation.send_message(\"Write 3 facts about the current project into FACTS.txt.\")\nconversation.run()\n\nprint(\"All done!\")\n```\n\n### 运行步骤\n\n1.  **设置 API Key**：在终端中导出您的 LLM API 密钥。\n    ```bash\n    export LLM_API_KEY=\"your_anthropic_or_other_api_key_here\"\n    ```\n    *(Windows PowerShell: `$env:LLM_API_KEY=\"your_key_here\"`)*\n\n2.  **执行脚本**：\n    ```bash\n    python hello_agent.py\n    ```\n\n智能体将自动分析当前项目，编写三个事实，并将其保存到当前目录下的 `FACTS.txt` 文件中。\n\n---\n\n**下一步学习**：\n*   查看完整文档：[https:\u002F\u002Fdocs.openhands.dev\u002Fsdk](https:\u002F\u002Fdocs.openhands.dev\u002Fsdk)\n*   探索更多示例代码：访问项目根目录下的 `examples\u002F` 文件夹。","某后端开发团队需要在每周发布前，自动检查并更新多个微服务仓库中的过时依赖项，同时确保修改后的代码能通过基础编译测试。\n\n### 没有 software-agent-sdk 时\n- 开发人员需手动逐个克隆仓库、运行检查命令并记录过时的依赖包，耗时且容易遗漏。\n- 更新依赖后，必须人工介入执行编译和单元测试，无法形成闭环自动化流程。\n- 若需在临时的隔离环境（如 Docker）中验证修改，搭建和清理环境的过程繁琐复杂。\n- 面对数十个微服务，重复性操作占用了大量核心开发时间，且人为操作极易引入配置错误。\n- 缺乏统一的编排工具，难以协调“检查 - 修改 - 验证”这一多步骤任务的连贯执行。\n\n### 使用 software-agent-sdk 后\n- 开发者编写一次脚本即可调用 software-agent-sdk，让 AI 代理自动遍历所有仓库并精准识别过时依赖。\n- AI 代理直接利用内置的终端和文件编辑工具完成依赖升级，并自动触发本地或容器内的编译测试。\n- 通过 SDK 轻松配置临时工作空间（如 Docker），确保每次任务在干净环境中运行，用完即焚，零污染。\n- 将原本数小时的人工重复劳动压缩为分钟级的自动执行，释放开发人员精力去处理更复杂的架构问题。\n- 借助其模块化设计，灵活组合不同工具链，轻松实现从“发现漏洞”到“提交修复”的全流程自动化。\n\nsoftware-agent-sdk 将碎片化的运维脚本升级为具备感知与执行能力的智能代理，彻底重构了代码维护的自动化范式。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FOpenHands_software-agent-sdk_022d4dd3.png","OpenHands","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FOpenHands_fba468c6.jpg","",null,"https:\u002F\u002Fopenhands.dev","https:\u002F\u002Fgithub.com\u002FOpenHands",[80,84,88,92,96,100,103,106],{"name":81,"color":82,"percentage":83},"Python","#3572A5",97.3,{"name":85,"color":86,"percentage":87},"JavaScript","#f1e05a",0.8,{"name":89,"color":90,"percentage":91},"Jinja","#a52a22",0.7,{"name":93,"color":94,"percentage":95},"HTML","#e34c26",0.5,{"name":97,"color":98,"percentage":99},"Shell","#89e051",0.2,{"name":101,"color":102,"percentage":99},"Dockerfile","#384d54",{"name":104,"color":105,"percentage":99},"CSS","#663399",{"name":107,"color":108,"percentage":109},"Makefile","#427819",0.1,659,223,"2026-04-19T15:44:26","MIT","未说明",{"notes":116,"python":114,"dependencies":117},"该工具是一个用于构建代码代理的 Python 和 REST API SDK。支持本地工作区或在 Docker\u002FKubernetes 等临时工作区中运行。具体安装步骤、Python 版本及系统依赖请参考官方文档 (https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fgetting-started) 或 DEVELOPMENT.md 文件。示例代码显示需要配置 LLM API Key。",[118,119],"openhands-sdk","openhands-tools",[13,14],[122,123],"agent","sdk","2026-03-27T02:49:30.150509","2026-04-20T19:22:21.620951",[127,132,137,142,147,152],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},45373,"容器清理时是否会删除基础镜像（Base Image）？","不会。在 V0 和 V1 版本中，清理行为是一致的：仅删除构建的顶层镜像（即基于基础镜像生成的新层），而不会删除基础镜像本身。\n具体流程如下：\n1. `DockerDevWorkspace._build_image_from_base()` 方法会使用 Docker build 在基础镜像之上构建新镜像，并返回构建后的镜像标签（例如 `openhands-agent-server:sha-abc1234-source`）。\n2. `DockerWorkspace._start_container()` 方法仅存储这个构建后的标签。\n因此，清理操作只会移除这些动态构建的层，保留原始的基础镜像以供复用。","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fissues\u002F1441",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},45374,"遇到 'InternalServerError: OpenAIException' (HTTP 500) 错误导致对话失败怎么办？","这通常是由 LLM 提供商（如 RunPod.io serverless 端点）引起的暂时性基础设施错误，而非 SDK 本身的 Bug。\n当提供商返回 HTTP 500 错误（例如 `{\"error\": \"Error processing the request\"}`）时，会导致对话中断。建议采取以下措施：\n1. 确认是否为提供商侧的临时故障。\n2. 检查配置中的重试次数（`num_retries`），适当增加重试机制以应对瞬时网络或服务波动。\n3. 如果问题持续，可能需要联系 LLM 提供商或切换其他稳定的端点。","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fissues\u002F1697",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},45375,"GPT-OSS 模型在工具调用（Tool Calling）方面的表现如何？","GPT-OSS 在初始阶段可能不够可靠，但在支持原生工具调用（native tool calling）的环境中表现显著提升。\n目前大多数提供商都已支持工具调用，且在 Agent-SDK 及新版 OpenHands 中，`native tool calling` 已成为默认设置。如果您之前遇到 GPT-OSS 效果不佳的问题，建议确保启用了原生工具调用功能，这通常能带来更好的评估结果和稳定性。","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fissues\u002F1068",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},45376,"Plugin 1.0 的定义是什么？其目录结构是怎样的？","Plugin 1.0 旨在支持基本的插件需求，适用于 GUI、CLI 和 Cloud 等多种部署模式。\n其标准目录结构示例如下：\n```\n[Plugin Marketplace]\u002Fcobol-converter\u002F\n  │\n  ├── .plugin\n  │   └── plugin.json             # 清单文件，包含元数据（名称、版本、描述、作者等），用于市场展示和搜索\n  │\n  ├── skills\u002F\n  │   ├── cobol-to-java\u002F\n  │   │   └── SKILL.md            # 定义具体任务技能及其参数\n  │   │\n  │   └── refactor-analyzer\u002F\n  │       └── SKILL.md            # 同一插件下的另一个技能\n  │ \n  ├── (FUTURE) runtime.json       # 未来扩展：自定义容器配置\n  └── (FUTURE) .mcp.json          # 未来扩展：MCP 服务器定义\n```\n其中 `plugin.json` 是核心元数据文件，`skills` 目录存放具体的技能定义文件（`.md`）。","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fissues\u002F1440",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},45377,"如何查看每日集成测试的详细日志和结果？","每日集成测试结果会自动发布在专门的 Tracker Issue 中。\n您可以查看该 Issue 的评论部分，其中包含：\n1. **总体成功率** (Overall Success Rate)\n2. **总成本** (Total Cost)\n3. **测试的模型数量** (Models Tested)\n4. **详细日志链接**：评论中会列出每个被测模型（如 `litellm_proxy_claude_sonnet...`）对应的 GitHub Actions 运行链接。点击链接进入 GitHub Actions 页面后，向下滚动到 'Artifacts' 部分，即可下载包含完整 Agent\u002FLLM 推理过程的详细日志文件。","https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fissues\u002F939",{"id":153,"question_zh":154,"answer_zh":155,"source_url":146},45378,"插件（Plugin）的概念是仅限于 OpenHands Cloud 还是适用于整个 SDK？","插件（Plugin）是一个 SDK 层面的概念，不仅仅局限于 OpenHands Cloud。\n设计目标是让插件能够适用于所有部署模型，包括图形界面（GUI）、命令行界面（CLI）以及云端部署（Cloud）。这意味着开发者编写的插件可以在本地环境或任何兼容的 OpenHands 实例中运行，具有良好的可移植性和通用性。",[157,162,167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252],{"id":158,"version":159,"summary_zh":160,"released_at":161},360275,"v1.11.1","## What's Changed\r\n* Release v1.11.0 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1884\r\n* Fix license by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1869\r\n* Add qwen3-coder-next to expected models by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1892\r\n* utils(release): Fix poetry lock conflict and move openhands-cli step earlier by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1888\r\n* Change qwen3-coder-next model from together.ai to openrouter by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1900\r\n* Fix truncation at LLM message layer by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1838\r\n* Add qwen3-coder-30b-a3b-instruct model to resolve_model_config.py by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1903\r\n* feat(llm): add gpt-5.2-codex to verified models by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1893\r\n* fix: serialize tmux session creation to prevent race conditions by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1889\r\n* Update code-review skill with repo-specific approval guidelines by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1904\r\n* fix(mcp): handle timeout errors gracefully in MCP tool execution by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1862\r\n* feat(llm): add Kimi K2.5 to verified models by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1907\r\n* Add conversation.execute_tool() method for pre-run tool execution by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1833\r\n* Clarify execute_tool bypasses confirmation\u002Fsecurity checks by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1917\r\n* chore: remove blacksmith CI runners and use GitHub's default runners by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1915\r\n* fix: revert agent-server Docker image to Python 3.12 by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1910\r\n* Cache Qwen3 tokenizer config for critic template tests by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1919\r\n* fix: wait for WebSocket terminal status to prevent event loss by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1832\r\n* Add skill for debugging test-examples workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1887\r\n* feat(skills): support .agents\u002Fskills directory by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1914\r\n* fix: use blacksmith runners for all test jobs to fix coverage by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1920\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.11.0...v1.11.1","2026-02-05T14:33:09",{"id":163,"version":164,"summary_zh":165,"released_at":166},360281,"v1.8.1","Fix the failed PyPI release on v1.8.0\r\n\r\n## What's Changed\r\n* Release v1.8.0 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1663\r\n* fix: make publish workflow idempotent for re-runs by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1667\r\n* feat: Add inline review comments for PR review workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1654\r\n* fix(tests): Enable accurate coverage reporting with pytest-xdist by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1658\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.8.0...v1.8.1","2026-01-09T16:55:18",{"id":168,"version":169,"summary_zh":170,"released_at":171},360262,"v1.17.0","## 变更内容\n* 新增（tools\u002Ftom_consult）：声明用于并行执行的资源，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2663 中完成\n* 修复（acp）：为 ACP 安装 Node 22，并将远程 ACP 初始化延迟到运行时，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2656 中完成\n* 发布 v1.16.1 版本，由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2665 中完成\n* 杂项（deps）：将 cryptography 从 46.0.5 升级至 46.0.6，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2672 中完成\n* 杂项（deps）：将 actions\u002Fcheckout 从 4 升级至 6，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2661 中完成\n* 修复（tools）：防止子代理对话中出现重复的 WithRisk\u002FWithSummary Action 类，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2649 中完成\n* 修复：将 acp_model 传播至指标，以实现准确的成本归因，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2677 中完成\n* 添加 dashscope\u002Fqwen3.6-plus 至 resolve_model_config.py，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2681 中完成\n* 修复（sdk）：在披露示例中使用 AI 代理，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2675 中完成\n* 在 README 中添加贡献者部分，由 @jamiechicago312 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2658 中完成\n* 新增功能：为对话添加自动化上下文标签，由 @malhotra5 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2632 中完成\n* 杂项（deps）：将 lewagon\u002Fwait-on-check-action 从 1.5.0 升级至 1.6.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2660 中完成\n* 新增功能（security）：深度防御安全分析器，由 @Fieldnote-Echo 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2472 中完成\n* 新增功能（skills）：在 frontmatter 中添加 Shell 命令执行，以实现动态上下文，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2582 中完成\n* Apptainer GPU 直通功能，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2695 中完成\n* 修复（acp）：添加活动心跳机制，以防止在 conn.prompt() 期间因空闲而被终止运行，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2698 中完成\n* 新增功能（sdk）：添加 redact_url_params() 函数，用于对 URL 查询参数进行脱敏处理，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2700 中完成\n* 修复（agent-server）：对 422 错误响应进行 sanitization 处理，以防止敏感信息泄露，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2679 中完成\n* 修复（acp）：重试临时性的 ACP 服务器错误（JSON-RPC -32603），由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2699 中完成\n* 添加推送前验证 PR 状态的说明，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2696 中完成\n* 将 pytest 升级至 >=9.0.0，以解除 Dependabot 的阻塞，由 @aivong-openhands 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2705 中完成\n* 修复自动标题竞争条件：在后台任务之前提取消息","2026-04-13T19:04:19",{"id":173,"version":174,"summary_zh":175,"released_at":176},360263,"v1.16.1","## 变更内容\n* 由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2614 中发布 v1.16.0 版本\n* （安全修复）由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2621 中验证随机分支输入\n* 文档：更新 README 中深色模式下的可信品牌标识，由 @jamiechicago312 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2625 中完成\n* 功能（SDK）：支持额外的 AWS Bedrock 身份验证方法，由 @sjathin 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2598 中实现\n* 功能（ACP）：将 Gemini CLI 添加为受支持的 ACP 服务器，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2619 中完成\n* 修复（工作区）：避免记录转发的环境变量值，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2630 中修复\n* 将 minimax-m2.7 添加到已验证模型列表中，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2627 中完成\n* 修复：提示中发送的技能描述过短问题，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2635 中修复\n* 修复（对话）：对远程错误日志进行清理，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2631 中完成\n* 功能（工具\u002Fgrep）：声明并行执行所需的资源，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2640 中实现\n* 功能（工具\u002Fglob）：声明并行执行所需的资源，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2639 中实现\n* 杂项（uv）：添加 7 天内新发布的包的防护机制，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2648 中完成\n* 文档（评审）：在评审提示中标记过于新近的包上传，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2650 中完成\n* 杂项（依赖）：将 requests 从 2.32.5 升级至 2.33.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2647 中完成\n* 修复（终端）：从捕获的输出中过滤终端查询序列，由 @jpshackelford 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2334 中修复\n* 将 converse-nemotron-super-3-120b 添加到 resolve_model_config.py 中，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2645 中完成\n* 杂项（依赖）：将 docker\u002Fbuild-push-action 从 6 升级至 7，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2577 中完成\n* 功能（工具\u002F文件编辑器）：文件编辑器相关资源，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2638 中实现\n* 功能（工具\u002F列出目录）：声明并行执行所需的资源，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2641 中完成\n* 修复：添加 httpx[socks] 依赖以支持 SOCKS 代理，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2664 中完成\n* 功能（技能）：新增 manage-evals 技能，用于触发和比较评估，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2634 中实现\n* 修复（代理服务器）：避免状态锁阻塞事件循环，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2622 中修复\n\n## 新贡献者\n* @sjathin 完成了他们的首次","2026-04-02T15:21:22",{"id":178,"version":179,"summary_zh":180,"released_at":181},360264,"v1.16.0","## 变更内容\n* 修复(ci)：在 API 破坏性检查器中处理字典类型的 json_schema_extra，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2568 中完成\n* 功能(sdk\u002Fsubagent)：解析所有 MCP 服务器配置字段中的 ${VAR} 环境变量，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2492 中完成\n* 功能(sdk)：允许为 codex-acp 使用 acp_model，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2562 中完成\n* 修复(ci)：在 oasdiff 检查器中允许 additive response 的 oneOf 展开，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2572 中完成\n* 重构(tools)：移除 max_run，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2491 中完成\n* 发布 v1.15.0，由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2567 中完成\n* 功能：将 partial_archive_url 传递给评估工作流以支持续跑，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2540 中完成\n* 功能：在 OpenHandsCloudWorkspace 中添加 local_agent_server_mode，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2490 中完成\n* 杂项(deps)：将 lewagon\u002Fwait-on-check-action 从 1.4.1 升级到 1.5.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2581 中完成\n* 重构(tools\u002Ftask)：修改任务工具描述，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2513 中完成\n* 杂项(deps)：将 dawidd6\u002Faction-download-artifact 从 6 升级到 19，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2580 中完成\n* 杂项(deps)：将 docker\u002Fsetup-buildx-action 从 3 升级到 4，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2579 中完成\n* 功能(sdk)：为并行工具执行安全添加 ResourceLockManager，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2560 中完成\n* 在 README 中添加 trusted-by 徽标，由 @jamiechicago312 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2591 中完成\n* 将工作流运行 ID 传递给评估作业，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2594 中完成\n* 功能(workspace)：在 OpenHandsCloudWorkspace 中添加 get_mcp_config()，由 @malhotra5 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2595 中完成\n* 修复：当 MCP 连接失败时发送 ConversationErrorEvent，并改进错误处理，由 @tofarr 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2556 中完成\n* 为对话 API 添加标签支持，由 @rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2454 中完成\n* 文档：记录现有的 uv 和 deno 技能，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2602 中完成\n* 修复：解决 CLAUDE.md → AGENTS.md 符号链接导致系统提示中出现重复内容的问题，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2601 中完成\n* 功能：将默认基础镜像切换为 nikolaik 的 slim 版本，由 @aivong-openhands 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2551 中完成\n* sdk：集中管理程序化设置的 schema，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F236 中完成","2026-03-31T00:07:22",{"id":183,"version":184,"summary_zh":185,"released_at":186},360265,"v1.15.0","* 更强的 API 稳定性和升级保障，具有更明确的弃用预期，并能更好地防范破坏性变更。\n* RemoteRuntime 功能与可靠性得到扩展，包括改进的基于 ACP 的工作流以及更可靠的远程状态处理。\n* 新增面向开发者的 SDK 功能，例如并行工具执行、更多公共 API、更丰富的插件元数据以及更好的工作空间凭据继承机制。\n* 更广泛的模型兼容性与更好的推理模型支持，包括新验证的模型以及针对特定提供商行为的修复。\n* 构建和 CI 流程更快、更可靠，同时包含一系列 bug 修复和依赖项更新，以提升日常使用的稳定性。\n\n\n## 变更内容\n* 在 RemoteRuntime API 上启用 ACPAgent，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2190 中实现。\n* 使 API 破坏性工作流以显眼方式失败，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2432 中实现。\n* 澄清 REST 协议弃用政策，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2433 中实现。\n* 更清晰地突出显示 API 破坏性检查注释，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2434 中实现。\n* 强制执行 REST 弃用截止日期，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2435 中实现。\n* 移除过时的 Python API 工作流环境变量，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2442 中实现。\n* 在向 main 分支推送时运行 API 破坏性检查，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2443 中实现。\n* 将丰富的软件包版本 14.3.3 添加到依赖约束中，由 @yitao-li 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2414 中实现。\n* 将 TokenUsage、page_iterator 和 AsyncRemoteWorkspace 导出为公共 SDK API，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2445 中实现。\n* 修复 apptainer 工作空间清理问题：终止僵尸子进程，由 @adityasoni9998 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2450 中实现。\n* chore(deps)：将 pyjwt 从 2.11.0 升级至 2.12.0，由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2448 中实现。\n* 添加文档字符串指南，并修复关键文档字符串以兼容 MDX，由 @rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2452 中实现。\n* ci：在发布 PR 之外的提交中禁止随意升级软件包版本，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2457 中实现。\n* 修复：为 OpenAPI 规范的根端点添加标签，由 @rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2458 中实现。\n* 修复版本升级 PR 工作流中的 Python 版本选择问题，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2430 中实现。\n* 撤销 PR #2190：在 RemoteRuntime API 上启用 ACPAgent，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2451 中实现。\n* test(sdk)：重现代理恢复兼容性回归问题，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2382 中实现。\n* 在破坏性检查中强制执行 REST API 弃用缓冲期，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F中实现。","2026-03-26T15:01:30",{"id":188,"version":189,"summary_zh":190,"released_at":191},360266,"v1.14.0","## 变更内容\n* 由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2402 中发布了 v1.13.1 版本\n* 由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2405 中实现了在 REST API 检查中强制执行 OpenAPI 端点的弃用规则\n* 由 @zlowred 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2381 中允许将代理容器连接到指定的 Docker 网络\n* 由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2410 中处理了 API 中断工作流中的分叉 PR\n* 由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2398 中更新了 Nemotron 模型配置\n* 由 @rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2380 中为 SDK 添加了包含实用链接的启动横幅\n* 功能：由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2422 中发出结构化的 Docker 构建遥测数据\n* 修复：由 @tofarr 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2423 中修复了基于路径路由时损坏的 OpenAPI 文档\n* 拒绝：由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2424 中拒绝在 FastAPI 路由上使用已弃用的 SDK 标记\n* 功能：由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2426 中支持复用预构建的 SDK sdists\n* 由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2428 中发布了 v1.14.0 版本\n\n## 新贡献者\n* @zlowred 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2381 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.13.1...v1.14.0","2026-03-13T21:18:50",{"id":193,"version":194,"summary_zh":195,"released_at":196},360267,"v1.13.1","## 变更内容\n* 修复（示例）：由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2379 中为市场演示发出 EXAMPLE_COST 事件\n* 由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2378 中发布 v1.13.0 版本\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2387 中将 pypdf 从 6.7.5 升级至 6.8.0\n* 为 SDK 添加 bug 和功能请求问题模板，由 @jamiechicago312 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1864 中完成\n* 向 resolve_model_config.py 添加 gpt-5.4 模型，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2374 中完成\n* 修复：提升长时间运行及恢复会话的对话鲁棒性，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2384 中完成\n* 向 resolve_model_config.py 添加 NVIDIA Nemotron-3 Super 120B 模型，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2391 中完成\n* 修复（LLM）：为 gemini、deepseek、moonshot、minimax 添加提供商特定的已验证模型列表，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2386 中完成\n* 修复：截断过长的技能描述，而非抛出错误 (#2394)，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2395 中完成\n* 杂项（依赖）：由 @dependabot[bot] 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2400 中将 tornado 从 6.5.2 升级至 6.5.5\n* 修复（工具）：在子代理之间共享浏览器执行器，以防止 CDP 端口冲突，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2401 中完成\n* 弃用 file_router 中的 {path:path} 端点，并添加查询参数替代方案，由 @chuckbutkus 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2404 中完成\n* 当 Webhook 发送失败时记录响应内容，由 @tofarr 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2403 中完成\n\n## 新贡献者\n* @jamiechicago312 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1864 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.13.0...v1.13.1","2026-03-13T06:39:56",{"id":198,"version":199,"summary_zh":200,"released_at":201},360268,"mlsys26-artifact-v1","本版本是为 MLSys 2026 论文所创建的 OpenHands 软件代理 SDK 的归档快照：\n\n[\"OpenHands 软件代理 SDK：面向生产级代理的可组合、可扩展基础\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2511.03690)\n\n该快照旨在用于**成果评估与结果复现**。\n\n### 本版本包含的内容\n- 论文中使用的 SDK 实现\n- 用于复现关键实验的脚本\n- 事件溯源轨迹及评估工具\n- 与基准评测流水线的集成\n\n### 供评估者参考的说明\n- 若要完整复现基准评测（例如 SWE-Bench、GAIA），由于采用沙箱执行，必须使用 Docker。\n- 核心功能、SDK 行为以及事件溯源相关度量无需 Docker 即可复现。\n- 评估日志可通过以下链接获取：\n  https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fopenhands-index-results\n\n### 重要提示\n本版本是**为实现结果复现而冻结的快照**，可能与主分支上的最新开发版本存在差异。\n\n如需获取项目最新版本，请参阅主仓库。","2026-04-10T14:49:44",{"id":203,"version":204,"summary_zh":205,"released_at":206},360269,"v1.13.0","\r\n - RemoteConversation 钩子现在可与代理服务器端到端协同工作。hook_config 现在会正确传递，因此远程对话可以执行服务器端钩子，而不再静默丢弃它们。\n - 代理-服务器事件 API 增加了钩子可观性。事件消费者现在可以接收到 HookExecutionEvent 对象，并且 event.source 现在可能为 \"hook\"。\n - 远程\u002F子代理支持得到扩展。StartConversationRequest 现在接受 agent_definitions，从而使服务器端对话能够识别由 DelegateTool \u002F TaskSetTool 使用的客户端注册的子代理。\n - 整个发行线的 SDK 易用性得到了提升。自 v1.12.0 以来的显著新增功能包括：rerun_actions、可配置的市场路径、对已安装技能\u002F插件的启用\u002F禁用支持，以及新的插件\u002F技能生命周期示例。\n\n## 变更内容\n* 发布 v1.12.0，由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2302 中完成\n* 移除不必要的 ACP 成本估算回退，由 @simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2330 中完成\n* 修复 (sdk\u002F子代理)：远程工作区和子代理，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2323 中完成\n* 添加作业，在 run-eval 工作流开始时打印所有参数，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2332 中完成\n* 功能：在 Marketplace 模式中添加 skills 字段，并支持 GitHub URL，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2325 中完成\n* 修复：将 API 中断检查与 PyPI 基线版本进行比较，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2338 中完成\n* 修复：一个格式错误的 SKILL.md 文件，其中包含无效的 YAML 前置元数据，会导致所有同级技能无法加载，由 @adityavkk 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2333 中完成\n* 功能 (sdk\u002F子代理)：添加 profile_store_dir，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2340 中完成\n* CI：检测 ACP 次要版本更新，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2346 中完成\n* 添加代码审查分析中的经验教训，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2280 中完成\n* 功能：为已安装的插件添加启用\u002F禁用功能，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2336 中完成\n* 功能：为已安装的技能添加启用\u002F禁用功能，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2322 中完成\n* 重构 (sdk\u002F代理)：简化警告信息，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2355 中完成\n* 升级到 Python 3.13 并修复 libtmux 的区域设置问题，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2092 中完成\n* 重构 (sdk\u002F上下文\u002F技能)：重构技能加载逻辑，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2353 中完成\n* 杂项：重新分配 AGENTS 指导说明，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2359 中完成\n* 功能 (sdk\u002F子代理)：为子代理添加钩子，由 @VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2347 中完成\n* 功能 (sdk\u002F子代理)：添加确认策略","2026-03-10T18:41:02",{"id":208,"version":209,"summary_zh":210,"released_at":211},360270,"v1.12.0","* **ACP \u002F 代理客户端协议实现端到端集成：** 新增 `ACPAgent`，支持 ACP 工具调用的可视化展示，并通过 `fork_session` 实现 `ask_agent` 支持。\n* **代理服务器功能更强大、更安全：** 新增针对 LLM 模型和提供商的端点，改进了 WebSocket 认证机制（使用请求头），优化了事件搜索行为，修复了密钥管理相关问题，并针对 Bedrock 安全性进行了修复（不再转发 `api_key`）。\n* **子代理与技能模块迎来重大升级：** 支持基于文件的代理定义（Markdown + YAML 前置元数据），内置专用代理类型（Explore\u002FBash），新增对技能、LLM 配置文件及最大迭代次数的支持，同时推出了用于安装 AgentSkills 的新工具。\n* **CI 流水线与质量门控进一步收紧：** 强化 API 兼容性破坏检测与报告机制（包括 oasdiff、发布阻断以及弃用策略），引入 PR 审查代理防护机制，并制定代码审查规则以阻止版本号随意提升。\n* **开发体验与平台兼容性持续优化：** 修复了多个终端\u002F tmux 使用中的稳定性问题（包括 macOS heredoc 卡死及 tmux socket 隔离问题），增加了 Windows 系统的导入保护措施，同时更新了依赖库和模型配置（例如 Qwen、Gemini 预览版、GPT-* 的 Codex\u002F变体检测，以及安全 CVE 修复）。\n\n## 变更内容\n* 功能：@simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2133 中添加了用于集成代理客户端协议的 ACPAgent。\n* 杂项：@xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2161 中向代码审查指南中加入了阻止版本号随意提升的规则。\n* 发布 v1.11.5：由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2160 中完成。\n* 修复 API 兼容性破坏检查的鲁棒性和报告机制：@enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2098 中完成。\n* CI：当上一版本缺少 `__all__` 导出时，跳过 API 兼容性破坏检查：@enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2165 中实现。\n* 通过 `fork_session` 为 ACPAgent 添加 `ask_agent` 支持：@simonrosenberg 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2145 中完成。\n* SDK 功能：@VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2016 中添加了 TestLLM 类，用于在不模拟 LiteLLM 的情况下进行测试。\n* 草稿：文档（AGENTS）：介绍如何通过 REST API 回复 GitHub 内联评论线程：@enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2090 中撰写。\n* 终端修复：避免在 TmuxTerminal.clear_screen() 中发送 C-l 清屏命令：@rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2166 中完成。\n* 终端修复：使用专用 tmux socket 将其与用户会话隔离：@rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2167 中完成。\n* Makefile 修复：增加帮助信息并启用 pre-commit 钩子：@VascoSch92 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2168 中完成。\n* 上下文：从 Git 仓库根目录加载项目技能：@enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2164 中实现。\n* 修复：在服务器重启后仍能保留对话的 `updated_at` 时间戳：@rbren 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2172 中完成。\n* CI：在发布分支的 PR 中阻断 API 兼容性破坏失败：@enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2173 中实现。\n* 可视化 ACP 工具调用：@simonro","2026-03-05T19:22:07",{"id":213,"version":214,"summary_zh":215,"released_at":216},360271,"v1.11.5","* 添加对 Sonnet 4.6、GLM 5、Gemini 3.1 Pro、Minimax M2.5 的支持\n* 多处可靠性修复\n\n## 变更内容\n* 由 @all-hands-bot 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2011 中发布 v1.11.4 版本\n* 由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2014 中修复 version-bump-prs 的 workflow_run 触发器\n* 由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2015 中从版本更新工作流中移除 enterprise\u002Fpyproject.toml 的更新\n* chore：将 skills 目录移动至 .agents，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1970 中完成\n* feat：在 PR 审查动作中加载项目技能（AGENTS.md 等），由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2017 中实现\n* feat：为会话记录代理的浏览器会话，由 @malhotra5 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1731 中完成\n* feat：向 AgentContext 添加 current_datetime 字段，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2012 中实现\n* docs：在文档更新提示中删减冗长措辞，由 @smolpaws 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2019 中完成\n* fix(ci)：阻止 author_association 为 NONE 的 PR 自动运行审查，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2020 中修复\n* fix(pr-review)：避免提示中出现空白描述，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2021 中修复\n* feat(security)：添加 GraySwan Cygnal 安全分析器，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1952 中完成\n* fix：在 _process_schema_node 中添加循环引用检测，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1956 中实现\n* docs(review)：澄清批准指南，由 @enyst 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2022 中完成\n* fix：在 PyInstaller 构建中打包浏览器录制 JS 文件，由 @malhotra5 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2025 中完成\n* 修复远程 Docker 工作区相关问题，由 @hamiltop 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1807 中完成\n* 将 GLM-5 添加到预期模型列表中，由 @juanmichelini 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2029 中完成\n* fix(llm)：确保第二个 LLM 获得独立的指标和遥测数据，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1997 中修复\n* fix(pr-review)：在活动跨度上下文中设置跟踪元数据，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2062 中完成\n* 在 PR 审查机器人中的 Laminar 日志中添加 pr_url 元数据，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2068 中完成\n* 为保持向后兼容性，处理 TextContent 中已弃用的 enable_truncation 字段，由 @xingyaoww 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2027 中完成\n* fix(ci)：修复 PR 审查评估工作流中的工件检测问题，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2070 中完成\n* DRAFT：为多仓库功能传播添加 feature-release-rollout 技能，由 @neubig 在 https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2069 中提出\n* ci：A","2026-02-20T22:16:25",{"id":218,"version":219,"summary_zh":220,"released_at":221},360272,"v1.11.4","## What's Changed\r\n* fix: serialize Laminar span_context UUIDs as strings for JSON compatibility by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2000\r\n* feat: add previous review context to PR review agent by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1991\r\n* Separate version bump PRs into standalone workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2003\r\n* Release v1.11.3 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2002\r\n* fix: fetch latest reviews\u002Fthreads instead of oldest by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2004\r\n* Fix poetry lock command in version-bump-prs workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2006\r\n* Remove redundant poetry lock calls in version-bump-prs workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2008\r\n* Add MiniMax-M2.5 model configuration by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2007\r\n* Add pre-commit step to version-bump-prs workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F2010\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.11.3...v1.11.4","2026-02-11T16:36:26",{"id":223,"version":224,"summary_zh":225,"released_at":226},360273,"v1.11.3","## What's Changed\r\n* Release v1.11.2 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1976\r\n* fix: exclude reference markdown files in agentskills folders from being loaded as skills by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1982\r\n* Add stop hook for pre-commit, pytest, and CI validation and add \u002Fapi\u002Fhooks to agent-server by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1878\r\n* feat(eval): add jade-spark-2862 model for evaluation by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1984\r\n* ci: switch integration tests to use eval proxy by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1985\r\n* fix: separate static system prompt from dynamic context for cross-conversation caching by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1890\r\n* Fix Laminar trace continuation for PR review evaluation by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1988\r\n* fix(llm): detect context window errors from Minimax via APIConnectionError by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1992\r\n* feat: add rejection_source field to UserRejectObservation by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1995\r\n* docs(AGENTS.md): add GraphQL examples for resolving review threads by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1993\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.11.2...v1.11.3","2026-02-11T12:11:15",{"id":228,"version":229,"summary_zh":230,"released_at":231},360274,"v1.11.2","## What's Changed\r\n* Release v1.11.1 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1921\r\n* Add litellm_proxy\u002Fgpt-oss-20b to resolve_model_config.py by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1906\r\n* fix: Remove python-version from setup-uv in create-version-bump-prs job by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1926\r\n* Add Claude Opus 4.6 model support by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1933\r\n* Set default sdk_ref to v1.11.1 in run-eval workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1935\r\n* feat(llm): add gpt-5.3-codex to subscription models by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1940\r\n* Add example for reconstructing OpenAI messages from events by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1916\r\n* feat: add \u002Fready endpoint for proper Kubernetes readiness checks by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1810\r\n* fix(llm): Add Claude Opus 4.6 to model features for reasoning_effort support by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1941\r\n* nit(sdk): change usage_to_llm to return a MappingProxyType by @VascoSch92 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1930\r\n* fix: use Python 3.12 for openhands-cli version bump by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1924\r\n* feat(ci): add model_ids and issue_number inputs to integration-runner by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1883\r\n* Add Laminar traces to PR review workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1949\r\n* fix(message): Responses tool image serialization (preserve file_editor images) by @Wangmerlyn in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1895\r\n* fix: disable vision for glm-4.7 to prevent multimodal evaluation failures by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1898\r\n* Fix tool serialization test flakiness by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1959\r\n* refactor: Use composite GitHub Action for PR review workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1927\r\n* chore: add review thread gate by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1962\r\n* fix: update LLM model and base URL for pr-review workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1968\r\n* feat: Add delayed evaluation for PR review with Laminar signals by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1954\r\n* Add context window size validation for local LLMs by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1961\r\n* feat(sdk): introduce `LLMProfileStore` for persisted LLM configurations by @VascoSch92 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1928\r\n* fix(pyinstaller): include delegate tool templates in bundle by @malhotra5 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1971\r\n* fix: handle PS1 metadata corruption in command output by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1817\r\n* Enhance planning agent to ask clarifying questions for ambiguous requests by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1967\r\n* feat(examples): update critic example to demonstrate iterative refinement by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1879\r\n\r\n## New Contributors\r\n* @VascoSch92 made their first contribution in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1930\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.11.1...v1.11.2","2026-02-09T17:46:19",{"id":233,"version":234,"summary_zh":235,"released_at":236},360276,"v1.11.0","Added support for login with LLM subscription (ChatGPT) - Docs: https:\u002F\u002Fdocs.openhands.dev\u002Fsdk\u002Fguides\u002Fllm-subscriptions\r\n\r\n## What's Changed\r\n* Simplify PR review prompt to use \u002Fgithub-pr-review skill by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1792\r\n* Add gpt-5.2-codex model to evaluation config by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1835\r\n* Release v1.10.0 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1827\r\n* Cap event history scanned by StuckDetector by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1829\r\n* ci: default to Python 3.13 (keep 3.12+ support) by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1836\r\n* Add integration-style tests for conversation restore behavior by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1799\r\n* Add run-eval skill for evaluation guidance by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1809\r\n* Add Kimi K2.5 and Qwen3 Max Thinking models to eval config by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1845\r\n* Redact cookie\u002Ftoken headers in LookupSecret serialization by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1822\r\n* Remove truncation for skill files (AGENTS.md, others) by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1842\r\n* Add GLM-4.7 to expected models by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1854\r\n* Truncate terminal outputs before persisting events by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1823\r\n* fix(security): prevent auth token leakage in trajectory exports by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1848\r\n* Avoid materializing full event history in Agent.init_state by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1840\r\n* feat(condenser): Hard context reset on unrecoverable error by @csmith49 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1596\r\n* Add guidance to avoid exposing raw secret values in conversation by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1855\r\n* fix: prevent duplicate events in bash polling via order__gt filtering by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1816\r\n* fix: add MAINTAINERS file and update triage prompt to use it by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1859\r\n* Add --check-browser flag for browser functionality testing by @raymyers in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1329\r\n* feat: require semantic version name on eval github action by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1867\r\n* fix: Add AttributeError to escape_bash_special_chars exception handling by @daviskay75 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1871\r\n* feat(llm): Add subscription-based authentication for OpenAI Codex models by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1682\r\n* fix: update enterprise\u002Fpyproject.toml before poetry lock in version bump workflow by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1834\r\n* fix: several issues related to scalability by @Co1lin in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1619\r\n* fix: unable to start a new v1 conversation when using the latest sdk code by @hieptl in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1881\r\n* feat: store plan.md file in appropriate configuration folders by @hieptl in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1876\r\n\r\n## New Contributors\r\n* @daviskay75 made their first contribution in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1871\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.10.0...v1.11.0","2026-02-03T16:57:42",{"id":238,"version":239,"summary_zh":240,"released_at":241},360277,"v1.10.0","## What's Changed\r\n* feat(agent-server): Support plugin loading when starting conversations by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1651\r\n* feat(plugin): Load commands as keyword-triggered skills by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1676\r\n* feat(condenser): Multi-summary views by @csmith49 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1721\r\n* refactor: enforce tool immutability on conversation restore by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1788\r\n* feat(message): require explicit values for serialization control fields by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1798\r\n* Add NVIDIA Nemotron 3 Nano 30B model configuration by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1804\r\n* Fix MCP HTTP session persistence across tool calls by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1740\r\n* refactor(message): move serialization control to to_chat_dict() parameters by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1800\r\n* Deprecate safety_settings field in LLM configuration by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1803\r\n* Hide pyinstaller vendored libraries from subprocesses by @cbagwell in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1758\r\n* fix: ensure WebSocket is subscribed before operations by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1791\r\n* refactor: remove redundant shutdown reconcile call by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1820\r\n* Fix: Add EXAMPLE_COST marker to critic example by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1830\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.9.1...v1.10.0","2026-01-26T16:50:36",{"id":243,"version":244,"summary_zh":245,"released_at":246},360278,"v1.9.1","## What's Changed\r\n* Add 05 skills\u002Fplugins examples to test-examples by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1773\r\n* Release v1.9.0 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1775\r\n* Added more fixes for parsing discriminated unions by @tofarr in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1779\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.9.0...v1.9.1","2026-01-21T22:53:35",{"id":248,"version":249,"summary_zh":250,"released_at":251},360279,"v1.9.0","Added support for experimental critic model\r\n\r\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fa8e188ee-ff82-4068-9c8b-5e7e9ba42508\r\n\r\n\r\n## What's Changed\r\n* Propagate Datadog conversation logging flag to evaluation dispatch by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1703\r\n* Release v1.8.2 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1722\r\n* Add swebenchmultimodal support to run-eval workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1659\r\n* feat: add multiswebench support to run-eval workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1693\r\n* feat: load skills from agent server by @hieptl in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1729\r\n* Add GPT-5.2 high reasoning to model configurations by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1735\r\n* Replace mocked MCP tests with real integration tests by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1678\r\n* feat(plugin): Add Plugin.fetch() for remote plugin fetching and caching by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1647\r\n* Fix event ordering in RemoteEventsList by inserting events sorted by timestamp by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1737\r\n* fix: move async operations outside sync lock in event subscription by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1732\r\n* Remove unsupported models by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1734\r\n* refactor(hooks): add typed fields to HookConfig for better type safety by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1726\r\n* Add Marketplace datamodel for marketplace.json support by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1744\r\n* Remove push_to_index option from run-eval.yml workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1750\r\n* feat: add Gemini 3 models to reasoning effort supported list by @Chesars in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1752\r\n* Fix DiscriminatedUnionEnvParser to use single parser when only one kind exists by @tofarr in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1741\r\n* Add GitHub repository URLs to PyPI package metadata by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1753\r\n* Fix cache tag truncation with ports and latest suffix by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1626\r\n* docs: rewrite CONTRIBUTING around SDK architecture by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1755\r\n* Fix CORS to allow DOCKER_HOST_ADDR for remote browser access by @shanemort1982 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1466\r\n* refactor(examples): use .from_dict() for hooks example by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1746\r\n* fix: Add JSON formatter for uvicorn access logs by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1733\r\n* Fix unhandled ConversationRunError causing non-JSON logs by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1680\r\n* remove gpt-5-mini from list of models to evaluate for openhands index by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1766\r\n* Add API-Based Critic for Real-Time Agent Action Evaluation (Experimental) by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1269\r\n* feat: Add .pr\u002F directory convention and auto-cleanup workflow by @jpshackelford in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1764\r\n* feat(delegate): Add create_sub_visualizer method for custom sub-agent visualization by @malhotra5 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1767\r\n* Add minimax\u002FMiniMax-M2.1 to resolve_model_config.py by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1757\r\n* feat: Support full class names in DiscriminatedUnionEnvParser by @tofarr in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1768\r\n* Update idle time on bash, git, and file operations by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1770\r\n* Add set_security_analyzer abstract method to BaseConversation by @malhotra5 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1772\r\n\r\n## New Contributors\r\n* @shanemort1982 made their first contribution in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1466\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.8.2...v1.9.0","2026-01-21T17:34:30",{"id":253,"version":254,"summary_zh":255,"released_at":256},360280,"v1.8.2","## What's Changed\r\n* Release v1.8.1 by @all-hands-bot in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1670\r\n* feat: auto-trigger PR review on new ready-for-review PRs + fix duplicate comments by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1669\r\n* Add --no-pager instruction for git commands in system prompt by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1673\r\n* fix: mask LLM_API_KEY and GITHUB_TOKEN secrets in PR review agent by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1675\r\n* Add per-test timeout to prevent hanging example scripts by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1666\r\n* Fix PR review agent multi-line suggestion alignment by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1677\r\n* Add visualize() for ConversationErrorEvent by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1686\r\n* Fix useless logging in sockets.py by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1679\r\n* Fix conversation restore failing due to secret serialization\u002Fdeserialization mismatch by @tofarr in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1672\r\n* fix(critic): Accept MessageEvent as valid finish signal in AgentFinishedCritic by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1695\r\n* fix: add file-based locking to EventLog.append() by @ixchio in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1614\r\n* feat(pr-review): Add priority labels to review comments by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1696\r\n* feat: support custom volumes mounting for DockerWorkspace by @Co1lin in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1618\r\n* Add AGENTS.md and link repo.md by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1690\r\n* Condenser integration tests by @csmith49 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1652\r\n* Fix: Disable streaming for sub-agents in delegate tool by @malhotra5 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1705\r\n* Fix deepseek-v3.2-reasoner model name to use valid API identifier by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1707\r\n* fix(condenser): Forgetting range calculation interprets `keep_first` correctly by @csmith49 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1708\r\n* llm: log failed Responses calls with request context by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1684\r\n* Fix verify method to include builtin tools in event check by @malhotra5 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1710\r\n* Optimize docker-like behaviour in apptainer with better code quality by @adityasoni9998 in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1711\r\n* Remove .openhands\u002Fskills\u002Frepo.md symlink by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1709\r\n* Add crash diagnostics logging to agent server by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1689\r\n* Fix PR review bot to diff against current base commit by @enyst in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1685\r\n* Add ARG USERNAME to base-image stage for podman by @cbagwell in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1691\r\n* Revert \"fix(critic): Accept MessageEvent as valid finish signal in AgentFinishedCritic\" by @xingyaoww in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1715\r\n* Add configurable startup wait for APIRemoteWorkspace by @simonrosenberg in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1713\r\n* Add user tracking to evaluation workflow by @juanmichelini in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1716\r\n* fix: route qwen-3-coder through Fireworks provider by @neubig in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1720\r\n\r\n## New Contributors\r\n* @Co1lin made their first contribution in https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fpull\u002F1618\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FOpenHands\u002Fsoftware-agent-sdk\u002Fcompare\u002Fv1.8.1...v1.8.2","2026-01-14T14:59:24"]