Skip to content

Open governance framework for autonomous AI agents. Classify decisions. Enforce policies. Prove compliance.

License

Notifications You must be signed in to change notification settings

OpenAgentGovernance/agent-decision-protocol

Agent Decision Protocol

Agent Decision Protocol (ADP)

The open governance framework for autonomous AI agents.
Classify decisions. Enforce policies. Prove compliance.

License Version Status EU AI Act Loi 25 NIST ISO 42001 Singapore MGF

Stars Forks CI

Quick Start β€’ Why This Exists β€’ Documentation β€’ Contributing β€’ gouvernance.ai


Why This Exists

AI agents are making decisions autonomously β€” selecting vendors, sending communications, accessing personal data, even modifying their own behavior. But no one can answer these questions:

  • Which agents are authorized to make which decisions?
  • When is human approval required?
  • How do you trace the chain of responsibility when something goes wrong?
  • How do you prove regulatory compliance to an auditor?
  • How do you detect unauthorized self-modification?

Existing observability tools (Langfuse, LangSmith, OpenTelemetry) tell you what happened technically. ADP tells you whether it should have happened at all.

ADP is not an observability tool. It's the governance layer that sits on top of observability to answer: Are my agents acting within policy? Am I compliant?


What is ADP?

The Agent Decision Protocol is an open standard that defines how to document, classify, and govern decisions made by autonomous AI agents.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    gouvernance.ai                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚    Agent      β”‚ β”‚    Policy     β”‚ β”‚   Compliance   β”‚  β”‚
β”‚  β”‚   Registry    β”‚ β”‚    Engine     β”‚ β”‚   Dashboard    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                β”‚                   β”‚           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚           ADP Core (this specification)             β”‚  β”‚
β”‚  β”‚                                                     β”‚  β”‚
β”‚  β”‚  β€’ Autonomy Taxonomy    β€’ Decision Classification   β”‚  β”‚
β”‚  β”‚  β€’ Trace Format         β€’ Authorization Matrix      β”‚  β”‚
β”‚  β”‚  β€’ Policy Schema        β€’ Regulatory Mapping        β”‚  β”‚
β”‚  β”‚  β€’ Agent Registry                                   β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                            β”‚ Connectors
            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
            β”‚               β”‚               β”‚
      β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”
      β”‚ Langfuse  β”‚  β”‚OpenTelemetryβ”‚  β”‚ LangSmith β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚               β”‚               β”‚
      β”Œβ”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”
      β”‚            AI Agent Infrastructure          β”‚
      β”‚   CrewAI Β· LangGraph Β· AutoGen Β· Custom     β”‚
      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Interactive architecture diagram (click to expand)
graph TD
    subgraph Platform["gouvernance.ai"]
        L["Agent Registry UI"]
        M["Policy Engine"]
        N["Compliance Dashboard"]
    end

    subgraph ADP["ADP Core β€” this specification"]
        E["Autonomy Taxonomy<br/>A1–A5"]
        F["Decision Classification<br/>4 types Γ— 4 risks"]
        G["Trace Format<br/>SHA-256 hash-chained"]
        H["Authorization Matrix"]
        I["Policy Schema<br/>6 templates"]
        J["Regulatory Mapping<br/>6 frameworks"]
        K["Agent Registry"]
    end

    subgraph Connectors["Observability Connectors"]
        B["Langfuse"]
        C["OpenTelemetry"]
        D["LangSmith"]
    end

    subgraph Infra["AI Agent Infrastructure"]
        A["CrewAI Β· LangGraph Β· AutoGen Β· Custom"]
    end

    A --> B & C & D
    B & C & D --> ADP
    ADP --> Platform

    style Platform fill:#1a56db,stroke:#3b82f6,color:#fff
    style ADP fill:#7c3aed,stroke:#8b5cf6,color:#fff
    style Connectors fill:#374151,stroke:#6b7280,color:#fff
    style Infra fill:#1f2937,stroke:#4b5563,color:#fff
Loading

Core Components

Component Description Spec
Autonomy Taxonomy 5 standardized levels of agent autonomy (A1–A5) View β†’
Decision Classification 4 decision types Γ— 4 risk levels Γ— 3 reversibility classes View β†’
Trace Format Hash-chained event schema for immutable decision logging View β†’
Authorization Matrix Rules determining when human approval is required View β†’
Policy Schema Pre-built governance rules mapped to regulations View β†’
Regulatory Mapping How ADP maps to EU AI Act, Loi 25, NIST, ISO, Singapore MGF View β†’
Agent Registry Structured inventory of all AI agents in an organization View β†’

