Skip to content

Latest commit

 

History

History
48 lines (40 loc) · 2.79 KB

File metadata and controls

48 lines (40 loc) · 2.79 KB

Task Plans

Rin Task Plan v1 is an optional, engine-neutral progress record for work that needs several authoritative game actions. It is not a second policy engine and does not execute actions.

Use planning_mode=disabled for simple work. In auto mode an Agent may attach a coarse plan to its first structured decision; required rejects a decision until it provides one. Planning is part of that same model response, so Rin does not add a Planner request before every step.

Each action associated with a plan carries plan_step_ref. The Task Coordinator checks the exact plan revision and active step, then submits the ordinary typed ActionRequest through Host binding, Policy, and Operation. Only an authoritative Host Outcome or a current Observation Fact can satisfy a declared condition. Player or model text cannot advance a step without one of those Host-owned records. Every operation-outcome condition names one exact capability, and every observation-fact condition names one exact Host fact ID and expected scalar value. A successful but unrelated action or mismatched fact cannot advance the step. Plans do not retain decorative preconditions; preparation belongs in the step objective and Skills, while machine progress uses only verifiable success conditions.

Internal and external Agents share taskstate.db. The internal runtime stores only plan_id, revision, and current step in its TaskSession. MCP exposes create/get/wait/revise, pause/resume/cancel, transition, and step-action tools; it never invokes the internal model or adopts its Persona.

Plans are bounded to 16 steps, use compare-and-swap revisions, permit one active plan per actor, and allow one unfinished Operation per plan. A restart restores progress but does not restore authority: the current controller lease, Epoch, observation, capability, and Policy are checked again before any action.

Three consecutive failures from the same authoritative Outcome family permit a revision even when the current step has a higher max_attempts; that step limit still determines when the step becomes blocked. If another MCP or Principal has taken control before submission, the internal task discards its unsubmitted action and pauses as controller.contended. It does not skip the step, cancel the plan, or retry every five seconds. After the external controller releases the actor, an explicit resume causes a fresh observation before another action.

Rin Console merges internal TaskSessions with the shared PlanStore. Plans created only through MCP show their phase, conditions, evidence, revision, and controller source without exposing internal task run, resume, or cancel buttons; their owner continues to manage them through MCP.

The HTTP contract is api/task-plan-openapi.json; language-neutral requests are in api/task-plan-v1-fixtures.json.