The Platform PM
Playbook

Building applied AI products: jobs, patterns and the platform underneath

Name the job your AI app does, pick the least autonomous building block that does it, give it the right context and tools, define good with real cases, set autonomy per action, and run each new job on shared layers at a known cost per task.

Last updated October 2026

The big picture

Six building blocks, from most predictable to most autonomous. In the first three the path is fixed in code; in the last three a model decides more of the path, which adds flexibility and takes away predictability. Pick the least autonomous one that does the job.

Picture a B2B software company of about 800 people. Its support and account managers spend hours a week digging through contracts and refund policies to answer questions like "this customer is on an annual enterprise plan and wants to cancel in month 4, what do we owe them?" You've been asked to build an assistant for that. Two more requests are already waiting: sales operations wants something that flags deals stuck in one stage for too long, and finance asks whether the assistant could issue small credits itself.

This playbook gives you one way to look at any AI app and a sequence of decisions for building your own, based on what the labs, the big clouds and the companies running these apps had published as of October 2026.

Six questions. I X-ray any AI app, a competitor's or my own team's, with the same six questions.

QuestionWhat it asksWhat to look for
ContextWhat does the model see?System prompt, retrieved documents, history, tool results and memory: how much, and for whom
ToolsWhat can it do?Every action it can take, what each one touches, and whether it can be undone
ControlWho decides the next step, code or model, and where does a person approve, edit or stop?The building block (below), and each point where a person steps in
QualityHow do we know it's good?A set of real cases with expected outcomes, and how often it passes
CostWhat does each task cost, and how long does it take?Cost and time per task, rather than price per token
RiskWhat stops it from doing harm?Permissions checked in code, limits, approvals, and what it does with text it didn't write

The labs' own guides cover most of these. I haven't found one that treats cost and speed per task as a question in its own right, and in my experience it's the one that decides whether an app survives its first budget review.

Nine jobs. Before the six questions, ask what job the app does. Most apps have a main one, and it tells you what "done" means, how much freedom the app usually gets and how it tends to hurt people.

  • Job: Build

    What the app does: Produces software someone will run

    Well-known examples: Claude Code, Cursor, GitHub Copilot, Lovable, Replit

  • Job: Know

    What the app does: Answers from the organization's own content, with sources, inside the asker's permissions

    Well-known examples: Microsoft 365 Copilot, ChatGPT company knowledge, Glean, Notion AI

  • Job: Do

    What the app does: Takes multi-step actions in other systems

    Well-known examples: ChatGPT agent, Claude computer use, Salesforce Agentforce, Copilot Studio agents

  • Job: Create

    What the app does: Generates content a person decides whether to keep

    Well-known examples: Canva, Adobe Firefly, Midjourney

  • Job: Serve

    What the app does: Answers customers, takes limited actions, hands off when stuck

    Well-known examples: Fin, Zendesk, Sierra

  • Job: Decide

    What the app does: Scores, approves or denies something with consequences

    Well-known examples: Stripe Radar; screening tools in hiring and credit

  • Job: Watch

    What the app does: Monitors systems or activity, investigates, tells the right person

    Well-known examples: Datadog Bits AI SRE, Sentry Seer, PagerDuty

  • Job: Capture

    What the app does: Turns calls, meetings and documents into structured records

    Well-known examples: Gong, Granola, Otter, Azure Document Intelligence

  • Job: Govern

    What the app does: Keeps other AI, and the people using it, inside the rules

    Well-known examples: Microsoft Purview, Okta, Microsoft Entra Agent ID

Six building blocks. The diagram shows six building blocks, from most predictable to most autonomous, named as in Anthropic's "Building effective agents" (December 2024). In the first three the path is fixed in code; in the last three a model decides more of the path, which adds flexibility and takes away predictability. Pick the least autonomous one that does the job. The agent loop is usually built as ReAct (reason, then act, then observe): the model reasons about what to do, acts by calling a tool, observes the result, and repeats until it's done or hits a limit. My test for "workflow or agent" is who decides the next step. If code decides, it's a workflow; if the model decides, it's an agent. Vendors use the words differently: Google and Microsoft call each step of a fixed pipeline an "agent".

One app, six questions. Here's the contracts assistant as I'd design it:

  • Context: the policy library and the customer's contract, found by search and filtered to what the person asking may see.
  • Tools: search the library and read the customer's record in the CRM. Nothing that writes or sends.
  • Control: code decides the path: a router picks a small or a stronger model, the model answers with citations, and a check in code confirms each one. The person asking decides what to do with the answer.
  • Quality: 40 real questions from the support queue, each with the answer finance agreed is right.
  • Cost: under a cent a question on the small model, and a few seconds to answer (phase 6 has the arithmetic).
  • Risk: it reads only what the asker can read, treats document text as information rather than orders, and has no way to send anything out.

That's a Know job built from routing and a chain. Finance's credits would add a Do job.

The phases follow the order of the decisions: name the job (phase 1), choose the building block (phase 2), give it context and tools (phase 3), define good with real cases (phase 4), set autonomy and guardrails (phase 5), then run it on shared layers and add the next job (phase 6). Release gates and the weekly quality review are in Running an agent product, and team-wide adoption in Becoming AI native.

