首页 Agent Tools

Agent Tools

更新时间: 2026-07-03 16:07:31

Tools determine what an Agent can do. By configuring the tools field when creating or updating an Agent, you precisely control its capabilities.

What Tools Do

When executing a task, the Agent decides which capabilities it can call based on the tools configuration. All tools are configured through a single object { "type": "agent_toolset_20260401", "enabled_tools": [...] }, selectively enabling atomic tools in the enabled_tools array.

When enabled_tools is a non-empty allowlist, tools outside the list are not visible to the model and no invocation attempt is made. When enabled_tools is omitted or an empty array, all built-in tools are exposed to the model. When the tools field itself is omitted or set to [], the model receives no tool schema at all (see FAQ below).

Available Tools

Tool name (enabled_tools value)

Purpose

Typical use cases

Bash

Shell command execution

Installing dependencies, running scripts, calling APIs with curl

Read

File reading

Viewing mounted files, code reading

Write

File writing (create/overwrite)

Generating reports, producing output

Edit

Partial file editing

Changing configuration, editing code

Glob

Glob pattern file listing

Finding code files

Grep

File content search

Locating strings

WebFetch

HTTP GET a single page

Fetching documentation/pages

WebSearch

Web search

Looking up information

DeliverArtifacts

System-reserved tool. Present in the "all on" set (when enabled_tools is omitted or empty).

Not recommended to declare explicitly in enabled_tools.

Notes:

  • Tool names are capitalized (Bash not bash); they also appear capitalized in event streams

  • Omitting enabled_tools or passing an empty array [] enables all built-in tools (including DeliverArtifacts listed above). If you want the Agent to have no tools at all, omit the whole tools field or set it to [].

  • Each tool name in enabled_tools is validated — writing an unknown name (e.g. "Foo") returns 400: "unknown tool name 'Foo'"

  • The old per-tool-object schema (such as {"type": "bash_20250124"}) is no longer supported

Current Format: Single Object

Tool configuration is a single object that toggles specific tools via the enabled_tools array:

{
  "tools": [
    {
      "type": "agent_toolset_20260401",
      "enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
    }
  ]
}

Set when creating an Agent:

curl -X POST https://api.qoder.com.cn/api/v1/cloud/agents \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "dev-agent",
    "model": "ultimate",
    "instructions": "You are a development assistant",
    "tools": [
      {
        "type": "agent_toolset_20260401",
        "enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
      }
    ]
  }'

Configuration Examples

Minimal (CLI only)

{
  "tools": [
    {
      "type": "agent_toolset_20260401",
      "enabled_tools": ["Bash"]
    }
  ]
}

Full Development Stack

{
  "tools": [
    {
      "type": "agent_toolset_20260401",
      "enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
    }
  ]
}

Create a New Version (PUT Full Replacement)

Use PUT to create a new version of the Agent with updated tool configuration:

curl -X PUT https://api.qoder.com.cn/api/v1/cloud/agents/agent_abc123 \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "version": 1,
    "tools": [
      {
        "type": "agent_toolset_20260401",
        "enabled_tools": ["Bash", "Read", "Write", "Edit"]
      }
    ]
  }'

PUT is a full replacement (not a patch) — fields not included will be cleared. You must include the version field for optimistic concurrency control: - If the supplied version matches the current version: 200, version increments by 1 - If the supplied version is stale: 409 { error: { type: "conflict_error", message: "Version conflict. Expected version N, got M." }} Existing Sessions are unaffected; new Sessions use the updated configuration.

Inspect Current Tool Configuration

curl https://api.qoder.com.cn/api/v1/cloud/agents/agent_abc123 \
  -H "Authorization: Bearer $QODER_PAT" | jq '.tools'

Example output:

[
  {
    "type": "agent_toolset_20260401",
    "enabled_tools": ["Bash", "Read", "Write", "Edit", "Glob", "Grep", "WebFetch", "WebSearch"]
  }
]

FAQ

Q: What if I don't configure tools? A: The Agent has no tools available and can only have plain-text conversations. To give the Agent any tool capability, pass at least [{"type":"agent_toolset_20260401"}] (which enables all built-in tools).

Q: Can I override tools at the Session level? A: Not currently. Tool configuration is bound to the Agent, and all Sessions for that Agent share the same toolset.

Q: Does the order of tools matter? A: No. The Agent decides which tool to invoke based on the task context.

Q: Will the version suffix change over time? A: Yes. As new tool versions ship, new dated suffixes are introduced. Watch the changelog and adopt the latest suffix.