AI Agent如何学会使用工具Google Antigravity SDK自定义工具开发完全指南【免费下载链接】antigravity-sdk-pythonA Python library for building AI agents that leverage the full power of Google Antigravity.项目地址: https://gitcode.com/gh_mirrors/an/antigravity-sdk-pythonGoogle Antigravity SDK 是 Google 开源的 Python AI Agent 开发框架帮你为智能体挂载自定义工具Custom Tools——从普通 Python 函数、带状态的工具到外部 MCP 工具服务器本文带你从零掌握让 AI Agent 学会动手干活的完整开发路径。 准备工作1 分钟安装 SDK整个工具系统的入口是Agent类它把连接管理、工具接线、策略注册全部封装好了。先安装 SDKpip install google-antigravity⚠️ SDK 依赖打包在 PyPI wheel 里的编译后运行时二进制只克隆仓库代码是无法运行的务必通过 pip 从 PyPI 安装详见 README.md。运行任何示例前设置好 API Keyexport GEMINI_API_KEYyour_api_key_here✋ 三步定义你的第一个自定义工具自定义工具的本质非常简单一个带类型注解和文档字符串docstring的 Python 函数。只需三步写函数用类型注解描述参数用 docstring 说明用途注册把函数放进LocalAgentConfig(tools[...])对话调用agent.chat()模型会在需要时自动调用工具。以官方 自定义工具示例 为例def lookup_fruit_sku(fruit_name: str) - str: 查询指定水果的 SKU 编号。 return fSKU for {fruit_name}: SKU-GEN-000 config LocalAgentConfig(tools[lookup_fruit_sku])就这么少当用户问苹果的 SKU 是多少时Agent 会自动调用lookup_fruit_sku并把结果说给用户听。关键机制SDK 会自动从函数的签名和 docstring 生成 JSON Schema 喂给模型——所以docstring 写得越清楚模型选对工具的准确率越高。 幕后英雄ToolRunner 如何执行工具所有工具的执行都由ToolRunner统一调度核心实现在 tool_runner.py。它帮你处理了这些脏活能力说明注册表管理register()按名称登记工具重复注册会立即报错同步/异步双支持自动检测async def同步函数会被丢到独立线程执行不阻塞事件循环参数自动转换用 Pydantic 按类型注解把模型给的字符串参数转成int、bool等批量并发执行process_tool_calls()可并行执行多个工具调用此外tool_context.py 定义了ToolContext类型——它是下一节状态工具的主角。 让工具记住状态ToolContext 注入普通函数是无状态的。如果工具需要在多轮对话间累计数据比如购物车、计数器、分页游标就在函数签名里声明一个ToolContext参数SDK 会在执行时自动注入且模型永远看不到这个参数def record_fruit(sku: str, count: int, ctx: ToolContext) - str: 按 SKU 记录水果数量跨轮次累计。 counts ctx.get_state(fruit_counts, {}) counts[sku] counts.get(sku, 0) count ctx.set_state(fruit_counts, counts) return f已记录{sku} 当前共 {counts[sku]} 件。ctx.get_state(key, default)/ctx.set_state(key, value)是按会话隔离的键值存储状态仅在该会话生命周期内有效多个工具之间还能借此共享数据注意工具的状态存储与 Hook 的HookContext是相互独立的两套互不可见见 tools README。注册时ToolRunner 会自动检测这个参数并缓存生成模型可见的 Schema 时把它剥掉——你完全不用关心。 管好工具的权限Policy 策略系统给 Agent 工具 给它权力。SDK 提供声明式策略hooks.py 示例from google.antigravity.hooks import policy policies [ policy.deny_all(), # 默认全部拒绝 policy.allow(lookup_fruit_sku), # 只放行我的工具 ]ask_user(tool, handler...)还能在调用前弹窗征求人工确认实现人在环中。禁用与拒绝是两个层次内置工具参考方式模型看得到工具适用场景CapabilitiesConfig.enabled_tools / disabled_tools❌ 从上下文彻底移除省 token与 Agent 职责无关的工具policy.deny()✅ 可见但运行时被拒模型知道为什么不行按参数/上下文动态拦截比如只让模型看到只读工具from google.antigravity.types import CapabilitiesConfig, BuiltinTools config LocalAgentConfig( capabilitiesCapabilitiesConfig(enabled_toolsBuiltinTools.read_only()), )SDK 内置了list_directory、run_command、search_web等 13 个工具完整清单见 types.py 的BuiltinTools枚举。 接入外部工具MCP 服务器不想写 Python可以直接接入任意 MCP 服务器其工具自动暴露给 Agentfrom google.antigravity.types import McpStdioServer config LocalAgentConfig( mcp_servers[ McpStdioServer(namemy_server, commandnpx, args[my-mcp-server]), ] )Stdio、SSE、Streamable HTTP 三种传输方式都已支持mcp_tools.py 里有完整可运行的演示。 进阶玩法覆盖内置工具注册一个与内置工具同名的自定义函数即可直接替换它的实现——无需在disabled_tools里手动关闭原工具SDK 会自动优先你的版本并打印确认日志详见 custom_tool.md 的 Overriding Built-in Tools 一节。✅ 新手避坑清单docstring 即说明书写清楚工具做什么、何时该用、参数含义这是模型学会用工具的全部依据参数加类型注解SDK 靠注解生成 Schema 并做自动类型转换返回值用字符串模型消费的是文本复杂结构记得json.dumps后返回最小权限原则deny_all() 逐个allow()比全放行再打补丁更安全同步函数放心写ToolRunner会替你放到线程里跑不会卡死异步循环。 关键文件导航入门示例hello_world.py · custom_tools.py · hooks.py工具执行引擎google/antigravity/tools/tool_runner.py状态上下文google/antigravity/tools/tool_context.py高级入口Agent / Conversationgoogle/antigravity/agent.py · conversation README内置工具与安全策略参考built_in_tools.md · safety_policies.md从一个函数 一段 docstring到带状态、有权限、连外部 MCPGoogle Antigravity SDK 让工具开发从繁琐的协议对接变成了纯 Python 的事——现在就去给你的 Agent 装上第一把瑞士军刀吧 【免费下载链接】antigravity-sdk-pythonA Python library for building AI agents that leverage the full power of Google Antigravity.项目地址: https://gitcode.com/gh_mirrors/an/antigravity-sdk-python创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
如何用旧电脑搭建7×24小时下载站:Surge无头服务器与远程TUI完全指南 如何用旧电脑搭建724小时下载站:Surge无头服务器与远程TUI完全指南 【免费下载链接】Surge Blazing fast TUI download manager built in Go for power users 项目地址: https://gitcode.com/gh_mirrors/surge46/Surge
Surge 是一款用 Go 语言编写的极速 TUI… · 2026/9/26 23:03:38
Sphinx 2.0 升级指南:HTML5 默认输出、master_doc 变更与弃用 API 全景解析 文档开发工具 【免费下载链接】sphinx The Sphinx documentation generator 项目地址: https://gitcode.com/gh_mirrors/sp/sphinx 点击查看 免费下载 Sphinx 2.0 是 Sphinx 文档生成器(本项目仓库 README.rst 所对应的开源项目)从 Python 2… · 2026/9/26 23:03:38
Silo节点退役与数据再平衡:如何安全下线集群节点并完整迁移数据而不丢数据 Silo节点退役与数据再平衡:如何安全下线集群节点并完整迁移数据而不丢数据 【免费下载链接】silo S3-Compatible Object Storage. A MinIO fork maintained by PGSTY 项目地址: https://gitcode.com/gh_mirrors/minio5/silo
Silo 节点退役(Decomm… · 2026/9/26 23:03:29
新手入门必看: 告别丑模板, 3种高端建站方案硬核对比 新手入门必看: 告别丑模板, 3种高端建站方案硬核对比 是不是每次打开竞品网站,心里都憋着一口气?看着人家那个丝滑的交互、大气的视觉留白,再瞅一眼自己手里那套花了99块买的模板,满屏的牛皮癣广告和僵硬的排版,简直想砸键盘。… · 2026/9/26 23:50:28
做行业门户网站要投资多少钱?完整流程拆解与预算避坑指南 做行业门户网站要投资多少钱?完整流程拆解与预算避坑指南 网站做好了没人访问,这是90%的甲方在验收时最头疼的问题。很多老板觉得域名解析了、服务器通了就算完事,结果上线三个月,后台日志里除了爬虫全是空白。想靠门户站引流,光有壳子没用,得懂从策… · 2026/9/26 23:50:22
从单例到依赖注入:一次代码重构的完整思路拆解 1. 从单例到依赖注入:一次代码重构的完整思路拆解单例模式和依赖注入这两个词,但凡写过几年业务代码的人都不陌生。但真正让我下定决心把项目里用了三年的单例全面替换成依赖注入,是因为一次线上事故——某个下午,订单模块突然大面… · 2026/9/26 23:50:09
Windows本地部署DeepSeek全攻略:从Ollama到Dify完整实践 DeepSeek这阵子是真的火,不过大部分教程都是教你怎么在Linux服务器上折腾。我日常工作主力机就是Windows,也懒得为了跑个模型专门去开虚拟机或者买云服务器,索性就在Windows上把DeepSeek的本地部署整个流程捋了一遍。从最省事的Ollama一键部署… · 2026/9/26 23:50:09
拉曼光谱建模:LDA+PCA+BOSS+SPA四步稳健流程 简介:本资源是一套面向光谱分析与机器学习初学者及科研人员的拉曼光谱特征提取实战代码包,聚焦高维光谱数据降维、去噪与模式识别问题,适用于遥感、生物医学、食品检测等领域的光谱建模任务。包内共23个文件,含14个MATLAB脚本&… · 2026/9/26 23:50:09
Claude Code模板实战:规则、命令与工作流的分层设计指南 1. 从一次失控的AI协作开始:模板为什么是必需品如果你用过Claude Code这类终端里的AI编程工具,大概率经历过类似场景:第一次在一个老项目里启动它,你满怀期待地说"帮我看一下这个模块的重构方案",结果它直接… · 2026/9/26 23:49:31
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46