If you only remember a few things:

  1. The job: name it before you pick a model. It sets what "done" means, how much freedom the app should get and how it can hurt people (phase 1).
  2. Least autonomy: use the least autonomous building block that does the job. Open loops pay off where tests or diffs check every step, as in coding (phase 2).
  3. Real cases: write down 20-50 real cases with expected outcomes before you tune the prompt, and grow them from what you see in traces. They outlast your prompts and your model (phase 4).
  4. Autonomy per action: set it for each action and enforce it in code at the tool. A permission check holds when a prompt or a classifier doesn't (phase 5).
  5. Cost per task: measure it per task rather than per token. Steps, context per step and model choice per step decide the bill (phase 6).

01Before you write a prompt

Name the job

You can say in one sentence which job the app does, who uses it and who's affected, what "done" looks like and what it must never do, and you've collected about 20 real examples of the work.

Pick the main job from the nine, then list any others. Fin is a Serve product with a Know job inside it. Each job brings its own default autonomy and its own way of going wrong, so I'd treat adding one to an existing app as a launch of its own.

What "done" means. Each job has its own end state. Build: a merged or published change that passes checks. Know: a correct answer with sources the asker may see. Do: the other system's state changed correctly. Create: something the user keeps. Serve: the problem solved, or handed to a person with context. Decide: a decision that can be explained and appealed. Watch: the right person told, with evidence. Capture: a record correct enough to trust, or flagged for review. Govern: a policy enforced, with a record that it was.

Who's affected. Users and affected people aren't always the same. Capture and Decide touch people who never open the app: others on a recorded call, the applicant whose CV was screened. A class action filed in 2025 alleges that Otter's meeting assistant recorded people who never agreed to it (pending as of April 2026). Granola made the opposite choice: no bot joins the meeting.

The never list. Write the handful of things the app must never do. They become the first hard cases in phase 4 and the first permission checks in phase 5. For the contracts assistant: never state an amount owed without citing the clause, never show a contract to someone who can't open it in the CRM, and never describe a policy the library doesn't contain. Air Canada learned the last one in front of a tribunal (Examples).

Real examples. Before anyone builds, collect about 20 real instances of the work with their outcomes: support questions and the answers given, deals sales ops flagged by hand. They seed the cases in phase 4, and they show whether the job is as well defined as everyone thinks. Often it isn't: two experts give different answers to the same question.

Checklist

  • Name the main job and any other jobs the app does
  • Write what "done" means for each job in one sentence
  • List who uses the app and who's affected by it, including people who never see it
  • Write the never list
  • Collect about 20 real examples of the work with their outcomes, and settle any where experts disagree
  • Treat each job added to an existing app as its own launch

02Week 1

Choose the building block

You've picked the least autonomous building block that does the job, and written down which steps code decides, which the model decides and where a person steps in.

The four big guides agree on where to start. Anthropic says to find the simplest solution possible, OpenAI to use a deterministic solution when a use case doesn't need an agent, Microsoft (September 2026) to use the lowest level of complexity that reliably meets your requirements, and Google lists a single call with no agent as the right answer for predictable tasks.

The six blocks, in the order of the diagram:

  1. Prompt chaining: fixed model calls in sequence, with checks in code between them: extract, check, summarize, and stop if the check fails. Fin works this way (Examples).
  2. Routing: a classifier sends easy questions to a fast model, hard ones to the strongest model and some to a person.
  3. Parallelization: several calls at once, merged in code, such as three searches on different sources. Anthropic says parallel searches cut research time by up to 90% on complex questions in its own system.
  4. Orchestrator and workers: a model splits the task into subtasks nobody could list in advance, hands them to workers and combines the results. Anthropic's research system works this way and uses about 15 times the tokens of a chat.
  5. Evaluator and optimizer: one model produces, another grades, and failures go back as feedback until it passes or hits a limit. Replit's agent tests the app it built in a browser and loops through fixes.
  6. Agent loop: the model picks each step itself, until it's done or hits a limit. Claude Code, OpenAI's Codex and Cursor's agent work this way.

How the agent loop works. Most agent loops are built as ReAct. The model reasons about what to do, acts by calling a tool, observes the result, and repeats until it's done or hits a limit. A support agent handling "where's my order?" might run four turns:

  1. Reason: "I need the order status." Act: call the order lookup.
  2. Observe: "shipped, delayed at the carrier." Reason: "I should check the new delivery estimate." Act: call the carrier tracking tool.
  3. Observe: "arriving Friday." Reason: "I have enough to answer." Act: draft the reply.
  4. The reply goes to the customer, and the loop stops.

The pattern comes from the ReAct paper (Yao and colleagues, October 2022), which interleaved reasoning with actions. Plan-first designs like ReWOO (2023) plan every step up front and then run them. That uses far fewer tokens, but the plan can't adjust when a tool returns a surprise like "delayed at the carrier".

What production looks like. The best data I found is small but points one way. In "Measuring Agents in Production", a study led by researchers at Berkeley and Stanford, 16 of 20 case studies of agents in production or pilot used structured workflows rather than open-ended planning, and most builders surveyed let an agent take only a handful of steps before a person stepped in. It's a small 2025 sample, so I read it as a direction. Salesforce added Agent Script to Agentforce in October 2025, mixing fixed logic and model instructions, because with model-only decisions the same request could take different routes. Sierra describes supervisor models that correct, block or escalate answers. The industry is converging on hybrids: the model gets freedom inside a path that code controls.

Where open loops win. Coding and research are the exception, and much of the money in agents is there: Microsoft said in July 2026 that GitHub Copilot had 50 million users. Tests, compilers and diffs give the loop something true to observe at every step. If your job has a cheap, reliable check at each step, an open loop can pay off. Without one, errors compound from step to step and it's hard to tell which run went wrong.

