| name | runtime-engine |
| description | Working on RuntimeEngine, ExecutionContext, agent execution, or the request lifecycle. Primary tasks are tasks/0003-compiled-agent-graph.md and tasks/0004-runtime-engine.md. |
| generated | true |
| source | .ai/skills/runtime-engine.md |
Skill: Runtime Engine
When to use this skill
Use this when modifying RuntimeEngine, ExecutionContext, agent execution, or
the request lifecycle. Primary tasks: tasks/0003-compiled-agent-graph.md,
tasks/0004-runtime-engine.md.
Files to read first
AGENTS.md
docs/ARCHITECTURE.md
docs/RUNTIME_LIFECYCLE.md
docs/adr/0001-runtime-engine-created-once.md
Architecture rules
RuntimeEngine is long-lived, created once at startup from the
CompiledAgentGraph.
ExecutionContext is per-request and carries all request-scoped state.
- The compiled graph is immutable at runtime.
- The runtime operates only on compiled, typed models — never raw YAML.
Implementation rules
- Construct the engine only on startup paths; never inside request handlers.
- Do not put request state (identity, tenant, current request, rendered prompts)
on
RuntimeEngine or the compiled graph.
- Pass
ExecutionContext explicitly through routing, context resolution, prompt
rendering, and tool execution.
- Keep the engine concurrency-safe by keeping it stateless w.r.t. requests.
- Build the engine in
src/agentplatform/runtime; the graph in
src/agentplatform/graph.
Validation checklist
Common mistakes to avoid
- Recreating the runtime or recompiling the graph per request.
- Storing "current user/request" on the engine.
- Mutating the compiled graph during execution.
- Hidden global/singleton request state.