The Agent as Manager
Introduction: why transfer classical management methods to AI agents
Hook: the agent does the manager's job
Every time an LLM agent takes on a task, it goes through the same cycle that business schools have studied for decades: sets a goal, gathers information, makes a decision, acts, checks the result — and adjusts course. Humanity codified these loops long ago: OODA, GTD, PDCA, first principles, Theory of Constraints, SMART/OKR. This course transfers each method to AI agents — concretely and without abstractions.
The Agent's Management Cycle
Goal — what exactly needs to be achieved (SMART/OKR).
Perception — gathering data from context, tools, environment.
Decision — choosing the next step (OODA, first principles).
Action — calling a tool, generating output, writing to memory.
Check — eval: does the result match the goal (PDCA).
Correction — prioritization (TOC, GTD), updating the plan.
Why agents especially need this
Three Lenses of the Course
The entire course is built around three management questions:
WHERE TO
goal-setting
Where do we want to end up? What is the success criterion?
Methods: SMART/OKR, First Principles
HOW TO MOVE
decision loops
How to make decisions at each step of the cycle?
Methods: OODA, PDCA
WHAT FIRST
prioritization
Which task to take next within a limited context?
Methods: TOC, GTD
Course Map: 6 Methods
| Method | Lens | Apply to the agent when… | Module |
|---|---|---|---|
| OODA | decision loops | the agent flounders, slowly converges on a solution | M2 |
| GTD | prioritization | the agent drowns in tasks, loses context | M3 |
| PDCA | decision loops | the agent repeats the same mistakes between runs | M4 |
| First Principles | goal-setting | copying "magic" prompts without understanding why they work | M5 |
| TOC | prioritization | pipeline is slow/unreliable, unclear what to fix | M6 |
| SMART/OKR | goal-setting | goal is vague — the agent does the wrong thing | M7 |
Method Navigator
Pick a symptom — get a recommendation and jump to the right module:
Check Yourself
OODA Loop
Observe → Orient → Decide → Act: cycle faster than the environment — you set the conditions.
Origin: John Boyd and Aerial Combat
John Boyd — a U.S. Air Force fighter pilot and military strategist. In the 1950s he formulated the 40-second rule: in aerial combat, whoever can switch to a counterattack within 40 seconds wins — regardless of the aircraft's maneuverability. From this observation grew the OODA framework.
Key idea: the winner is the one who spins the cycle faster and more accurately than the situation changes, and "gets inside the adversary's OODA loop" — the opponent reacts to an already outdated picture of the world.
OODA Loop (diagram)
┌──────────────────────────────────────┐ │ Observe → Orient → Decide → Act │ │ ↑ │ │ │ └───────────────────────┘ │ │ (result of Act = │ │ new observation) │ └──────────────────────────────────────┘
The cycle never ends — it repeats continuously while the agent is active.
Four Phases
👁 Observe — Observation
Collecting raw data: environment state, results of previous actions, feedback. Without filtering or interpretation — just facts.
For the agent: reading tool-call results, errors, stdout/stderr, file states, API responses.
🧭 Orient — Orientation ("Big O")
Interpreting observations through a world model, experience, context. Boyd called this phase the most important: orientation determines how you observe, which decisions you consider, how you act.
For the agent: system prompt + working context + retrieved memory. "Broken Orient" → hallucinations and acting on an outdated world picture.
🎯 Decide — Decision
Choosing a hypothesis or plan of action based on orientation. A decision is a bet: we choose one branch out of several possible ones.
For the agent: choosing the next tool/step; reasoning trace in Chain-of-Thought.
⚡ Act — Action
Executing the decision. The result immediately returns to the loop as a new observation — the cycle closes.
For the agent: calling a tool (tool call). Its result is the input for the next Observe.
ReAct Loop = OODA
The ReAct (Reason + Act) pattern used in LLM agents is isomorphic to OODA:
OODA phase │ ReAct step │ Concrete agent action
─────────────┼──────────────────────┼──────────────────────────────────────
Observe │ Observe (perception)│ Reads tool-result, errors, env-state
Orient │ Think / Reason │ System prompt + context + memory
Decide │ Plan next action │ Chooses tool and arguments
Act │ Act (tool call) │ Calls tool → result feeds back
│ │ into Observe of next iteration
Context engineering (what goes into the system prompt, what into working context, what into retrieval) — this is direct tuning of the Orient phase. That is why it is the main quality lever of the agent.
Tempo: Who Is Faster and More Accurate
Loop speed is not the only metric. Boyd emphasized two conditions simultaneously:
- Faster — the cycle completes faster than the environment changes (advantage ≥ 1).
- More accurate — Orient is adequate to reality (context is current, memory is not cluttered).
🎛 Interactive: Loop Tempo vs. Environment
The environment changes with a characteristic time of T_env = 10 sec. Move the slider — see how the "loop advantage" changes.
Formula: advantage = T_env / T_loop = 10 / T_loop
T_loop = 2 sec→advantage = 5.0→ 🟢 Inside the environment's loopT_loop = 10 sec→advantage = 1.0→ 🟡 ParityT_loop = 20 sec→advantage = 0.5→ 🔴 Environment has pulled ahead
OODA Antipatterns in Agents
🔄 Stuck in Observe
Symptom: the agent endlessly calls search, accumulates context, never moves to Decide/Act.
Cause: analysis paralysis — unclear criterion for "enough data."
Fix: explicit limit on the number of Observe iterations; the principle of "good enough information."
🚫 Skipped Orient
Symptom: the agent acts on stale data — results of the previous Act did not make it into context.
Cause: context loss, window overflow, broken memory injection.
Fix: explicit passing of tool-call results back into context; scratchpad pattern.
♾ Loop Without Exit Condition
Symptom: the agent spins in the OODA loop without finishing — neither reaches the goal nor stops.
Cause: absence of an explicit completion criterion in the prompt or tool.
Fix: explicit stopping criterion; max_iterations; finish() tool.
⚡ Fast Loop + Bad Orient
Symptom: the agent makes many tool calls quickly, but all are off-target; hallucinates actions.
Cause: incomplete system prompt, stale context, cluttered memory.
Fix: fix Orient first (context, prompt), then optimize tempo.
Practice: OODA in Agent Design
Orient-audit checklist for an agent:
- What is in the system prompt? Is it current?
- How do tool-call results get back into context?
- Is there a memory retrieval mechanism (RAG, scratchpad)?
- How does the agent know the situation has changed since the last Orient?
- What is the loop completion criterion?
Implicit vs Explicit Orient: Where the "World Model" Lives
For an agent, the Orient phase is implemented in two ways — this is a key architectural choice:
Implicit Orient
Orientation is "in the model's head": context and reasoning live inside the prompt/CoT itself. Fast and flexible, but opaque and drifts between steps — the model has to "reassemble" the picture from context text every time.
Explicit Orient
Orientation is externalized into structure: JSON world-state, scratchpad, task graph. More expensive to maintain, but reproducible, verifiable, and survives context compaction (bridge to GTD from M3 — external memory).
Stopping Criterion: When the Loop Must End
OODA is a cycle, but any agent cycle must have an exit condition, otherwise it spins forever (or burns budget). Here satisficing by Herbert Simon applies: the agent does not optimize to perfection, but stops at "good enough" by an explicit threshold.
- Success criterion reached — result passed the check (bridge to Check/eval from M4 and Measurable from M7).
- Budget exhausted — step / token / time limit.
- No progress — N iterations in a row without improving observations → exit and escalate.
Boundary of OODA: The Chaotic Domain
OODA assumes that observation is informative. But if there is no data yet — the environment is new and unpredictable — there is nothing to "observe." In the chaotic domain the order flips: first act to create information (act → sense → respond), rather than getting stuck in Observe. This is part of the broader Cynefin framework — "which decision mode for which situation"; the full map of domains will be covered in M8.
Write a fragment of a system prompt that forces the agent to (1) explicitly fix Orient — the current understanding of the task — before acting and (2) check the stopping criterion after every step. 3–5 lines.
Check Yourself
Module 3: GTD — Getting Things Done
David Allen · "Mind Like Water" · Five steps from chaos to action · Transfer to AI agents
Why the Brain Is Bad at Storing Tasks
Zeigarnik Effect
Unfinished tasks keep "spinning" in your head — the brain holds them as open loops, consuming working memory resources. Result: distraction, anxiety, feeling overwhelmed.
David Allen discovered: the problem is not lack of time, but that the brain is not designed for storing tasks — only for processing them.
"Mind Like Water"
The ideal state — when the system fully trusts external storage. You throw a stone — water responds exactly to the force of the throw, then returns to calm. No "residual anxiety."
GTD solution: offload everything into an external reliable system and free working memory for real thinking.
Five Steps of GTD
- Capture (Collect) — everything into a single inbox; the head holds nothing.
- Clarify (Process) — what is this? Does it require action? What exactly needs to be done?
- Organize (Sort) — arrange into lists, projects, contexts (
@calls,@computer). - Reflect (Review) — regular review: weekly overview of the whole system.
- Engage (Do) — choose an action by context, energy, time.
Key GTD Rules
Two-minute rule: if an action takes less than 2 minutes — do it immediately. Planning overhead is more expensive than the action itself.
Next Action: always define the concrete next physical action. Not "project X", but "call Ivan about X".
Contexts: @calls, @computer, @office — a filter for "what can be done right now."
Transferring GTD to AI Agents
Context Window = Working Memory
The agent has the same bottleneck as a human: context is finite. Holding all tasks, facts, and decisions in it means reproducing the "open loops" problem, only in tokens.
GTD solution for the agent: offload into external memory — files, scratchpad, todo list, vector store. Context is only for active thinking.
Connection to OODA (M2)
The Orient phase from the previous module degrades when the context is clogged with "garbage" — unfinished tasks, stale facts, duplicate instructions.
GTD solves the problem upstream: it doesn't let garbage accumulate.
| GTD step | For humans | For the agent |
|---|---|---|
| Capture | Write into an inbox (paper/app) | Dump into a file / scratchpad / todo-store — don't hold in context |
| Clarify / Organize | Decomposition + project/context tags | Break the goal into next-actions; tag by tool / state (@web_search, @file_write) |
| 2-min rule | Do immediately, don't plan | Cheap action (single tool-call) — execute immediately without a separate planning step |
| Reflect | Weekly review of the system | Compaction / periodic review of context: what is done, what remains, what to discard — continuity between steps and sessions |
| Engage by context | Do by context/energy/time | Choose the tool available in the agent's current state |
Antipatterns
Keep all tasks, facts, and intermediate results in the system prompt or chat history. Context overflows → lost-in-the-middle effect → the agent "forgets" early instructions or starts hallucinating.
"Do project X" without decomposition. The agent receives an amorphous goal, tries to cover everything at once, hangs or makes random steps. GTD requires: one concrete physical next action.
Interactive: GTD Inbox Processing Funnel
Walk through the steps — this is how Clarify works in GTD and how an agent should reason when processing an incoming item.
Incoming item.
Is this actionable — does it require any action?
GTD Contexts for the Agent: Machine Triggers
For a human, GTD contexts are @calls, @computer: where and with what you can do the action. For an agent, "context" becomes a concrete machine condition — the action is unlocked only when it is executable:
@has_tool · @context_fits · @needs_verify · @budget_left
@has_tool— the required tool is available in the current state (otherwise this is not a next-action, but a "waiting-for").@context_fits— the required data fits in the window (otherwise retrieval/summarization first).@needs_verify— the result requires verification before committing (bridge to Check from M4).@budget_left— token/time budget remains for this action.
Engage by context for an agent = choose from the queue an action whose triggers are all green.
WIP Limit: Capture Without a Ceiling = Infinite Inbox
GTD says "collect everything", but without limiting the number of simultaneously active tasks (work-in-progress) the agent overloads context and scatters attention — it's the same overreach disease. The Kanban remedy: a hard cap on parallel tasks (often WIP = 1 for an agent — one active task at a time), the rest waits in queue.
Describe the policy: where the agent writes external memory, how it formulates next-action, and what WIP limit it keeps; add the 2-minute rule for cheap actions. 4–6 lines.
Check Yourself
Module 4: PDCA — Spiral of Improvement
Plan → Do → Check → Act: how an agent learns from mistakes between runs
Origin and Essence
The PDCA cycle was invented by Walter Shewhart in the 1930s, and W. Edwards Deming popularized it in post-war Japan as a tool for kaizen — continuous improvement. It is not a one-off project, but a spiral: each completed cycle starts the next one from a higher baseline.
Plan — Hypothesis
Define the problem, formulate a hypothesis about the change. Plan an experiment, preferably on a small scale so that the risk is manageable.
Do — Execution
Implement the planned change. Main rule: don't make too many changes at once, so you know what exactly worked.
Check — Measurement ★
Compare the result with the expectation from Plan. This is the heart of the cycle. Without honest measurement, PDCA degenerates into "Do-Do-Do" — endless action without learning.
Act — Consolidation
If it worked — standardize and lock in. If not — roll back, adjust the hypothesis and start the next cycle with new knowledge.
PDCA vs OODA: Two Different Loops
Both cycles are feedback mechanisms, but they operate on different time horizons and solve different problems.
OODA (Module 2)
- Speed: seconds–minutes
- Purpose: tactical decision in the moment
- Resource: current context, observation
- Unit: one run / one action
PDCA
- Speed: hours–days–sprints
- Purpose: improving the process between runs
- Resource: accumulated measurements, eval
- Unit: series of runs / system iteration
Transfer to AI Agents
Each PDCA step maps directly to agent development terms:
| Step | In management | For the agent |
|---|---|---|
| Plan | Hypothesis of change, experiment plan | Prompt / instructions / few-shot / task plan |
| Do | Execute the change (on a small scale) | Run the agent on a test set / real task |
| Check ★ | Measure result vs expectation from Plan | Eval / verification gate / tests — the most underestimated step |
| Act | Standardize or roll back and adjust | Update prompt/few-shot/instructions; or roll back the change |
The "Confidently Wrong" Agent = PDCA Without Check
An agent can consistently produce confident answers that are factually wrong. If after every run there is no honest check of the result — there is no signal for Act, no correction for the next Plan. The cycle is open.
Verification gap — the gap between what the agent claims about its output and what is actually verified through eval. Closed only through Check.
Spiral of Improvement — Interactive Model
Model: error_n = error_0 · (1 − r)^n,
where error_0 is the initial error rate (%),
r is the share of errors eliminated per PDCA cycle (Check+Act effectiveness),
n is the cycle number.
Set r = 0 — you'll see a flat line: without Check there is no improvement.
Practical Application: Cycle Checklist
- Plan. Formulate a concrete hypothesis: "If I change
[X]in the prompt, then the error rate on task[Y]will drop from[A%]to[B%]." - Do. Run the agent on a fixed test set with the changed prompt. Don't change several variables at once.
- Check. Run eval. Compare numbers with the hypothesis. Don't interpret subjectively — look at the metric.
- Act. If the hypothesis is confirmed — lock in the change (update system prompt, add a few-shot example, update CLAUDE.md / AGENTS.md). If not — roll back and formulate a new hypothesis.
Single-loop vs Double-loop: Improve the Method OR Change the Goal
Chris Argyris distinguished two levels of learning, and PDCA by default works only on the first:
Single-loop (regular PDCA)
Goal and metric are fixed; you improve the method of achieving them. "KR = 85% eval pass not reached → fix the prompt." Question: "How to do this better?"
Double-loop
The goal / metric / assumptions themselves are questioned. "Is this the right eval? Maybe 85% test pass ≠ 'agent is useful'?" Question: "Are we even solving the right problem?"
For an agent this is critical: single-loop honestly optimizes a proxy metric — and runs straight into Goodhart's Law (M7). If eval measures the wrong thing, single-loop will diligently improve "the wrong thing." Double-loop is a periodic step back: "does our Check measure the real goal?"
Write an instruction that forces the agent after a run to: (1) compare the result with the criterion (Check) and (2) once every few runs ask a double-loop question "does my criterion measure the real goal?". 3–5 lines.
Quiz
Module 5: First Principles
First Principles Thinking — break down to the foundation, rebuild from scratch
What Is First-Principles Reasoning
Aristotle defined a first principle as "the first basis from which a thing is known." Descartes elevated methodical doubt to a method: discard everything that can be doubted — and rebuild knowledge on what stands. The modern popularizer — Elon Musk: "think physics," not analogy.
Reasoning by Analogy
Do as accepted. Fast and cheap — no need to think from scratch. But it drags in other people's constraints: if everyone does it "this way," then you do too.
- "Batteries are expensive — that's forever."
- "All competitors have this design — so it's right."
- "The prompt works — let's copy it."
Reasoning from First Principles
Break the problem down to fundamental, verifiable truths (physics, facts, numbers). Discard inherited assumptions. Rebuild the solution bottom-up.
- What is a battery made of? What do the materials cost on the spot market?
- Why is the design this way? What physically constrains it?
- Why does the prompt work? What is the mechanism?
1. Break the problem down to atomic, verifiable claims.
2. Discard "accepted" assumptions — keep only what can be measured or derived.
3. Rebuild the solution bottom-up, relying only on verified blocks.
Case: Batteries (Illustrative Argument)
This example illustrates first-principles logic in the spirit of Musk's battery argument. Numbers are illustrative; the point is to show the gap between "market analogy" and "first-principles floor."
Analogy
"A battery pack costs ~$600/kWh. Historically the price fell slowly. Therefore, cheap electric vehicles won't happen for a long time."
Assumption inherited from current market structure.
First Principles
"What is a battery physically made of? Nickel, lithium, cobalt, aluminum/copper, graphite, electrolyte. What do the materials cost on the spot market?"
Sum of materials ≈ $80/kWh at these prices. Gap = $520 — this is not physics, it is market structure. Therefore, there is opportunity.
First-Principles Cost Calculator
Enter component costs and the market price of the finished pack. The calculator will show the "first-principles floor" (sum of materials) and the gap between it and the market.
floor = nickel + lithium + cobalt + metals + anode + electrolyte
Numbers are illustrative (in the spirit of Musk's battery argument), not precise historical accounting. The point is to show the gap between "market analogy" and "first-principles floor."
Transfer to AI Agents
1. Anti-Cargo-Cult Prompting
Cargo-cult — copying "magic" formulations without understanding the mechanism. First-principles question: what fundamental mechanism makes this work?
"You are a genius world-class expert. Others use it → we copy it."No understanding of mechanism, no eval, no knowledge whether it helps at all.
1. What actually affects quality? → context, instructions, examples, eval. 2. Test A/B: with and without the phrase. 3. Keep only what is confirmed.You build the prompt on verified hypotheses, not rituals.
2. Decomposition to Atomic Verifiable Claims
Complex agent task → break down to atomic verifiable claims: statements each of which can be checked independently. This is a direct bridge to eval from Module 4: each claim becomes a test case.
Task: "Summarize news correctly" ↓ decomposition ├── Claim 1: facts from the source are preserved ├── Claim 2: no added claims ├── Claim 3: tone is neutral └── Claim 4: length is within limits Each claim = a separate eval test.
3. Bottom-Up Estimation: "Too Expensive / Too Many Tokens"
Before accepting "impossible" — calculate from fundamental components.
"This is too expensive in tokens" — analogy. First principles: 1. How many tokens does each part of the prompt take? 2. Which of this carries information? Which is ballast? 3. Where is the real bottleneck: context, cost, latency? → We calculate, not assume.
4. Connection to SMART / OKR (Module 7)
Practice: Applying the Method
First-Principles Breakdown Template
Task: [description] 1. DECOMPOSITION What fundamental elements is the task made of? → [element 1], [element 2], ... 2. ASSUMPTIONS QUESTIONED What is "accepted" as a constraint? → Assumption X: can it be verified? 3. VERIFIABLE TRUTHS What can be measured / derived directly? → Fact 1: [number / experiment result] 4. REBUILD BOTTOM-UP Based on p.3, what solution follows? → [conclusion]
Agent-Native Example: Bottom-Up Model Budget
The battery case is about the physical world. Let's transfer the method to an agent. Analogy (reasoning by example): "the task is complex → use the strongest model for everything, it's safer." First-principles question: what share of tasks actually needs the strong model? Let's calculate the cost from components and compare "everything on strong" vs routing.
Numbers are illustrative. The point: "expensive and no other way" is analogy; first-principles calculation almost always reveals a gap (here — routing cheap model for simple tasks).
Take one "obvious" assumption about your agent ("needs top-tier model for everything" / "context must be huge" / "no RAG impossible") and break it down into verifiable components: what of this can be measured and disproven by a cheap experiment?
Check Yourself
Theory of Constraints (TOC)
Eliyahu Goldratt, "The Goal" (1984) — any system is limited by one bottleneck, which determines the throughput of the entire chain.
1. Key Idea: A Chain Is Only as Strong as Its Weakest Link
Eliyahu Goldratt formulated a principle that changed production management: in any system there is at least one constraint (bottleneck) — the slowest link through which all work flow passes. This constraint determines throughput — the capacity of the entire system.
If a conveyor: A(100/min) → B(20/min) → C(50/min) → D(40/min),
then throughput =
min(100, 20, 50, 40) = 20/min.Speeding up A to 200/min will change nothing — B still passes only 20.
Classic trap: a team spends a month optimizing the fastest stage, celebrates a 2× speedup, but final throughput doesn't change at all. This is called "local optimization not at the bottleneck."
2. Five Focusing Steps
- Identify — find the constraint. Where does the queue accumulate? Where does quality drop?
- Exploit — squeeze the maximum out of the bottleneck without new investment: best process, eliminate downtime.
- Subordinate — subordinate everything else to the bottleneck's tempo. Don't flood it with work faster than it can handle.
- Elevate — invest in expansion: new tool, resource, infrastructure.
- Repeat — after the bottleneck is relieved, it shifts. Don't let inertia stop the cycle.
If you optimized all stages except the bottleneck — you created a huge WIP (work in progress) that sits as dead weight in front of the bottleneck. This is worse than nothing: queues, latency, and errors grow.
3. TOC in Agent Pipelines
An agent pipeline is the same conveyor of stages, each with its own throughput:
Retrieval (context) → Reasoning (LLM) → Tool-calls → VerificationThroughput and reliability of the entire chain are determined by the weakest stage.
Identify in Agents
Measure where time and quality are lost. Look at:
- Latency of each stage (traces, logs)
- Error / fallback percentage by stage
- Where the agent most often "gets stuck" or re-asks
Exploit in Agents
No new infrastructure, only prompt engineering:
- Few-shot examples specifically for the narrow stage
- Chain-of-thought only where it helps
- Clearer system prompt for the weak step
Subordinate in Agents
Don't flood reasoning with extra context. If reasoning is the bottleneck:
- Retrieval must return only relevant items
- Don't launch 10 parallel tasks — the agent loses focus
- WIP limits: how many tasks are simultaneously "in flight"
Elevate → Repeat
After Exploit:
- Elevate: stronger model specifically on the narrow stage, specialized tool
- Repeat: the bottleneck moves — run Identify again
Optimizing retrieval when the bottleneck is reasoning; adding tools when the problem is verification. TOC says: first find the constraint, then invest effort.
4. Interactive: Pipeline Throughput = min(stages)
Set the speeds of four stages (requests/min). The system will show the bottleneck and total throughput. Try: raise Retrieval from 100 to 200 — throughput won't budge (stays 20). Then raise Reasoning from 20 to 40 — throughput grows to 40, and the bottleneck moves to Verify.
🎮 Mini-game: Unclog the Pipeline on a Budget
You have 14 upgrade points. One point raises a chosen stage by +5 req/min. Goal — squeeze maximum throughput (= minimum across stages). Hint: pouring points into a stage faster than the current bottleneck is useless. The optimum is achievable — find it.
5. Connection to Other Course Tools
6. RICE / WSJF: Which of Many Tasks to Do First
TOC answers "where is the bottleneck in one conveyor." But often in front of an agent is a backlog of dozens of independent improvements, and there is no single bottleneck: tasks must be ranked. Here scoring by value works.
RICE = Reach · Impact · Confidence / Effort
For an agent: Reach = how many requests/tasks the improvement affects; Impact = how much it helps each; Confidence = how certain you are (take from eval data, not feelings); Effort = cost in agent/human time. Calculate RICE for each candidate → do the one with the highest score first.
Connection of lenses: RICE/WSJF complement TOC. TOC is priority inside a flow (unclog the constraint); RICE is priority between independent backlog tasks.
Take 3 improvement ideas for your agent, score each with Reach/Impact/Confidence/Effort, and calculate RICE. Does the order match your intuition? Where did intuition err?
7. Check Yourself
Module 7: SMART and OKR
From vague intentions to measurable goals — and how this works for AI agents
SMART: Anatomy of a Verifiable Goal
George Doran proposed the SMART acronym in 1981 as a tool for turning foggy intentions into concrete, verifiable goals. Five criteria form a checklist:
What exactly? Who? Where? Vague "improve" is not a goal. Specific "raise the share of error-free tasks from 60% to 85%" is a goal.
How will we know we achieved it? A number, threshold, or criterion is needed. Without measurement there is no verification.
Is this realistic given resources and constraints? An impossible goal demotivates; too easy a goal doesn't stretch.
Why is this needed? The goal must be aligned with the real task, not with what is easy to count.
By what deadline? A deadline creates pressure and makes the goal finite, not an eternal "someday."
SMART is a checklist: passed all five criteria — the goal can be set. Failed at least one — rewrite.
Example: Vague Goal → SMART
"Make the agent better at code processing."
Not Specific, not Measurable, no deadline. How will we know "better"?
"By quarter-end the agent must pass an eval set of 200 tasks with accuracy ≥ 85% without manual fixes (currently 62%)."
Specific + Measurable + Achievable (23 pp growth per quarter) + Relevant + Time-bound.
OKR: Objectives and Key Results
OKR (Objectives and Key Results) — a goal-setting system developed by Andy Grove at Intel in the 1970s based on Peter Drucker's MBO. John Doerr brought it to Google in 1999; since then thousands of companies use OKRs.
A qualitative, inspiring goal. Answers "what do we want to achieve?" Contains no numbers — this is direction, not measurement.
Example: "Become the most reliable code-assistant agent."
3–5 quantitative, verifiable outcomes. Answer "how will we know we achieved the Objective?" These are outcomes, not tasks.
Example: "Share of tasks passing eval without fixes grows from 60% to 85%."
History and Grading 0..1
At Google every Key Result is scored on a 0.0 — 1.0 scale at the end of the period. The Google norm: ~0.7 = "good". This is not accidental:
- Stable 1.0 means goals are too easy — the system doesn't stretch the team.
- Results close to 0 signal: the goal was unachievable or misunderstood.
- The 0.6–0.8 zone — "ambitious but realistic": the team tried, achieved more than without OKR, but there is still room to grow.
Key Distinction: Outcome vs. Activity
- Activity (wrong): "Launch 3 new tools for the agent" — this is a task, not a result.
- Outcome (right): "Raise user retention from 20% to 30%" — this is a result that can be measured.
Transfer to AI Agents
SMART and OKR are not just HR tools. For agent systems they define the verification architecture.
A measurable KR is literally the criterion by which the verification gate (Check from M4/PDCA) decides "pass" or "fail." Without a measurable goal the agent does "something," but the system has nothing to check against.
Specific + Time-bound — this is what should be in the system prompt or agent task: what exactly to do and by what state to finish. A vague prompt = a vague result.
Achievable is fed by first principles (M5): what is physically possible with given tools and context? Relevant — are we optimizing a proxy instead of the real goal?
Objective sets direction (in the prompt or system context). Key Results are eval criteria by which the orchestrator decides whether the task is considered complete.
"When a measure becomes a target, it ceases to be a good measure" (Charles Goodhart, 1975).
Example: the agent was given "test pass percentage" as a metric → the agent started disabling failing tests. Formally the metric rises, but in reality quality drops.
Antidote: set multiple KRs that are hard to simultaneously game through a proxy; regularly review whether the measurement has become the goal in itself.
Interactive: Agent OKR Grader
Set the current score for each Key Result (0.0 — not achieved, 1.0 — fully). The average and verdict are recalculated automatically.
Objective: code-assistant agent became a reliable helper
KR1: share of tasks passing eval without fixes
KR2: share of answers without manual rework
KR3: p95 latency within SLA
Green zone — healthy OKR
Try: all at 0.7 → green zone; all at 1.0 → signal "too easy"; KR1=0.2, KR2=0.3, KR3=0.1 → red zone.
Guardrail Metrics: Antidote to Goodhart's Law
Since an agent optimizes exactly what is measured (Goodhart's Law), a single KR is dangerous: the agent will "win" it by breaking something unmeasured. The cure is guardrail metrics (counter-metrics): for every optimized metric add a protective one that must not worsen.
Optimize
share of solved tasks ↑
Guardrail (do not worsen)
hallucination share ≤ baseline · cost/task ≤ X · p95 latency ≤ SLA
For agent eval this means: the test suite always includes not only "passed the task," but also "didn't hallucinate / didn't exceed budget / didn't break previous behavior." This is direct application of double-loop from M4: the guardrail catches the moment when proxy optimization started harming the real goal.
🎮 Mini-game: Break the Metric (Goodhart's Law)
The agent optimizes one metric — % of passed tests. But the real goal is real utility. Choose actions and watch how the two metrics diverge. Then enable the guardrail and try the same hacks again.
Committed vs Aspirational: Two Types of OKR
Important for a hybrid audience: an agent usually receives goals, not sets them itself. And goals come in two sorts:
Committed (obligations)
Must be fulfilled at ~1.0. Contract: "the agent must pass these evals." Underfulfillment = incident.
Aspirational (stretching)
Aim for ~0.7, non-achievement is normal. "It would be nice if the agent also took such tasks." This is growth zone, not contract.
Formulate for your agent one Objective + 2 Key Results (measurable outcomes) + 1 guardrail metric and place it as an acceptance criterion in the system prompt. 4–6 lines.
Quiz
Module 8: Synthesis — Agent Operating System
Assembling all six methods into a unified working stack: two loops, three lenses, one coherent process.
Three Lenses of the Management Cycle
Each method from modules 2–7 closes its part of the cycle. Let's order them by the three questions the agent asks on every iteration.
🎯 WHERE TO (goal)
SMART/OKR (M7) — sets a measurable goal and success criterion (eval). Without this, loops spin idle.
First Principles (M5) — checks that the goal is realistic and the solution is not cargo-cult: break down to verifiable truths.
⚡ WHAT FIRST (priority)
Theory of Constraints (M6) — find the bottleneck and work on it, don't optimize everything at once.
GTD (M3) — offload tasks into external memory, hold one next-action, don't keep context in your head.
🔄 HOW TO MOVE (decision loops)
OODA (M2) — fast (inner) loop. In the moment, at every step: Observe → Orient → Decide → Act. Decision tempo is determined by Orient quality.
PDCA (M4) — slow (outer) loop. Between runs: Plan → Do → Check (eval) → Act. This is where learning from mistakes happens.
Central Idea: Two Nested Loops
OODA spins many times inside one "Do" of the PDCA cycle. SMART/OKR sets the goal that both loops converge toward. TOC tells which stage of the loop to fix. GTD keeps external memory clean. First principles don't let the loops optimize nonsense.
End-to-End Scenario: Code-Assistant Agent
The team sets a task: "The agent must pass code review on the first try in 80% of cases." Here is how all six methods work together:
- OKR (M7): Objective — "reduce iteration rounds to 1"; KR — "80% of PRs are accepted without a rerun within 4 sprints." Goal is measurable, there is eval.
- First Principles (M5): Break down to verifiable truths: why does the agent get review comments? — not code style, but logical errors and missed edge cases. Remove cargo-cult (copying prompts from successful PRs).
- TOC (M6): Pipeline: generation → tests → lint → review. Bottleneck is verification: the agent can't run tests itself before sending. Focus effort on exactly this link.
- OODA (M2): At every step of writing code — Observe (read task and diff), Orient (context + known error patterns), Decide (choice of approach), Act (write + run tests). Fast loop, many iterations.
- PDCA (M4): After every PR — Check (treat reviewer comments as eval), Act (update system prompt / checklist). Slow learning between runs.
- GTD (M3): All open tasks, known edge cases, team agreements — in external memory (task file / context window). The agent doesn't hold this "in its head," holds one next-action.
Guide Table: Symptom → Method → Place in Stack
| Symptom | Method | Place in stack | Module |
|---|---|---|---|
| Agent flounders in the moment, doesn't converge | OODA | Fast loop (decision in the moment) | |
| Drowns in tasks, loses context | GTD | Priority / external memory | |
| Repeats mistakes between runs | PDCA | Slow loop (learning between runs) | |
| Cargo-cult prompts, copying without understanding | First Principles | Goal / decomposition | |
| Pipeline is slow, unclear what to fix | Theory of Constraints | Priority (bottleneck) | |
| Goal is vague, does the wrong thing | SMART / OKR | Goal (measurable) |
Launching the Agent OS: Step-by-Step Algorithm
Methods are applied not "all at once," but in a specific order — from goal setting to achievement. Here is a working runbook for one task cycle:
- Goal — SMART/OKR (M7). Formulate a measurable goal and Key Results. This immediately sets the acceptance criterion (eval).
- Realism — First Principles (M5). Decompose the goal into verifiable truths: is the KR achievable? what is it made of? is there cargo-cult in the approach?
- Priority — Theory of Constraints (M6). Find the pipeline bottleneck (retrieval / reasoning / tools / verification) — fix exactly that link first.
- Execution — OODA (M2). Launch the fast loop: Observe (tool-call results) → Orient (context) → Decide → Act. Spins many times per task.
- Improvement — PDCA (M4). After step completion measure the result against KR (Check) and lock in / roll back the approach (Act). This is already the slow, inter-run loop.
- Hygiene — GTD (M3). Background across all steps: offload tasks and facts to external memory, hold next-action, periodically review context.
🩺 Method Diagnostics
Pick a symptom — get a recommendation with explanation and a link to the right module.
Pick a symptom above to see the recommendation.
Cynefin: Which Decision Mode for Which Situation
So far we have studied tools. Cynefin (Dave Snowden) is a meta-framework above them: it classifies the situation and suggests which type of reaction is appropriate. "Apply everything at once" is inefficient — first determine the domain.
| Domain | Reaction order | What to enable in the agent |
|---|---|---|
| Clear — causality is obvious to all | sense → categorize → respond (ready SOP) | deterministic path / rule / cheap model — without heavy LLM reasoning (bridge to routing from M5) |
| Complicated — there is a correct answer, needs analysis | sense → analyze → respond (expertise) | strong model + tools + explicit Orient (M2) + decomposition by first principles (M5) |
| Complex — causality is visible only post-factum | probe → sense → respond (emergence) | fast OODA loop (M2) + cheap safe-to-fail probes + PDCA (M4) |
| Chaotic — no links, need stabilization | act → sense → respond (action first) | act to create information (OODA boundary from M2), then analyze |
All Methods on One Page
| Method | Lens · speed | When to pull out | For the agent |
|---|---|---|---|
| OODA | decision loops · fast | need to decide and move now | stepwise perceive-reason-act cycle |
| PDCA | decision loops · slow | mistakes repeat, need to learn | eval-driven improvement between runs |
| GTD | prioritization · background | drowning in tasks and context | external memory + next-action + WIP limit |
| First Principles | goal-setting · one-off | "accepted" / cargo-cult / "impossible" | decomposition to verifiable truths |
| TOC | prioritization · periodic | pipeline is slow, unclear what to fix | unclog the bottleneck, don't optimize the rest |
| RICE / WSJF | prioritization · periodic | backlog of N independent ideas | value / effort scoring |
| SMART / OKR | goal-setting · per cycle | goal is vague, agent does the wrong thing | measurable goal = eval criterion |
| Cynefin | meta · at task entry | unclear which approach is needed at all | classify domain → choose mode |
False Friends: One Word — Different Meanings
Methods from different schools reuse terms. Don't confuse:
- Act in OODA (execute decision in the moment) ≠ Act in PDCA (lock in or roll back process change after Check).
- Check in PDCA (measure result against expectation, learning) is broader than "Verify" of a single tool; in M7 this is Measurable/eval.
- Objective in OKR (qualitative goal) ≠ Key Result (quantitative outcome) ≠ task/activity.
- Orient (OODA) ≠ simply "context": it is context + world model + past experience.
When Methods Conflict
"Apply everything at once" is impossible — sometimes recommendations argue. Conflict is resolved by splitting across time and criticality, not by a "rule for all cases."
Check Yourself
3 Actions for Tomorrow
- Rewrite one agent's goal in Key Result format (M7): measurable outcome + deadline. This will immediately give you an acceptance criterion (eval) that you likely don't have now.
- Find your pipeline's bottleneck (M6): measure at which stage (retrieval / reasoning / tools / verification) time and quality are lost — and direct effort only there.
- Add a Check step after the run (M4): at least one automatic test/check of the result against the goal. Without Check the agent will be "confidently wrong" and won't learn between runs.
Done 🎉
8 modules completed. Here is what you now have in your agent management toolkit:
- See the agent as a self-managing system: goal → decision loop → prioritization.
- OODA: build a fast Observe-Orient-Decide-Act loop and understand that Orient (context/world-model) is the main lever.
- GTD: unload the agent's "working memory" into external memory; two-minute rule, contexts, regular review.
- PDCA: slow improvement loop through verification gate; learn from mistakes between runs.
- First Principles: decompose the task to verifiable axioms instead of reasoning by analogy (cargo-cult prompts).
- Theory of Constraints: find the conveyor bottleneck and don't optimize everything at once.
- SMART / OKR: turn a vague goal into a measurable specification and eval.
- Synthesis: assemble everything into an "agent operating system" — two loops (fast OODA + slow PDCA) on top of goals and priorities.
What to Read Next
- John Boyd — "Patterns of Conflict" / R. Coram "Boyd". Primary source of the OODA loop.
- David Allen — "Getting Things Done". Canonical GTD.
- W. Edwards Deming — "Out of the Crisis". Shewhart/PDCA cycle and kaizen.
- Eliyahu Goldratt — "The Goal". Theory of Constraints on a production case.
- John Doerr — "Measure What Matters". OKR from Intel/Google (Andy Grove → Google).
- Anthropic — engineering notes on agents, context, and eval. Transferring these methods to LLM agents.