More agents isn't better, either: in one study of 180 configurations, every multi-agent variant did 39-70% worse than a single agent on sequential planning tasks.

For the contracts assistant I'd put routing in front of a chain: classify, retrieve, answer with citations, check the citations in code, and hand off to finance when the check fails. No loop. The credits job would be the first place where a model's choice leads to an action, and phase 5 decides how far it can go.

Checklist

  • Write the job's steps as a flow, and mark each one "code decides" or "model decides"
  • Try a single call with good context on the real examples before building anything bigger
  • Pick the least autonomous block that does the job, and write why the one below it isn't enough
  • Use an agent loop only where the path can't be planned and each observation can be checked against something real
  • Put checks in code between model steps, with a defined outcome on failure: stop, retry or hand off
  • Set a step limit on every loop

03Weeks 1-3

Give it context and tools

You know what the model sees on each call and why, every tool has a permission check in code, retrieved text can't give orders, and you've decided what the app remembers, for whom and for how long.

One tool call in five stages. The model only proposes the call; a permission check in code decides whether it runs, and the result goes back into the model's working memory before it picks the next step. A refused or failed call is reported back to the model, which tries another way.

One tool call. The model only proposes the call: it returns a tool name and arguments, and nothing has run yet. A permission check in code decides whether it runs: is this tool allowed for this user, in this run, with these arguments, after what the run has already read? Then the system acts, with the user's delegated identity and a timeout. The result goes back into the model's working memory before it picks the next step. A refused or failed call is reported back to the model, which tries another way; the MCP specification returns tool errors as results the model can read and correct. The guardrail lives at the check, so I never rely on the system prompt to stop an action. Claude Code's documentation says it directly: permission rules are enforced by the tool, and instructions in the prompt change what the model tries, not what's allowed.

What decides each next step

In a ReAct loop, every single next action is shaped by nine inputs. Read them top to bottom, from the most general to the most specific; only the last one is enforced outside the model.

InputWhat it holdsWho controls it
1. TrainingHabits learned in training: explore before editing, check its work, say what it's doingThe model provider
2. The app's system prompt (the harness)The app's rules: which tools exist, safety, keeping the user informed, asking before risky actionsThe app's builder
3. Organization or project rulesStanding instructions, such as a rules file (AGENTS.md or CLAUDE.md in coding agents): "read the sources of truth first", "run the checks before merging"The team using the app
4. MemorySaved notes and past decisions, and the reasons for themThe app and its users
5. The user's requestThe goal and its limitsThe user
6. The conversation so farEarlier plans, answers and approvalsThe user and the model
7. Tool resultsEach output, error and failure; the recent ones weigh mostThe systems it touches
8. Available toolsIt can only plan steps it has a tool forThe builder, and admins
9. Permissions and hooksWhat the harness allows, asks about or blocks, enforced in code by the harnessThe builder and admins

Items 1-7 are context: they persuade the model. Item 8 bounds what it can try. Item 9 is the only hard guarantee, so anything that must never happen belongs there (phase 5). In the six questions, items 1-7 are context, item 8 is tools and item 9 is risk. It also explains why the same model behaves differently in two apps: the training is shared, and everything below it is different.

Context, connectors and memory

Context engineering. Anthropic's September 2025 post defines it as curating everything the model sees: system prompt, tool definitions, retrieved documents, memory, the conversation and earlier tool results. Quality drops as the window fills, which Anthropic calls context rot. Start with a short system prompt, add an instruction only when a case fails, and when an answer goes wrong, look at what was in the window. Tool definitions count too: 58 tools across five MCP servers took about 55,000 tokens in one Anthropic measurement.

Retrieval. If the whole corpus fits in about 200,000 tokens (roughly 500 pages), Anthropic says you can skip retrieval and put it all in the prompt, ideally cached. Above that, or when different people may see different documents, you search. Hybrid search, combining meaning-based (embedding) search with keyword search, is the sensible default for company text, because embeddings miss exact codes, names and IDs. If missed passages are your quality problem, add context to each chunk and a reranker; in Anthropic's own test on older models that cut failed retrievals by about two-thirds.

Permissions. Retrieval has to run as the person asking. On the three big cloud stacks, source permissions are copied when the index syncs, so a change to who can see a document reaches the AI late. Microsoft's Purview runs a weekly oversharing check on the busiest SharePoint sites by default, because an assistant makes old oversharing easy to find. Test with two accounts that should see different documents.

Citations. Anthropic's and OpenAI's APIs both return citations tied to the source. A citation shows where text came from, and doesn't prove it's right, current or the asker's to see.

Untrusted text. Anything the model reads (a document, an email, a web page, a tool result) can contain text that looks like an order. OpenAI's Model Spec says quoted text, files and tool outputs carry no authority by default, yet models still can't reliably tell trusted instructions from ones hidden in content. EchoLeak, reported in Microsoft 365 Copilot in June 2025, let hidden instructions pull data out without the user clicking anything (Examples). Labelling it as data helps, but the control is in code: once a run has read outside text, it can't call a write or send tool without approval, as phase 5 explains.

MCP and connectors. MCP (the Model Context Protocol) is the shared way for an AI app to reach tools and data. The July 2026 specification says servers must validate inputs and enforce access control, and clients should confirm sensitive operations. Treat an outside MCP server like any vendor with access to your data: early 2026 brought dozens of reported vulnerabilities, and a server can change its tool list after you've approved it. AI agents: orchestration platforms and Agent identity go further.

