可用工具
内置工具集(agent_toolset_20260601)当前包含以下工具。把工具集加入 Agent 配置后,下表工具默认全部启用。configs 数组中的每个条目通过 name 字段识别:Web Search(web_search)与 Web Fetch(web_fetch)近期即将支持,当前工具集还不包含;上线后将单独计费。
配置工具集
创建 Agent 时用 agent_toolset_20260601 启用完整工具集,用 configs 数组关闭特定工具或覆盖其设置。每个 config 条目还可以设置 permission_policy,控制该工具的调用是自动放行还是需要确认,见工具权限。关闭特定工具
在工具集对象的 configs 数组里把对应条目的 enabled 设为 false:只启用特定工具
default_config 对象为集合内所有工具设定基线,逐工具的 configs 条目覆盖它。要从「全部关闭」出发只开需要的工具,把 default_config.enabled 设为 false:自定义工具
除内置工具外,你还可以定义自定义工具。每个自定义工具定义了一份契约:你声明有哪些操作可用、返回什么,模型决定何时以及如何调用。模型自己不会执行任何东西——它发出一个结构化请求,你的代码执行操作,把结果送回对话。 自定义工具的调用与结果通过会话事件流完成:平台派发 agent.custom_tool_use 事件,你的应用执行后回发 user.custom_tool_result 事件。完整交互流程见事件与流式输出。自定义工具的最佳实践
- 写极其详细的描述。 这是影响工具调用效果的最重要因素。描述应说明工具做什么、什么时候用(以及什么时候不用)、每个参数的含义与影响、重要的注意事项与限制。每个工具至少三四句话,复杂工具更多。
- 把相关操作合并为更少的工具。 与其为每个动作单独建工具(create_pr、review_pr、merge_pr),不如合成一个带 action 参数的工具。更少而更强的工具能降低模型选择时的歧义。
- 工具名使用有意义的命名空间。 当工具横跨多个服务或资源时,用资源名做前缀(例如 db_query、storage_read),随着工具增多仍能保持选择无歧义。
- 让工具响应只返回高信号信息。 返回语义化、稳定的标识符(如 slug 或 UUID)而非内部引用,只包含模型决定下一步所需的字段。臃肿的响应浪费上下文,也让模型更难提取关键信息。
下一步
连接 MCP
接入 MCP 服务器,获得外部工具与数据源
工具权限
控制内置与 MCP 工具的执行时机
事件与流式输出
发送事件、处理自定义工具调用
本页对应 OpenAPI
Agent:创建与更新时的 tools 字段