Quick Start

Install

npm install    # requires Node.js 20+

1. Register an agent (TypeScript)

import { AgentRegistryBuilder } from '@adp/core';

const agent = new AgentRegistryBuilder()
  .agentId('agent-billing-001')
  .name('Billing Reconciliation Agent')
  .description('Reconciles monthly billing discrepancies')
  .autonomy('A3', ['D1', 'D2'], 'R2')
  .owner({ name: 'Finance Team', email: 'finance@company.com' })
  .build();

2. Classify & authorize a decision

import { classify, authorize } from '@adp/core';

const code = classify('D2', 'R2', 'partial');
// β†’ "D2-R2-partial"

const result = authorize('A3', 'D2');
// β†’ { result: "authorized", overrideApplied: false, reasons: [] }

3. Log a decision trace

import { TraceEventBuilder } from '@adp/core';

const trace = new TraceEventBuilder()
  .agentId('agent-billing-001')
  .eventType('decision')
  .decision({
    type: 'D2', risk_level: 'R2', reversibility: 'partial',
    classification_code: 'D2-R2-partial',
    description: 'Selected vendor B over vendor A',
    reasoning: 'Vendor B offers 15% lower fees with equivalent SLA',
  })
  .authorization({ required: false, matrix_result: 'A3 Γ— D2 = AUTHORIZED' })
  .withIntegrity()
  .build();
// β†’ Complete trace event with auto-generated trace_id, timestamp, and SHA-256 hash

4. Check the authorization matrix

                D1              D2             D3              D4
              Operational     Tactical      Strategic     Self-Modification
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚ A1–A2    β”‚ βœ… Authorized β”‚ ⚠️ Approval  β”‚ πŸ›‘ Prohibited β”‚ πŸ›‘ Prohibited     β”‚
 β”‚ A3       β”‚ βœ… Authorized β”‚ βœ… Authorized β”‚ ⚠️ Approval   β”‚ πŸ›‘ Prohibited     β”‚
 β”‚ A4       β”‚ βœ… Authorized β”‚ βœ… Authorized β”‚ βœ… + Review   β”‚ ⚠️ Approval       β”‚
 β”‚ A5       β”‚ βœ… Authorized β”‚ βœ… Authorized β”‚ βœ… + Monitor  β”‚ ⚠️ Approval       β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

 ⚑ Immutable override: D4 (self-modification) ALWAYS requires human approval.
 ⚑ Risk R3–R4 ALWAYS triggers escalation, regardless of matrix.

5. Define a governance policy

import { PolicyBuilder } from '@adp/core';

const policy = new PolicyBuilder()
  .policyId('POL-COM-001')
  .name('External Communication Control')
  .category('communication')
  .severity('high')
  .rule({
    condition: { action_type: 'external_communication', autonomy_levels: ['A1','A2','A3','A4','A5'] },
    requirement: 'human_approval',
    max_response_time: 'PT1H',
  })
  .regulatoryMapping(['loi25_art12', 'eu_ai_act_art14'])
  .build();

6. Validate data against schemas

import { validateTrace, validatePolicy, validateAgentRegistry } from '@adp/core';

const result = validateTrace(traceData);
if (!result.valid) console.error(result.errors);

MCP Server

ADP includes an MCP (Model Context Protocol) server that lets Claude and other AI assistants use governance tools directly.

Setup with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "adp-governance": {
      "command": "npx",
      "args": ["tsx", "src/mcp/index.ts"],
      "cwd": "/path/to/agent-decision-protocol"
    }
  }
}

Available Tools

Tool Description
adp_classify Classify a decision (D1-D4 type, R1-R4 risk, reversibility)
adp_authorize Check authorization via 5x4 matrix with risk overrides
adp_evaluate_policy Evaluate governance policies against an action context
adp_log_trace Log a decision with automatic hash chain integrity
adp_validate Validate JSON against ADP schemas
adp_register_agent Register an agent in the session registry
adp_add_policy Add a governance policy
adp_verify_chain Verify trace chain SHA-256 integrity

Available Resources