Memory. Working memory is the context window; it's gone when the run ends, and long runs need compaction (replacing old turns with a summary). Written memory is what the app keeps across sessions: preferences, facts about an account, lessons from earlier runs. Writing it means a model deciding what to keep from text it read, the same channel prompt injection uses; one research team reported over 80% attack success after poisoning less than 0.1% of a memory store. Treat a memory write as a write action, and decide up front whose memory it is, how long it lasts and how it gets erased.

Checklist

  • List what goes into the window on each call, with a rough token count for each part
  • Keep the system prompt short, and add an instruction only when a case fails
  • Decide between putting everything in the prompt and retrieving; for retrieval, start with hybrid search
  • Run retrieval as the person asking, and test it with two accounts that should see different documents
  • Put a permission check in code in front of every tool, and report refusals and errors back to the model
  • Block write and send tools in code once a run has read outside text, unless a person approves
  • Review every outside MCP server as a vendor, and pin the tools you approved
  • Decide memory scope, expiry and erasure, and treat a memory write as a write action

04Weeks 2-4, before anyone outside the team uses it

Define good with real cases

You have 20-50 real cases with expected outcomes, seeded from what the team already tests by hand, a grader for each failure you've actually seen, and a habit of adding cases from traces every week.

The spec is a set of cases. A traditional spec says what to build. A case says what the app must do on one input, and a set of cases says it for the inputs you care about. Each case has the input, the expected outcome (the end state, rather than the exact steps), a grader (code, a model acting as judge, or a person) and one known-good answer. Include cases where the app should act and where it shouldn't.

A refund-agent case: the order is 45 days old and the policy window is 30 days. Expected: no refund, a polite refusal that states the policy, and an offer to reach a person. Graders: a code check that the refund tool wasn't called, and a judge for tone. Writing ten of these is the product conversation about policy, tone and handoff.

When to write them. The field's best-known voices disagree on timing. Hamel Husain and Shreya Shankar answer "generally no" to eval-driven development: failures are too hard to predict, so write graders for failures you've seen, except for narrow rules like "never mention competitors". Anthropic's January 2026 guide recommends defining capabilities with evals before the agent can meet them, and also says to start from 20-50 tasks drawn from real failures and what you already test by hand. Both start from real cases rather than invented criteria, and that's the part I'd hold on to.

So I build the set in two layers. Before building, turn the real examples from phase 1 into cases and add the never list as yes-or-no checks. Once a version runs, read traces, find how it actually fails, and add cases and graders for those failures. Expect the opening layer to be wrong in places: Shankar's research with colleagues found that people discover their criteria while grading.

Graders. Use code where you can (was the refund tool called, does every claim cite a passage, did an internal ID leak), a model judge where you must (tone, accuracy of a summary), and people to check the judges against their own labels. For the contracts assistant, code covers most of it: the cited clause exists, the amount matches the clause's arithmetic, and no contract came from an account the asker can't see. A finance specialist labels the rest and keeps the judge honest.

Why the cases are the asset. Prompts are the least durable part of an AI app: Cat Wu of Anthropic wrote in March 2026 that the team cuts prompting back at each model generation, and the case set tells you which prompt text you can delete. Tools are less durable than they look: OpenAI's hosted Evals product shuts down on November 30, 2026, and teams take their datasets and graders with them. Anthropic says teams with evals can upgrade to a new model in days rather than weeks, a claim without data that matches what I've seen.

A passing set only protects you against failures you already know. In the best-documented regressions, at OpenAI in 2025 and Anthropic in 2026, the evals passed and users found the problem. Running an agent product covers error analysis, judges, release gates and the weekly quality review, and AI evals and observability covers the tools.

Checklist

  • Turn the real examples from phase 1 into cases with expected outcomes
  • Add each item on the never list as a yes-or-no check
  • Include cases where the app should not act or answer
  • Grade in code wherever the check is yes-or-no; use a model judge only where you must
  • Have a domain expert label examples, and compare each judge with those labels
  • Version the set, and keep datasets and graders in storage you control
  • After a week of real use, read traces, rewrite the cases that were wrong and add the failures you found
  • Run the whole set on every prompt, model and tool change

05Before launch, and again for every new action

Set autonomy and guardrails

Every action the app can take has a written autonomy level, boundaries are enforced in code rather than by asking, each run has a cost cap, and for each job you've named which part of the prompt-injection risk you removed.

A setting per action. One product often offers several levels of autonomy. Claude Code has manual, plan, auto and other modes. Replit added an autonomy selector from Low to Max in September 2025, after users said its new agent did more than they wanted. I'd set a level per action, with a default per job:

LevelWhat happensExamples
SuggestThe app drafts, answers or recommends; nothing happens until a person actsMicrosoft 365 Copilot answers; Claude Code's plan mode; Datadog's recommended commands
Act with approvalThe app proposes a consequential step, and a person approves, edits or rejects itChatGPT agent asking consent before consequential actions; Stripe Radar's manual review queue
Act within limitsThe app acts without asking inside a boundary, and asks or stops at its edgeClaude Code's auto mode in a sandbox; Fin acting inside policy and handing off; Radar's automatic blocks

Govern is a fourth case: it enforces, blocking or logging without asking anyone. Microsoft Purview can stop Copilot from summarizing documents with a sensitivity label.

