One YAML manifest declares your agent's runtime, flow graph, evaluation criteria, and packaging metadata. Frameworks and runners consume it. Declare once, run anywhere.
adp_version: "0.3.0" id: "agent.acme.analytics" conformance_class: "full" runtime: execution: - { id: "py", backend: "python", entrypoint: "app:main" } models: - { id: "gpt4", provider: "openai", model: "gpt-4o" } evaluation: suites: - id: "accuracy" metrics: - { type: "llm_judge", threshold: 0.85 }
You built an agent in LangGraph. It works. Now someone asks: "Can we run this in production? Can the other team use it with AutoGen?" Suddenly you're digging through framework internals.
Framework lock-in
StateGraph, ConversableAgent, KernelProcessStep — every framework has its own model. Moving means rewriting all your glue code.
No portable packaging
You can't hand an agent to another team without handing them your entire runtime stack, environment config, and tribal knowledge.
Bespoke CI evaluation
Testing an agent means writing a custom harness every time. Every project reinvents the same evaluation wheel.
Observability is an afterthought
Telemetry, guardrails, and hooks aren't declared in the agent — they're duct-taped after the fact, inconsistently.
ADP provides portable, framework-neutral scaffolding that wraps an agent for execution, testing, and observation. Declare the harness once; your framework implements it.
How the agent runs, processes I/O, and streams. Backend-agnostic: Python, Node, Rust, Go. Multi-backend supported.
OTel gen_ai.* required attributes, lifecycle hooks, and structured event emission — observable execution by design, not retrofit.
Input/output filters, policy refs, mode declarations, and compliance fields (GDPR, HIPAA, EU-AI-Act). What is permitted — declared, not hardcoded.
LLM-judge metrics, threshold-based suites, and CI-ready conformance scenarios. Test the agent contract, not the framework internals.
Validate it. Pack it to OCI. Hand it to any conformant runner. Same manifest — any framework. ADP is a specification, not a runtime.
extends, import, overrides across all 4 SDKsflow: graph: nodes: - { id: "ingest", kind: "input" } - { id: "analyze", kind: "llm", model_ref: "gpt4" } - { id: "report", kind: "output" } edges: - { from: "ingest", to: "analyze" } - { from: "analyze", to: "report" } start_nodes: ["ingest"] guardrails: input: - { provider: "openai", policy_ref: "safe-msg" } output: - { provider: "custom", mode: "block" } governance: compliance: ["GDPR", "EU-AI-Act"]
ADP references existing protocols — it doesn't replace them. MCP handles tool transport. A2A handles agent-to-agent comms. OCI handles packaging. ADP is the manifest that wires them together.
ADP is the manifest layer — not another runtime or framework.
AI regulation is arriving — ADP makes compliance structural before it becomes mandatory.
AI regulation is arriving fast. The EU AI Act mandates automatic logging, technical documentation, and human oversight for high-risk systems — effective 2026. ADP makes compliance structural, not bolted on.
Technical documentation, automatic input/output logging, and human oversight checkpoints — mandatory for high-risk AI systems.
Data residency declarations, purpose limitation, and records of processing activities — declared directly in the ADP manifest.
PHI handling mode (de-identify · audit-log · block), audit logging flag, and access controls per agent.
Structured governance fields, evaluation suites, and telemetry satisfy the Govern/Measure/Manage functions of the NIST AI Risk Management Framework.
# Compliance posture — normative inputs to CI governance: compliance: - standard: "eu-ai-act" risk_category: "limited" # minimal|limited|high - standard: "gdpr" data_residency: ["eu-west-1", "eu-central-1"] - standard: "hipaa" phi_handling: "de-identify" audit_logging: true - standard: "soc2" audit_logging: true # Audit trail — OTel gen_ai.* semantic conventions telemetry: endpoint: "https://otel.acme.com/v1" required_attributes: - "gen_ai.system" - "gen_ai.request.model" - "gen_ai.usage.input_tokens" - "gen_ai.usage.output_tokens" # Human oversight hooks (EU AI Act Art. 14) hooks: - event: "pre_output" action: "human_review_gate" mode: "block" # halt until approved # Notary v2 signing + SPDX SBOM (provenance) x_adpkg: sign: true sbom: "spdx-json"
ADP's flow graph maps directly to each framework's native model. No re-implementation — just a mapping guide and a round-trip test suite.
Four SDKs — same API surface. validate · pack · unpack · resolve_adp.
100% test coverage across all four.
Install the Python SDK
pip install adp-sdk
Validate your manifest
PYTHON_BIN=python3 bash scripts/validate.sh
Run the LangGraph example
cd examples/runners/langgraph && pytest -v
Read the spec
open spec/adp-v0.3.0.md
ADP is open, specification-driven, and framework-neutral.
Standardization in progress. Contributions welcome.