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),仅供参考
