Your Internal Developer Platform Will Not Survive AI Unchanged

· · Updated  · 10 min read

AI changes the job of an internal developer platform. Model access, data context, evaluation, agent runtime, cost attribution and policy now need a supported path, not six teams inventing six different stacks.

Listen, 11:14 Synthetic voice cloned from John, with his consent

Audio edition

Chapters
  1. Chapters load when you press play.

Read by a synthetic voice cloned from John with his consent. About the audio edition

Your internal developer platform can deploy an agent successfully and still leave you unable to explain what it did. Containers are healthy, the release passed CI, and the endpoint responds. None of that tells you which documents the agent retrieved, which tools it called, or why one request cost ten times another.

I would extend the existing platform to answer those questions. Identity, deployment, incident response and cost allocation already have owners there. AI adds controls those owners must support. Creating another platform does not remove the need to join them up.

That recommendation has a condition. Your platform must already offer services teams choose to use, with support and capacity to change them. If it is a ticket queue around Kubernetes, adding an AI catalogue will not turn it into a product.

Follow one failed request

Consider a hypothetical customer-support agent. It retrieves account information and policy documents, drafts a response, and can request a refund through a tool. The application team deploys it through the usual pipeline.

A customer receives an incorrect answer. Around the same time, the team’s model bill rises. Support needs to know what happened; finance needs to know whether the extra spend bought useful work.

An application trace shows a successful HTTP request. The provider invoice shows token consumption. Neither identifies the policy document used in that answer or whether the agent retried the refund tool. The deployment record identifies the container image, but the prompt was edited separately and the model was selected through a provider alias.

The investigation crosses four boundaries: application release, model dependency, retrieved data and tool execution. Someone must connect them. A platform that records only the first leaves the application team to assemble the rest during an incident.

Figure 1One Request, Four Boundaries

One request, four boundaries One request ID carried through every model call, retrieval and tool call What a delivery platform records today What the investigation needs Application release Container image CI passed Release ID Prompt version Model call HTTP 200 Invoice tokens Requested model Reported version Usage per service Retrieval Not recorded Document IDs Document revisions Tool call Not recorded Arguments Outcome Retry attempts Access and retention rules cover every field in this record.
Today's records cover two of the four boundaries and share no key. A request ID carried through all four lets one investigation follow the answer from release to refund.

Start with a request identifier carried through every model call, retrieval and tool invocation. Record the application release, prompt version, requested model and provider-reported version where available, retrieved document identifiers and revisions, tool arguments and outcomes, and usage attributed to the owning service. Set access and retention rules for that record: debugging does not justify putting customer data in an unrestricted log.

That gives you evidence to investigate. It does not guarantee exact replay. A hosted model may change, retrieval sources may have moved, and a refund already issued cannot be undone by replaying a trace. Preserve permitted snapshots where needed, distinguish captured outputs from fresh calls, and test tool flows against fixtures rather than repeating live actions.

Seven capabilities, with boundaries that matter

I use seven capabilities to check platform coverage. They are responsibilities to account for, not a prescription for seven new microservices. An existing gateway may cover model access and parts of policy; the current telemetry stack may already handle most observability.

CapabilityDecision it must supportBoundary to settle
Model accessWhich models may this workload call, under which limits?Platform manages credentials and enforcement; application owner selects models that pass its quality tests.
Data contextWhich records may this user retrieve, and how fresh must they be?Data owner defines access and freshness; retrieval implementation must preserve them.
Agent runtimeWhich actions may this agent take, and when must it stop?Tool owner defines permissions and side effects; runtime enforces step, time and usage limits.
EvaluationIs this release good enough for this task?Application owner sets acceptance criteria; platform supplies runners and release integration.
ServingHow do we expose, change and withdraw the endpoint?Reuse deployment controls; version AI configuration alongside application code.
ObservabilityCan we explain behaviour and attribute spend?Platform supplies trace plumbing; service owner responds to alerts and investigates failures.
PolicyWhere is each restriction enforced, and who can approve an exception?Security and data owners set requirements; enforcement belongs at the relevant call or access boundary.

The AI Platform Operating Model gives a structured view of that scope. Three boundaries deserve particular care.

Model access should not erase model differences. A gateway can isolate keys, enforce quotas and attach cost tags. It cannot make two models interchangeable. A fallback may change tool selection, output format or answer quality. The application owner should approve fallback behaviour through evaluation, with the selected model visible in the trace. Leave provider-specific features accessible where the workload needs them.

Retrieval permissions belong to the requesting identity. A shared knowledge-base credential is convenient until it returns another customer’s records. Apply tenancy and access checks during retrieval, and include those boundaries in tests. The platform team can provide the mechanism; it cannot decide who is entitled to see the source data. Freshness is a data-owner commitment, not something a vector database supplies by itself.

Tool permission and action approval are different controls. Registering a refund tool does not authorise every refund. Its implementation still needs to enforce account scope, amount limits and any required human approval. Retries need explicit treatment: a timed-out call may have completed its side effect. Record the outcome and use idempotency controls where supported before allowing another attempt.

Figure 2Retry After a Timeout

A timeout does not mean the refund failed Retry with no key Agent Refund service Refund request Refund issued Reply lost Timed out Retry Second refund Customer refunded twice Retry with the same key Agent Refund service Refund request, key K1 Issued, K1 stored Reply lost Timed out Retry, same key K1 K1 found: no refund Original outcome Customer refunded once
The first call succeeded; only its reply was lost. A retry with no key repeats the side effect. A retry carrying the same idempotency key returns the original outcome instead.

These are the places where a shared template earns its maintenance cost. A catalogue entry saying “safe agent” does not.