A 2025 paper from the Knight First Amendment Institute makes the point I find most useful: autonomy is a design choice, separate from capability, so a very capable agent can still be set to ask first. For the contracts assistant every action is suggest. For credits I'd make drafting a credit note and applying one up to $100 act within limits (with a log), and anything above $100 act with approval by a named person in finance.

Approvals as boundaries. Per-action prompts wear out. Anthropic reports that users approve 93% of Claude Code's permission prompts, and a prompt that's nearly always approved protects very little. What holds up is a boundary in code with approval only for crossing it: a workspace the agent can write to, network off by default, protected paths, credentials scoped to the task. OWASP's guidance on excessive agency agrees: least privilege, narrow tools, and authorization enforced in the system being called rather than by asking the model.

Cost caps. A loop that doesn't stop runs up a bill. Caps exist per run (Claude Code's headless mode takes a budget and a turn limit, neither set by default), per organization (monthly spend limits in the labs' API consoles) and per design (stopping conditions in the loop). Put the cap where the unit of value is: per conversation for Serve, per run for Do and Build, per day for Watch.

Prompt injection. Nobody claims to have solved it. Anthropic says no browser agent is immune and OpenAI says it's unlikely ever to be fully solved, so the design rule matters more than any filter. Simon Willison's "lethal trifecta" is private data, exposure to untrusted content and a way to send data out. Meta's Rule of Two says an agent should have at most two of: reading untrusted input, reaching sensitive systems or private data, and changing state or communicating externally. For each job, name the leg you cut:

  • Know: cut the outbound leg. The contracts assistant reads private contracts and maybe text from customer emails, so it gets no tool that sends anything or fetches arbitrary web addresses.
  • Capture: it reads untrusted calls and emails by nature, so cut broad writes. It fills named CRM fields against a schema and has no tool that takes free text.
  • Do: it usually keeps all three legs, so approvals at the boundary and narrowly scoped credentials carry the load.

Decide is two jobs. Decisions about a person (hiring, credit, insurance, housing, benefits) come with rules and dates. Anthropic's usage policy, effective November 12, 2026, requires a qualified person who meaningfully reviews the recommendation, with authority to change it, before it's used, plus disclosure that AI was involved. OpenAI's policies prohibit automating such decisions without human review. The EU AI Act's high-risk duties for hiring and credit scoring apply from December 2, 2027, and Colorado's narrower law from January 1, 2027. A review step that approves 93% of what it sees would be hard to defend as meaningful, so design the reviewer's screen for disagreement: the evidence, the model's reasons and an easy way to change the outcome. AI governance has the rules by region.

Decisions about transaction risk are a different, long-established kind. Stripe Radar blocks the riskiest payments automatically and sends a middle band to manual review, and merchants can test a new threshold on past payments before applying it. The EU's credit-scoring rules carve fraud detection out. I'd copy the pattern for any transaction-risk decision: a threshold, a queue for the middle band, a backtest before changing it, and a written point of no return.

Checklist

  • List every action, and set suggest, act with approval or act within limits for each one
  • Enforce each boundary in code at the tool: allowed tools, scopes, amounts, paths, network
  • Keep approvals for actions that cross a boundary, and show the specific effect in the approval
  • Track approval and denial rates per action, and replace near-always-approved prompts with a limit
  • Set cost caps per run and per organization, and a step limit on every loop
  • For each job, write which injection leg you cut and how the code enforces it
  • For decisions about people, design a review with authority to change the outcome, and disclose AI use
  • For transaction risk, set a threshold and a review queue for the middle band, and backtest every change

06From launch, and each time you add a job

Run it on the layers

Each part of the app lives in a known layer, cost and latency per task are measured, and the next job ships as a prompt, tools, a set of cases and an autonomy level on the same layers.

The layers an applied AI app runs on. People meet it at the surfaces, the runtime runs each job, policy decides what may happen, context and connectors hold what it knows and touches, and events wake it up. Traces and evals run through every layer, and each customer gets an isolated space.

The layers. Once you have more than one job, you'll notice they share most of their parts. The lab and cloud stacks (OpenAI's Agents SDK, Anthropic's Claude Agent SDK, Google's Agent Development Kit, Microsoft Foundry, AWS AgentCore) ship much the same pieces under different names; the grouping below is mine. People meet the app at the surfaces, the runtime runs each job, policy decides what may happen, context and connectors hold what it knows and touches, and events wake it up.

  • Surfaces: chat, the IDE, Slack or Teams, email, voice, an API. The surface decides who the user is and where an approval can appear.
  • Agent runtime: the loop that calls the model, runs tools, keeps state and stops. Model choice per step lives here.
  • Policy: every action passes here. Anything that must hold, like a spending limit or who can refund, goes in code at the tool.
  • Context: retrieval, memory and structured data.
  • Connectors: MCP servers and APIs to the systems the app touches.
  • Events: schedules, webhooks and new tickets that start a run without a person. A payload is untrusted input, and needs a key against duplicates and a rate cap.
  • Traces and evals: these run through every layer. A trace is a copy of user data, and OpenAI's Agents SDK records inputs and outputs by default.
  • Tenancy and control plane: under everything, each customer gets an isolated space, and someone can see every agent, its owner and its cost, and turn it off. The tenant ID on every retrieval filter, memory scope and cache key is yours to build.

One warning from Microsoft's own documentation: Copilot Studio's event triggers run with the credentials of the person who built the agent, so end users can reach that person's data through it. Check whose identity each trigger uses.

