defineAgent carries the agent’s LLM binding and its behavioral settings:
agents/qualifier.ts
connector and languageModel are both required — defineAgent throws at
plan time if either is missing. The connector’s integration (OpenAI,
Anthropic, …) determines which model slugs are valid.Selecting a model
Theconnector handle picks the provider; languageModel picks the model slug within it. Cargo supports the leading LLM providers — OpenAI, Anthropic, and Google Gemini among them — each behind its own connector.
List the model slugs a provider currently exposes rather than hardcoding from memory:
Behavioral parameters
Reasoning steps (maxSteps)
The maximum number of logical sub-tasks the agent can perform to reach a conclusion. Defaults to 8.
Temperature
Controls the creativity and variability of outputs. Defaults to0.2.
Extended thinking (withReasoning)
withReasoning: true lets the model think through the problem before acting — better on hard multi-step tasks, at the cost of latency and tokens. Defaults to false.
Structured output
By default an agent answers in free text (output: { type: "text" }). To make every final answer machine-parseable — for workflows or API consumers downstream — declare a JSON Schema contract:
Evaluator
Theevaluator is an LLM-as-judge that scores each of the agent’s outputs against a natural-language rubric:
threshold are flagged, so you can spot quality regressions without reading every conversation. Pair it with prompt iterations: change the systemPrompt, re-deploy, and compare evaluator pass rates.
Triggers
Agents normally respond to messages, buttriggers make them start work on their own:
connector trigger references its connector by handle or connectorRef(uuid); config is integration-specific.
Heartbeat
Aheartbeat wakes the agent up on an interval inside an ongoing chat — useful for long-running missions that should make progress without a human prompting each turn:
Optimizing for cost and speed
Once your agent works correctly, consider:- Reduce
maxStepsif tasks complete in fewer steps - Try a faster model and verify quality remains acceptable (the
evaluatorpass rate is the signal) - Lower
temperaturefor more predictable outputs - Limit resources to reduce context size and processing time

