governance-lifecycle
Use when an agent is interacting with UNITARES governance for the first time, needs to onboard, check in, or recover from a pause/reject verdict. Covers the full agent lifecycle from session start through check-ins to recovery.
Agent Lifecycle
Starting a Session
Call onboard() to register or reconnect:
onboard(name, model_type)
Returns:
- UUID: Your persistent identity across sessions
- client_session_id: Echo this back in subsequent calls for session continuity
- continuity metadata: Newer runtimes may also return
continuity_token_supportedand session-resolution diagnostics
If the runtime supports a continuity token, prefer it. Otherwise always echo client_session_id.
Check-ins
Call process_agent_update() after meaningful work:
process_agent_update(
response_text: "Brief summary of what you did",
complexity: 0.0-1.0, # Task difficulty estimate
confidence: 0.0-1.0 # How confident you are (be honest)
)
When to Check In
A Stop hook fires a lightweight check-in automatically at the end of each response turn, so the baseline cadence is one check-in per turn. In addition to that automatic signal, you should check in explicitly when any of these apply — do not wait silently past them:
- After completing a meaningful unit of work
- Before and after high-complexity tasks
- When you feel uncertain or notice drift
- At minimum once every 10 minutes of active work, or after ~5 tool calls inside a single long turn — whichever comes first
- Not after every single tool call — use judgment between these bounds
What You Get Back
A verdict plus current EISV metrics. Read the verdict and act on it.
Reading Verdicts
| Verdict | What to Do |
|---|---|
| proceed | Continue normally |
| guide + guidance text | Read the guidance, adjust your approach, keep going |
| pause | Stop your current task. Reflect on what is flagged. Consider requesting a dialectic review |
| reject | Significant concern. Requires dialectic review or human intervention |
| margin: tight | You are near a basin edge. Be more careful with next steps |
A guide verdict is an early warning. Ignoring it makes pause more likely.
Identity
- Your identity persists across sessions via UUID
- Session binding can happen via transport session,
client_session_id, or continuity token - Use
identity()when continuity seems unclear - Inspect:
identity_statusbound_identitysession_resolution_sourcecontinuity_token_supported
Strong continuity is better than implicit continuity. If the runtime falls back to weak signals such as fingerprinting, re-onboard and resume with explicit continuity data.
Recovery
When you are paused, stuck, or need intervention:
| Situation | Tool | Notes |
|---|---|---|
| Stuck or paused, want automatic recovery | self_recovery() | Attempts to restore healthy state |
| Disagree with verdict, want structured review | request_dialectic_review() | Starts thesis/antithesis/synthesis process |
| Manual override needed | operator_resume_agent() | Requires human/operator action |
Recovery is not a shortcut — self_recovery() examines your EISV state and determines if resumption is safe. If your metrics are genuinely degraded, it will not force a resume.
MCP Tools Reference
Essential (use in every session)
onboard()— Register or reconnect identityprocess_agent_update()— Check in with work summary, complexity, confidenceget_governance_metrics()— Read your current EISV stateidentity()— Confirm who the runtime thinks you are and how continuity was resolvedhealth_check()— Check operator-facing server health when behavior seems oddsearch_knowledge_graph()— Find existing knowledge before creating new entriesleave_note()— Quick contribution to the knowledge graph
Common (use when needed)
knowledge()— Full knowledge graph CRUD (store, update, details, cleanup)agent()— Agent lifecycle (list, archive, get details)calibration()— Check or update calibration datarequest_dialectic_review()— Start a dialectic sessionexport()— Export session history
Specialized
call_model()— Delegate to a secondary LLM for analysisdetect_stuck_agents()— Find unresponsive agentsself_recovery()— Resume from stuck or paused statesubmit_thesis()/submit_antithesis()/submit_synthesis()— Dialectic participation