defkt
Back to defkt.io
SDK support matrix

Any SDK. We build and maintain at the seams.

The buyer's first objection is “you can't build or maintain my stack — it's on {SDK}.” The answer: we build against, and maintain against, a normalized set of seams every modern agent SDK exposes. The core scout + tester workflow already runs on three SDKs in production — Cursor, Claude Code, and Codex — and we've migrated a production harness between SDKs once already. The abstraction is production code, not a diagram: our own ticket orchestrator runs Claude Agent SDK and OpenAI Agents SDK executors side-by-side — identical tool surface, transcripts normalized at write time, one analysis + process-mining pipeline over both. And when there's no vendor SDK at all — a fully-custom build wired straight to the model (direct API, router, or local open-weight) — the control plane *is* the runtime: we implement the seven seams ourselves.

The seven normalized seams

Build and maintenance both attach to these — not to the SDK. When an SDK changes, the adapter absorbs the change; the logic above stays stable.

S1
Agent / session lifecycle
create / resume / dispose a run
Reliability (resume after a kill); replay sims; cost & circuit control
S2
Tool execution
built-in, MCP, and custom tools
Guardrails (guard args); observability (tool timeline); dead-tool detection
S3
Governance seams (hooks)
pre-tool / pre-shell / pre-MCP / stop callbacks
Secret scan, injection fence, enforcement, normalization
S4
Transcript / event stream
the run's recorded steps + tool calls
OCPM source, drift signals, audit evidence
S5
Sandbox / network controls
filesystem + network restrictions
Reliability (network kills); security (least-network)
S6
Sub-agent / delegation
spawning scoped child agents
Context economy; isolation; evolution
S7
Model routing
which model serves the agent
Cost, capability, open-model support, determinism

Per-SDK support

Cursor, Claude Code, and Codex are all production-proven in live customer projects — the core scout + tester workflow runs on all three across two engagements. The deepest full ten-layer maturity (OCPM, guardrails, reliability, CI/CD) is on the Cursor engagement; Claude Code and Codex harden to full depth on the engagement that needs it. We never present adapter-ready as production-proven.

Cursor SDK

@cursor/sdk · composer
Production

The deepest engagement — the full ten-layer stack, built and run end to end. Deepest quirk knowledge.

Claude Code / Agent SDK

Anthropic
Production

Scout + tester proven in production — and one of the two production executors in our ticket orchestrator, running live customer tickets under durable (Temporal) orchestration.

OpenAI Codex / Agents SDK

openai-agents
Production

Scout + tester proven in production — and the second production executor in our orchestrator: identical tool surface, transcripts normalized so one analysis + process-mining pipeline consumes both SDKs.

Pi agent + open-weight model

Ollama / vLLM / custom endpoint
Operator-proven

Our daily production driver internally — customized Pi instances run orchestration tooling, safety auditing, cross-agent integrations. The no-proprietary-vendor path: data sovereignty, cost, air-gap. The engagement adapter graduates on the first customer run.

Fully custom · direct-to-model

OpenAI / Anthropic / Google · OpenRouter / LiteLLM · local
Supported

No vendor SDK — a bespoke agent wired straight to the model, through any router, or to a local open-weight endpoint. The control plane is the runtime; we own all seven seams. Choose it for control, routing, determinism, and data sovereignty — true metered cost, not token savings.

Capability domainCursorClaude CodeCodexPi + open
Core scout + tester workflow (L1–L3)ProductionProductionProductionAdapter-ready
Guardrails / hooks (L4)ProductionSupportedSupportedAdapter-ready
OCPM workflow mining (L6)ProductionSupportedSupportedAdapter-ready
Reliability layer (L7)ProductionSupportedSupportedAdapter-ready
Security hardening (L8)ProductionSupportedSupportedAdapter-ready
CI/CD integration (L10)ProductionSupportedSupportedAdapter-ready

Known-quirk catalog

Real, current quirk knowledge from production — the reference engagement and our own orchestrator. Every one cost real diagnosis time to discover — our customers inherit the catalog instead of paying to rediscover it.

env / allCorporate firewall RSTs idle connections at ~300s (ECONNRESET)
impact · Long runs die mid-session
Keepalive PING / IT exclusion / retry-resume bridge — proven protocol-agnostic, not a code fix
CursoruseHttp1ForAgent does NOT escape the firewall idle-kill
impact · A tempting “fix” that isn't
Refuted 5/5 — don't waste a cycle on it
CursorpreCompact hook wired but doesn't fire headless
impact · Can't rely on it for context management
Manage context another way; don't depend on it
CursorTool results not persisted to transcript
impact · transcript bytes ≠ context meter
Use the tool-call timeline + a separate health signal
CursorsubagentStart/Stop events don't fire
impact · Sub-agent attribution falls back to generic
Push named routing in the prompt
CursorHook env is the FULL parent env (not minimal)
impact · Secret-exposure risk through hooks
The API-key scrub is load-bearing — verify it
CursorString-matcher DB-guard hooks are bypassable
impact · A hook is not a real DB guard
Read-only DB role is the load-bearing fix
Cursor“latest” tag shipped a peer-dep bug (1.0.19)
impact · “latest” isn't safe
Bump-or-hold discipline; pin + sandbox-test
Claude Agent SDKBinary resolution prefers the musl variant on Linux — with both variants installed it locks onto musl and fails on glibc hosts
impact · Agent binary won't launch on standard glibc Linux
Runtime glibc/musl detection + explicit executable resolution — proven in our production orchestrator

On a different SDK? Tell us its shape.

If your stack runs on an adapter-ready SDK, the Stabilization Sprint hardens the adapter and starts its quirk catalog. We'll tell you honestly where it sits.

Email [email protected]