Skip to main content
Version: main 🚧

Dynamic Agents Compatibility Matrix

This matrix is the migration oracle. Implementation must attach concrete test IDs and results before changing a row from planned to proven.

Status legend​

  • existing: behavior exists in Dynamic Agents today.
  • planned: Harness Engine design assigns ownership but has no implementation evidence yet.
  • proven: unchanged baseline and adapter conformance tests pass.
  • blocked: a certified implementation is not available; the adapter cannot be advertised as supported.

External surface​

BehaviorCurrent ownerHarness Engine ownerDeep AgentsClaude SDKStrandsAgentCore
Existing health/readiness/debug routesFastAPI serviceCommon routesplannedplannedplannedplanned
Existing chat start/resume/invoke/cancel/restart routesChat routesCommon routes/coordinatorplannedplannedplannedplanned
Existing conversation interrupt/metadata/clear routesConversation routesCommon routes/session repositoryplannedplannedplannedplanned
Existing file list/get/put/delete/namespace routesFile routes/GridFSCommon file serviceplannedplannedplannedplanned
MCP probe, built-in tools, middleware, suggestion routesExisting routesCommon routes/servicesplannedplannedplannedplanned
Custom SSE bytes and orderingLangGraph encoderCanonical custom encoderplannedplannedplannedplanned
AG-UI bytes and orderingLangGraph encoderCanonical AG-UI encoderplannedplannedplannedplanned
Existing errors/status/retry headersRoutes/runtime cacheCommon routes/coordinatorplannedplannedplannedplanned

Agent creation and editing​

BehaviorCurrent baselineHarness Engine UI ruleCertification evidence
Editor navigationFixed basic, instructions, tools, skills, advanced stepsPreserve IDs and URLs; vary content by field capabilityExisting deep-link and editor tests unchanged
Legacy/default harnessNo harness fieldResolve to deepagents at read time; do not rewrite on openLegacy create/edit/clone regression
Harness and model selectionOne global model listSelect harness first; filter models; preserve incompatible stored value as blockerCatalog/model matrix tests
Tools, skills, middleware, subagentsAlways renderedNative/emulated enabled; unsupported/unavailable visible and actionableField capability projection tests
Thread persistenceImplicit runtime behaviorRead-only durability/restore summarySummary matches descriptor and validation
Long-term memoryNo portable builder policyCommon scoped policy controls bounded by deployment policyScope/approval/retention UI tests
Harness-specific optionsNoneFirst-party typed panels backed by bounded JSON SchemaSchema/UI parity and unsafe-field rejection
Harness switchNot applicablePreview diff; explicit individual fixes; no silent deletionDraft round-trip/property tests
Active conversationsSame runtimeExisting bindings pinned; new conversations use saved harness; confirm changeUpdate with active/persisted binding tests
Unknown/unavailable stored harnessNot applicablePreserve, display, and block unsafe save; never coerce to defaultCatalog outage/version skew tests
Save validationLocal required fields + BFF CRUDBrowser preflight plus exact-payload BFF revalidation/fingerprint before writesRace and no-partial-mutation tests
AccessibilityExisting form controlsKeyboard/card/dialog/error-focus semantics; text labels beyond colorAutomated and manual accessibility tests

Security and identity​

BehaviorCommon implementationAdapter obligationCertification evidence
JWT validation and request contextExisting middlewareCannot bypassExisting auth tests unchanged
Agent-use OpenFGA/PDP gateExisting route dependencyInvoked only after allowDenial proves zero adapter calls
Workflow delegated authorizationExisting route/tool policyPreserve caller/service subjectUser and service-account tests
Per-user MCP credentialsToolBroker/credential exchangeUse only supplied handlesConcurrent caller isolation test
Signed agent context to gatewayToolBroker HTTP factoryNo direct spoofingHeader/signature contract tests
Secret and skill trace scrubbingCommon telemetry pipelineLink spans through scrubberLeak canary scan
SSRF/domain restrictionsBuilt-in ToolBroker toolsNo native bypassRedirect/private-network tests

Execution baseline​