Resource URI Content
Agent Registry adp://registry All registered agents
Policies adp://policies Active governance policies
Traces adp://traces Recent decision trace events
Matrix adp://matrix Authorization matrix configuration
Specs adp://specs/{name} ADP specification documents

Autonomy Levels

Level Name Description Human Role
A1 Operator Executes specific step-by-step commands Full direction
A2 Collaborator Assists human decisions with recommendations Approval per action
A3 Consultant Provides analysis and recommendations, human decides Decision-maker with agent input
A4 Delegate Acts autonomously, human reviews after the fact Post-action review
A5 Autonomous Fully autonomous operation, human monitors Monitoring & kill switch

Decision Classification

Every agent decision is classified on 3 axes:

Type β€” What kind of decision?

  • D1 Operational: Task execution within defined scope (API call, DB query)
  • D2 Tactical: Choice between approaches (vendor selection, prioritization)
  • D3 Strategic: Significant organizational impact (client communication, financial commitment)
  • D4 Self-Modification: Agent modifying its own behavior or parameters

Risk β€” What's the potential impact?

  • R1 Negligible: Reversible, no sensitive data, limited scope
  • R2 Moderate: Potential operational impact, partially reversible
  • R3 Elevated: Direct impact on people or critical operations
  • R4 Critical: Irreversible, fundamental rights, critical infrastructure

Reversibility β€” Can it be undone?

  • Total: Fully reversible with no consequences
  • Partial: Partially reversible with reasonable effort
  • Irreversible: Cannot be undone once executed

Regulatory Compatibility

ADP is designed to satisfy multiple regulatory frameworks simultaneously:

Regulation Jurisdiction Status ADP Coverage
Quebec Law 25 πŸ‡¨πŸ‡¦ Canada/QC Enacted Decision traceability, right to explanation, notification
EU AI Act πŸ‡ͺπŸ‡Ί Europe Enacted (phased) Risk management, documentation, human oversight, registry
NIST AI RMF πŸ‡ΊπŸ‡Έ USA Published All 4 functions: GOVERN, MAP, MEASURE, MANAGE
ISO 42001 🌍 International Published Management system, risk, documentation, improvement
Singapore MGF πŸ‡ΈπŸ‡¬ Singapore Published (Jan 2026) Autonomy levels, accountability, technical controls
IEEE 7001 🌍 International Published Transparency levels, measurable standards

Regulatory Mapping Example

ADP Component Loi 25 EU AI Act NIST RMF ISO 42001
Agent Registry β€” Art. 49 GOVERN A.6
Risk Classification β€” Art. 6-7 MAP A.5
Decision Traceability Art. 12.1 Art. 12 MEASURE A.7
Right to Explanation Art. 12.1 Art. 13 GOVERN A.8
Human Oversight Implicit Art. 14 MANAGE A.9
Risk Management β€” Art. 9 MAP+MANAGE A.5
Post-deployment Monitoring β€” Art. 72 MEASURE A.10

ADP uniquely addresses self-modification governance β€” no existing regulation explicitly covers an agent's ability to modify its own behavior. ADP classifies all self-modification as D4 with mandatory human approval.


Project Structure

