← Case studies

Agentic engineering · Enterprise

Shared context for nine agent workflows.

A European food wholesaler's agents could read individual systems but missed decisions made elsewhere. Over eight months, Sinumo and the client's platform team connected that context, introduced governed model access, and delivered nine workflows with human review. The platform team took ownership of the system at handover.

ClientInternational food wholesaler, Europe (name withheld)
ProgramAgentic engineering
DurationOctober 2025 – May 2026
ScopeParticipating teams and the nine workflows delivered during the engagement
Sinumo teamAI Strategist (lead), AI Engineer
Client team Executive sponsor (Technology), Head of Platform Engineering, Product Operations Lead, two platform engineers, one data engineer, IT Security & Compliance (review)
Updated

In brief. A Neo4j graph connected records across twelve systems. A LiteLLM gateway supplied model routing, workflow budgets, and tool access controls. Pull request review reached daily use in week seven. By the May handover, nine workflows shared this foundation, and client engineers owned the code and its operation.

The missing context was between systems.

The platform team entered the engagement with two pilots: a chat assistant over Confluence and a coding agent that used Jira to interpret planned work. Both exposed the same problem. A document or ticket could look current while a decision in another system changed what the team needed to do.

In one pilot incident, the coding agent refactored a pricing module while a Slack discussion held that work pending legal review. The relevant restriction existed, but the agent did not retrieve it. Better access to that decision was a concrete requirement for the next version of pull request review.

Engineering context lived in code, pull requests, and delivery history. Product used Jira and Confluence. Commercial and operations teams used Airtable, Google Workspace, and Slack. Sentry, PostHog, and AWS held different parts of the picture when something failed. Reviewers needed to see which of these sources informed a draft.

Discovery covered seven groups: engineering, product, marketing, sales, operations, support, and directors. Interviews helped identify who made decisions, which records mattered, and where documented processes differed from daily practice.

Those differences required care. A description of what people do does not establish what they are authorized to do. Conflicting instructions need an accountable owner; a graph cannot settle that question merely by storing both versions.

Make the useful relationships explicit.

We used Neo4j as a shared knowledge and retrieval layer. It connected a ticket to its pull request, release, discussion, and related operating signals. These relationships gave workflows a way to retrieve the surrounding context for a specific piece of work.

The graph complemented source documents and prompts. Its purpose was to make these connections explicit and reusable. Freshness depended on the observers that captured changes; review depended on the evidence available to the person checking the output.

Source systems send changes through observers to a curator. The curator writes to Neo4j, and agents retrieve context through a graph MCP server.
The knowledge layer Observers capture changes. The curator creates and connects graph records. Workflows read them through a shared interface.

Observers capture changes. Event-driven sources supply updates as events arrive. Scheduled sources supply periodic snapshots. Nine observer categories covered the twelve systems, with Jira and Confluence grouped together and the internal systems collected through one scheduled observer.

Sources included in the engagement
ObserverSource and scopeUpdate cadence
Code and deliveryGitHub issues, pull requests, and CI/CD eventsEvent-driven
Planning and documentationJira issues and Confluence documents and discussionsEvent-driven
CollaborationRelevant Slack discussions from allowed channelsEvent-driven
ErrorsSentry issues, regressions, and release healthEvent-driven
Product behaviorPostHog analytics and product signalsHourly
InfrastructureAWS infrastructure eventsEvent-driven
Business dataAirtable campaign, account, and supplier recordsHourly
WorkspaceGoogle Groups email, Docs, Sheets, and Drive within shared team foldersEvery four hours
Internal systemsOrder management, pricing, and logistics recordsNightly

These cadences describe collection schedules, not guaranteed end-to-end latency. A scheduled snapshot can lag the event that triggers a workflow. In particular, hourly analytics do not establish the state of checkout at the instant an incident starts.

The curator reconciles and writes. It resolves records that refer to the same customer, supplier, or product, creates connections, and flags ambiguous matches for human review. It is the only component allowed to write to the graph. Observers submit events to it rather than writing nodes themselves.

