Observed since 20 Oct, 21:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Real-time data platform serving context to AI agents
Event-native metrics layer: business metrics that move when events happen — measured 1.1 s p50 event-to-metric freshness on production defaults. Live entity lookups, typed contracts, dual-language SDKs, and release-gated delivery for people, dashboards, services, and AI agents alike.
BI on a replica answers yesterday's questions. Support, ops, and merch workflows need current orders, metrics, and health signals at the moment of decision — not a stale warehouse snapshot, not a pile of one-off service adapters, and not a cache that quietly serves 30-second-old numbers.
AgentFlow's axis is event → live metric: every metric declares which events move it (a contract-tested lineage graph), and the serving layer keeps reads fresh by invalidating its cache when events arrive — a measured behavior, not a slogan (docs/freshness-benchmark.md). One serving boundary on top of that axis:
Consumers are whoever needs the number now: humans, dashboards, downstream services, and AI agents — agents are one consumer, not the product.
GET /v1/metrics/* in 1.06 s p50 / 1.99 s p95 on production defaults (event-driven cache invalidation, no webhook registration), tunable to 238 ms p50; a plain TTL cache on the same pipeline sits at ~15 s. Reproducible via python scripts/benchmark_freshness.py → freshness benchmark/v1/catalog and /v1/contracts and pinned by tests against the actual write pathv1.6.0 on PyPI (agentflow-runtime, agentflow-client) and npm (@yuliaedomskikh/agentflow-client) via OIDC Trusted Publishers with SLSA provenance on every artifactas_of historical reads — over sub-second entity lookups (p50 38–55 ms, p99 167 ms on local hardware)sqlglot AST validation for NL-to-SQL, fail-closed auth, secret scrubbing, and a Bandit gate for new findingsUpgrading from v1.0.x? See the v1.1 migration guide before installing.
Prerequisites:
3.11+makemake demo starts Redis and the ClickHouse serving store)PowerShell 7+:
git clone https://github.com/brownjuly2003-code/agentflow.git
cd agentflow
. .\scripts\setup.ps1
make demo
macOS / Linux:
git clone https://github.com/brownjuly2003-code/agentflow.git
cd agentflow
source ./scripts/setup.sh
make demo
make demo starts Redis and ClickHouse, seeds demo data through the full pipeline (validated events land in the ClickHouse serving store), and serves the API on http://localhost:8000. Swagger UI is available at http://localhost:8000/docs.
Try it:
curl http://localhost:8000/v1/entity/order/ORD-20260404-1001
curl -X POST http://localhost:8000/v1/query \
-H "Content-Type: application/json" \
-d '{"question":"Show me top 3 products"}'
Local demo runs without API-key enforcement unless you explicitly configure AGENTFLOW_API_KEYS_FILE.
Event sources -> Kafka -> Flink -> Iceberg --------\
-> Semantic layer -> FastAPI -> Agent / SDK
Local demo -> local_pipeline -> ClickHouse ------/
(DuckDB stays the local lake / test store)
Stack:
final=1 reads), DuckDB the local-dev / test storeSee docs/architecture.md for the detailed design, trade-offs, and deployment topologies.
CDC source capture is standardized on Debezium/Kafka Connect; downstream consumers use the canonical AgentFlow CDC contract defined in ADR 0005.
| Area | Files |
|---|---|
| API core | src/serving/api/ |
| Semantic layer | src/serving/semantic_layer/ |
| Python SDK | sdk/agentflow/ |
| TypeScript SDK | sdk-ts/src/ |
| Agent integrations | integrations/agentflow_integrations/ (LangChain, LlamaIndex, CrewAI, MCP) |
| Flink jobs | src/processing/flink_jobs/ |
| Test suites | tests/ |
| Design decisions | docs/decisions/ (ADRs) |
| Public site | site/ |
| IaC | infrastructure/terraform/, infrastructure/dv2/, helm/, k8s/ |
| DV2.0 warehouse | warehouse/agentflow/dv2/ (hubs / links / satellites + real-dataset loader) |
Core
Deep dives
# verified release slice
python -m pytest tests/unit tests/integration tests/sdk -q
# benchmark and regression gate
python scripts/run_benchmark.py
python scripts/check_performance.py --baseline docs/benchmark-baseline.json --current .artifacts/load/results.json --max-regress 20
# benchmark trend: [.github/perf-history.json](.github/perf-history.json) is appended on every main push;
# render the history locally with `make perf-plot` (writes docs/perf/history.html).
# contracts and security
python scripts/generate_contracts.py --check
bandit -r src sdk --ini .bandit --severity-level medium -f json -o .tmp/bandit-current.json
python scripts/bandit_diff.py .bandit-baseline.json .tmp/bandit-current.json
v1.6.0 is the current release line — PyPI agentflow-runtime /
agentflow-client and npm @yuliaedomskikh/agentflow-client, all
published via OIDC Trusted Publishers with SLSA provenance attestations.
CI on main is green across all 13 required checks.
The v1.1.0 → v1.6.0 arc landed in six increments on top of a security
audit-closure sprint:
v1.1.0 — audit closure: tenant isolation across every read
surface, SQL guard centralized on sqlglot, entity allowlist
enforcement, fail-closed auth, secret rotation, Helm hardening,
OpenAPI drift gate, and the required status checks.v1.2.0 — DV2 multi-branch warehouse: 38 Data Vault 2.0 tables
(8 hubs / 8 links / 22+ satellites), an Argo Workflows dv2-refresh
template, a dbt project (3 mart models + 12 tests), and per-branch CDC
fan-out via ClickHouse MaterializedPostgreSQL.v1.3.0 — helm/kafka-connect hardening matched to helm/agentflow
(NetworkPolicy + PDB + securityContext), live Helm validation across both
charts, and the narrated DV2 demo (terminal + web-UI + dbt docs).v1.4.0 — maintenance: on-call runbooks, SECURITY.md, issue/PR
templates, contract/DORA CI hardening, repo hygiene, and a dependency
wave (mypy, Terraform AWS provider, TypeScript, GitHub Actions,
Vitest). No runtime API changes from v1.3.0.v1.5.0 — security & correctness hardening: argon2id key hashing
with an O(1) peppered lookup index (M-C4), an NL→SQL guard bypass fix
(typed read_csv / read_parquet scan functions now denied in
projection position), sqlglot control-byte and mutation-target
repairs, and a strict-mypy expansion across the orchestration and
freshness slices. No public API changes.v1.6.0 — the architecture-fixing release: ClickHouse becomes the
shipped serving engine (pipeline sink, ReplacingMergeTree row versions,
backend-routed event scan, a dedicated CI E2E lane against a real
ClickHouse), PII protection moves from the removed app-level string-parse
gate to engine-enforced vault governance (fail-closed column grants,
per-jurisdiction officer roles, row policies, SQL SECURITY DEFINER
views — every live adversarial probe green), plus the vendored NL→SQL
generation engine (LangGraph, routed through GraceKelly), the DV2 raw
vault on PostgreSQL with LISTEN/NOTIFY freshness, the MinIO-backed
PyIceberg catalog, and the OpenSSF Scorecard channel (5.8 → 7.0).The tagged line and main are in sync as of v1.6.0. See the
changelog for full detail.
This is a reference data-engineering project. The streaming, warehouse, and deployment artifacts (Flink, Iceberg, Helm, Terraform, k8s) are exercised against a local pipeline and a kind cluster in CI rather than a managed cloud. Wiring it to a live production source needs inputs that live outside the repo — CDC source onboarding (runbook ready in docs/operations/cdc-production-onboarding.md), a public benchmark on production-grade hardware, and an external pen-test attestation.
| Admin UI | API docs |
|---|---|
| Landing page | Benchmark run |
|---|---|
Capture notes and publish-time checks are listed in docs/publication-checklist.md.
MIT. See LICENSE.
Built as a data-engineering reference project. Initial release cycle
2026-04-10 → 2026-04-20, with post-audit hardening and the DV2
extension landing through v1.4.0. Architecture decisions are recorded as
ADRs in docs/decisions/.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 2.0.0 | 6 Jul 2026 | 47 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:55 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:b3e03f53b6300fe2144c3ba395444784ca8a1accc0bbc96068b32fe028af2b8b