Plugin Types & Strategies DS003 / DS022 / DS027

MRP-VM expresses all domain behavior through four typed plugin families. The core kernel is neutral — it orchestrates plugin execution but never contains retrieval, normalization, or synthesis logic.

The Four Plugin Types

TypeRoleBuilt-in Implementations
sd-pluginSeed detection: normalize user input into Intent CNL + context seedssd-symbolic, sd-llm-fast, sd-llm-deep
kb-pluginKnowledge retrieval: goal-conditioned evidence gatheringkb-fast, kb-balanced, kb-thinkingdb
gs-pluginGoal solving: produce grounded answer from evidencegs-symbolic, gs-llm-fast, gs-llm-deep
val-pluginValidation: verify answer is grounded and correct, reject to force replanningval-llm
mrp-plan-pluginMeta-rational planning: order plugin execution per requestplanner-default, planner-depth

Execution Flow

Request → Planner builds plan
  → sd-plugin candidates (first success)
  → parser/decomposer (shared services)
  → kb-plugin candidates (first sufficient)
  → gs-plugin candidates (first success or no-context fallback)
  → val-plugin validates answer (reject → replan)
→ Response

Fallback & Backtracking

Each stage tries candidates in planner-determined order. If a plugin returns unsupported or error, the next candidate is tried. Three levels of backtracking:

  1. Intra-stage: next plugin candidate within the same stage
  2. Cross-planner: if all stages fail, try the next planner (e.g. planner-depth)
  3. Weak recovery: if only no-context results are produced, accept the best weak answer rather than failing

Plugin Descriptor

Every plugin exposes a descriptor (DS003):

{
  id: "kb-balanced",
  type: "kb-plugin",
  costClass: "moderate",
  usesLLM: false,
  maxLLMCalls: 0,
  modelRoles: [],
  plannerHints: {
    supportedActs: ["compare", "explain"],
    topicTags: ["technical"],
    preferredDepth: "medium",
    evidenceStyle: ["hybrid"]
  }
}

Legacy Compatibility

The old processing_mode and retrieval_profile concepts map to typed plugins:

LegacyPlugin Equivalent
symbolic-onlysd-symbolic + gs-symbolic
llm-assistedsd-llm-fast + gs-llm-fast
fast profilekb-fast
balanced profilekb-balanced
thinkingdb profilekb-thinkingdb

Legacy fields are derived from plugin IDs for API compatibility but are not stored on sessions.