The graph MCP server supplies context. This shared tool interface exposes queries for pull request context, account changes, and the sources behind decisions. Queries are logged with the calling workflow. That log helps trace retrieval activity; it does not prove that an answer is complete or correct.

Historical review also needs the evidence as it existed at the time. A query against a changing graph is not a substitute for a saved response or source version. Likewise, an agent proposal and a human-approved decision carry different authority, even when both relate to the same event.

Shared controls for the delivered workflows.

LiteLLM provided a common gateway for model calls from the engagement's workflows. Virtual keys separated their usage and monthly budgets. The platform team could inspect model spend, latency, and failures by workflow.

The gateway also registered the shared tools, with access controlled by key. Versioned skills described tasks such as incident summaries and release communications. Internal applications invoked agents through an A2A endpoint; staff could invoke the same agents from Slack.

How model work was divided by the May handover
GroupWorkRouting approach
ReasoningDesign reviews and incident analysisLatency-based routing across frontier deployments, with provider fallback
WorkhorseDrafting, summarizing, and structured extractionWeighted routing across mid-tier models
ClassifyRelevance filtering and record matchingCost-based routing across small models
BatchScheduled retrieval, backfills, and evaluationsRate-aware routing with request ceilings to limit background demand

Smaller models handled filtering and extraction. More capable models handled work that required broader analysis. Retrieved context and cached outputs reduced unnecessary repetition. Model changes went through the evaluation suite before adoption.

Retries, cooldowns, and provider fallbacks supported recovery from failed calls. Session affinity kept multi-turn conversations on a deployment where possible, to support prompt caching. These controls reduce avoidable disruption; shared quotas, provider failures, and cache behavior still affect the result.

The client's requirements included EU data residency and human approval for production changes. Region filtering on the gateway addressed model deployment selection. It does not, by itself, establish where provider processing, logs, or backups reside.

Access to a tool is also distinct from access to every record it can retrieve. Document permissions, changes to access, and the audience for a combined answer remain separate concerns. The controls described here cover workflow and tool access; this account does not establish an end-to-end residency or record-permission audit.

Technical note: how the gateway evolved

Before routing groups, the engagement used two proxy instances to separate reasoning traffic from the other work. In May, routing groups allowed those strategies to share one instance.

LiteLLM's 6 December 2025 release introduced the A2A Agent Gateway. The engagement added that entry point in January. Deployment affinity was available in the March v1.82.3 implementation. The 14 May 2026 release introduced per-model routing groups.

These references establish when the capabilities became available. They do not independently verify the client's deployment or its results.

Nine uses of the same foundation.

By May, the participating teams used the shared layer for the workflows below. Their common pattern was to retrieve evidence, prepare an output, and retain human review at the decision point.

Workflows delivered during the engagement
TeamWorkflowOutput for review
EngineeringPull request reviewReview notes with scope and decision context
Platform and operationsIncident triageEvidence summary and proposed severity
Sales and supportRelease communicationsDraft release information
DirectorsWeekly delivery briefSummary of delivery and relevant decisions
SalesAccount contextConnected account summary
SupportReply draftingGrounded draft for a support colleague to review
OperationsSupplier reconciliationRecord matches and conflicts
MarketingCampaign digestPerformance summary
PricingChange-impact checkRelated context before a pricing change

The supplier and pricing workflows put the same connected context around commercial work. A disputed record still required a person to resolve it. A pricing recommendation still required approval.

From alert to a draft a person can check.

Incident triage shows how the pieces fit together. A Sentry issue on the order service triggers context collection. The draft brings release history and operating signals into one place for the on-call engineer.

  1. 01 · Observe Capture the alert

    The Sentry observer sends the issue, stack trace, and release tag to the curator.

  2. 02 · Connect Build the context

    The curator creates the issue node and links its release, pull requests, tickets, and deployment event.

  3. 03 · Retrieve Collect the supporting records

    The agent retrieves that chain, relevant Slack discussion, the on-call record, and the available analytics snapshot.

  4. 04 · Decide Keep the operational decision with the engineer

    The agent posts a draft. The engineer checks the evidence, sets severity, and decides whether to roll back.

  5. 05 · Record Retain the decision and outcome

    The curator records the human decision and its supporting context for later incidents.

What the incident draft brings together
Draft contentSupporting evidenceHuman judgment
Possible causeThe issue, release, related pull requests, and discussion of a risky migrationDetermine whether the suspected change caused the failure
Affected flowThe order-service error and available checkout analyticsVerify current impact and the reporting window
Proposed severityThe collected evidence and on-call contextSet severity and choose the response

PostHog context came from the hourly observer. It can describe a recent reporting window without establishing live checkout impact. The engineer still needs to verify current conditions before an operational decision. The agent did not page anyone or execute a rollback.

The useful change was earlier access to a structured starting point for investigation. Producing that draft is a different milestone from validating a cause or restoring the service.

Delivery, adoption, and the limits of the figures.

  • Nine workflows in production by May 2026 across the participating teams.
  • Pull request review in daily use in week seven, in mid-November 2025.
  • Twelve systems connected through nine observer categories, with event-driven and scheduled updates.
  • Client ownership at handover, including code, infrastructure, operating guides, and the evaluation suite.

Approximate figures from the engagement account

The original account recorded the estimates below. The underlying samples, complete comparison periods, and calculation records are no longer available. These figures describe reported observations; they are not independently verified or normalized benchmarks.

Reported estimates and what they measure
MeasureEstimate in the original accountInterpretation
Draft acceptance About 40% initially and roughly 70% later Approval without edits at a human checkpoint. Sample counts, workflow weighting, and consistent review criteria are unavailable.
Time to incident draft About 45 minutes initially and under five by March From a Sentry alert to a structured post. The incident count, severity mix, and use of a mean or median are unavailable.
Model spend per workflow About 40% lower by May than the first-month baseline A comparison with the initial frontier-model setup. Workload normalization and the treatment of retries are unavailable.

Several parts of the system changed during the engagement, including filtering, prompts, model selection, and context coverage. The acceptance figures cannot isolate the graph's contribution. Human acceptance also does not establish factual accuracy.

The cost estimate concerns model spend. It does not establish total savings after infrastructure, licenses, maintenance, and review effort. This account makes no quantified claim about revenue, service recovery time, or return on investment.

The knowledge layer needed ongoing care.

Slack needed selection. The first observer collected too much irrelevant conversation from the allowed channels. A small-model relevance filter and a channel allowlist controlled by team leads reduced that noise. Filtering also creates the risk of missing a useful decision.

Record matching remained a maintained process. Customers, suppliers, and products carried different identifiers across systems. The curator escalated uncertain matches to a weekly review queue owned by the data engineer. Keeping that queue useful was part of operating the system.

Observed practice did not settle policy. Interviews exposed differences between written processes and actual work. Source documents remained important evidence. A frequently repeated shortcut is not, on its own, approval to bypass a control.

Direct customer replies did not proceed. The client rejected autonomous support replies during compliance review because incorrect information about allergens or delivery terms carried unacceptable consequences. The delivered workflow prepared drafts for a support colleague to review instead.

The platform team took ownership.

Two client platform engineers paired with Sinumo from the first observer onward and had commit ownership by February. At handover, the team owned the graph, observers, curator, gateway, and workflows. The work also involved the client's data engineer, operational owners, and security reviewers.

  • Code and infrastructure for the shared layer and delivered workflows.
  • Operating guides for observers and workflows, including their maintenance responsibilities.
  • A versioned evaluation suite for workflow and routing changes.
  • A written operating policy for model choice, tool authority, and human checkpoints.

The account also records two workflows added by the client after May and one observer retired. These later changes are separate from the nine workflows counted at handover. They reflect the objective of giving the platform team a system it could maintain and adapt.