Skip to main content

AgentXchain v2.46.0

v2.46.0 ships the declarative policy engine — a first-class governance surface for turn-acceptance rules. Operators can now define policies that constrain agent behavior during governed execution, with proper escalation, recovery, and operator feedback at every layer.

Declarative Policy Engine​

Policies are defined in agentxchain.json under the policies key. Each policy is a named set of rules evaluated at turn acceptance.

Five built-in rules​

RuleDescription
require_statusRequire specific turn status (e.g., only accepted, needs_revision)
max_consecutive_same_roleCap consecutive turns from the same role
require_challengeRequire challenge content in turn artifacts
max_cost_per_turnEnforce per-turn cost ceiling
min_artifactsRequire a minimum number of artifacts per turn

Three actions​

ActionBehavior
warnLog a warning, accept the turn
blockReject the turn, do not persist state
escalatePersist blocked state with structured recovery descriptor

Phase and role scoping​

Rules can be scoped to specific phases and/or roles:

{
"policies": {
"qa-must-challenge": {
"rules": [
{
"rule": "require_challenge",
"action": "block",
"phases": ["qa"],
"roles": ["qa"]
}
]
}
}
}

Runtime-aware escalation recovery​

Policy escalations now produce the same structured blocked_reason as every other blocked-state writer in the system. This means:

  • agentxchain status shows policy_escalation with the violating policy ID and the correct recovery command
  • Recovery is runtime-aware: retained manual turns surface agentxchain resume; retained non-manual turns surface agentxchain step --resume
  • The dashboard shows policy-blocked states with actionable recovery guidance
  • Run history records policy-blocked transitions alongside all other terminal outcomes

Previously, policy escalation wrote a plain-string blocked_reason, which caused the recovery system to classify it as unknown_block.

Cost enforcement fix​

max_cost_per_turn now reads turnResult.cost.usd as the primary cost field and falls back to legacy turnResult.cost.total_usd for compatibility. Previously it only read cost.total_usd, which could silently fail to enforce cost caps on runs using the current cost schema.

Operator CLI guidance​

agentxchain accept-turn now renders policy-specific output for both policy_violation (block) and policy_escalation (escalate) outcomes:

  • Violating policy IDs and rule names
  • Violation messages with detail
  • Typed recovery descriptor with owner and exact recovery command
  • Turn retention status

Policy docs surface​

A dedicated Policies page documents configuration, built-in rules, actions, phase/role scoping, and the recovery path. Policies appear in the docs sidebar, llms.txt, and sitemap.xml.

VS Code Marketplace readiness​

Added a dedicated test guard for marketplace readiness: valid package.json, publisher field, .vscodeignore, and README. Publisher creation remains a human task.

Evidence​

  • 3308 tests / 698 suites / 0 failures
  • Policy evaluator: 38 tests across 13 suites
  • Policy escalation recovery: 7 unit + 2 runtime integration + 1 subprocess E2E
  • Docs policy content: 12 guards
  • Docusaurus build: clean