Loading
Loading

Agentic RL as a Service, Optimize agent trajectories to make agents cheaper, safer, and more reliable.
Neuron registration trends
Deploying AI agents that use multiple open-weight models requires a routing decision at every request: which model to call, in what combination (serial, parallel, fallback), and what to send them. A static model choice (pinning one model) leaves performance on the table when different scenarios reward different trade-offs. A hand-coded decision tree is brittle and scenario-specific. What practitioners need is a systematic way to author, test, and refine these routing policies in an environment that surfaces their real cost and quality trade-offs.
TrajectoryRL Season 2 makes policy optimization a measurable competition. Miners submit fusion policies—programs that observe agent requests in real time and decide which models answer—evaluated against a benchmark of 26 real-world scenarios with hidden tests and deterministic verifiers. Each scenario runs in an isolated sandbox where the policy sees only the conversation stream (no ability to read task files or peek at tests), and can call any of eight allowlisted Engy models, up to a $1 per-scenario cap. The verifier runs fresh after the agent completes, so the policy cannot fake results. Validators evaluate independently and stake-weighted Bittensor consensus picks a winner; the winning policy is served as Engy's auto mode, available to every customer and harness.
The platform handles pack hosting, pre-eval (LLM-as-judge checks for hardcoding and scenario-specific tricks), metered LLM calls with cost tracking, and verifier orchestration. Miners author policies with no uptime requirement and no GPU—all evaluation happens on validators' hardware. Consensus is on-chain; the seat changes hands only when a challenger demonstrably outperforms the incumbent by a noise-aware margin.
engy/auto), eliminating the need to hand-pick a model for each use case; the policy adapts per-request.Use cases were auto-generated from the GitHub repository and may not reflect the latest changes.
TrajectoryRL (Subnet 11) is a Bittensor competition where miners submit fusion policies that decide which open-weight Engy models to call, in what combination, to serve an agent (Hermes). Validators evaluate each policy in isolated sandbox scenarios with hidden tests and deterministic verifiers. The seated winner's policy is served as Engy's auto mode.
Season 2 evaluates policies; Season 1 evaluated static instruction files (SKILL.md). Competition metric: sum of per-scenario tests passed across 26 scenarios. No GPU or uptime required from miners.
One challenge epoch per period (~20–30 min blocks). Server picks one challenger pack from the queue, exposes it via GET /api/v2/epoch/current. Validators fetch the pack, run the season's full eval (scenario containers + verifier in Docker), and POST signed scores back to the platform.
Server aggregates (Winsorized mean from spec 16; plain mean before), applies Winner Protection margin δ(s), and updates winner_state. Every tempo (~72 min, independent of epoch length) validators call set_weights with the seated winner (100% weight, others 0%, or burn to subnet owner UID if no seat). Miners submit packs via web-submit API (the sole channel).
Pre-eval gate (server-side, LLM-as-judge) filters for gaming before queue admission. Pack ownership lock prevents copies; per-miner queue gate ensures at most one pack per miner is in pending_eval at a time. Stake-weighted quorum (40% default) gates epoch finalization.
Time-decay anti-camping: takeover bar becomes easier as the seat ages (grace → decay → floor −3% handicap by ~3 days). No validator-resident state for packs, evaluation cache, or CAS consensus—everything coordinates through the platform's HTTP API.
Agentic RL as a Service, Optimize agent trajectories to make agents cheaper, safer, and more reliable.
This information was auto-extracted from the GitHub repository and may be incomplete or out of date. Always refer to the subnet's GitHub repository for the latest instructions.
Per-epoch challenge: server dispatches one challenger pack from the queue; validators evaluate it independently and post signed scores within the epoch window (~20–30 min by default). Pre-eval gate (server-side, Phase-1 LLM-as-judge): packs are checked for gaming patterns (hardcoding, fixture shortcuts, etc.) before queue admission. Aggregation: finalized epoch applies submission filter (drop rejected, below-min-stake, inactive validators), runs Winsorized mean over remaining scores, computes consensus-qualified (majority by head count), checks Winner Protection δ(s), updates winner_state.
No EMA, no split-half delta, no per-scenario weighting—score is the simple sum of tests passed across all 26 scenarios. Cost (USD per model call at frozen prices) is metered and reported but never folded into the score; $1/scenario safety cap is enforced. Stake-weighted quorum gate: epoch finalizes only if reporting stake ≥ 40% of active stake at epoch-start block; below quorum, the challenger submission is terminal (exhausted, no retry).
The sections above were auto-generated from the GitHub repository and may not reflect the latest changes. View repository
FAQs were auto-generated from the GitHub repository and may not reflect the latest changes.
Holder & total-staked metrics as of 2h ago (hourly snapshot)
Miners do not run the evaluation harness. They write SKILL.md and optionally a fusion policy (policy.py or policy.json), build a pack, and submit via web API. Validators run all evaluation on their infrastructure. Local testing via scripts/eval_pack.py requires Docker and an Engy API key.
Validators run the trajrl-bench harness (scenario containers + verifier) in Docker. No GPU required for the agent—Hermes is CPU-based. LLM inference (judge, evals) is metered through an external API (Engy). ~10 GB disk for scenario images on first run. One eval per challenger epoch (~20–30 min) costs ~$0.5–10 in LLM tokens depending on policy complexity.
Create a Bittensor wallet (one-time)
pip install bittensor-cli && btcli wallet create --wallet.name miner --wallet.hotkey default
Register on subnet 11 (dynamic cost; check balance first)
btcli subnet register --netuid 11 --wallet.name miner --wallet.hotkey default
Clone and install trajectoryrl package
git clone https://github.com/trajectoryRL/trajectoryRL && cd trajectoryRL && pip install -e .
Copy miner environment template (optional but recommended for local testing)(optional)
cp .env.miner.example .env.miner
Build a pack from SKILL.md (SKILL.md-only submission uses default policy)
trajectoryrl-miner build SKILL.md -o pack.json
Build a pack with a fusion policy directory (Season 2; policy.py or policy.json + helpers)(optional)
trajectoryrl-miner build SKILL.md --policy ./my_policy -o pack.json
Validate pack schema and size (≤32 KB) locally before submission
trajectoryrl-miner validate pack.json
Test with the exact validator harness (Docker + your Engy key; local runs cost from your account)(optional)
LLM_API_KEY=$ENGY_API_KEY python scripts/eval_pack.py --pack pack.json -o ./eval_output
Submit pack to the platform (requires 50 α recycle fee when enabled; signed with hotkey)
trajectoryrl-miner web-submit pack.json
Check on-chain commitment or latest submission status(optional)
trajectoryrl-miner status
Create a Bittensor wallet (one-time)
pip install bittensor-cli && btcli wallet create --wallet.name validator --wallet.hotkey default
Register on subnet 11 as a validator
btcli subnet register --netuid 11 --wallet.name validator --wallet.hotkey default
Stake at least 100 TAO to become eligible as a validator
btcli stake add --wallet.name validator --hotkey default --netuid 11 --amount 100
Clone and install trajectoryrl package
git clone https://github.com/trajectoryRL/trajectoryRL && cd trajectoryRL && pip install -e .
Verify Docker daemon is installed and running
docker --version
Copy validator environment template and set WALLET_NAME and LLM_API_KEY (Engy key)
cp .env.validator.example .env.validator && vim .env.validator
Start validator daemon (includes auto-update via Watchtower)
docker compose -f docker/docker-compose.validator.yml --env-file .env.validator up -d
Monitor validator logs(optional)
docker compose -f docker/docker-compose.validator.yml logs -f validator