Simulation Lab is agent-agnostic. The default agent uses a tool-calling loop with any LLM API (via LiteLLM), but you can bring your own agent implementation by implementing theDocumentation Index
Fetch the complete documentation index at: https://docs.collinear.ai/llms.txt
Use this file to discover all available pages before exploring further.
BaseAgent contract.
The Agent Contract
A custom agent extendsBaseAgent and implements four methods:
The Environment Interface
Theenvironment object passed to your agent provides:
environment.list_tools(tool_server=None)— returns tool schemas (names, descriptions, input schemas) for one server or all servers in the workspace.environment.call_tool(tool_server, tool_name, parameters)— executes a tool call on a specific server and returns aToolCallResult.environment.tool_servers— property returning adict[str, str]mapping server names to base URLs.
list_tools() calls GET /tools, and call_tool() calls POST /step.
Run Artifacts
As the agent executes, it populates aRunArtifacts object — the structured record of the run (conversation history, tool calls, results, errors). Helper methods (record_message, record_tool_call, set_error) allow incremental recording so that partial results are captured even on timeout or error.
Verifiers consume RunArtifacts to determine whether the agent succeeded. This is the contract between agent execution and verification — your agent populates it, and verifiers read from it.
