Skip to main content
Glama

arifOS — Constitutional AI Kernel

444 Route · Intent→Organ

arif_route
Read-onlyIdempotent

KERNEL 444 · Intent→organ router: classifies a natural-language intent and dispatches it to the specialist organ (GEOX geoscience, WEALTH capital, WELL vitality, A-FORGE execution). Returns the routing decision only — no organ call — unless organ_tool names the target tool and arguments carries its inputs. Prefer this over guessing organs yourself; use arif_think for reasoning you keep in-kernel.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoroute
taskNoAlias for intent (backward compat).
organNoOptional explicit organ override. If provided, intent matching is skipped and this organ is used directly.
intentNoNatural-language description of what the user wants. e.g. "interpret this seismic section", "assess portfolio risk"
actor_idNoYour agent identity, e.g. 'kimi-code/FI-008' or 'claude/sonnet'. Recorded in the audit log so this action is attributed to you.
_envelopeNoReserved for the transport layer — never fill this in.
argumentsNoArguments to pass to organ_tool.
mission_idNoExplicit human-cockpit mission binding (investigate|interpret| decide|build|monitor|remember). When set, skips keyword classification and binds the six-mission plan. Preferred over free-text when the agent already knows the mission.
organ_toolNoThe tool name on the target organ to call. If absent, returns routing decision only (no bridge call).
session_idNoSession id returned by arif_init (looks like 'sess-…'). Pass it on every call after init so the action is attributed to your governed session.
session_tokenNoSession Continuity Token (SCT) — the credential string arif_init returned alongside session_id. Pass it back on follow-up calls to prove the session is yours; without it the kernel treats you as unauthenticated.
contract_c_kwargsNoExtra keyword arguments passed through to the organ tool call, as a JSON object.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • addedInput schema / properties / _envelope / description
      Added value: +"Reserved for the transport layer — never fill this in."
    • changedInput schema / properties / actor_id / description
      Previous value: -"Calling actor."New value: +"Your agent identity, e.g. 'kimi-code/FI-008' or 'claude/sonnet'. Recorded in the audit log so this action is attributed to you."
    • addedInput schema / properties / contract_c_kwargs / description
      Added value: +"Extra keyword arguments passed through to the organ tool call, as a JSON object."
    • changedInput schema / properties / session_id / description
      Previous value: -"Governing session."New value: +"Session id returned by arif_init (looks like 'sess-…'). Pass it on every call after init so the action is attributed to your governed session."
    • changedInput schema / properties / session_token / description
      Previous value: -"SCT from arif_init (ChatGPT continuity)."New value: +"Session Continuity Token (SCT) — the credential string arif_init returned alongside session_id. Pass it back on follow-up calls to prove the session is yours; without it the kernel treats you as unauthenticated."
  2. Changed5 schema fields changed
    • removedInput schema / properties / _envelope / description
      Removed value: -"Reserved for the transport layer — never fill this in."
    • changedInput schema / properties / actor_id / description
      Previous value: -"Your agent identity, e.g. 'kimi-code/FI-008' or 'claude/sonnet'. Recorded in the audit log so this action is attributed to you."New value: +"Calling actor."
    • removedInput schema / properties / contract_c_kwargs / description
      Removed value: -"Extra keyword arguments passed through to the organ tool call, as a JSON object."
    • changedInput schema / properties / session_id / description
      Previous value: -"Session id returned by arif_init (looks like 'sess-…'). Pass it on every call after init so the action is attributed to your governed session."New value: +"Governing session."
    • changedInput schema / properties / session_token / description
      Previous value: -"Session Continuity Token (SCT) — the credential string arif_init returned alongside session_id. Pass it back on follow-up calls to prove the session is yours; without it the kernel treats you as unauthenticated."New value: +"SCT from arif_init (ChatGPT continuity)."
  3. Changed1 schema field changed
    • addedInput schema / properties / mode
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": "route"
      +}
  4. Changed5 schema fields changed
    • addedInput schema / properties / _envelope / description
      Added value: +"Reserved for the transport layer — never fill this in."
    • changedInput schema / properties / actor_id / description
      Previous value: -"Calling actor."New value: +"Your agent identity, e.g. 'kimi-code/FI-008' or 'claude/sonnet'. Recorded in the audit log so this action is attributed to you."
    • addedInput schema / properties / contract_c_kwargs / description
      Added value: +"Extra keyword arguments passed through to the organ tool call, as a JSON object."
    • changedInput schema / properties / session_id / description
      Previous value: -"Governing session."New value: +"Session id returned by arif_init (looks like 'sess-…'). Pass it on every call after init so the action is attributed to your governed session."
    • changedInput schema / properties / session_token / description
      Previous value: -"SCT from arif_init (ChatGPT continuity)."New value: +"Session Continuity Token (SCT) — the credential string arif_init returned alongside session_id. Pass it back on follow-up calls to prove the session is yours; without it the kernel treats you as unauthenticated."
  5. Changed1 schema field changed
    • removedInput schema / properties / mode
      Removed value: -{
      -  "default": "route",
      -  "description": "Operation mode: route, bridge",
      -  "enum": [
      -    "route",
      -    "bridge"
      -  ],
      -  "type": "string"
      -}
  6. Changed5 schema fields changed
    • addedInput schema / properties / intent / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / intent / default
      Added value: +null
    • removedInput schema / properties / intent / type
      Removed value: -"string"
    • addedInput schema / properties / mission_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Explicit human-cockpit mission binding (investigate|interpret|\n          decide|build|monitor|remember). When set, skips keyword\n          classification and binds the six-mission plan. Preferred\n          over free-text when the agent already knows the mission."
      +}
    • removedInput schema / required
      Removed value: -[
      -  "intent"
      -]
  7. Changed1 schema field changed
    • addedInput schema / properties / mode
      Added value: +{
      +  "default": "route",
      +  "description": "Operation mode: route, bridge",
      +  "enum": [
      +    "route",
      +    "bridge"
      +  ],
      +  "type": "string"
      +}
  8. Changed2 schema fields changed
    • addedInput schema / properties / contract_c_kwargs
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • addedInput schema / properties / session_token
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "SCT from arif_init (ChatGPT continuity)."
      +}
  9. Changed1 schema field changed
    • changedInput schema / properties / arguments / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "type": "object"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  10. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": true,
      -  "type": "object"
      -}New value: +null
  11. Changed3 schema fields changed
    • addedOutput schema / additionalProperties
      Added value: +true
    • removedOutput schema / properties
      Removed value: -{
      -  "_nine_signal_compliant": {
      -    "description": "Internal compliance flag",
      -    "type": "boolean"
      -  },
      -  "_violations": {
      -    "description": "Non-compliance audit trail",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "actor_id": {
      -    "description": "Sovereign or agent actor ID",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "delta_S": {
      -    "description": "Thermodynamic entropy change",
      -    "type": "number"
      -  },
      -  "meta": {
      -    "description": "Metadata including actor_id, mode, circuit",
      -    "type": "object"
      -  },
      -  "nine_signal": {
      -    "description": "F2 addendum nine-signal block",
      -    "type": "object"
      -  },
      -  "output_policy": {
      -    "description": "Policy constraints: DOMAIN_SEAL, DOMAIN_HOLD, DOMAIN_VOID, SIMULATION_ONLY",
      -    "type": "string"
      -  },
      -  "reasons": {
      -    "description": "Human-readable justification list",
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  "result": {
      -    "description": "Tool-specific payload",
      -    "type": "object"
      -  },
      -  "session_id": {
      -    "description": "Active session identifier",
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  },
      -  "stage_progression": {
      -    "description": "Next stage auto-chain hint",
      -    "type": [
      -      "object",
      -      "null"
      -    ]
      -  },
      -  "status": {
      -    "description": "Execution status: OK, ERROR, TIMEOUT, DRY_RUN",
      -    "type": "string"
      -  },
      -  "timestamp": {
      -    "description": "ISO-8601 timestamp",
      -    "type": "string"
      -  },
      -  "tool": {
      -    "description": "Canonical tool name that produced this response",
      -    "type": "string"
      -  },
      -  "verdict": {
      -    "description": "Constitutional verdict: SEAL, HOLD, VOID, SABAR, PROVISIONAL, PARTIAL",
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "status",
      -  "tool",
      -  "verdict",
      -  "result",
      -  "nine_signal",
      -  "reasons"
      -]
  12. First observed

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description usefully discloses that the default is a routing decision with no downstream call, and that organ_tool + arguments triggers an actual bridge call. However, that bridge call can invoke an arbitrary organ tool whose effects are unknown, which sits uneasily against the readOnlyHint=true annotation — the definition is the only place this write-capable passthrough is surfaced, and it is not reconciled with the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the routing purpose, then the default behavior, then the alternative routing to arif_think. No filler or restated name/title content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 12-parameter router with no output schema and high schema coverage, the description covers the essential decision logic (route vs. bridge) and the sibling alternative. Auth/session prerequisites are left entirely to the schema field descriptions, which is acceptable given their coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 92%, so the baseline is 3, but the description still adds semantic value by explaining the organ_tool/arguments interplay and the two-mode dispatch that the schema documents only per-field. It adds the mode-switching meaning rather than repeating field docs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (classifies) and resource (natural-language intent) and names the dispatch targets (GEOX, WEALTH, WELL, A-FORGE). It also explicitly distinguishes itself from a sibling ('use arif_think for reasoning you keep in-kernel'), so an agent can tell it apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear directive ('prefer this over guessing organs yourself') and names the alternative sibling (arif_think) with the condition that selects it. It also explains the two operating modes (route-only vs. bridge via organ_tool), though it stops short of enumerating when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.