AI/agent engineering on an enterprise JVM stack. I build the unglamorous parts that make LLM systems shippable: bounded tool-calling loops, MCP integrations, eval gates in CI, and the reactive plumbing underneath.
Day job: platform & AI tooling for a 60+ microservice fleet (Java/Spring WebFlux, Kubernetes, GraphQL federation) — including an internal code-intelligence MCP server with 50+ tools that gives coding agents whole-workspace context.
These repos aren't seven demos — they compose. A production-shaped agent core, and the layers you actually need to run one: observe its cost, record what it did, survive a dead link, deploy it safely, gate it on evals, and contract-test its tools.
flowchart TB
starter["<b>spring-ai-agent-starter</b><br/>reactive tool-calling agent core"]
meter["<b>agent-meter</b><br/>OTel cost attribution + budgets"]
blackbox["<b>agent-blackbox</b><br/>flight recorder + trace export"]
castaway["<b>castaway</b><br/>runtime for disconnected environments"]
operator["<b>agent-operator</b><br/>k8s operator: prompt-version canaries"]
evals["<b>agent-evals</b><br/>JUnit for agents — CI exit-code gate"]
mcppact["<b>mcp-pact</b><br/>contract tests for MCP servers"]
medic["<b>agent-medic</b><br/>incident → gated prompt repair"]
slo["<b>agent-slo</b><br/>behavioral SLOs + promotion freeze"]
fathom["<b>fathom</b><br/>agnostic verified context + impact engine"]
conductor["<b>conductor</b><br/>cross-repo change-awareness daemon"]
meter -. "wraps LlmClient (cost)" .-> starter
blackbox -. "wraps LlmClient (record)" .-> starter
mcppact -->|"guards the MCP tool boundary"| starter
castaway -->|"reuses the core, adds link-failover"| starter
operator ==>|"deploys + rolls prompt versions"| starter
operator -. "canary gate runs" .-> evals
evals ==>|gates| starter
evals ==>|gates| castaway
evals ==>|gates| operator
medic -->|"diagnoses from traces"| blackbox
medic ==>|"repairs ship as gated prompt canaries"| operator
slo -->|"continuous evals are the SLI"| evals
slo ==>|"budget burn freezes promotions"| operator
fathom -. "mounts as MCP context tools" .-> starter
mcppact -->|"contract-tests"| fathom
conductor -->|"Flock consumes impact graph"| fathom
classDef core fill:#1f6feb,stroke:#0b3d91,color:#fff;
class starter core;
Legend: dotted = non-invasive decorator seam (add a dependency, no code change); solid = builds on / guards; thick = eval gate.
Core
- spring-ai-agent-starter — what an agent looks like in a production JVM service: a bounded, reactive tool-calling loop with retries, MCP mounting, and a unit-tested core.
Observability & cost (decorator seams on the core)
- agent-meter — OpenTelemetry-native token/cost attribution (per feature/session/prompt-version) with budgets that degrade before they deny. Add the dependency, get cost telemetry.
- agent-blackbox — the flight recorder: what the agent actually did, exportable for diffing and eval.
Resilience
- castaway — an agent runtime for disconnected/degraded environments: local-model failover, queued side-effects with revalidation, honesty under degradation.
Delivery
- agent-operator — a Kubernetes operator that treats a prompt like code: canary a new prompt version, gate the promotion on an eval Job, roll back on failure.
- agent-medic — the immune system: a production failure becomes a regression case, a gated prompt repair, and a human-approved promotion. Every incident permanently hardens the eval suite.
Quality gates & contracts
- agent-evals — JUnit for LLM agents: golden datasets, LLM-as-judge, exit-code CI gates (used across the platform).
- mcp-pact — Pact-style contract testing for MCP servers, so a tool schema change can't silently break its consumers.
- agent-slo — behavioral SLOs: error budgets for honesty, tool discipline, and cost, where budget burn freezes prompt promotions. RFC + proving slice.
Context & coordination
- fathom — an agnostic, verified, local-first context engine: the same tools answer "what breaks if I rename this class?" and "what breaks if I drop this column?" over one typed graph, it verifies every answer against the source before returning it (a stale index says so instead of guessing), and it marks contract surface + cross-repo impact. No vector database. Contract-tested by mcp-pact.
- conductor — a cross-repo change-awareness daemon. Its Flock feature consumes fathom's impact graph to warn a live agent session when a contract surface another repo depends on is about to change ... coordination before the break, not after.
Method
- agent-engineering-playbook — the method behind the repos: the specs, review gates, and quality bars used to direct AI agents through building everything above.


