[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-google--adk-python":3,"tool-google--adk-python":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":108,"forks":109,"last_commit_at":110,"license":111,"difficulty_score":23,"env_os":112,"env_gpu":112,"env_ram":112,"env_deps":113,"category_tags":116,"github_topics":117,"view_count":134,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":135,"updated_at":136,"faqs":137,"releases":166},698,"google\u002Fadk-python","adk-python","An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.","adk-python 是一款开源的 Python 框架，旨在帮助用户轻松构建、评估和部署复杂的 AI 智能体。它将成熟的软件工程方法应用到 AI 开发中，解决了以往智能体项目难以维护、灵活性差以及工作流编排复杂的问题。\n\n它非常适合开发者、研究人员以及希望搭建多智能体协作系统的技术团队。adk-python 主打“代码优先”开发，允许直接用 Python 编写逻辑，保证灵活可控；同时也提供无代码配置选项，降低上手难度。其独特优势在于丰富的工具生态和模块化设计，支持将多个专业智能体组合成层级分明的系统。此外，它还具备会话回退、代码沙箱执行等新特性，并兼容多种大模型及部署环境。无论是要处理简单任务还是构建企业级应用，adk-python 都能提供从开发到部署的一站式解决方案。","# Agent Development Kit (ADK)\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fgoogle-adk)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fgoogle-adk\u002F)\n[![Python Unit Tests](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Factions\u002Fworkflows\u002Fpython-unit-tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Factions\u002Fworkflows\u002Fpython-unit-tests.yml)\n[![r\u002Fagentdevelopmentkit](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReddit-r%2Fagentdevelopmentkit-FF4500?style=flat&logo=reddit&logoColor=white)](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fagentdevelopmentkit\u002F)\n\u003Ca href=\"https:\u002F\u002Fcodewiki.google\u002Fgithub.com\u002Fgoogle\u002Fadk-python\">\u003Cimg src=\"https:\u002F\u002Fwww.gstatic.com\u002F_\u002Fboq-sdlc-agents-ui\u002F_\u002Fr\u002FMvosg4klCA4.svg\" alt=\"Ask Code Wiki\" height=\"20\">\u003C\u002Fa>\n\n\u003Chtml>\n    \u003Ch2 align=\"center\">\n      \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_adk-python_readme_038fa4fec239.png\" width=\"256\"\u002F>\n    \u003C\u002Fh2>\n    \u003Ch3 align=\"center\">\n      An open-source, code-first Python framework for building, evaluating, and deploying sophisticated AI agents with flexibility and control.\n    \u003C\u002Fh3>\n    \u003Ch3 align=\"center\">\n      Important Links:\n      \u003Ca href=\"https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F\">Docs\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-samples\">Samples\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-java\">Java ADK\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\">Go ADK\u003C\u002Fa> &\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-web\">ADK Web\u003C\u002Fa>.\n    \u003C\u002Fh3>\n\u003C\u002Fhtml>\n\nAgent Development Kit (ADK) is a flexible and modular framework that applies\nsoftware development principles to AI agent creation. It is designed to\nsimplify building, deploying, and orchestrating agent workflows, from simple\ntasks to complex systems. While optimized for Gemini, ADK is model-agnostic,\ndeployment-agnostic, and compatible with other frameworks.\n\n---\n\n## 🔥 What's new\n\n- **Custom Service Registration**: Add a service registry to provide a generic way to register custom service implementations to be used in FastAPI server. See [short instruction](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fdiscussions\u002F3175#discussioncomment-14745120). ([391628f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F391628fcdc7b950c6835f64ae3ccab197163c990))\n\n- **Rewind**: Add the ability to rewind a session to before a previous invocation ([9dce06f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9dce06f9b00259ec42241df4f6638955e783a9d1)).\n\n- **New CodeExecutor**: Introduces a new AgentEngineSandboxCodeExecutor class that supports executing agent-generated code using the Vertex AI Code Execution Sandbox API ([ee39a89](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fee39a891106316b790621795b5cc529e89815a98))\n\n## ✨ Key Features\n\n- **Rich Tool Ecosystem**: Utilize pre-built tools, custom functions,\n  OpenAPI specs, MCP tools or integrate existing tools to give agents diverse\n  capabilities, all for tight integration with the Google ecosystem.\n\n- **Code-First Development**: Define agent logic, tools, and orchestration\n  directly in Python for ultimate flexibility, testability, and versioning.\n\n- **Agent Config**: Build agents without code. Check out the\n  [Agent Config](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Fagents\u002Fconfig\u002F) feature.\n\n- **Tool Confirmation**: A [tool confirmation flow(HITL)](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Ftools\u002Fconfirmation\u002F) that can guard tool execution with explicit confirmation and custom input.\n\n- **Modular Multi-Agent Systems**: Design scalable applications by composing\n  multiple specialized agents into flexible hierarchies.\n\n- **Deploy Anywhere**: Easily containerize and deploy agents on Cloud Run or\n  scale seamlessly with Vertex AI Agent Engine.\n\n## 🚀 Installation\n\n### Stable Release (Recommended)\n\nYou can install the latest stable version of ADK using `pip`:\n\n```bash\npip install google-adk\n```\n\nThe release cadence is roughly bi-weekly.\n\nThis version is recommended for most users as it represents the most recent official release.\n\n### Development Version\nBug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python.git@main\n```\n\nNote: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.\n\n## 🤖 Agent2Agent (A2A) Protocol and ADK Integration\n\nFor remote agent-to-agent communication, ADK integrates with the\n[A2A protocol](https:\u002F\u002Fgithub.com\u002Fgoogle-a2a\u002FA2A\u002F).\nSee this [example](https:\u002F\u002Fgithub.com\u002Fa2aproject\u002Fa2a-samples\u002Ftree\u002Fmain\u002Fsamples\u002Fpython\u002Fagents)\nfor how they can work together.\n\n## 📚 Documentation\n\nExplore the full documentation for detailed guides on building, evaluating, and\ndeploying agents:\n\n* **[Documentation](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs)**\n\n## 🏁 Feature Highlight\n\n### Define a single agent:\n\n```python\nfrom google.adk.agents import Agent\nfrom google.adk.tools import google_search\n\nroot_agent = Agent(\n    name=\"search_assistant\",\n    model=\"gemini-2.5-flash\", # Or your preferred Gemini model\n    instruction=\"You are a helpful assistant. Answer user questions using Google Search when needed.\",\n    description=\"An assistant that can search the web.\",\n    tools=[google_search]\n)\n```\n\n### Define a multi-agent system:\n\nDefine a multi-agent system with coordinator agent, greeter agent, and task execution agent. Then ADK engine and the model will guide the agents to work together to accomplish the task.\n\n```python\nfrom google.adk.agents import LlmAgent, BaseAgent\n\n# Define individual agents\ngreeter = LlmAgent(name=\"greeter\", model=\"gemini-2.5-flash\", ...)\ntask_executor = LlmAgent(name=\"task_executor\", model=\"gemini-2.5-flash\", ...)\n\n# Create parent agent and assign children via sub_agents\ncoordinator = LlmAgent(\n    name=\"Coordinator\",\n    model=\"gemini-2.5-flash\",\n    description=\"I coordinate greetings and tasks.\",\n    sub_agents=[ # Assign sub_agents here\n        greeter,\n        task_executor\n    ]\n)\n```\n\n### Development UI\n\nA built-in development UI to help you test, evaluate, debug, and showcase your agent(s).\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_adk-python_readme_e6333a321746.png\"\u002F>\n\n###  Evaluate Agents\n\n```bash\nadk eval \\\n    samples_for_testing\u002Fhello_world \\\n    samples_for_testing\u002Fhello_world\u002Fhello_world_eval_set_001.evalset.json\n```\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our\n- [General contribution guideline and flow](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Fcontributing-guide\u002F).\n- Then if you want to contribute code, please read [Code Contributing Guidelines](.\u002FCONTRIBUTING.md) to get started.\n\n## Community Repo\n\nWe have [adk-python-community repo](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python-community) that is home to a growing ecosystem of community-contributed tools, third-party\nservice integrations, and deployment scripts that extend the core capabilities\nof the ADK.\n\n## Vibe Coding\n\nIf you want to develop agent via vibe coding the [llms.txt](.\u002Fllms.txt) and the [llms-full.txt](.\u002Fllms-full.txt) can be used as context to LLM. While the former one is a summarized one and the later one has the full information in case your LLM has big enough context window.\n\n## Community Events\n\n- [Completed] ADK's 1st community meeting on Wednesday, October 15, 2025. Remember to [join our group](https:\u002F\u002Fgroups.google.com\u002Fg\u002Fadk-community) to get access to the [recording](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1rpXDq5NSH8-MyMeYI6_5pZ3Lhn0X9BQf\u002Fview), and [deck](https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1_b8LG4xaiadbUUDzyNiapSFyxanc9ZgFdw7JQ6zmZ9Q\u002Fedit?slide=id.g384e60cdaca_0_658&resourcekey=0-tjFFv0VBQhpXBPCkZr0NOg#slide=id.g384e60cdaca_0_658).\n\n## 📄 License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n*Happy Agent Building!*\n","# 代理开发工具包 (ADK)\n\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](LICENSE)\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fgoogle-adk)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fgoogle-adk\u002F)\n[![Python Unit Tests](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Factions\u002Fworkflows\u002Fpython-unit-tests.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Factions\u002Fworkflows\u002Fpython-unit-tests.yml)\n[![r\u002Fagentdevelopmentkit](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReddit-r%2Fagentdevelopmentkit-FF4500?style=flat&logo=reddit&logoColor=white)](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fagentdevelopmentkit\u002F)\n\u003Ca href=\"https:\u002F\u002Fcodewiki.google\u002Fgithub.com\u002Fgoogle\u002Fadk-python\">\u003Cimg src=\"https:\u002F\u002Fwww.gstatic.com\u002F_\u002Fboq-sdlc-agents-ui\u002F_\u002Fr\u002FMvosg4klCA4.svg\" alt=\"Ask Code Wiki\" height=\"20\">\u003C\u002Fa>\n\n\u003Chtml>\n    \u003Ch2 align=\"center\">\n      \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_adk-python_readme_038fa4fec239.png\" width=\"256\"\u002F>\n    \u003C\u002Fh2>\n    \u003Ch3 align=\"center\">\n      一个开源的、代码优先的 Python 框架，用于构建、评估和部署具有灵活性和控制力的复杂 AI 代理。\n    \u003C\u002Fh3>\n    \u003Ch3 align=\"center\">\n      重要链接：\n      \u003Ca href=\"https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F\">文档\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-samples\">示例\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-java\">Java ADK\u003C\u002Fa>,\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-go\">Go ADK\u003C\u002Fa> &\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-web\">ADK Web\u003C\u002Fa>.\n    \u003C\u002Fh3>\n\u003C\u002Fhtml>\n\n代理开发工具包（ADK）是一个灵活且模块化的框架，它将软件开发原则应用于 AI 代理（AI agents）的创建。它旨在简化代理工作流的构建、部署和编排，从简单任务到复杂系统。虽然针对 Gemini 进行了优化，但 ADK 是模型无关的（model-agnostic）、部署无关的（deployment-agnostic），并与其他框架兼容。\n\n---\n\n## 🔥 最新动态\n\n- **自定义服务注册 (Custom Service Registration)**: 添加服务注册表以提供通用方式来注册自定义服务实现，供 FastAPI 服务器使用。查看 [简短说明](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fdiscussions\u002F3175#discussioncomment-14745120)。 ([391628f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F391628fcdc7b950c6835f64ae3ccab197163c990))\n\n- **回退 (Rewind)**: 添加将会话回退到前一次调用之前的能力 ([9dce06f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9dce06f9b00259ec42241df4f6638955e783a9d1))。\n\n- **新代码执行器 (New CodeExecutor)**: 引入新的 `AgentEngineSandboxCodeExecutor` 类，支持使用 Vertex AI 代码执行沙箱 API (Vertex AI Code Execution Sandbox API) 执行代理生成的代码 ([ee39a89](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fee39a891106316b790621795b5cc529e89815a98))\n\n## ✨ 核心功能\n\n- **丰富的工具生态系统**: 利用预构建的工具、自定义函数、OpenAPI 规范、MCP 工具或集成现有工具，为代理提供多样化的能力，所有这些都与 Google 生态系统紧密集成。\n\n- **代码优先开发**: 直接在 Python 中定义代理逻辑、工具和编排，以获得最大的灵活性、可测试性和版本控制能力。\n\n- **代理配置 (Agent Config)**: 无需编写代码即可构建代理。查看 [代理配置](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Fagents\u002Fconfig\u002F) 功能。\n\n- **工具确认**: 一种 [工具确认流程（HITL，人在回路）](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Ftools\u002Fconfirmation\u002F)，可以通过显式确认和自定义输入来保护工具的执行。\n\n- **模块化多代理系统**: 通过将多个专用代理组合成灵活的层级结构来设计可扩展的应用程序。\n\n- **随处部署**: 轻松将代理容器化并在 Cloud Run 上部署，或与 Vertex AI 代理引擎无缝扩展。\n\n## 🚀 安装\n\n### 稳定版本（推荐）\n\n您可以使用 `pip` 安装 ADK 的最新稳定版本：\n\n```bash\npip install google-adk\n```\n\n发布周期大约为每两周一次。\n\n此版本推荐给大多数用户，因为它代表了最新的官方发布。\n\n### 开发版本\n错误修复和新功能首先合并到 GitHub 的主分支上。如果您需要访问尚未包含在官方 PyPI 发布中的更改，可以直接从主分支安装：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python.git@main\n```\n\n注意：开发版本直接从最新的代码提交构建。虽然它包含了最新的修复和功能，但也可能包含稳定版中没有的实验性更改或错误。主要用于测试即将到来的更改或在正式发布之前访问关键修复。\n\n## 🤖 代理对代理 (A2A) 协议与 ADK 集成\n\n对于远程代理间通信，ADK 集成了 [A2A 协议](https:\u002F\u002Fgithub.com\u002Fgoogle-a2a\u002FA2A\u002F)。\n查看此 [示例](https:\u002F\u002Fgithub.com\u002Fa2aproject\u002Fa2a-samples\u002Ftree\u002Fmain\u002Fsamples\u002Fpython\u002Fagents) 了解它们如何协同工作。\n\n## 📚 文档\n\n探索完整文档以获取构建、评估和部署代理的详细指南：\n\n* **[文档](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs)**\n\n## 🏁 功能亮点\n\n### 定义单个代理：\n\n```python\nfrom google.adk.agents import Agent\nfrom google.adk.tools import google_search\n\nroot_agent = Agent(\n    name=\"search_assistant\",\n    model=\"gemini-2.5-flash\", # 或者您首选的 Gemini 模型\n    instruction=\"You are a helpful assistant. Answer user questions using Google Search when needed.\",\n    description=\"An assistant that can search the web.\",\n    tools=[google_search]\n)\n```\n\n### 定义多代理系统：\n\n定义一个包含协调代理、问候代理和任务执行代理的多代理系统。然后 ADK 引擎和模型将指导代理协作完成任务。\n\n```python\nfrom google.adk.agents import LlmAgent, BaseAgent\n\n# Define individual agents\ngreeter = LlmAgent(name=\"greeter\", model=\"gemini-2.5-flash\", ...)\ntask_executor = LlmAgent(name=\"task_executor\", model=\"gemini-2.5-flash\", ...)\n\n# Create parent agent and assign children via sub_agents\ncoordinator = LlmAgent(\n    name=\"Coordinator\",\n    model=\"gemini-2.5-flash\",\n    description=\"I coordinate greetings and tasks.\",\n    sub_agents=[ # Assign sub_agents here\n        greeter,\n        task_executor\n    ]\n)\n```\n\n### 开发 UI\n\n内置的开发 UI 帮助您测试、评估、调试和展示您的代理。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_adk-python_readme_e6333a321746.png\"\u002F>\n\n### 评估代理\n\n```bash\nadk eval \\\n    samples_for_testing\u002Fhello_world \\\n    samples_for_testing\u002Fhello_world\u002Fhello_world_eval_set_001.evalset.json\n```\n\n## 🤝 贡献\n\n我们欢迎社区的贡献！无论是 Bug 报告、功能请求、文档改进还是代码贡献，请查看我们的\n- [一般贡献指南和流程](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002Fcontributing-guide\u002F)。\n- 然后如果您想贡献代码，请阅读 [代码贡献指南](.\u002FCONTRIBUTING.md) 开始。\n\n## 社区仓库\n\n我们拥有 [adk-python-community 仓库](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python-community)，这里汇聚了不断增长的社区贡献工具、第三方服务集成和部署脚本，它们扩展了 ADK（Agent Development Kit）的核心功能。\n\n## Vibe Coding（氛围编码）\n\n如果您希望通过 Vibe Coding（氛围编码）开发智能体，[llms.txt](.\u002Fllms.txt) 和 [llms-full.txt](.\u002Fllms-full.txt) 可用作 LLM（大型语言模型）的上下文。前者是摘要版本，后者包含完整信息，以防您的 LLM 拥有足够大的上下文窗口。\n\n## 社区活动\n\n- [已完成] ADK 首次社区会议于 2025 年 10 月 15 日星期三举行。请记得 [加入我们的群组](https:\u002F\u002Fgroups.google.com\u002Fg\u002Fadk-community) 以获取 [会议录像](https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1rpXDq5NSH8-MyMeYI6_5pZ3Lhn0X9BQf\u002Fview) 和 [演示文稿](https:\u002F\u002Fdocs.google.com\u002Fpresentation\u002Fd\u002F1_b8LG4xaiadbUUDzyNiapSFyxanc9ZgFdw7JQ6zmZ9Q\u002Fedit?slide=id.g384e60cdaca_0_658&resourcekey=0-tjFFv0VBQhpXBPCkZr0NOg#slide=id.g384e60cdaca_0_658)。\n\n## 📄 许可证\n\n本项目采用 Apache 2.0 许可证授权 - 详见 [LICENSE](LICENSE) 文件。\n\n---\n\n*快乐构建智能体！*","# adk-python 快速上手指南\n\n**adk-python** 是 Google 推出的开源、代码优先的 Python 框架，旨在简化 AI Agent 的构建、评估和部署流程。它采用模块化设计，支持多智能体系统编排，模型无关（虽针对 Gemini 优化），并兼容多种部署环境。\n\n## 环境准备\n\n*   **操作系统**: Linux, macOS, Windows\n*   **Python 版本**: 建议 Python 3.9 或更高版本\n*   **依赖管理**: 确保已安装 `pip` 包管理器\n*   **网络环境**: 由于涉及 Google 相关资源，国内用户可能需要配置网络代理或使用镜像源以保证下载速度。\n\n## 安装步骤\n\n推荐使用稳定版进行开发。如果需要使用最新功能或修复，可安装开发版。\n\n### 1. 安装稳定版（推荐）\n\n```bash\npip install google-adk\n```\n\n> 💡 **提示**: 若下载速度较慢，建议使用国内镜像源，例如：\n> ```bash\n> pip install google-adk -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 2. 安装开发版\n\n如需获取主分支的最新更新，可从 GitHub 直接安装：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python.git@main\n```\n\n## 基本使用\n\nADK 允许通过纯 Python 代码定义 Agent 及其逻辑。以下是最简单的单 Agent 定义示例：\n\n```python\nfrom google.adk.agents import Agent\nfrom google.adk.tools import google_search\n\nroot_agent = Agent(\n    name=\"search_assistant\",\n    model=\"gemini-2.5-flash\", # Or your preferred Gemini model\n    instruction=\"You are a helpful assistant. Answer user questions using Google Search when needed.\",\n    description=\"An assistant that can search the web.\",\n    tools=[google_search]\n)\n```\n\n### 下一步\n\n*   **多智能体系统**: 可通过 `LlmAgent` 和 `sub_agents` 属性构建层级化的多 Agent 协作系统。\n*   **运行与评估**: 使用内置的开发 UI 进行测试，或通过命令行运行评估脚本：\n    ```bash\n    adk eval \\\n        samples_for_testing\u002Fhello_world \\\n        samples_for_testing\u002Fhello_world\u002Fhello_world_eval_set_001.evalset.json\n    ```\n*   **完整文档**: 访问 [官方文档](https:\u002F\u002Fgoogle.github.io\u002Fadk-docs\u002F) 获取更多详细指南。","某电商公司的后端工程师计划构建一个能自动审核订单状态并执行退款申请的智能客服系统。\n\n### 没有 adk-python 时\n- 业务逻辑分散在多个独立脚本中，耦合度高导致维护困难且难以进行版本控制\n- 调用敏感金融接口（如打款）缺乏确认机制，一旦出错存在严重的误操作风险\n- 部署流程繁琐，需手动编写 Dockerfile 并配置复杂的运行时环境变量\n- 测试代理行为完全依赖人工模拟对话，无法自动化验证复杂的多步工作流状态\n\n### 使用 adk-python 后\n- 通过 Python 代码直接定义代理逻辑与工具，结构清晰且天然支持单元测试与版本管理\n- 内置工具确认流程（HITL），关键操作前强制要求显式授权才能执行，保障资金安全\n- 支持一键容器化部署至 Cloud Run 或 Vertex AI，无需额外运维配置即可弹性伸缩\n- 利用框架自带评估能力快速验证多轮对话逻辑，确保代理在不同场景下的稳定性\n\nadk-python 将复杂的智能体编排转化为标准工程实践，显著提升了开发效率与系统安全性。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fgoogle_adk-python_fc94b712.png","google","Google","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fgoogle_c4bedcda.png","Google ❤️ Open Source",null,"opensource@google.com","GoogleOSS","https:\u002F\u002Fopensource.google\u002F","https:\u002F\u002Fgithub.com\u002Fgoogle",[85,89,93,97,101,105],{"name":86,"color":87,"percentage":88},"Python","#3572A5",96.2,{"name":90,"color":91,"percentage":92},"Jupyter Notebook","#DA5B0B",3.1,{"name":94,"color":95,"percentage":96},"HTML","#e34c26",0.6,{"name":98,"color":99,"percentage":100},"Shell","#89e051",0.1,{"name":102,"color":103,"percentage":104},"JavaScript","#f1e05a",0,{"name":106,"color":107,"percentage":104},"Mako","#7e858d",18747,3180,"2026-04-05T10:44:56","Apache-2.0","未说明",{"notes":114,"python":112,"dependencies":115},"1. 核心组件为 Python 包，通过 pip 安装（google-adk）。2. 架构设计侧重云端部署（如 Google Cloud Run、Vertex AI），非强制本地硬件配置。3. 支持 FastAPI 服务器集成及自定义服务注册。4. 内置 Web 开发 UI 和 CLI 评估工具（adk eval）。5. 模型无关，但针对 Gemini 系列优化。6. 支持多智能体系统编排及代码沙箱执行。",[112],[14,26,15,13],[118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133],"agent","agents","agents-sdk","ai","ai-agents","multi-agent-systems","multi-agents","multi-agents-collaboration","aiagentframework","genai","genai-chatbot","llms","agentic","agentic-ai","llm","multi-agent",6,"2026-03-27T02:49:30.150509","2026-04-06T05:19:39.181700",[138,143,147,152,157,161],{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},2916,"如何参与 ADK 社区会议或获取更新信息？","维护者确认会有定期的社区讨论会议。首次虚拟社区会议定于 2025 年 10 月 15 日举行，主题包括 ADK 路线图及贡献方式。可通过提供的 Google Meet 链接加入会议，并添加日历邀请以接收提醒。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F2133",{"id":144,"question_zh":145,"answer_zh":146,"source_url":142},2917,"是否有比 Vertex AI Memory Bank 更经济实惠的长期记忆方案？","对于小型项目，官方 Memory Bank 可能成本过高。建议采用可插拔的长期记忆组件，使用 Postgres + pgvector、SQLite 或 DuckDB 等廉价且开发者友好的基础设施来存储和检索聊天历史及知识。这可以作为切换到 Vertex AI Memory Bank 之前的入门选择。",{"id":148,"question_zh":149,"answer_zh":150,"source_url":151},2918,"在使用上下文缓存（context caching）时遇到 INVALID_ARGUMENT 错误如何解决？","早期版本不支持使用任意的缓存内容，因为 ADK 对缓存内容有特定要求（例如使用缓存内容时不应设置工具配置、工具和系统指令）。目前该功能已支持，但需确保遵循 ADK 的缓存规范。建议升级至最新版本的 ADK 以获得完整支持。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F211",{"id":153,"question_zh":154,"answer_zh":155,"source_url":156},2919,"在 Agentspace 中注册授权代理时出现 AGENT_ENGINE_FAILED_PRECONDITION 错误怎么办？","此问题主要由旧版依赖引起。请将 google-adk 和 google-cloud-aiplatform 库升级到最新版本。运行命令：`pip install google-adk google-cloud-aiplatform --upgrade`。确保 aiplatform 版本至少为 1.132.0 以修复异步迭代和部署初始化问题。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3534",{"id":158,"question_zh":159,"answer_zh":160,"source_url":156},2920,"ADK 代理的 deep_research（深度研究）功能在 Agentspace 中是否完全兼容？","虽然核心部署和会话错误已修复，但涉及思考功能（thinking features）的 deep_research 在 Agentspace 中仍可能存在边缘情况（edge cases）。如果遇到兼容性问题，可能需要等待上游修复，或者暂时使用不包含思考功能的简化代理作为变通方案。",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},2921,"会话对象中的 last_update_time 早于 storage_session 更新时间导致报错如何解决？","这是一个已知的会话时间戳不一致问题，已在后续版本中修复。请确保将 ADK 升级到最新版本。具体的修复提交记录为：https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F1063fa532cad59d8e9f7421ce2f523724d49d541。","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F1733",[167,172,177,182,187,192,197,202,207,212,217,222,227,232,237,242,247,252,257,262],{"id":168,"version":169,"summary_zh":170,"released_at":171},102398,"v2.0.0a2","## [2.0.0-alpha.2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv2.0.0-alpha.1...v2.0.0-alpha.2) (2026-03-26)\r\n\r\n### Bug Fixes\r\n\r\n* add agent name validation to prevent arbitrary module imports ([be094f7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fbe094f7e50e3976cb69468c7a8d17f3385132c41))\r\n* add protection for arbitrary module imports ([0019801](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0019801f6080a371a71b09cbd8291f2e79a49336)), closes [#4947](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4947)\r\n* Default to ClusterIP so GKE deployment isn't publicly exposed by default ([27aed23](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F27aed23edddcc8c69c4c4563198c8570aa40743e))\r\n* enforce allowed file extensions for GET requests in the builder API ([68ece4e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F68ece4e04fb3829e61847dae123cf4bc79a0a4c2))\r\n* Exclude compromised LiteLLM versions from dependencies pin to 1.82.6 ([79ed953](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F79ed95383dd0bc13984b6499913babef232d4dab))\r\n* gate builder endpoints behind web flag ([584283e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F584283e2d8209af9db719fdeae506892d4a44ca2))\r\n* Update eval extras to Vertex SDK package version with constrained LiteLLM upperbound ([a86d0aa](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa86d0aa7d70d1c70346eceef591d255ed96711c8))\r\n","2026-03-27T00:02:15",{"id":173,"version":174,"summary_zh":175,"released_at":176},102399,"v1.28.0","## [1.28.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.27.5...v1.28.0) (2026-03-26)\r\n\r\n\r\n### Features\r\n\r\n* **a2a:** add lifespan parameter to to_a2a() ([0f4c807](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0f4c8073e5a180a220f88928d67ee8d521486f03)), closes [#4701](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4701)\r\n* Add a new extension for the new version of ADK-A2A integration ([6f0dcb3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6f0dcb3e26dd82fed1a8564c17a47eec03b04617))\r\n* Add ability to run individual unit tests to unittests.sh ([b3fcd8a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb3fcd8a21fe64063cdd8d07121ee4da3adb44c30))\r\n* Add database_role property to SpannerToolSettings and use it in execute_sql to support fine grained access controls ([360e0f7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F360e0f7ebaba7a682f7230c259b474ace7ff6d13))\r\n* Add index to events table and update dependencies ([3153e6d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F3153e6d74f401f39e363a36f6fa0664f245013db)), closes [#4827](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4827)\r\n* Add MultiTurn Task success metric ([9a75c06](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9a75c06873b79fbd206b3712231c0280fb2f87ca))\r\n* Add MultiTurn Task trajectory and tool trajectory metrics ([38bfb44](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F38bfb4475406d63af3111775950d9c25acf17ed2))\r\n* Add slack integration to ADK ([6909a16](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6909a167c8d030111bf7118b9d5e78255a299684))\r\n* Add Spanner Admin Toolset ([28618a8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F28618a8dcbee9c4faeec6653a5d978d0330f39bb))\r\n* Add SSE streaming support to conformance tests ([c910961](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fc910961501ef559814f54c22aca1609fd3227b80))\r\n* Add support for Anthropic's thinking_blocks format in LiteLLM integration ([fc45fa6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffc45fa68d75fbf5276bf5951929026285a8bb4af)), closes [#4801](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4801)\r\n* Add support for timeout to UnsafeLocalCodeExecutor ([71d26ef](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F71d26ef7b90fe25a5093e4ccdf74b103e64fac67))\r\n* **auth:** Integrate GCP IAM Connectors (Noop implementation) ([78e5a90](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F78e5a908dcb4b1a93e156c6f1b282f59ec6b69d4))\r\n* **bigquery:** Migrate 1P BQ Toolset ([08be442](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F08be44295de614f30e686113897af7fe9c228751)) ([7aa1f52](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7aa1f5252c15caaf40fde73ac4283fa0a48d8a96)) ([d112131](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd1121317ef4e1ac559f4ae13855ac1af28eef8f6)) ([166ff99](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F166ff99b9266cd3bb0e86070c58a67d937216297))\r\n* enable suppressing A2A experimental warnings ([fdc2b43](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffdc2b4355b5a73b8f32d3fa32a092339d963ce67))\r\n* Enhance AgentEngineSandboxCodeExecutor sample to automatically provision an Agent Engine if neither agent_engine_resource_name nor sandbox_resource_name is provided ([6c34694](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6c34694da64968bc766a7e5e860c0ed9acbc69c2))\r\n* Extract and merge EventActions from A2A metadata ([4b677e7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4b677e73b939f5a13269abd9ba9fe65e4b78d7f6)), closes [#3968](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3968)\r\n* **mcp:** add sampling callback support for MCP sessions ([8f82697](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8f826972cc06ef250c1f020e34b9d1cdbd0788c4))\r\n* Optional GCP project and credential for GCS access ([2f90c1a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2f90c1ac09638517b08cd96a17d595f0968f0bf6))\r\n* Support new embedding model in files retrieval ([faafac9](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffaafac9bb33b45174f04746055fc655b12d3e7f7))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* add agent name validation to prevent arbitrary module imports ([116f75d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F116f75d))\r\n* add protection for arbitrary module imports ([995cd1c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F995cd1c)), closes [#4947](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4947)\r\n* Add read-only session support in DatabaseSessionService ([f6ea58b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ff6ea58b5939b33afad5a2d2f8fb395150120ae07)), closes [#4771](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4771)\r\n* Allow snake case for skill name ([b157276](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb157276cbb3c4f7f7b97e338e9d9df63d9c949cd))\r\n* **bigquery:** use valid dataplex OAuth scope ([4010716](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4010716470fc83918dc367c5971342ff551401c8))\r\n* Default to ClusterIP so GKE deployment isn't publicly exposed by default ([f7359e3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ff7359e3fd40eae3b8ef50c7bc88f1075ffb9b7de))\r\n* **deps:** bump google-genai minimum to &gt;=1.64.0 for gemini-embedding-2-preview ([f8270c8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ff8270c826","2026-03-26T22:47:37",{"id":178,"version":179,"summary_zh":180,"released_at":181},102400,"v1.27.5","## [1.27.5](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.27.4...v1.27.5) (2026-03-26)\r\n\r\n### Bug Fixes\r\n\r\n* Update eval extras to Vertex SDK package version with constrained LiteLLM upperbound ([77928a8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F77928a81c39a955c2559b80d3ce137d6503b5264))","2026-03-26T02:53:21",{"id":183,"version":184,"summary_zh":185,"released_at":186},102401,"v1.27.4","## [1.27.4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.27.3...v1.27.4) (2026-03-24)\r\n\r\n### Bug Fixes\r\n\r\n* Exclude compromised LiteLLM versions from dependencies pin to 1.82.6 ([fa5e707](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffa5e707c11ad748e7db2f653b526d9bdc4b7d405))\r\n* gate builder endpoints behind web flag ([44b3f72](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F44b3f72d8f4ee09461d0acd8816149e801260b84))\r\n","2026-03-24T23:44:21",{"id":188,"version":189,"summary_zh":190,"released_at":191},102402,"v1.27.3","## [1.27.3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.27.2...v1.27.3) (2026-03-23)\r\n### Bug Fixes\r\n  * add protection for arbitrary module imports ([276adfb](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F276adfb7ad552213c0201a3c95efbc9876bf3b66))\r\n","2026-03-23T23:04:37",{"id":193,"version":194,"summary_zh":195,"released_at":196},102403,"v2.0.0a1","## Features\r\n\r\nIntroduces two major capabilities:\r\n* **Workflow runtime:** graph-based execution engine for composing\r\n  deterministic execution flows for agentic apps, with support for\r\n  routing, fan-out\u002Ffan-in, loops, retry, state management, dynamic\r\n  nodes, human-in-the-loop, and nested workflows\r\n* **Task API:** structured agent-to-agent delegation with multi-turn\r\n  task mode, single-turn controlled output, mixed delegation\r\n  patterns, human-in-the-loop, and task agents as workflow nodes","2026-03-18T16:40:25",{"id":198,"version":199,"summary_zh":200,"released_at":201},102404,"v1.27.2","### Bug Fixes\r\n  * Use valid dataplex OAuth scope for BigQueryToolset ([4010716](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4010716470fc83918dc367c5971342ff551401c8))\r\n  * Store and retrieve usage_metadata in Vertex AI custom_metadata ([b318eee](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb318eee979b1625d3d23ad98825c88f54016a12f))\r\n","2026-03-17T21:12:43",{"id":203,"version":204,"summary_zh":205,"released_at":206},102405,"v1.27.1","### Bug Fixes\r\n  * Rolling back change to fix issue affecting LlmAgent creation due to missing version field ([0e18f81](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0e18f81a5cd0d0392ded653b1a63a236449a2685))\r\n","2026-03-13T23:05:14",{"id":208,"version":209,"summary_zh":210,"released_at":211},102406,"v1.27.0","### Features\r\n* **[Core]**\r\n  * Introduce A2A request interceptors in RemoteA2aAgent ([6f772d2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6f772d2b0841446bc168ccf405b59eb17c1d671a))\r\n  * Add UiWidget to EventActions for supporting new experimental UI Widgets feature ([530ff06](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F530ff06ece61a93855a53235e85af18b46b2a6a0))\r\n  * **auth:** Add pluggable support for auth integrations using AuthProviderRegistry within CredentialManager ([d004074](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd004074c90525442a69cebe226440bb318abad29))\r\n  * Support all `types.SchemaUnion` as output_schema in LLM Agent ([63f450e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F63f450e0231f237ee1af37f17420d37b15426d48))\r\n  * durable runtime support ([07fdd23](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F07fdd23c9c3f5046aa668fb480840f67f13bf271))\r\n  * **runners:** pass GetSessionConfig through Runner to session service ([eff724a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Feff724ac9aef2a203607f772c473703f21c09a72))\r\n\r\n* **[Models]**\r\n  * Add support for PDF documents in Anthropic LLM ([4c8ba74](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4c8ba74fcb07014db187ef8db8246ff966379aa9))\r\n  * Add streaming support for Anthropic models ([5770cd3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5770cd3776c8805086ece34d747e589e36916a34)), closes [#3250](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3250)\r\n  * Enable output schema with tools for LiteLlm models ([89df5fc](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F89df5fcf883b599cf7bfe40bde35b8d86ab0146b)), closes [#3969](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3969)\r\n  * Preserve thought_signature in LiteLLM tool calls ([ae565be](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fae565be30e64249b2913ad647911061a8b170e21)), closes [#4650](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4650)\r\n\r\n* **[Web]**\r\n  * Updated human in the loop: developers now can respond to long running functions directly in chat\r\n  * Render artifacts when resuming\r\n  * Fix some light mode styles\r\n  * Fix token level streaming not working properly ([22799c0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F22799c0833569753021078f7bd8dcd11ece562fe))\r\n\r\n* **[Observability]**\r\n  * **telemetry:** add new gen_ai.agent.version span attribute ([ffe97ec](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fffe97ec5ad7229c0b4ba573f33eb0edb8bb2877a))\r\n  * **otel:** add `gen_ai.tool.definitions` to experimental semconv ([4dd4d5e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4dd4d5ecb6a1dadbc41389dac208616f6d21bc6e))\r\n  * **otel:** add experimental semantic convention and emit `gen_ai.client.inference.operation.details` event ([19718e9](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F19718e9c174af7b1287b627e6b23a609db1ee5e2))\r\n  * add missing token usage span attributes during model usage ([77bf325](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F77bf325d2bf556621c3276f74ee2816fce2a7085))\r\n  * capture tool execution error code in OpenTelemetry spans ([e0a6c6d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe0a6c6db6f8e2db161f8b86b9f11030f0cec807a))\r\n \r\n* **[Tools]**\r\n  * Warn when accessing DEFAULT_SKILL_SYSTEM_INSTRUCTION ([35366f4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F35366f4e2a0575090fe12cd85f51e8116a1cd0d3))\r\n  * add preserve_property_names option to OpenAPIToolset ([078b516](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F078b5163ff47acec69b1c8e105f62eb7b74f5548))\r\n  * Add gcs filesystem support for Skills. It supports skills in text and pdf format, also has some sample agents ([6edcb97](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6edcb975827dbd543a40ae3a402d2389327df603))\r\n  * Add list_skills_in_dir to skills utils ([327b3af](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F327b3affd2d0a192f5a072b90fdb4aae7575be90))\r\n  * Add support for MCP App UI widgets in MCPTool ([86db35c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F86db35c338adaafb41e156311465e71e17edf35e))\r\n  * add Dataplex Catalog search tool to BigQuery ADK ([82c2eef](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F82c2eefb27313c5b11b9e9382f626f543c53a29e))\r\n  * Add RunSkillScriptTool to SkillToolset ([636f68f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F636f68fbee700aa47f01e2cfd746859353b3333d))\r\n  * Add support for ADK tools in SkillToolset ([44a5e6b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F44a5e6bdb8e8f02891e72b65ef883f108c506f6a))\r\n  * limit number of user-provided BigQuery job labels and reserve internal prefixes ([8c4ff74](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8c4ff74e7d70cf940f54f6d7735f001495ce75d5))\r\n  * Add param support to Bigtable execute_sql ([5702a4b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5702a4b1f59b17fd8b290fc125c349240b0953d7))\r\n  * **bigtable:** add Bigtable cluster metadata tools ([34c560e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F34c560e66e7ad379f586bbcd45a9460dc059bee2))\r\n  * execute-type param addition in GkeCodeExecutor ([9c45166](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9c451662819a6c7de71be71d12ea715b2fe74135))\r\n  * **skill:** Add","2026-03-12T22:48:33",{"id":213,"version":214,"summary_zh":215,"released_at":216},102407,"v1.26.0","## [1.26.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.25.1...v1.26.0) (2026-02-26)\r\n\r\n\r\n### Features\r\n\r\n* **[Core]**\r\n  * Add intra-invocation compaction and token compaction pre-request ([485fcb8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F485fcb84e3ca351f83416c012edcafcec479c1db))\r\n  * Use `--memory_service_uri` in ADK CLI run command ([a7b5097](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa7b509763c1732f0363e90952bb4c2672572d542))\r\n\r\n* **[Models]**\r\n  * Add `\u002Fchat\u002Fcompletions` integration to `ApigeeLlm` ([9c4c445](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9c4c44536904f5cf3301a5abb910a5666344a8c5))\r\n  * Add `\u002Fchat\u002Fcompletions` streaming support to Apigee LLM ([121d277](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F121d27741684685c564e484704ae949c5f0807b1))\r\n  * Expand LiteLlm supported models and add registry tests ([d5332f4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd5332f44347f44d60360e14205a2342a0c990d66))\r\n\r\n* **[Tools]**\r\n  * Add `load_skill_from_dir()` method ([9f7d5b3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9f7d5b3f1476234e552b783415527cc4bac55b39))\r\n  * Agent Skills spec compliance — validation, aliases, scripts, and auto-injection ([223d9a7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F223d9a7ff52d8da702f1f436bd22e94ad78bd5da))\r\n  * BigQuery ADK support for search catalog tool ([bef3f11](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fbef3f117b4842ce62760328304484cd26a1ec30a))\r\n  * Make skill instruction optimizable and can adapt to user tasks ([21be6ad](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F21be6adcb86722a585b26f600c45c85e593b4ee0))\r\n  * Pass trace context in MCP tool call's `_meta` field with OpenTelemetry propagator ([bcbfeba](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fbcbfeba953d46fca731b11542a00103cef374e57))\r\n\r\n* **[Evals]**\r\n  * Introduce User Personas to the ADK evaluation framework ([6a808c6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6a808c60b38ad7140ddeb222887c6accc63edce9))\r\n\r\n* **[Services]**\r\n  * Add generate\u002Fcreate modes for Vertex AI Memory Bank writes ([811e50a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F811e50a0cbb181d502b9837711431ef78fca3f34))\r\n  * Add support for memory consolidation via Vertex AI Memory Bank ([4a88804](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4a88804ec7d17fb4031b238c362f27d240df0a13))\r\n\r\n* **[A2A]**\r\n  * Add interceptor framework to `A2aAgentExecutor` ([87fcd77](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3))\r\n\r\n* **[Auth]**\r\n  * Add native support for `id_token` in OAuth2 credentials ([33f7d11](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F33f7d118b377b60f998c92944d2673679fddbc6e))\r\n  * Support ID token exchange in `ServiceAccountCredentialExchanger` ([7be90db](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7be90db24b41f1830e39ca3d7e15bf4dbfa5a304)), closes [#4458](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4458)\r\n\r\n* **[Integrations]**\r\n  * Agent Registry in ADK ([abaa929](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fabaa92944c4cd43d206e2986d405d4ee07d45afe))\r\n  * Add schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin ([4260ef0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4260ef0c7c37ecdfea295fb0e1a933bb0df78bea))\r\n  * Change default BigQuery table ID and update docstring ([7557a92](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7557a929398ec2a1f946500d906cef5a4f86b5d1))\r\n  * Update Agent Registry to create AgentCard from info in get agents endpoint ([c33d614](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fc33d614004a47d1a74951dd13628fd2300aeb9ef))\r\n\r\n* **[Web]**\r\n  * Enable dependency injection for agent loader in FastAPI app gen ([34da2d5](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F34da2d5b26e82f96f1951334fe974a0444843720))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Add OpenAI strict JSON schema enforcement in LiteLLM ([2dbd1f2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2dbd1f25bdb1d88a6873d824b81b3dd5243332a4)), closes [#4573](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4573)\r\n* Add push notification config store to agent_to_a2a ([4ca904f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4ca904f11113c4faa3e17bb4a9662dca1f936e2e)), closes [#4126](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F4126)\r\n* Add support for injecting a custom google.genai.Client into Gemini models ([48105b4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F48105b49c5ab8e4719a66e7219f731b2cd293b00)), closes [#2560](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F2560)\r\n* Add support for injecting a custom google.genai.Client into Gemini models ([c615757](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fc615757ba12093ba4a2ba19bee3f498fef91584c)), closes [#2560](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F2560)\r\n* Check both `input_stream` parameter name and its annotation to decide whether it's a streaming tool that accept input stream ([d56cb41](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd56cb4142c5040b6e7d13beb09123b8a59341384))\r\n* **deps:** Increase pydantic lower version to 2.7.0 ([dbd6420](https:\u002F\u002Fgithub.c","2026-02-26T23:35:23",{"id":218,"version":219,"summary_zh":220,"released_at":221},102408,"v1.25.1","## [1.25.1](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.25.0...v1.25.1) (2026-02-18)\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Fix pickling lock errors in McpSessionManager ([4e2d615](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4e2d6159ae3552954aaae295fef3e09118502898))\r\n","2026-02-18T22:20:39",{"id":223,"version":224,"summary_zh":225,"released_at":226},102409,"v1.25.0","## [1.25.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.24.1...v1.25.0) (2026-02-11)\r\n\r\n### Features\r\n\r\n* **[Core]**\r\n  * Add a demo for the simple prompt optimizer for the optimization interface ([0abf4cd](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0abf4cd2c7103a071506c9398455a3bd66fe5da5))\r\n  * Add `--auto_create_session` flag to `adk api_server` CLI ([40c15d0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F40c15d059599472b40f48272a464eb3cb7345fc6))\r\n  * Add `add_events_to_memory` facade for event-delta ([59e8897](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F59e88972ae4f10274444593db0607f40cfcc597e))\r\n  * Add post-invocation token-threshold compaction with event retention ([a88e864](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa88e8647558a9b9d0bfdf38d2d8de058e3ba0596))\r\n  * Add report generation to `adk conformance test` command ([43c437e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F43c437e38b9109b68a81de886d1901e4d8f87a01))\r\n\r\n* **[Models]**\r\n  * Add base_url option to Gemini LLM class ([781f605](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf))\r\n\r\n* **[Tools]**\r\n  * Enhance google credentials config to support externally passed access token ([3cf43e3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F3cf43e3842d9987499ea70d6f63d6e1c4d4a07db))\r\n  * Update agent simulator by improving prompts and add environment data ([7af1858](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7af1858f46b66fa4471c5ba7943385f2d23d08d3))\r\n  * Add a load MCP resource tool ([e25227d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe25227da5e91a8c1192af709f8e8bb2a471ded92))\r\n  * Add SkillToolset to adk ([8d02792](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a))\r\n\r\n* **[Web]**\r\n  * Add `\u002Fhealth` and `\u002Fversion` endpoints to ADK web server ([25ec2c6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F25ec2c6b614cf8d185ff6dbdac5697a210be68da))\r\n\r\n### Bug Fixes\r\n\r\n* Use async iteration for VertexAiSessionService.list_sessions pagination ([758d337](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F758d337c76d877e3174c35f06551cc9beb1def06))\r\n* Fix event loop closed bug in McpSessionManager ([4aa4751](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4aa475145f196fb35fe97290dd9f928548bc737f))\r\n* Preserve thought_signature in function call conversions for interactions API integration ([2010569](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F20105690100d9c2f69c061ac08be5e94c50dc39c))\r\n* Propagate grounding and citation metadata in streaming responses ([e6da417](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe6da4172924ecc36ffc2535199c450a2a51c7bcc))\r\n* Add endpoints to get\u002Flist artifact version metadata ([e0b9712](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe0b9712a492bf84ac17679095b333642a79b8ee6))\r\n* Support escaped curly braces in instruction templates ([7c7d25a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7c7d25a4a6e4389e23037e70b8efdcd5341f44ea))\r\n* Strip timezone for PostgreSQL timestamps in DatabaseSessionService ([19b6076](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F19b607684f15ce2b6ffd60382211ba5600705743))\r\n* Prompt token may be None in streaming mode ([32ee07d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F32ee07df01f10dbee0e98ca9d412440a7fe9163d))\r\n* Pass invocation_id from `\u002Frun` endpoint to `Runner.run_async` ([d2dba27](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd2dba27134f833e5d929fdf363ada9364cc852f9))\r\n* Conditionally preserve function call IDs in LLM requests ([663cb75](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F663cb75b3288d8d0649412e1009329502b21cbbc))\r\n* Migrate VertexAiMemoryBankService to use the async Vertex AI client ([64a44c2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F64a44c28974de77cf8934f9c3d1bc03691b90e7b))\r\n* Handle list values in Gemini schema sanitization ([fd8a9e3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffd8a9e3962cca4f422beb7316cbe732edf726d51))\r\n* Used logger to log instead of print in MCP ([6bc70a6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6bc70a6bab79b679a4b18ad146b3450fb9014475))\r\n\r\n### Improvements\r\n\r\n* Replace check of instance for LlmAgent with hasAttribute check ([7110336](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7110336788662abb8c9bbbb0a53a50cc09130d5e))\r\n* Log exception details before re-raising in MCP session execution ([de79bf1](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fde79bf12b564a4eefc7e6a2568dbe0f08bb6efeb))","2026-02-11T22:59:22",{"id":228,"version":229,"summary_zh":230,"released_at":231},102410,"v1.24.1","## [1.24.1](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.24.0...v1.24.1) (2026-02-06)\r\n\r\n### Bug Fixes\r\n\r\n* Add back deprecated eval endpoint for web until we migrate([ae993e8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fae993e884f44db276a4116ebb7a11a2fb586dbfe))\r\n* Update eval dialog colors, and fix a2ui component types ([3686a3a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F3686a3a98f46738549cd7a999f3773b7a6fd1182))\r\n","2026-02-06T18:57:15",{"id":233,"version":234,"summary_zh":235,"released_at":236},102411,"v1.24.0","## [1.24.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.23.0...v1.24.0) (2026-02-04)\r\n\r\n### ⚠ BREAKING CHANGES\r\n\r\n* Breaking: Make credential manager accept `tool_context` instead of `callback_context` ([fe82f3c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffe82f3cde854e49be13d90b4c02d786d82f8a202))\r\n\r\n### Highlights\r\n\r\n* **[Web]**\r\n  * **Consolidated Event View**: Replaced the Event tab with a more intuitive \"click-to-expand\" interaction on message rows, enabling faster debugging within the chat context\r\n  * **Enhanced Accessibility**: Added full support for arrow-key navigation for a more seamless, keyboard-centric experience\r\n  * **Rich Developer Tooling**: Introduced detailed tooltips for function calls, providing instant visibility into arguments, responses, and state changes\r\n  * **A2UI Integration**: Integrated the **A2UI v0.8** standard catalog to automatically render spec-compliant ADK parts as native UI components directly in the chat\r\n\r\n### Features\r\n\r\n* **[Core]**\r\n  * Allow passthrough of `GOOGLE_CLOUD_LOCATION` for Agent Engine deployments ([004e15c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F004e15ccb7c7f683623f8e7d2e77a9d12558c545))\r\n  * Add interface for agent optimizers ([4ee125a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4ee125a03856fdb9ed28245bf7f5917c2d9038db))\r\n  * Pass event ID as metadata when converted into a message ([85434e2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F85434e293f7bd1e3711f190f84d5a36804e4462b))\r\n  * Restructure the bug report template as per the intake process ([324796b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F324796b4fe05bec3379bfef67071a29552ef355a))\r\n\r\n* **[Models]**\r\n  * Mark Vertex calls made from non-Gemini models ([7d58e0d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7d58e0d2f375bc80bdfac9cffea2926fd2344b8a))\r\n\r\n* **[Evals]**\r\n  * Allow Vertex AI Client initialization with API Key ([43d6075](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F43d6075ea7aa49ddb358732f2219ca9598dd286f))\r\n  * Remove overall evaluation status calculation from `_CustomMetricEvaluator` and add threshold to custom metric function expected signature ([553e376](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F553e376718ceb3d7fb1403231bb720836d71f42c))\r\n\r\n* **[Tools]**\r\n  * Make OpenAPI tool asynchronous ([9290b96](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9290b966267dc02569786f95aab2a3cb78c7004f))\r\n  * Implement toolset authentication for `McpToolset`, `OpenAPIToolset`, and other toolsets ([798f65d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F798f65df86b1bbe33d864e30c5b1f9e155e89810))\r\n  * Add framework support for toolset authentication before `get_tools` calls ([ee873ca](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fee873cae2e2df960910d264a4340ce6c0489eb7a))\r\n  * Support dynamic configuration for `VertexAiSearchTool` ([585ebfd](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F585ebfdac7f1b8007b4e4a7e4258ec5de72c78b1))\r\n  * Add `get_auth_config` method to toolset to expose authentication requirements ([381d44c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F381d44cab437cac027af181ae627e7b260b7561e))\r\n  * Add methods in `McpToolset` for users to access MCP resources ([8f7d965](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8f7d9659cfc19034af29952fbca765d012169b38))\r\n  * Improve error message when failing to get tools from MCP ([3480b3b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F3480b3b82d89de69f77637d7ad034827434df45a))\r\n\r\n* **[Services]**\r\n  * Improve `asyncio` loop handling and test cleanup ([00aba2d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F00aba2d884d24fb5244d1de84f8dba9cbc3c07e8))\r\n\r\n* **[Live]**\r\n  * Support running tools in separate threads for live mode ([714c3ad](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F714c3ad0477e775fba6696a919a366a293197268))\r\n\r\n* **[Observability]**\r\n  * Add extra attributes to spans generated with `opentelemetry-instrumentation-google-genai` ([e87a843](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe87a8437fb430e0d4c42c73948e3ba1872040a15))\r\n\r\n### Bug Fixes\r\n\r\n* Ignore `session_db_kwargs` for SQLite session services ([ce07cd8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fce07cd8144c8498434f68e61ebeb519bf329f778))\r\n* Resolve `MutualTLSChannelError` by adding `pyopenssl` dependency ([125bc85](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F125bc85ac5e1400bc38f7c681f76fa82626c9911))\r\n* Add `update_timestamp_tz` property to `StorageSession` ([666cebe](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F666cebe3693d2981fd5fea6e9e4c65e56dcd3f2b))\r\n* Do not treat Function Calls and Function Responses as invisible when marked as thoughts ([853a3b0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F853a3b0e143ce27516f0de51e0e0df2af6ecf465))\r\n* Add pre-deployment validation for agent module imports (credit to @ppgranger, [2ac468e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2ac468ea7e30ef30c1324ffc86f67dbf32ab7ede))\r\n* Fix cases where `execution_result_delimiters` have `None` type element ([a16e3cc](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa16e3cc67e1cb391228ba78662547672404ae550))\r\n* D","2026-02-05T18:34:54",{"id":238,"version":239,"summary_zh":240,"released_at":241},102412,"v1.23.0","## [1.23.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.22.1...v1.23.0) (2026-01-22)\r\n\r\n### ⚠ BREAKING CHANGES\r\n\r\n* Breaking: Use OpenTelemetry for BigQuery plugin tracing, replacing custom `ContextVar` implementation ([ab89d12](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fab89d1283430041afb303834749869e9ee331721))\r\n\r\n### Features\r\n\r\n* **[Core]**\r\n  * Add support to automatically create a session if one does not exist ([8e69a58](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8e69a58df4eadeccbb100b7264bb518a46b61fd7))\r\n  * Remove `@experimental` decorator from `AgentEngineSandboxCodeExecutor` ([135f763](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F135f7633253f6a415302142abc3579b664601d5b))\r\n  * Add `--disable_features` CLI option to override default feature enable state ([53b67ce](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F53b67ce6340f3f3f8c3d732f9f7811e445c76359))\r\n  * Add `otel_to_cloud` flag to `adk deploy agent_engine` command ([21f63f6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F21f63f66ee424501d9a70806277463ef718ae843))\r\n  * Add `is_computer_use` field to agent information in `adk-web` server ([5923da7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5923da786eb1aaef6f0bcbc6adc906cbc8bf9b36))\r\n  * Allow `thinking_config` in `generate_content_config` ([e162bb8](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe162bb8832a806e2380048e39165bf837455f88c))\r\n  * Convert A2UI messages between A2A `DataPart` metadata and ADK events ([1133ce2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F1133ce219c5a7a9a85222b03e348ba6b13830c8f))\r\n  * Add `--enable_features` CLI option to override default feature enable state ([79fcddb](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F79fcddb39f71a4c1342e63b4d67832b3eccb2652))\r\n\r\n* **[Tools]**\r\n  * Add flush mechanism to `BigQueryAgentAnalyticsPlugin` to ensure pending log events are written to BigQuery ([9579bea](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9579bea05d946b3d8b4bfec35e510725dd371224))\r\n  * Allow Google Search tool to set a different model ([b57a3d4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb57a3d43e4656f5a3c5db53addff02b67d1fde26))\r\n  * Support authentication for MCP tool listing ([e3d542a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe3d542a5ba3d357407f8cd29cfdd722f583c8564) [19315fe](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F19315fe557039fa8bf446525a4830b1c9f40cba9))\r\n  * Use JSON schema for `base_retrieval_tool`, `load_artifacts_tool`, and `load_memory_tool` declarations when the feature is enabled ([69ad605](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F69ad605bc4bbe9a4f018127fd3625169ee70488e))\r\n  * Use JSON schema for `IntegrationConnectorTool` declaration when the feature is enabled ([2ed6865](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2ed686527ac75ff64128ce7d9b1a3befc2b37c64))\r\n  * Start and close `ClientSession` in a single task in `McpSessionManager` ([cce430d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcce430da799766686e65f6cae02ba64e916d5c8a))\r\n  * Use JSON schema for `RestApiTool` declaration when the feature is enabled ([a5f0d33](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa5f0d333d7f26f2966ed511d5d9def7a1933f0c2))\r\n\r\n* **[Evals]**\r\n  * Update `adk eval` CLI to consume custom metrics by adding `CustomMetricEvaluator` ([ea0934b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fea0934b9934c1fefd129a1026d6af369f126870e))\r\n  * Update `EvalConfig` and `EvalMetric` data models to support custom metrics ([6d2f33a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6d2f33a59cfba358dd758378290125fc2701c411))\r\n\r\n* **[Observability]**\r\n  * Add minimal `generate_content {model.name}` spans and logs for non-Gemini inference and when `opentelemetry-inference-google-genai` dependency is missing ([935c279](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F935c279f8281bde99224f03d936b8abe51cbabfc))\r\n\r\n* **[Integrations]**\r\n  * Enhance `TraceManager` asynchronous safety, enrich BigQuery plugin logging, and fix serialization ([a4116a6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa4116a6cbfadc161982af5dabd55a711d79348b7))\r\n\r\n* **[Live]**\r\n  * Persist user input content to session in live mode ([a04828d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa04828dd8a848482acbd48acc7da432d0d2cb0aa))\r\n\r\n### Bug Fixes\r\n\r\n* Recursively extract input\u002Foutput schema for AgentTool ([bf2b56d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fbf2b56de6d0052e40b6d871b2d22c56e9225e145))\r\n* Yield buffered `function_call` and `function_response` events during live streaming ([7b25b8f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7b25b8fb1daf54d7694bf405d545d46d2c012d2b))\r\n* Update `authlib` and `mcp` dependency versions ([7955177](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7955177fb28b8e5dc19aae8be94015a7b5d9882a))\r\n* Set `LITELLM_MODE` to `PRODUCTION` before importing LiteLLM to prevent implicit `.env` file loading ([215c2f5](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F215c2f506e21a3d8c39551b80f6356943ecae320))\r\n* Redact sensitive information from URIs in logs ([5257869](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5257869d91a","2026-01-22T23:28:19",{"id":243,"version":244,"summary_zh":245,"released_at":246},102413,"v1.22.1","### Bug Fixes\r\n* Add back `adk migrate session` CLI ([8fb2be2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8fb2be216f11dabe7fa361a0402e5e6316878ad8)).\r\n* Escape database reserved keyword ([94d48fc](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F94d48fce32a1f07cef967d50e82f2b1975b4abd9)).\r\n","2026-01-12T20:52:02",{"id":248,"version":249,"summary_zh":250,"released_at":251},102414,"v1.22.0","### Features\r\n\r\n* **[Core]**\r\n  * Make `LlmAgent.model` optional with a default fallback ([b287215](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb28721508a41bf6bcfef52bbc042fb6193a32dfa)).\r\n  * Support regex for allowed origins ([2ea6e51](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2ea6e513cff61d3f330274725c66f82fce4ba259)).\r\n  * Enable PROGRESSIVE_SSE_STREAMING feature by default ([0b1cff2](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0b1cff2976d1c04acf3863f76107b05d1cec448f)).\r\n\r\n* **[Evals]**\r\n  * Add custom instructions support to LlmBackedUserSimulator ([a364388](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa364388d9744969760fd87ed24d60793146c162a)).\r\n  * Introduce a post-hoc, per-turn evaluator for user simulations ([e515e0f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe515e0f321a259016c5e5f6b388ecf02ae343ba7)).\r\n\r\n* **[Tools]**\r\n  * Expose mcps streamable http custom httpx factory parameter ([bfed19c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fbfed19cd78298fc9f896da8ed82a756004e92094)).\r\n  * Add a handwritten tool for Cloud Pub\u002FSub ([b6f6dcb](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb6f6dcbeb465a775b9c38ace7a324ee2155d366f)).\r\n  * Add `token_endpoint_auth_method` support to OAuth2 credentials ([8782a69](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8782a695036aa0c1528027673868159143f925f0)).\r\n\r\n* **[Services]**\r\n  * Introduce new JSON-based database schema for DatabaseSessionService, which will be used for newly-created databases. A migration command and script are provided.([7e6ef71](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7e6ef71eec8be2e804286cc4140d0cbdf84f1206) [ba91fea](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fba91fea54136ab60f37c10b899c3648d0b0fa721) [ce64787](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fce64787c3e1130d1678e408aa31011fc88590e15)).\r\n  * Set log level when deploying to Agent Engine ([1f546df](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F1f546df35a1c18aeb3d2fc7a2ac66edf386027c5)).\r\n\r\n* **[A2A]**\r\n  * Update event_converter used in A2ARemote agent to use a2a_task.status.message only if parts are non-empty ([e4ee9d7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe4ee9d7c46b57eed8493539d8f539c042bdfae60)).\r\n\r\n### Bug Fixes\r\n\r\n* Add checks for event content and parts before accessing ([5912835](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5912835c975673c8fc2fb315150f5ec29d685eac)).\r\n* Validate app name in `adk create` command ([742c926](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F742c9265a260a9c598a1f65e0996d926b4b9c022)).\r\n* Prevent .env files from overriding existing environment variables ([0827d12](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0827d12ccd74feb24758f64f2884c9493001b4ca)).\r\n* Prevent ContextFilterPlugin from creating orphaned function responses ([e32f017](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe32f017979e26a94b998311cafcde753fd29e44e)).\r\n* Update empty event check to include executable code and execution results ([688f48f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F688f48fffb9df6ef18a692cd2ccaa7628f4c82a7)).\r\n* Make the BigQuery analytics plugin work with agents that don't have instructions such as the LoopAgent ([8bed01c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8bed01cbdc5961c0d219fd6389f492f1a4235de5)).\r\n* Label response as thought if task is immediately returned as working ([4f3b733](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4f3b733074c867e68ca5d38720ccb1f3e0b0d960)).\r\n* Move and enhance the deprecation warning for the plugins argument in \"_validate_runner_params\" to the beginning of the function ([43270bc](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F43270bcb6197526ba5765f83d7e4fb88f213b8d3)).\r\n* Oauth refresh not triggered on token expiry ([69997cd](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F69997cd5ef44ee881a974bb36dc100e17ed6de2e)).\r\n* Fix double JSON encoding when saving eval set results ([fc4e3d6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ffc4e3d6f607032259e68e91bcb1ad0815a03164e)).\r\n* Allow string values for ToolTrajectoryCriterion.match_type ([93d6e4c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F93d6e4c888d5a2181e3c22da049d8be0d6ead70c)).\r\n* Fix inconsistent method signatures for evaluate_invocations ([0918b64](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F0918b647df6f88b95974d486a3161121a6514901)).\r\n* Honor the modalities parameter in adk api server for live API ([19de45b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F19de45b3250d09b9ec16c45788e7d472b3e588c2)).\r\n* Filter out thought parts in lite_llm._get_content ([1ace8fc](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F1ace8fc6780bc25e2ef4222c73bc2558082b0a00)).\r\n* Rehydration of EventActions in StorageEvent.to_event ([838530e](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F838530ebe053e5193d4329c5a203ca3d096ff7be)).\r\n* Heal missing tool results before LiteLLM requests ([6b7386b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6b7386b7620bbc51cda8c1c6d9914549536640e6)).\r\n* Refine Ollama content flattening and provider checks ([c6f389d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fc6f389d4bc4d2b91795003a3bd87","2026-01-08T18:48:02",{"id":253,"version":254,"summary_zh":255,"released_at":256},102415,"v1.21.0","## [1.21.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.20.0...v1.21.0) (2025-12-11)\r\n\r\n### Features\r\n* **[Interactions API Support]**\r\n  * The newly released Gemini [Interactions API](https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Finteractions) is supported in ADK Now. To use it:\r\n  ```Python\r\n  Agent(\r\n    model=Gemini(\r\n        model=\"gemini-3-pro-preview\",\r\n        use_interactions_api=True,\r\n    ),\r\n    name=\"...\",\r\n    description=\"...\",\r\n    instruction=\"...\",\r\n  )\r\n  ```\r\n  see [samples](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Ftree\u002Fmain\u002Fcontributing\u002Fsamples\u002Finteractions_api) for details\r\n\r\n\r\n* **[Services]**\r\n  * Add `add_session_to_memory` to `CallbackContext` and `ToolContext` to explicitly save the current session to memory ([7b356dd](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7b356ddc1b1694d2c8a9eee538f3a41cf5518e42))\r\n\r\n* **[Plugins]**\r\n  * Add location for table in agent events in plugin BigQueryAgentAnalytics ([507424a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F507424acb9aabc697fc64ef2e9a57875f25f0a21))\r\n  * Upgrade BigQueryAgentAnalyticsPlugin to v2.0 with improved performance, multimodal support, and reliability ([7b2fe14](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F7b2fe14dab96440ee25b66dae9e66eadba629a56))\r\n\r\n\r\n* **[A2A]**\r\n  * Adds ADK EventActions to A2A response ([32e87f6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F32e87f6381ff8905a06a9a43a0207d758a74299d))\r\n\r\n* **[Tools]**\r\n  * Add `header_provider` to `OpenAPIToolset` and `RestApiTool` ([e1a7593](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe1a7593ae8455d51cdde46f5165410217400d3c9))\r\n  * Allow overriding connection template ([cde7f7c](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcde7f7c243a7cdc8c7b886f68be55fd59b1f6d5a))\r\n  * Add SSL certificate verification configuration to OpenAPI tools using the `verify` parameter ([9d2388a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9d2388a46f7a481ea1ec522f33641a06c64394ed))\r\n  * Use json schema for function tool declaration when feature enabled ([cb3244b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcb3244bb58904ab508f77069b436f85b442d3299))\r\n\r\n* **[Models]**\r\n  * Add Gemma3Ollama model integration and a sample ([e9182e5](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fe9182e5eb4a37fb5219fc607cd8f06d7e6982e83))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Install dependencies for py 3.10 ([9cccab4](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F9cccab453706138826f313c47118812133e099c4))\r\n* Refactor LiteLLM response schema formatting for different models ([894d8c6](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F894d8c6c2652492324c428e8dae68a8646b17485))\r\n* Resolve project and credentials before creating Spanner client ([99f893a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F99f893ae282a04c67cce5f80e87d3bfadd3943e6))\r\n* Avoid false positive \"App name mismatch\" warnings in Runner ([6388ba3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F6388ba3b2054e60d218eae6ec8abc621ed0a1139))\r\n* Update the code to work with either 1 event or more than 1 events ([4f54660](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4f54660d6de54ddde0fec6e09fdd68890ce657ca))\r\n* OpenAPI schema generation by skipping JSON schema for judge_model_config ([56775af](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F56775afc48ee54e9cbea441a6e0fa6c8a12891b9))\r\n* Add tool_name_prefix support to OpenAPIToolset ([82e6623](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F82e6623fa97fb9cbc6893b44e228f4da098498da))\r\n* Pass context to client interceptors ([143ad44](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F143ad44f8c5d1c56fc92dd691589aaa0b788e485))\r\n* Yield event with error code when agent run raised A2AClientHTTPError ([b7ce5e1](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb7ce5e17b6653074c5b41d08b2027b5e9970a671))\r\n* Handle string function responses in LiteLLM conversion ([2b64715](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2b6471550591ee7fc5f70f79e66a6e4080df442b))\r\n* ApigeeLLM support for Built-in tools like GoogleSearch, BuiltInCodeExecutor when calling Gemini models through Apigee ([a9b853f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa9b853fe364d08703b37914a89cf02293b5c553b))\r\n* Extract and propagate task_id in RemoteA2aAgent ([82bd4f3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F82bd4f380bd8b4822191ea16e6140fe2613023ad))\r\n* Update FastAPI and Starlette to fix CVE-2025-62727 (ReDoS vulnerability) ([c557b0a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fc557b0a1f2aac9f0ef7f1e0f65e3884007407e30))\r\n* Add client id to token exchange ([f273517](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ff2735177f195b8d7745dba6360688ddfebfed31a))\r\n\r\n### Improvements\r\n\r\n* Normalize multipart content for LiteLLM's ollama_chat provider ([055dfc7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F055dfc79747aa365db8441908d4994f795e94a68))\r\n* Update adk web, fixes image not rendering, state not updating, update drop down box width and trace icons ([df86847](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fdf8684734bbfd5a8afe3b4362574fe93dcb43048))\r\n* Add sample agent for interaction api integration ([68d7048](https:\u002F\u002Fgithub.com","2025-12-12T01:09:10",{"id":258,"version":259,"summary_zh":260,"released_at":261},102416,"v1.20.0","## [1.20.0](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.19.0...v1.20.0) (2025-12-01)\r\n\r\n\r\n### Features\r\n* **[Core]**\r\n  * Add enum constraint to `agent_name` for `transfer_to_agent` ([4a42d0d](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F4a42d0d9d81b7aab98371427f70a7707dbfb8bc4))\r\n  * Add validation for unique sub-agent names ([#3557](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3557)) ([2247a45](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2247a45922afdf0a733239b619f45601d9b325ec))\r\n  * Support streaming function call arguments in progressive SSE streaming feature ([786aaed](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F786aaed335e1ce64b7e92dff2f4af8316b2ef593))\r\n\r\n* **[Models]**\r\n  * Enable multi-provider support for Claude and LiteLLM ([d29261a](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fd29261a3dc9c5a603feef27ea657c4a03bb8a089))\r\n\r\n* **[Tools]**\r\n  * Create APIRegistryToolset to add tools from Cloud API registry to agent ([ec4ccd7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fec4ccd718feeadeb6b2b59fcc0e9ff29a4fd0bac))\r\n  * Add an option to disallow propagating runner plugins to AgentTool runner ([777dba3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F777dba3033a9a14667fb009ba017f648177be41d))\r\n\r\n* **[Web]**\r\n  * Added an endpoint to list apps with details ([b57fe5f](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fb57fe5f4598925ec7592917bb32c7f0d6eca287a))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Allow image parts in user messages for Anthropic Claude ([5453b5b](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F5453b5bfdedc91d9d668c9eac39e3bb009a7bbbf))\r\n* Mark the Content as non-empty if its first part contains text or inline_data or file_data or func call\u002Fresponse ([631b583](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F631b58336d36bfd93e190582be34069613d38559))\r\n* Fixes double response processing issue in `base_llm_flow.py` where, in Bidi-streaming (live) mode, the multi-agent structure causes duplicated responses after tool calling. ([cf21ca3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcf21ca358478919207049695ba6b31dc6e0b2673))\r\n* Fix out of bounds error in _run_async_impl ([8fc6128](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F8fc6128b62ba576480d196d4a2597564fd0a7006))\r\n* Fix paths for public docs ([cd54f48](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcd54f48fed0c87b54fb19743c9c75e790c5d9135))\r\n* Ensure request bodies without explicit names are named 'body' ([084c2de](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F084c2de0dac84697906e2b4beebf008bbd9ae8e1)), closes [#2213](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F2213)\r\n* Optimize Stale Agent with GraphQL and Search API to resolve 429 Quota errors ([cb19d07](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcb19d0714c90cd578551753680f39d8d6076c79b))\r\n* Update AgentTool to use Agent's description when input_schema is provided in FunctionDeclaration ([52674e7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F52674e7fac6b7689f0e3871d41c4523e13471a7e))\r\n* Update LiteLLM system instruction role from \"developer\" to \"system\" ([2e1f730](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F2e1f730c3bc0eb454b76d7f36b7b9f1da7304cfe)), closes [#3657](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F3657)\r\n* Update session last update time when appending events ([a3e4ad3](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa3e4ad3cd130714affcaa880f696aeb498cd93af)), closes [#2721](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fissues\u002F2721)\r\n* Update the retry_on_closed_resource decorator to retry on all errors ([a3aa077](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa3aa07722a7de3e08807e86fd10f28938f0b267d))\r\n* Windows Path Handling and Normalize Cross-Platform Path Resolution in AgentLoader ([a1c09b7](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fa1c09b724bb37513eaabaff9643eeaa68014f14d))\r\n\r\n\r\n### Documentation\r\n\r\n* Add Code Wiki badge to README ([caf23ac](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fcaf23ac49fe08bc7f625c61eed4635c26852c3ba))","2025-12-03T23:10:01",{"id":263,"version":264,"summary_zh":265,"released_at":266},102397,"v1.28.1","## [1.28.1](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcompare\u002Fv1.28.0...v1.28.1) (2026-04-02)\r\n\r\n\r\n### Features\r\n\r\n* **live:** support live for `gemini-3.1-flash-live-preview` model ([ee69661](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Fee69661a616056fa89e0ec2188aaa59bd714d8c9))\r\n\r\n\r\n### Bug Fixes\r\n\r\n* Disallow args on \u002Fbuilder and Add warning about Web UI usage to CLI help ([f037f68](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002Ff037f68d67ae1bd16b00df0c7523fb67cbd1e911))\r\n* **live:** Buffer tool calls and emit them together upon turn completion ([081adbd](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fadk-python\u002Fcommit\u002F081adbdfa41490e4868b028a1cdabceb811a7505))","2026-04-02T22:19:42"]