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
Track the roadmap for making Rig a strong foundation for production-grade, interactive coding agents: agents that can be steered while running, execute tools safely, preserve and resume sessions, compose child agents and tools, and support extensible host-defined workflows.
Rig already has many of the right building blocks:
a shared streaming/non-streaming agent drive loop;
AgentHook, HookStack, StepEvent, and fail-closed Flow semantics;
dynamic ToolServerHandle registration;
structured ToolExecutionResult, ToolFailure, and typed tool extensions;
ConversationMemory, memory policies, demotion, and compaction;
per-request tool selection and tool concurrency.
The remaining work is mostly about connecting these pieces into a coherent host/runtime contract. This epic coordinates existing issues and identifies missing child issues. It is not intended to land as one PR.
Motivation
Good coding agents need more than a ReAct loop. Interactive harnesses such as Pi demonstrate the value of a small core with strong host control:
steering and follow-up messages during an active run;
cancellation that reaches model requests, tools, and child work;
resumable, branchable sessions with compaction;
dynamically registered and selected tools;
lifecycle interception for policy, approvals, context, and observability;
safe local, remote, and sandboxed execution;
progressive-disclosure skills;
subagent and composite-tool orchestration.
Rig should provide provider-agnostic primitives for these capabilities without hard-coding one TUI, sandbox, scripting language, storage backend, or orchestration style.
Design principles
Host control over product opinion.rig-core should expose lifecycle and execution primitives; applications decide UI, permissions, storage, and workflow.
One runtime contract. Streaming and non-streaming paths must preserve the same control-flow and tool semantics.
Cancellation is end-to-end. Model calls, native tools, MCP tools, nested dispatch, and child agents should observe one run-scoped cancellation/deadline contract.
Native tools remain first-class. MCP and provider-hosted tools should integrate without forcing in-process Rust tools through an external protocol.
Structured internally, serialized only at boundaries. Host metadata and rich tool outputs should not depend on magic JSON string conventions.
Concurrency must be explicit. Call-scoped state, file mutations, output ordering, and parent/child relationships must remain correct under parallel execution.
Persistence should preserve history, not only the latest prompt. Durable sessions must support recovery and branching without requiring every host to reinvent an event log.
Large changes land as focused PRs. Each item below should have its own issue, acceptance criteria, tests, and migration plan where applicable.
Define a provider-independent skill catalog using progressive disclosure: advertise names/descriptions, then load full instructions and assets on demand.
Keep filesystem discovery and project trust in optional host/companion layers rather than forcing them into every Agent.
Support the Agent Skills standard where practical and preserve provenance/tool restrictions.
Subagents
Create a focused child issue after scoped execution is available:
spawn child agents with fresh or inherited context;
Summary
Track the roadmap for making Rig a strong foundation for production-grade, interactive coding agents: agents that can be steered while running, execute tools safely, preserve and resume sessions, compose child agents and tools, and support extensible host-defined workflows.
Rig already has many of the right building blocks:
AgentHook,HookStack,StepEvent, and fail-closedFlowsemantics;ToolServerHandleregistration;ToolExecutionResult,ToolFailure, and typed tool extensions;ConversationMemory, memory policies, demotion, and compaction;The remaining work is mostly about connecting these pieces into a coherent host/runtime contract. This epic coordinates existing issues and identifies missing child issues. It is not intended to land as one PR.
Motivation
Good coding agents need more than a ReAct loop. Interactive harnesses such as Pi demonstrate the value of a small core with strong host control:
Rig should provide provider-agnostic primitives for these capabilities without hard-coding one TUI, sandbox, scripting language, storage backend, or orchestration style.
Design principles
rig-coreshould expose lifecycle and execution primitives; applications decide UI, permissions, storage, and workflow.Phase 1: interactive run control
Steering and follow-up messages
push_notificationto inject messages during multi-turn prompts #1858.Cancellation, interruption, and resume
cancel,steer, andfollow_upoperations.Terminal status
Phase 2: run-scoped execution and composition
The umbrella issue for this phase is #2095. It should be split into focused child issues.
Run context and lifecycle
RunContextcarrying stable run/conversation identity, cancellation, deadline, and current call ancestry.ToolCallExtensionsvalue.Scoped/nested tool execution
parent_internal_call_idand expose parent/child relationships to hooks and telemetry.Call-scoped policy state
Flow::Finishor equivalent).Phase 3: host-facing tool platform
Dynamic and introspectable tool catalog
ToolServerHandlerather than creating a competing registry.Structured definitions and results
ToolDefinition#output_schema#1613 with a clear distinction between model-facing output schema and host-only metadata.Provider-hosted tools
AgentBuilder, request construction, and provider serialization.Coding-tool operational safety
Create focused child issues for:
Phase 4: sessions, memory, and reusable capabilities
Durable sessions
ConversationMemorybackend from feat: add durable database-backed ConversationMemory backends #1968.ConversationMemoryand a durable session store solve different problems and should not be conflated.Provider-independent skills
Agent.Subagents
Create a focused child issue after scoped execution is available:
Phase 5: code mode and sandbox runtimes
Cross-cutting validation
Every child issue that changes the agent runtime should cover, where applicable:
Suggested implementation order
push_notificationto inject messages during multi-turn prompts #1858 and specify feat: Checkpoint and manual interrupt/resume operations #2116.RunContextplus scoped nested execution.ToolDefinition#output_schema#1613/feat: add code-mode-ready tool lifecycle, nested dispatch, and rich outputs #2095.Non-goals
rig-core.Completion criteria for this epic
This epic can be considered complete when a downstream host can, using stable public Rig APIs: