All cases

Engineering intelligence

An engineering organisation you can ask questions

Src turns repositories, tickets, delivery history and AI coding traces into source-backed answers. Claude runs the agent layer in three roles per conversation, with provider failover that never changes vendor, server-side code execution, and every token priced back to the organisation that spent it.

span.app/platform/src
Span product

Industry

Enterprise SaaS · Engineering intelligence

Models

Claude Sonnet 4.6 (lead, review) · Haiku 4.5 (fast execution)

Transport

Anthropic API ⇄ Bedrock

Architecture

LangGraph lead agent with research, metrics, codebase and coaching specialists

Surfaces

Span web app · Slack · scheduled reports

3 roles

Lead, fast and review, resolved per thread and never named at the call site

Automatic

Anthropic ⇄ Bedrock failover; the transport changes, the vendor does not

USD

Per-organisation monthly budget, enforced at the call

Engineering leaders have more data than ever and still cannot answer basic questions about how work gets done. Code lives in repositories, delivery in project tools, ownership in organisational systems, and AI coding adds an entirely new layer of prompts, models, tool calls, token cost and agent behaviour. Dashboards display metrics; they cannot investigate a question, connect evidence across systems, or explain why a pattern is happening. Src's users ask what no dashboard answers: why did this workstream slip, what is this service actually doing, which work was capex. The agent is a LangGraph graph, and Claude is the model that runs it.

Roles, not model names

Call sites never name a model. They request a use (lead, fast or review) and a per-thread catalog resolves it. A thread pins one vendor for its whole life, so protocol-level behaviour stays consistent even as the transport underneath changes. Adding a new role costs a catalog entry, not a rewrite of provider construction.

Plan, execute and review, each by a different model

Complex research runs as a three-stage workflow. Sonnet 4.6 plans the investigation and identifies the evidence required. Haiku 4.5 performs high-volume tool selection and data retrieval. Sonnet then reviews the final result, checks whether the question was actually answered, and sends incomplete or unsupported work back for revision.

Tool calls run in parallel when their results are independent. Long investigations maintain a task list, compact context as the conversation grows, and validate citations before returning an answer, which is what moves Src past retrieval into sustained investigation without losing the link between conclusion and evidence.

Failover that keeps the vendor

Claude is reachable two ways, and Span uses both. A Redis-backed policy watches for rate limits and upstream errors on the primary; past a threshold inside a window it flips the fleet to the secondary transport for a fixed duration, then flips back.

The distinction that matters: the transport changes, the vendor does not. The same Claude model answers, so nothing about the thread's behaviour shifts under the user mid-investigation.

Code execution on Anthropic's servers

The agent calls Claude's code_execution server tool alongside its own local tools, so it can analyse large result sets without putting every row into the conversation context. That combination has semantics worth knowing: a turn calling both returns the local tool calls plus a pending server_tool_use block, and the code execution result only lands on the next call, after the local ToolMessage is submitted. Span mapped that two-step pattern explicitly rather than discovering it in production.

Investigations that outlive the context window

Long investigations exceed any window. When a thread approaches its limit, older history is summarised by a separate model call while unanswered user messages and recent turns stay literal, then reassembled behind the original system prompt.

The empty-message and whitespace rules the Messages API enforces are documented from live testing and filtered before the request goes out, one fewer class of 400 in production.

Coaching that has to quote the behaviour

A dedicated Claude-powered coach analyses each coding session at three levels: the overall trace, individual user turns, and the underlying events, meaning prompts, tool calls, file reads, edits and sub-agent activity. Claude calibrates its analysis against the type and complexity of the task, distinguishing healthy exploration from unnecessary tool usage, and effective autonomy from incomplete validation.

The rule that keeps it useful: a recommendation must be supported by specific, quoted behaviour rather than an aggregate score. That is the difference between coaching and a productivity ranking.

Every token priced

Usage metadata from each call feeds a ledger that separates input, output, cache reads and cache writes, prices them per model, and applies the regional multiplier when the call went through Bedrock. That ledger backs a per-organisation monthly budget in dollars with ok / warn / blocked states.

Because the budget is enforced at the call rather than reconciled at month end, cost becomes a product guarantee instead of a surprise.

Claude as the classifier of record

The metrics specialist translates natural-language questions into queries against Span's engineering knowledge graph, connecting numbers to the teams, people, services, pull requests, issues, deployments, incidents and workstreams around them. Further downstream, Claude classifies engineering work by type across an entire organisation's history, and those labels roll up into the capex/opex split the finance side reports on.

This is the part worth being precise about: model output here is not advisory, it is the number on the report. A classification that feeds a financial report has to survive review, so sampling, an audit trail back to the source commits, and a documented prompt version are not extras. They are the control.

The outcome

Src uses Claude to replace static engineering reporting with an interactive understanding layer. Teams explore code, investigate operational questions, build leadership reports, analyse AI effectiveness and understand engineering behaviour through one source-backed conversation.

Every conclusion is designed to show its evidence, which makes the result something teams can verify and act on, rather than another opaque AI summary.

Stack

Claude Sonnet 4.6Haiku 4.5Tool usecode_executionPrompt cachingInterleaved thinkingStreamingContext compactionParallel toolsCitation validationSandboxed analysisLangGraphAnthropic API + Bedrock failoverPer-org usage ledger

Put an embedded AI team on your roadmap

Forward-deployed engineers to deploy, AI-native engineers to build, and on-demand QA pods to validate, embedded with your team, starting the same day.