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:
  • computer — controls a virtual desktop and performs GUI operations.
  • bash — runs shell commands inside a secure sandbox.
  • text_editor — reads, writes, and edits files.
Tools you don’t configure cannot be invoked.

Tool Type Version Suffix

Tool types in API requests must include a date version suffix (such as _20250124) so the API behavior is pinned to a specific contract. Use the latest suffix.
ToolAPI typeDescriptionTypical use cases
computercomputer_20250124Virtual desktop controlBrowser operations, GUI automation
bashbash_20250124Shell command executionInstalling dependencies, running scripts, system administration
text_editortext_editor_20250124File editingCode development, configuration changes

Current Format: JSON Array

Tool configuration is a flat JSON array; each element is a tool object:
{
  "tools": [
    {"type": "computer_20250124"},
    {"type": "bash_20250124"},
    {"type": "text_editor_20250124"}
  ]
}
Set when creating an Agent:
curl -X POST https://openapi.qoder.sh/api/v1/cloud/agents \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "dev-agent",
    "model": "qoder-best",
    "instructions": "You are a development assistant",
    "tools": [
      {"type": "computer_20250124"},
      {"type": "bash_20250124"},
      {"type": "text_editor_20250124"}
    ]
  }'

Configuration Examples

Minimal (CLI only)

{
  "tools": [
    {"type": "bash_20250124"}
  ]
}

Full Development Stack

{
  "tools": [
    {"type": "computer_20250124"},
    {"type": "bash_20250124"},
    {"type": "text_editor_20250124"}
  ]
}

With Permission Policies

A tool object can include a permission field that controls execution policy (see Permission Policies):
{
  "tools": [
    {"type": "bash_20250124", "permission": "allow"},
    {"type": "text_editor_20250124", "permission": "allow"},
    {"type": "computer_20250124", "permission": "ask"}
  ]
}

Updating Tool Configuration

PATCH the Agent to update its tool list:
curl -X PATCH https://openapi.qoder.sh/api/v1/cloud/agents/agt_abc123 \
  -H "Authorization: Bearer $QODER_PAT" \
  -H "Content-Type: application/json" \
  -d '{
    "tools": [
      {"type": "bash_20250124", "permission": "allow"},
      {"type": "text_editor_20250124", "permission": "allow"}
    ]
  }'
Updating tools is a full replacement — pass the complete array. Existing Sessions are unaffected; new Sessions use the updated configuration.

Inspect Current Tool Configuration

curl https://openapi.qoder.sh/api/v1/cloud/agents/agt_abc123 \
  -H "Authorization: Bearer $QODER_PAT" | jq '.tools'
Example output:
[
  {"type": "computer_20250124"},
  {"type": "bash_20250124"},
  {"type": "text_editor_20250124"}
]

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.