Cost per task. Cost per task = steps × tokens per step × price per token. The factors multiply, and each varies a lot: list prices differ about 100 times between the cheapest and most expensive model tiers, and reasoning effort changes one model's cost per task 5-11 times. Models and inference has the pricing detail.

Here's the contracts question from the opening in three designs. The library is 200,000 tokens and the answer about 400 tokens with two citations. Prices are list prices on October 19, 2026, and the token counts are my assumptions, so read the table for the shape rather than the cents.

A: big model, whole library in the prompt

How it works
Claude Opus 5.5 reads all 200,000 tokens every time, at high effort
Cost per question
About $0.88 (about $0.11 if cached)
At 100,000 questions a month
About $88,000 (about $11,000 cached)

B: retrieval and a mid-size model

How it works
Hybrid search passes 20 passages (about 10,000 tokens) to Claude Sonnet 5.5, at medium effort
Cost per question
About $0.04
At 100,000 questions a month
About $4,000-4,500

C: router, retrieval and a small model

How it works
A small router sends 85% of questions to Claude Haiku 5.5 without extended thinking, and 15% to design B
Cost per question
Under a cent
At 100,000 questions a month
About $600-800

The same question costs about 100 times more in A than in C. Caching helps A because its prompt is stable, and barely helps B. None of this says C is good enough; the cases from phase 4 decide that. C is wrong if the router sends hard questions to the small model, and A may be right when a question needs the whole library, though A can't show different people different contracts.

Latency follows the same logic. OpenAI's latency guide says output dominates, and thinking is output you wait for. My rough estimates are tens of seconds for A and a few seconds for B and C. Agents multiply both cost and wait, since each step sends the history again, so turn caps are cost controls.

Adding a job. A new job is a prompt, tools, a set of cases and an autonomy level, and it reuses the layers. Take the stuck-deals request, a Watch job:

  • Event: a nightly schedule.
  • Context: each open deal's stage, days in it, the normal range for that stage, and 30 days of CRM activity.
  • Tools: read deals through the CRM connector the contracts assistant already uses, and post to the deal owner in Slack or Teams. Nothing that edits the deal.
  • Prompt: decide whether the deal is stuck, say why, and suggest one next step.
  • Cases: 40 past deals sales ops already labelled, including some that were slow for a good reason.
  • Autonomy: suggest. The owner decides.
  • Risk: activity logs include customer emails, so the only outbound tool posts inside your own workspace, under a nightly cost cap.

Everything else already exists, which is where a platform earns its keep: in my experience later jobs ship in weeks.

Build or buy, layer by layer. Anthropic advises starting with direct API calls before adopting a framework, and I'd follow that until a second job shows which pieces repeat.

LayerWhat I'd buyWhat I'd build
Agent runtimeManaged hosting for isolation and scaleThe job logic, on an SDK or direct API calls
Model accessThe lab APIs or a cloud catalogA thin switch to change models, tested on your cases
PolicyIdentity and content filtersThe checks that must hold, inside your tools
ContextThe search indexChunking, permission filters and retrieval tests
ConnectorsGateways for common APIsMCP servers for your systems of record
Traces and evalsTracing and review toolsThe case set, in storage you control
Tenancy and control planeA registry of agentsThe tenant boundary inside your app

Checklist

  • Map each part of the app to a layer, and name an owner for each layer
  • Route every action through the policy layer, with checks in code
  • Record every model call, tool call and decision, and decide what user data traces keep and for how long
  • Put the tenant ID on every retrieval filter, memory scope and cache key
  • Check whose identity each event trigger runs as
  • Write cost per task for each job with your own numbers, and measure it weekly
  • Cache stable prompt prefixes, route steps to the cheapest model that passes your cases, and cap turns
  • Add each new job as a prompt, tools, a set of cases and an autonomy level on the existing layers

The nine jobs, one by one

Build. Produces software someone will run: Claude Code, Cursor, GitHub Copilot's coding agent, Lovable, Replit. The home of the agent loop, because tests and builds give feedback at every step. Editing inside a workspace is act within limits; merging and publishing need approval, enforced by the host (GitHub's coding agent can't approve its own pull requests). It goes wrong when the agent reaches past its boundary, as Replit's did; AI coding agents has more on how these tools work.

Know. Answers from an organization's own content, with sources, inside the asker's permissions: Microsoft 365 Copilot, ChatGPT company knowledge, Glean, Notion AI. Retrieval plus a call, increasingly a loop over search tools. Autonomy is suggest. What surprised me is that its public failures are on the read side, oversharing and injection, because a read-only app that sees everything is still a way out for data.

Do. Takes multi-step actions in other systems: ChatGPT agent, Anthropic's computer use, Salesforce Agentforce, Copilot Studio agents. Routing to fixed actions, or an agent loop when the path varies. Consequential actions need approval: Anthropic's computer-use docs say to require confirmation for financial transactions and accepting terms. It goes wrong through irreversible actions and injection, since it usually holds all three legs of the trifecta.

Create. Generates content a person decides whether to keep: Canva, Adobe Firefly, Midjourney. One call or a short chain, with agents arriving for multi-step designs (Canva launched an agent-style version in April 2026). Autonomy is suggest. Its exposure is rights more than safety: studio lawsuits against Midjourney were in discovery in May 2026, and the EU AI Act's transparency duties for generated content have applied since August 2, 2026.