agent-decision-protocol/
β”œβ”€β”€ README.md                     ← You are here
β”œβ”€β”€ package.json                  ← @adp/core v0.3.0 (ESM)
β”œβ”€β”€ tsconfig.json                 ← TypeScript strict config
β”œβ”€β”€ vitest.config.ts              ← Test runner config
β”œβ”€β”€ LICENSE                       ← Apache 2.0
β”œβ”€β”€ CHANGELOG.md                  ← Version history
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ README.md                 ← Documentation index
β”‚   └── specs/
β”‚       β”œβ”€β”€ 01-autonomy-taxonomy.md
β”‚       β”œβ”€β”€ 02-decision-classification.md
β”‚       β”œβ”€β”€ 03-trace-format.md
β”‚       β”œβ”€β”€ 04-authorization-matrix.md
β”‚       β”œβ”€β”€ 05-policy-schema.md
β”‚       β”œβ”€β”€ 06-regulatory-mapping.md
β”‚       β”œβ”€β”€ 07-agent-registry.md
β”‚       └── schemas/              ← JSON Schema validation (v0.2)
β”‚           β”œβ”€β”€ common.schema.json
β”‚           β”œβ”€β”€ trace-format.schema.json
β”‚           β”œβ”€β”€ policy-schema.schema.json
β”‚           β”œβ”€β”€ agent-registry.schema.json
β”‚           └── authorization-matrix.schema.json
β”œβ”€β”€ examples/                     ← Schema-validated integration examples
β”‚   β”œβ”€β”€ register-agent.json
β”‚   β”œβ”€β”€ log-decision.json
β”‚   β”œβ”€β”€ define-policy.json
β”‚   └── trace-self-modification.json
β”œβ”€β”€ src/                          ← TypeScript reference implementation
β”‚   β”œβ”€β”€ index.ts                  ← Public API exports
β”‚   β”œβ”€β”€ types/                    ← TypeScript interfaces & enums
β”‚   β”œβ”€β”€ core/                     ← classify, authorize, evaluatePolicy, hash
β”‚   β”œβ”€β”€ validators/               ← AJV-based schema validators
β”‚   β”œβ”€β”€ builders/                 ← Fluent API builders
β”‚   β”œβ”€β”€ mcp/                      ← MCP server (v0.3)
β”‚   β”‚   β”œβ”€β”€ index.ts              ← Entry point (STDIO transport)
β”‚   β”‚   β”œβ”€β”€ server.ts             ← Tool & resource registration
β”‚   β”‚   β”œβ”€β”€ store.ts              ← In-memory session store
β”‚   β”‚   β”œβ”€β”€ types.ts              ← Zod input schemas
β”‚   β”‚   β”œβ”€β”€ tools/                ← 8 tool handlers
β”‚   β”‚   └── resources/            ← 5 resource handlers
β”‚   β”œβ”€β”€ __tests__/                ← 90 tests (vitest)
β”‚   └── scripts/                  ← CI validation script
β”œβ”€β”€ assets/                       ← Logo, diagrams
└── .github/                      ← CI, issue templates, funding
    └── workflows/
        └── validate-schemas.yml  ← tsc + vitest + schema validation

Roadmap

  • v0.1 β€” Core specification (7 technical documents)
  • v0.2 β€” JSON Schema validation + TypeScript reference implementation (60 tests)
  • v0.3 β€” MCP server reference implementation (8 tools, 5 resources, 90 tests)
  • v0.4 β€” Langfuse / OpenTelemetry connectors
  • v1.0 β€” Stable specification + governance platform beta

See the CHANGELOG for detailed version history.


Adopters

Building with ADP? Open a PR to add your organization here.

Be the first to adopt ADP and get featured in this section.


How ADP Compares

ADP Langfuse LangSmith Datadog LLM Credo AI
Focus Governance & compliance Observability Observability Monitoring Model governance
Agent autonomy levels βœ… A1–A5 taxonomy ❌ ❌ ❌ Partial
Decision classification βœ… 4 types Γ— 4 risks ❌ ❌ ❌ ❌
Authorization matrix βœ… With escalation ❌ ❌ ❌ ❌
Policy engine βœ… 6 templates ❌ ❌ ❌ Partial
Self-modification detection βœ… D4 category ❌ ❌ ❌ ❌
Regulatory mapping βœ… 6 frameworks ❌ ❌ ❌ Partial
Vendor-independent βœ… Open standard βœ… ❌ LangChain ❌ Datadog ❌
Open source βœ… Apache 2.0 βœ… ❌ ❌ ❌

ADP complements observability tools β€” it doesn't replace them. Use Langfuse/LangSmith for technical tracing. Use ADP for governance, compliance, and policy enforcement.


Contributing

We welcome contributions! ADP is an open standard and benefits from community input.

Issues labeled good first issue are great starting points for new contributors.


Community


Cite This Project

GitHub provides a "Cite this repository" button in the sidebar (powered by CITATION.cff).

@misc{adp2026,
  title   = {Agent Decision Protocol: An Open Governance Framework for Autonomous AI Agents},
  author  = {Bromberger, Florian},
  year    = {2026},
  url     = {https://github.com/OpenAgentGovernance/agent-decision-protocol},
  note    = {Version 0.3.0}
}

License

Apache 2.0 β€” Free for commercial and non-commercial use.


Built by gouvernance.ai β€” The compliance platform for autonomous AI agents.
ADP is vendor-independent and framework-agnostic by design.

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •