You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Epic — Agent Sandbox & Evaluation: make the ADK a test bench
One line: DevAI can already author agents with the ADK and run them in
production, but there is nowhere in between to run an agent safely and measure whether
it is any good. This epic builds that middle.
A sandbox is the same agent runtime as production with different boundaries — not
a separate "test runtime", or you get works in sandbox, fails in production. It pins
an immutable configuration (agent version, model, prompt version, tool set, dataset
version, token/cost limits, TTL) and, crucially, controls what the agent's actions
actually reach. That last part is what makes an agent sandbox different from an
application sandbox: a normal sandbox isolates a process, an agent sandbox has to
isolate side effects, because the agent decides at runtime to call refund_customer().
An eval is a test suite for non-deterministic software. You cannot assert f(x) == y, so you fix a dataset of cases, run the agent over all of them, and score
along several dimensions: deterministic (expected JSON / tool call / schema / task
completed), trajectory (right tools, sensible order, correct arguments, recovered
from failure, no forbidden action), LLM-as-judge (groundedness, helpfulness, reasoning),
and operational (P95 latency, tokens, cost, safety). The output is never just a number — Evaluation score: 62% tells an engineer nothing; the trace of the failing case tells
them everything.
What we already have (grounded — this epic reuses, it does not rebuild)
#69 asks where sandboxed agents execute (WorkerPool + Actor vs on-demand Jobs) and
is gated on #70. This epic is deliberately substrate-agnostic: the sandbox contract,
tool gateway, traces, datasets, scorers, comparison and gates all sit above whatever
executes the agent. If Substrate lands, #180 swaps its backend and nothing else moves. #75 (the dev → test → deploy → run lifecycle harness) is the natural consumer — its
missing "test" step is an eval run in a sandbox (#185), and #190 is its gate.
Epic — Agent Sandbox & Evaluation: make the ADK a test bench
One line: DevAI can already author agents with the ADK and run them in
production, but there is nowhere in between to run an agent safely and measure whether
it is any good. This epic builds that middle.
The two concepts
A sandbox is the same agent runtime as production with different boundaries — not
a separate "test runtime", or you get works in sandbox, fails in production. It pins
an immutable configuration (agent version, model, prompt version, tool set, dataset
version, token/cost limits, TTL) and, crucially, controls what the agent's actions
actually reach. That last part is what makes an agent sandbox different from an
application sandbox: a normal sandbox isolates a process, an agent sandbox has to
isolate side effects, because the agent decides at runtime to call
refund_customer().An eval is a test suite for non-deterministic software. You cannot assert
f(x) == y, so you fix a dataset of cases, run the agent over all of them, and scorealong several dimensions: deterministic (expected JSON / tool call / schema / task
completed), trajectory (right tools, sensible order, correct arguments, recovered
from failure, no forbidden action), LLM-as-judge (groundedness, helpfulness, reasoning),
and operational (P95 latency, tokens, cost, safety). The output is never just a number —
Evaluation score: 62%tells an engineer nothing; the trace of the failing case tellsthem everything.
What we already have (grounded — this epic reuses, it does not rebuild)
src/devai/adk/,devai adk new-*/validate/publisharchitecture/registry-seeds/agents/,specializations/pipeline/stages/job_runner.py+runtime/job_spec.pypreview/service.pytools/dispatch.py,tools/registry.pypipeline/stages/evals.py,/api/analytics/evalsadapters/telemetry/,mcphub/,adapters/object_store/The five real gaps
was called → [Gateway] Tool gateway modes: real / mock / replay / block #181
per-agent eval, no trajectory, no judge → [Evals] Datasets and eval suites — versioned, published, stored independently #184, [Evals] Eval runner and scorer registry #185, [Evals] Trajectory scorer — tool choice, order, arguments, recovery, forbidden actions #186, [Evals] LLM-as-judge scorer, provider-agnostic and version-pinned #187
Issues
Phase 1 — Foundation
sandboxestable, REST APIPhase 2 — Developer sandbox (MVP ends here, plus a slice of Phase 3)
Phase 3 — Evaluation
Phase 4 — Comparison and gates
UI (after the API)
Cross-cutting
Phase 5 — Scale and governance
Sequencing
Guardrails
runtime we already run in production.
real refunds.
comparison is not trustworthy.
PrincipalLLMResolver.production secrets, explicit tool policy, immutable audit, token and cost budgets,
rate limits, destructive tools blocked unless approved.
tesserix-k8s(repo rule 5).Relationship to #69 (kagent Agent Substrate)
#69 asks where sandboxed agents execute (WorkerPool + Actor vs on-demand Jobs) and
is gated on #70. This epic is deliberately substrate-agnostic: the sandbox contract,
tool gateway, traces, datasets, scorers, comparison and gates all sit above whatever
executes the agent. If Substrate lands, #180 swaps its backend and nothing else moves.
#75 (the dev → test → deploy → run lifecycle harness) is the natural consumer — its
missing "test" step is an eval run in a sandbox (#185), and #190 is its gate.
Plan
docs/plans/agent-sandbox-evals/IMPLEMENTATION-PLAN.md