Serve. Answers customers, takes limited actions in their account and hands off when stuck: Fin, Zendesk, Sierra. A chain with checks and routing to scripted flows or a person, often with a supervising model that grades answers before they go out. Act within limits, with the handoff as part of the design. It goes wrong with invented policy (Air Canada, Cursor's support bot) and metrics that count a customer who gave up as resolved, which Running an agent product covers.

Decide. Scores, approves or denies something with consequences: a payment, a claim, a loan, an applicant. Stripe Radar is the best-known example, mostly classic machine learning with rules and a review queue. Autonomy splits in two (phase 5). It goes wrong through bias and regulation: in Mobley v. Workday, a US federal court let a case proceed on the theory that a hiring-software vendor can be liable as the employer's agent.

Watch. Monitors systems, security or spend, investigates, and tells the right person: Datadog's Bits AI SRE, Sentry's Seer, PagerDuty. A triggered agent loop that forms hypotheses, queries telemetry and hands off. Autonomy is suggest, with fixes as one-click actions a person approves. It goes wrong on accuracy: on one research benchmark for finding the root cause of failures, the best model solved about one case in nine.

Capture. Turns calls, meetings and documents into structured records: Gong, Granola, Otter, document AI from Microsoft and Google. An extraction chain with confidence thresholds; Microsoft suggests accepting a field automatically only above at least 80% confidence, and near 100% for financial or medical documents, with the rest going to a review queue someone owns. Act within limits. It goes wrong on consent and on wrong fields nobody checks.

Govern. Keeps other AI and its users inside the rules: finds agents, gives them identities, restricts, logs and blocks. Microsoft Purview, Okta, Microsoft Entra Agent ID. Often not generative at all. Autonomy is enforce, with people setting policy. It goes wrong through gaps in coverage, like agents nobody registered, and false blocks that teach people to work around it.

Decisions you'll make

One model or a router

Start with the most capable model to set a baseline on your cases, as OpenAI's guide suggests, then move steps to cheaper models where the cases show no drop. In the research behind one router, it cut cost by more than 85% on a benchmark while keeping 95% of the strong model's quality. Log which model answered (Microsoft's Foundry router returns it in the response), and remember each model's cache starts cold, so frequent switching can cost more than it saves.

Workflow or agent

Ask who should decide the next step. If you can write the steps down and they rarely change, code should decide. If they can't be planned and each observation can be checked against something real (a test, a compiler, a record), let the model decide in a ReAct loop. Most production apps I've read about end up hybrid, with a model choosing inside a path that code controls.

Build or buy

Companies mostly buy finished apps for common jobs: in Menlo Ventures' survey of US enterprise buyers, about three-quarters of 2025's AI use cases were bought (Menlo invests in Anthropic). Build where the job is your product or runs on your systems of record, and inside a build, buy the commodity layers (phase 6). The lock-in to watch is state stored at a provider, your embedding model (changing it means re-indexing), trace and eval formats, and the agent registry.

Where the person sits

A person can sit before the run (setting the goal), at a boundary (approving actions that cross it), after it (reviewing output or a queue) or on call (taking a handoff). Choose per action, and design for disagreement, because a reviewer who approves almost everything isn't really reviewing. For the contracts assistant the person sits after the answer; for credits, at the boundary above $100.

How much context

More context isn't safer. In one benchmark, a strong model's accuracy fell from about 99% to about 70% at 32,000 tokens when the question didn't share words with the passage it needed. I'd put everything in the prompt only for small, stable collections everyone may see, retrieve otherwise, and measure retrieval separately from answer quality.

Measuring it

MeasureWhat to trackWatch out for
QualityPass rate on your case set per version, and the outcome metric the business already usesA pass only covers failures you already know about
Cost per taskModel, tool and search fees plus people's minutes after a handoff, per completed taskAverages hide runaway runs
LatencyTime to first output and time to done, per stepThinking tokens and sequential steps add up
AdoptionWeekly users of each job, repeat use, share of eligible work done through the appUsage can grow while outcomes stay flat
Autonomy healthApproval and denial rates per action, handoff rate, how often users stop or correct itNear-100% approval may be fatigue

I report cost per completed task next to the pass rate. Prices change often and so do tokenizers (Anthropic says its newer models produce about 30% more tokens for the same text), so compare designs on your own tasks. For outcome metrics and how resolution gets defined and gamed, see Measuring progress in Running an agent product.

Getting fluent

The skill stack. No survey I found measures which skills an AI product manager needs, so the evidence is job postings and practitioners. Anthropic's 2026 posting for a PM on Claude Code model performance asks for someone who designs agentic evals, reviews transcripts and uses Claude Code daily, and Microsoft, AWS and Google postings ask for evaluation and tool-use experience. I read them as a stack of six:

  1. The loop: how a model call, a tool call and a ReAct loop fit together, learned by using AI products daily.
  2. Context: what the model sees on a call, and what it should see.
  3. Trade-offs: quality, cost, latency and autonomy, and which one this job can give up.
  4. Evals: turning "good" into cases and graders.
  5. Trace reading: finding the step that failed, so the team has something specific to fix.
  6. Judgment: noticing when a task has become feasible, what to automate and where the person sits.

Cat Wu's March 2026 essay adds two habits: keep one task that's a little too hard and retry it on every new model, and treat users' workarounds as signals.

A weekly loop.

  • Use: do real work with your own app and one competitor's.
  • Build: one small prototype or prompt change, tried on real cases. Wu sends written specs to Claude Code to see whether it can build them, so a wrong bet costs an afternoon.
  • Measure: run the case set and look at cost per task.
  • Read traces: 10-20 fresh ones, the weekly amount Husain suggests once a system is running.
  • Teach: explain the case set, or one failure, to an engineer, a support lead or a newer PM. This step is my opinion, with no study behind it: explaining why a case is in the set is how I find the ones that shouldn't be.

Ask for explanations. The one randomized study I found on learning with AI is a caution. In Anthropic's January 2026 trial, 52 mostly junior engineers learned an unfamiliar Python library, and the group with AI help scored about 17 points lower on a quiz afterwards, with no significant speed-up. Those who asked the AI for explanations scored much better than those who handed over the coding. It's a small study about coding, but I'd apply it: ask the AI to explain what it did rather than delegating the reading of traces and outputs.

What usually goes wrong

FailureEarly signCase
An open agent for a process with fixed stepsThe same request takes different paths; cost per task swingsSalesforce adding Agent Script, October 2025
Policy answered from the model's memoryAnswers state rules that aren't in your sourcesAir Canada, 2024; Cursor's support bot, 2025
A destructive action with no boundaryThe agent reaches production with the access it has in developmentReplit, July 2025
Retrieved text obeyed as an orderA run that read outside content then calls a send or write toolEchoLeak in Microsoft 365 Copilot, June 2025
Approval fatigueApproval rate near 100%, almost no denialsAnthropic's 93% for Claude Code prompts
A trigger running as its builderUsers reach data through the agent that they can't open directlyCopilot Studio's event triggers
Consent missed in capturePeople in a recording who never agreed to itOtter class action, filed 2025, pending

The pattern I see across the public cases is an app with more reach than its checks covered. Air Canada's chatbot could state policy with nothing checking it, Replit's agent could reach production data, and Copilot could read content that carried instructions. I can't prove incidents cluster this way, since nobody counts the ones that didn't happen, but it's the first thing I look for in a design review.

Words that mean something else here

TermWhat you'd assumeWhat it means here
AgentAn autonomous workerAt Anthropic, a loop where the model picks the next step; at Google and Microsoft, any step in a pipeline
ReActReact, the JavaScript libraryReason, act, observe, repeat: how most agent loops are built
WorkflowA flowchartAt Anthropic, model calls on paths set in code; at OpenAI, the task itself; in Copilot Studio, rule-based flows
AutonomousNo person involvedFree up to a cap: step limits, session limits and approvals at the edges
RAGA product you buyRetrieval-augmented generation: one search step inside a larger system
EvalA lab's benchmark scoreYour own set of real cases and graders; at OpenAI, also a hosted product being retired
GuardrailA safety filterA text classifier, a format check or a permission enforced in code; only the last two behave the same every time
ControlWho's in chargeWho picks the next step (code or model), and where a person approves, edits or stops
Human in the loopA click on each actionFor decisions about people, a qualified reviewer with authority to change the outcome
Tool callThe model did somethingThe model asked; your code decided and acted

Examples

Mostly the companies' own accounts, so read them as illustrations.

Fin: a chain with a check before every answer

Fin (Intercom until its May 2026 rebrand) runs each answer through a fixed chain: refine the question, answer from retrieved help content, validate that it's grounded, and hand off to a person when a check fails. Fin said in June 2026, when Salesforce agreed to buy it, that it resolves about three-quarters of support volume on average. A best-known customer agent is a workflow with model steps inside (phase 2).

Claude Code: an open loop where tests check each step

Claude Code is a ReAct-style loop: it gathers context, acts and checks its work, with tests and diffs as what it observes. Its permission rules are enforced by the tool, and its auto mode uses a separate classifier model to review actions, handing control back after 3 blocks in a row or 20 in a session. Open loops work where each step can be checked, and the boundary belongs in code (phase 2, phase 5).

Stripe Radar: acting within limits on transaction risk

Radar scores each payment from 0 to 99. By default it blocks payments scoring 75 or more and sends those from 65 to manual review, and merchants can move both thresholds after testing them on past payments. A refund made while a payment is in review is permanent. That's the template for transaction-risk decisions: a threshold, a queue and a written point of no return (phase 5).

Replit: a deleted database and a new boundary

In July 2025 Replit's agent ran destructive commands against a customer's production database during a code freeze, then said recovery wasn't possible, which turned out to be wrong. Replit responded by separating development and production databases automatically. The lasting fix was a boundary in the environment rather than a better prompt (phase 5, phase 6).

Air Canada: the chatbot's policy is the company's policy

In February 2024 a Canadian tribunal held Air Canada responsible for a bereavement-fare policy its website chatbot had described wrongly, and the airline had to honour it. Ground every policy statement in a cited source, and put "never describe a policy the library doesn't contain" on the never list (phase 1, phase 3).

Microsoft 365 Copilot and EchoLeak: a read-only app that leaked

In June 2025 researchers reported EchoLeak, a zero-click flaw in Microsoft 365 Copilot rated 9.3 out of 10 for severity: instructions hidden in content Copilot read could make it disclose data. Microsoft patched it. Copilot's permission model controlled who could see which documents, and had no answer for instructions inside them. Treat retrieved text as information, and cut the outbound leg for Know apps (phase 3, phase 5).

Sources

Read on or before October 19, 2026 unless dated; "search result" means seen only as a snippet or summary. Company figures are self-reported, and vendor content is marked.

Building blocks and the agent loop

Context, tools and memory

Defining good with real cases

Autonomy, guardrails and prompt injection

Rules for decisions about people

Platforms, cost and latency

Products and incidents

Skills and learning

The site's own research