Direct tools vs. skill-backed tools
Direct tools are the workflow verbs. Skill-backed tools are the data sources. The agent always starts with a direct tool (
session_context) and ends with direct tools (propose_strategy, backtest_run).Why the split matters
- Direct tools have a fixed, small schema. They are the verbs the agent must use to drive the workflow. Their arguments never change between releases.
- Skill-backed tools are discovered progressively. The agent doesn’t know all 50+ skill names up front — it uses
search_skillsto find relevant ones, thendescribe_skillto read the manifest, thenrun_skillto execute. This keeps the tool list small while letting the catalog grow without breaking older agents. - Both are traced identically. The human sees every call, argument, and result in the web UI regardless of family.
Progressive discovery with search_skills
Agents should never hard-code skill names. The catalog grows over time, and skills can be deprecated or versioned. Always discover skills through
search_skills → describe_skill → run_skill.search_skills— pass a natural-languagequery(plus optionalasset_classandintent) and get back a ranked list of matching skill IDs with one-line summaries.describe_skill— pass askill_id(and optionalversion) to fetch the full manifest: input schema, output schema, cost, latency profile, and provider.run_skill— pass theskill_id,inputdict, andmodeto create a durable run. Poll withget_runor stream withsubscribe_run.
Tool catalog by category
Session
Data & research
Strategy
Backtest
Run management
Approvals
Artifacts
Skills (execution)
Skill-backed tools are invoked throughrun_skill. See the Skills Catalog for the full list of available skills.
The canonical workflow
1
Open a session
Call
session_context with the user’s prompt. This opens a traced research run and attaches the question. Every subsequent call is scoped to this session.2
Discover and run data skills
Call
search_skills to find relevant data sources, describe_skill to read each manifest, then run_skill to fetch data. Poll get_run or stream subscribe_run for results.3
Propose a strategy
Call
propose_strategy with a declarative StrategySpec. The service validates it against the frozen contract and stores an immutable versioned row.4
Backtest
Call
backtest_run with the spec and a date range. The engine runs a deterministic backtest and returns metrics, an equity curve, and a risk attestation.5
Request promotion (optional)
If the backtest looks good, the agent can request paper-trading promotion. A human approves or denies it from the web UI via
list_approvals / decide_approval.Session tools
session_context — open a traced research run.Data tools
market_get_ohlcv, search_skills, describe_skill — fetch data and discover skills.Strategy tools
propose_strategy — validate and store a declarative spec.Backtest tools
backtest_run — deterministic backtest with full metrics.Run management
run_skill, get_run, subscribe_run, cancel_run — durable run lifecycle.Approval tools
list_approvals, decide_approval — the human’s promotion workflow.Artifact tools
get_artifact — fetch the 8-file backtest artifact bundle.