CapabilityCommon or emulated pathDeep Agents native pathClaude SDK pathStrands pathAgentCore path
Streaming textCanonical eventsLangGraph messagesSDK stream messagesasync stream eventsInvokeHarness deltas
Reasoning/thinkingCanonical optional channelmodel chunksthinking blocks/eventsreasoning eventsreasoning content deltas
Tool lifecycleToolBroker + canonical eventsLangChain toolsSDK MCP toolsStrands tool wrappersinline functions
MCP partial failure/retryToolBrokerexisting clientcommon brokercommon brokercommon broker via inline tools
Built-in tools/workflowsToolBrokerexisting wrappersSDK MCP wrappersStrands wrappersinline functions
HITL form inputCanonical interruptrequest_user_input interruptuser-input/tool callbackStrands interruptinline function pause
HITL approve/edit/rejectCommon approval recordLangGraph HITLpermission callbackbefore-tool interruptinline function result loop
Multiple tool approvalsCommon approval recordexisting batch interruptadapter aggregationadapter aggregationadapter aggregation
Thread persistenceThreadStateStore + durable binding headExisting Mongo checkpointerMongo SessionStore through state facadeMongo SessionRepository through state facaderemote session binding + committed state reference
Long-term agent memoryMemoryBroker scopes/policyStoreBackend-compatible facadeSDK memory only through brokerStrands memory only through brokerinline governed memory tools until native equivalence is proven
Clear/restartCommon epoch/lifecyclecheckpoint delete/cache resetstore delete/new sessionrepo delete/new sessionnew epoch/session
CancellationCommon cancellation policytask flag/cancelSDK interrupt/process cleanupcancellation token/task cancelclose stream/remote stop if supported
AttachmentsCommon validation/storecurrent model blocksSDK supported content/workspaceprovider content blockssupported input or engine tool access
SkillsCommon scan/materializationDeep Agents skills filesSDK skills/project materializationStrands skill/plugin materializationHarness skills where certified
SubagentsDelegationBrokerexisting task behaviorportable delegation toolportable delegation toolinline delegation function
Middleware outcomesCommon policies + adapter mapexisting middlewarehooks/options/emulationhooks/emulationcommon boundary/remote config
Metrics/tracingW3C context + common spans/redactionworker OTel linkedSDK/worker OTel linkedhooks/worker OTel linkedAgentCore telemetry safely linked

Data and deployment compatibility​

ArtifactMigration ruleRollback behavior
dynamic_agents documentsAdd optional harness; missing means deepagentsOld service ignores additive field
MCP/skills/provider collectionsNo schema changeSame collections remain authoritative
LangGraph checkpoints/writesNo rewriteOld service resumes Deep Agents conversations
GridFS and attachment storeNo rewriteOld service uses same namespaces/references
harness_sessionsNew additive collectionOld service ignores it
harness_memoriesNew additive policy-governed collection; disabled unless configuredOld service ignores it; no memory is backfilled into old runtime
Conversation metadataAdditive harness binding summary only if neededOld readers ignore new metadata
Service DNS/chart/envPreserve existing namesRollback changes image only

Isolation and execution placement​

BehaviorDeep AgentsClaude SDKStrandsAgentCoreCertification evidence
Production execution boundaryClaim-exclusive podClaim-exclusive pod plus SDK subprocessClaim-exclusive podProvider-managed remote sessionDescriptor/profile matches observed boundary
ScopeOne Sandbox UID per conversation epochOne Sandbox UID per conversation epochOne Sandbox UID per conversation epochOne provider session per binding epochConcurrent binding/UID uniqueness test
Follow-up turnsReuse same healthy leaseReuse same healthy leaseReuse same healthy leaseReuse bound provider sessionStateful multi-turn test
Durable recoveryMongo LangGraph checkpoints + workspace hydrationMongo SessionStore + workspace hydrationMongo SessionRepository + workspace hydrationManaged session + bindingKill pod/control-plane and resume on another replica
Tools and credentialsExternal ToolBroker; no raw secret in podExternal ToolBroker; no raw secret in podExternal ToolBroker; no raw secret in podInline tools through ToolBrokerCredential canary and broker authz tests
Kubernetes authorityNo worker API tokenNo worker API tokenNo worker API tokenNoneToken/mount/API denial test
NetworkDefault deny + model/proxy/brokersDefault deny + model/proxy/brokersDefault deny + model/proxy/brokersProvider policy + control-plane AWS endpointEgress conformance test
Stale worker fencingBinding epoch + lease generationBinding epoch + lease generationBinding epoch + lease generationBinding epoch + remote session/versionLate event/tool/state rejection test
Warm startExclusive warm-pool claimExclusive warm-pool claimExclusive warm-pool claimProvider-managedp95 readiness and destroy-on-release test

Persistence, memory, and trace invariants​

InvariantCommon ownerAdapter/worker obligationEvidence
Final durable thread headThreadStateStore/session bindingPersist native state before durable completionCrash-point and head-revision tests
Ambiguous post-output failureCoordinatorStop/fence; never auto-replay side effectsTool-side-effect fault injection
Cross-replica/pod restoreSession binding + state facadeLoad exact codec/version/headRandom eviction/restart suite
User memory isolationMemoryBrokerUse only supplied scope/facadeConcurrent cross-user probes
Shared memory safetyMemoryBroker policyRespect read-only/approval/conflict outcomesInjection and revision tests
Trace parentageTelemetry pipelineExtract/inject internal W3C contextFull topology assertion
Trace confidentialityCommon scrubbers/collectorEmit allowlisted metadata onlyCanary leak scan
Collector outageBounded telemetry pipelineNever change run/durability resultOutage/load test

The existing backend.type: sandbox field is a Deep Agents filesystem/execute backend choice, not this execution-placement boundary. Harness Engine must not treat that legacy field as proof that the harness itself runs outside the API container.

Certification rule​

The four adapter columns describe intended mappings, not current proof. Before a provider is shown as certified, every applicable row must link to a passing conformance test, and the provider-specific limitations must not weaken the common behavior. A row that cannot be proven changes the adapter to experimental or blocked; it does not change the baseline.