Integration Examples
Flow Agents reaches host runtimes and agent frameworks through two distinct distribution models. This section provides worked examples for each model and a guide to the conformance kit for third-party adapter authors.
Distribution models at a glance
Harness runtimes ship as self-contained bundles under dist/<runtime>/. The npm run build:bundles command generates each bundle from the canonical manifest and policy scripts. flow-agents init (or the dogfood variant) places the generated files at the host-expected paths inside a target workspace. Claude Code, Codex, Kiro, opencode, and pi are harness adapters.
Framework adapters live in integrations/<name>/ as language-native packages. They register Flow Agents callbacks with the framework’s lifecycle system using the framework’s native registration API. integrations/strands/ is the reference implementation: flow-agents-strands is a Python HookProvider that wires into AWS Strands Agents without requiring the Strands SDK at import time.
Third-party adapters self-certify by running the conformance kit in packaging/conformance/. The kit provides golden fixtures and a runner that pipes each fixture through the adapter command and reports per-level verdict.
Conformance levels
| Level | What is required |
|---|---|
| L0 | Telemetry only — at least agentSpawn fires on session start |
| L1 | L0 plus workflow steering and stop-goal-fit in warning mode |
| L2 | L1 plus config protection (blocking) and quality gate — the reference level |
Claude Code and Codex are L2 reference implementations. opencode is L1 (no prompt-submit hook). pi is L1 (no stop hook). The Strands Python adapter is L0 plus config protection via BeforeToolCallEvent cancellation. The Strands TypeScript adapter ships telemetry callbacks plus native config protection; workflow steering, quality-gate, and stop-goal-fit policy coverage is available through the conformance shim only.
The Runtime Hook Surface spec defines the canonical event taxonomy, policy classes, conformance levels, and engine contract in full.
Pages in this section
integrations/strands/: constructing FlowAgentsHooks, telemetry emitted, the engine-contract binding for policy, and documented limitations.
Conformance
How a third-party adapter self-certifies: the engine contract 1.0, running the conformance runner, what each level requires, and how to declare gaps.
Runtime Hook Surface Spec
Canonical event taxonomy, four policy classes, conformance levels L0/L1/L2, mapping tables, and the engine contract for adapter authors.
Knowledge Kit Live Example
End-to-end proof of the Knowledge Kit ingest + compile flows against a real Strands agent (OllamaModel / qwen3:1.7b). No API key required. Includes acceptance test with telemetry and provenance assertions.
Flow Agents × Console
The optional fleet tier over the local coordination substrate: a liveness relay, team/project insight views, an in-hub janitor, and (Phase 2) a Console-backed AssignmentProvider. Local-first stands; the Console never becomes the authority.
TypeScript native-import adapter
integrations/strands-ts/ (@kontourai/flow-agents-strands) is the first native-import consumer of the policy engine contract. It binds the config-protection.js run() function directly — no subprocess on the hot path. Shipped native behavior is telemetry callbacks plus config-protection blocking; workflow steering, quality-gate, and stop-goal-fit run through the conformance shim rather than production Strands TS callbacks. See integrations/strands-ts/README.md and the Framework Adapter page for the full comparison with the Python adapter.