Skip to content

Compatibility

This page describes practical compatibility boundaries for Bernstein integrations.

Last updated: 2026-07-16


Runtime compatibility

  • Python: project targets Python 3.12+.
  • Task server/API: FastAPI-based local or remote server operation.
  • CLI adapters: the full roster registered in registry.py (plus the generic catch-all) in src/bernstein/adapters/, including the OpenAI Agents SDK v2 adapter (openai_agents), CLM gateway adapter (clm), Devin Terminal adapter (devin_terminal), JetBrains Junie (junie), AWS Q Developer (q_dev), and the DeepSeek V4 family routed through the ollama adapter. Run bernstein integrations list for the current set.

Supported CLI agent adapters

Adapter Provider Structured Output MCP
claude Anthropic JSON schema enforced Yes
codex OpenAI JSON (--json) No
gemini Google JSON (--output-format json) No
antigravity Google (alias of gemini, enterprise / API-key lane) JSON (--output-format json) No
agy Google (Antigravity successor CLI, consumer lane) JSON (--output-format json) No
openai_agents OpenAI (Agents SDK v2) JSONL event stream Yes (Bernstein-bridged)
clm Customer-side NIM / vLLM gateway No No
devin_terminal Cognition No No
junie JetBrains (BYOK multi-provider) No No
q_dev AWS Q Developer (legacy q CLI) No No
aider Multi No No
amp Sourcegraph No No
qwen Multi No No
ollama Local (incl. DeepSeek V4-Flash + V4-Pro) No No
cody Sourcegraph No No
cursor Cursor No Yes
goose Block No No
muse Meta JSONL (--json, not consumed) No
continue Multi No No
opencode Multi JSON (--format json) No
pydantic_ai Multi (<provider>:<model>) No No
kiro AWS No No
kilo Stackblitz No Yes (ACP/MCP)
iac N/A (Terraform/Pulumi) No No
generic Any Depends on CLI No

The detailed comparison matrix with cost tier, reasoning grade, and recommended use cases lives in ADAPTER_GUIDE.md.

Auth basis and volunteer-mode status

Every adapter contract declares an auth.basis (api_key, local, subscription_oauth, or unknown). Volunteer donor budgets gate selection by auth basis and local_models: local_only=True budgets admit only local-capable adapters; subscription_oauth adapters are refused under local_only. See auth-basis-volunteer-mode.md for the full table.

Support modules

The adapter package also ships cross-cutting support modules (caching, conformance testing, environment isolation, plugin SDK, registry, skill injection, and more). The canonical table lives in ADAPTER_GUIDE.md.

Compatibility details can vary by adapter version and local toolchain.


Protocol and integration layers

MCP

  • Bernstein includes an MCP server (src/bernstein/core/protocols/mcp_server.py) exposed via bernstein mcp.
  • MCP tool registry with auto-discovery and per-task configuration.
  • MCP gateway proxy (bernstein gateway) for routing MCP traffic.
  • MCP health monitoring, lazy discovery, sandbox, marketplace, and metrics modules in src/bernstein/core/protocols/.
  • MCP auth lifecycle management and version compatibility checking.
  • MCP composition and skill bridge for combining tools across servers.
  • Practical compatibility depends on client/runtime transport expectations.

A2A

  • A2A task/artifact routes implemented in task routes.
  • A2A federation support (a2a_federation.py) for cross-instance agent coordination.
  • A2A available as part of the server API surface.

ACP

  • ACP IDE bridge (acp_ide_bridge.py) for editor integration.
  • ACP-related compatibility workflows and spec docs exist.
  • Treat ACP support as integration-dependent rather than one fixed matrix.

Protocol negotiation

  • Runtime protocol version handshake (protocol_negotiation.py) for MCP/A2A/ACP.
  • Schema registry (schema_registry.py) for versioned message schemas.
  • Ensures protocol compatibility is detected at connection time, not at failure time.

Quality gates

Bernstein ships an expanded quality gate pipeline in src/bernstein/core/quality/:

  • Standard gates: lint, type-check, tests, coverage (quality_gates.py, coverage_gate.py)
  • Architecture conformance (arch_conformance.py)
  • Benchmark gate (benchmark_gate.py)
  • Dead code detection (dead_code_detector.py)
  • Dependency scanning (dependency_scan.py, dep_validator.py)
  • Flaky test detection (flaky_detector.py)
  • Integration test generation (integration_test_gen.py)
  • Cross-model verification (cross_model_verifier.py)
  • Review consensus scoring (review_consensus.py)
  • Pipeline structure, cached incremental runner, and plugin system (gate_pipeline.py, gate_runner.py, gate_plugins.py)
  • Serialized gate execution (quality_gate_coalescer.py)

The LLM judge used for eval scoring lives outside this package, in src/bernstein/eval/judge.py.


Cost and quota management

  • Cost anomaly detection, forecasting, and root cause analysis
  • Budget actions and completion budgets
  • Cost arbitrage across providers
  • Cloud cost export integration

How to verify in your environment

Use environment-specific validation instead of relying on static matrices:

  1. Run bernstein doctor.
  2. Run your target CLI adapter smoke checks (bernstein test-adapter --adapter <name> --task "<prompt>").
  3. Validate required API endpoints (/status, /tasks, /metrics, protocol-specific routes).
  4. If using remote workers, validate cluster endpoints and auth paths.
  5. Generate a debug bundle (bernstein debug bundle) for comprehensive triage information.

Notes on historical matrices

Older protocol matrices in docs/workflows are useful as references for prior CI checks, but they should not be treated as evergreen compatibility guarantees for all environments.