Skip to main content

Agent Architecture

Architecture Diagram

The RAI Planner agent definition lives at .github/agents/rai-planning/rai-planner.agent.md. Seven instruction files under .github/instructions/rai-planning/ provide domain-specific guidance, auto-applied via applyTo patterns when working within .copilot-tracking/rai-plans/.

Instruction fileDomain
rai-identity.instructions.mdAgent identity, orchestration, state management, session recovery
rai-standards.instructions.mdMicrosoft RAI Standard v2, NIST AI RMF subcategories, regulatory cross-references
rai-sensitive-uses.instructions.mdSensitive uses categories, restricted uses gate, vulnerable populations
rai-security-model.instructions.mdAI-specific threat taxonomy, RAI-T-{CATEGORY}-{NNN} format, likelihood-impact matrix
rai-impact-assessment.instructions.mdControl surface evaluation, evidence register, principle tradeoff analysis
rai-backlog-handoff.instructions.mdDual-format backlog handoff, content sanitization, autonomy tiers
rai-capture-coaching.instructions.mdExploration-first questioning techniques for capture mode

State Management

All assessment state persists under .copilot-tracking/rai-plans/{project-slug}/. The state.json file tracks phase progress, entry mode, and assessment metadata.

State Fields

FieldTypePurpose
projectSlugstringKebab-case project identifier
raiPlanFilestringPath to the RAI plan markdown file
currentPhasenumberCurrent phase (1-6)
entryModestringcapture, from-prd, or from-security-plan
securityPlanRefstring or nullPath to security plan state when using from-security-plan
assessmentDepthstringstandard or deep assessment tier
sensitiveUsesCompletebooleanWhether Phase 2 screening is complete
sensitiveUsesCategoriesarrayIdentified sensitive uses categories
restrictedUsesClearedbooleanWhether restricted uses gate has been passed
standardsMappedbooleanWhether Phase 3 mapping is complete
raiRiskSurfaceStartedbooleanWhether Phase 4 analysis has begun
raiThreatCountnumberRunning count of identified RAI threats
impactAssessmentGeneratedbooleanWhether Phase 5 assessment is complete
evidenceRegisterCompletebooleanWhether evidence register is finalized
handoffGeneratedbooleanWhether Phase 6 backlog handoff is complete
gateResultsobjectPhase 2 gate outcomes for sensitive and restricted uses
scoredDimensionsobjectPhase 6 scorecard: five dimensions, total, and outcome
referencesProcessedarrayFiles that have been read and incorporated
nextActionsarrayPending action items for the current phase
userPreferencesobjectUser-specified preferences for interaction and output

Six-Step State Protocol

Every conversation turn follows this protocol:

StepActionDescription
1READLoad state.json at conversation start
2VALIDATEConfirm state integrity and check for missing fields
3DETERMINEIdentify current phase and next actions from state
4EXECUTEPerform phase work (questions, analysis, artifact generation)
5UPDATEUpdate state.json with results
6WRITEPersist updated state.json to disk

Interaction Model

The agent asks up to 7 focused questions per turn, using emoji checklists to track progress within each phase.

MarkerMeaning
Pending: question not yet answered
Complete: answer received and recorded
Blocked or skipped: user indicated "skip" or "n/a"

Each turn begins by showing the current phase checklist status. When all questions for a phase reach ✅ or ❌, the agent summarizes findings and asks for explicit confirmation before advancing.

NOTE

The agent never advances to the next phase without user confirmation. This ensures the user maintains control over assessment pacing and can revisit questions before moving forward.

Session Resume Protocol

When returning to an existing RAI assessment, the agent follows a four-step resume protocol:

  1. Read state.json from the project slug directory
  2. Display current phase progress and checklist status
  3. Summarize what was completed and what remains
  4. Continue from the last incomplete action

Post-Summarization Recovery

When conversation context is compacted, a five-step recovery process reconstructs state:

  1. Read state.json for project slug and current phase
  2. Read the RAI plan markdown file referenced in raiPlanFile
  3. Reconstruct context from existing artifacts (system definition pack, sensitive uses screening, standards mapping, security model addendum, control surface catalog)
  4. Identify the next incomplete task within the current phase
  5. Resume with a brief summary of recovered state and the next action

Operational Constraints

  • All files are created under .copilot-tracking/rai-plans/{project-slug}/
  • The agent never modifies application source code
  • Embedded standards (Microsoft RAI Standard v2, NIST AI RMF 1.0) are referenced from the rai-standards instruction file
  • Additional framework lookups (WAF, CAF, ISO 42001, EU AI Act details) are delegated to the Researcher Subagent
  • In from-security-plan mode, security plan artifacts are read-only
FilePurpose
.github/agents/rai-planning/rai-planner.agent.mdAgent definition
.github/instructions/rai-planning/*.instructions.mdPhase-specific instruction files
.github/prompts/rai-planning/rai-capture.prompt.mdCapture mode entry prompt
.github/prompts/rai-planning/rai-plan-from-prd.prompt.mdPRD-seeded entry prompt
.github/prompts/rai-planning/rai-plan-from-security-plan.prompt.mdSecurity plan-seeded entry prompt
.copilot-tracking/rai-plans/{project-slug}/state.jsonAssessment state

🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.