Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.qoder.com/llms.txt

Use this file to discover all available pages before exploring further.

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. Tools you don’t configure cannot be invoked.

Available Tools

Tool name (enabled_tools value)PurposeTypical use cases
BashShell command executionInstalling dependencies, running scripts, calling APIs with curl
ReadFile readingViewing mounted files, code reading
WriteFile writing (create/overwrite)Generating reports, producing output
EditPartial file editingChanging configuration, editing code
GlobGlob pattern file listingFinding code files
GrepFile content searchLocating strings
WebFetchHTTP GET a single pageFetching documentation/pages
WebSearchWeb searchLooking up information
Notes:
  • Tool names are capitalized (Bash not bash); they also appear capitalized in event streams
  • enabled_tools cannot be an empty array (an empty array means 0 tools, and the session will never respond after entering processing)
  • Writing an unknown tool name in enabled_tools (such as "Foo") is silently accepted by the server, but the agent will not actually receive that tool
  • 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/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/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/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 will have no tools available and can only have plain-text conversations. 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.