Skip to main content
GET
JavaScript
What the agent can call in this objective, resolved at run time. This is the answer to “why did the agent not use that tool?”, and it is not the same list as the tool set the tools came from.
Each item is a context-window tool: metadata with a cwt_... id, and snapshot, a frozen copy of the tool’s full definition (description, parameters, requiresApproval, config, llmToolName). The snapshot is why the objective is stable, the agent runs against the tool as it was, not as it is now.

Resolved, not raw

The set of tools here is the tool set’s rows after resolution, so it can be shorter than the set:
  • Deduplicated. Two rows with the same tool name collapse to one the agent sees.
  • Filtered. A tool an adapter’s excludeTools removes does not load, even if its row still reads STATE_AVAILABLE in the set. This endpoint reflects what the filter did.
  • Assigned only. Only tools from tool sets assigned to the serving variation are here.
So when a set shows five rows and the agent used two, this is where you confirm the agent had only those two. The tool set’s tool list tells you what exists; this tells you what the agent got.

Progressive discovery adds to it

If the variation uses progressive discovery, the agent starts with a small tool list and the tool_search built-in loads more into the run on demand. Those later-loaded tools appear here too, so this list grows over an objective’s life. Read it after the run to see the full set the agent ended up with, not only what it began with.

List tools

The tool set’s rows, before resolution.

List tool calls

Which of these tools the agent called.

Preventing tool bloat

Progressive discovery, which grows this list mid-run.

Create a tool set

excludeTools, which shortens this list.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

workspaceId
string
required
Example:

"workspace_01HXKD2E5NQM3T9AYWCF133E3Q"

objectiveId
string
required

The ID of the objective. Supports "external_id:" prefix for external IDs.

Example:

"obj_01HXKD2E5NQM3T9AYWCFQAZGFV"

Query Parameters

limit
integer<int32>

Maximum number of results to return

cursor
string

Pagination cursor from previous response

Response

OK

items
object[]
pagination
object

Page carries cursor-based pagination state. There is no total: the cursor walks the result set without ever counting it, and a count would cost a second query on every list.