Share controls without transferring accountability

The platform team owns shared services: availability, supported interfaces, enforcement mechanisms and operational documentation. The application team owns the agent’s task, its quality threshold and the consequences of its actions. Data and tool owners retain authority over their resources.

For the support agent, I would assign the application owner responsibility for incorrect-answer rates and refund behaviour. The platform owner would respond if model access or trace collection failed. The data owner would handle stale policy documents. Security would approve any exception to the tool-access rules. Each needs a route into the same incident, rather than four dashboards with no agreed handoff.

Cost follows the same division. The platform meters calls and enforces agreed limits; the service owner decides whether the workload is worth its cost. A spend alert needs a recipient and an action. If nobody can suspend the agent when it exceeds its allowance, attribution is only reporting. The circuit breakers in FinOps for AI cover that distinction.

Figure 3One Incident, Four Owners

One incident, four owners Incorrect answer reported One incident, with the request ID attached Owns Acts when Application owner Answer quality Refund behaviour Incorrect-answer rate rises Platform owner Model access Trace collection Model access or tracing fails Data owner Policy documents Document freshness A policy document is stale Security Tool-access rules Exceptions to them An exception is requested Spend alert: the platform enforces the limit; the service owner decides whether to continue.
Each owner acts on the boundary they control, through the same incident record. The platform supplies the mechanism; it does not take on the application's accountability.

This is the product work behind an internal developer platform: supported defaults, clear customers and feedback from actual use. Measure whether another team can adopt the path and operate its workload without negotiating every boundary again.

When a separate AI team makes sense

A specialist team can be useful while demand is uncertain, while evaluation methods are being developed, or when self-hosted models require expertise the existing platform team lacks. An enablement team can help application teams discover requirements before those requirements deserve a shared service.

The decision turns on what is being shared and who can support it. One experimental workload does not necessarily justify a central agent runtime. Several teams separately building credential management, retrieval access checks and usage accounting are a stronger case for platform investment.

I would give a specialist team explicit integration obligations: use the organisation’s identity system, emit traces into incident tooling, attribute costs to service owners, and document who supports each production dependency. Revisit ownership when other teams start depending on its interfaces. A separate reporting line is manageable; an unowned production boundary is not.

Platform extension is my default where those shared services already work. It still costs engineering time and can delay teams if every model or tool change requires central approval. Keep workload-specific decisions with application owners, and centralise controls that need consistent enforcement across them.

Use 90 days to prove one supported path

A 90-day pilot is a planning boundary, not a delivery guarantee. I would attempt it with an existing deployment platform, approved model access, a usable telemetry stack, one application team and named data, security and platform owners with time allocated to the work. Procurement, residency approval or new accelerator infrastructure may require a different schedule.

Figure 4The 90-Day Pilot

Prove one supported path before expanding Month 1 Make it attributable Approved model access Trace and usage limits Exit test Trace one request and reconcile its usage Month 2 Test data and behaviour Retrieval with owners Evaluations, retry test Exit test Make a release decision from the results Month 3 Exercise operation Rollback and stop drills Alert routing confirmed Exit test Second team runs it from the template Expand only when every owner accepts Service owner quality results Data and tool owners access controls Platform support the runbook Finance usage attribution If one gate fails, fix that boundary before onboarding more workloads.
Each month ends in a test someone can fail. Expansion waits for all four owners, not for the calendar.

Keep the pilot to the support workflow. Start with draft responses reviewed by a person and read-only tools. Introduce refund execution only after its permissions, approval rules and failure handling pass testing. Reuse existing infrastructure wherever it meets the requirements.

First month: make the request attributable

Connect the workload to approved model access. Keep provider credentials out of application code, enforce access by service identity, and attach release, prompt, model and cost identifiers to the trace. Set usage limits and appoint the person who receives a breach alert.

The exit test is an investigation exercise: select a pilot request and identify the owning service, deployed configuration, model calls and attributable usage. Reconcile the usage record with provider reporting, documenting any estimation or delay. If that cannot be done, adding more agents will multiply the gap.

Second month: test data access and behaviour

Add the retrieval sources needed for this workflow, with their owners, access rules and freshness requirements. Build an evaluation set from permitted examples, covering correct answers, insufficient evidence, cross-customer access attempts and tool failures. Record the expected outcome and acceptance threshold for each category before judging a release.

Run those checks when prompts, models, retrieval configuration or tools change. Test authorised tool calls as well as denied ones. Inject a timeout and verify that retry handling cannot issue a duplicate refund.

The exit test is a release decision supported by results. The application owner must be able to explain which failures block deployment, which require human review and which are acceptable within the pilot’s scope.

Third month: exercise operation and adoption

Practise withdrawing a faulty release, disabling tool access and stopping a workload at its usage limit. Confirm who receives each alert and what they can do. Rollback must restore the relevant prompt and retrieval configuration as well as application code; it cannot reverse completed external actions.

Then ask a second team to use the template and documentation. Watch where it needs help. That identifies what belongs in the shared platform and what was merely knowledge held by the pilot team.

Expand only when the service owner accepts the quality results, data and tool owners accept the access controls, platform support accepts the runbook, and finance can follow the usage attribution. If one gate fails, fix that boundary before onboarding more workloads. Decision rights and exception handling belong in the AI Governance Operating Model.

The test before you expand

Return to the incorrect support answer. Can the on-call engineer identify the release, inspect the permitted retrieval evidence, follow the tool calls and stop further actions? Can the service owner explain the cost and decide whether to continue?

Those answers are the acceptance test. A catalogue and a completed 90-day plan are not enough. I would expand the platform when a second team can answer those questions using the supported path—and knows who to call when it cannot.