Foundations Of Agentic AI
What Makes a System Agentic
There is no boundary at which a system becomes "an agent." There is a dial, and the useful question is how far along it you need to be.
Jr Codex Agentic AI Notes
Level: Beginner Prerequisites: Chapter 1: From Traditional AI to Agentic AI Time to complete: ~20 minutes
Table of Contents
- Agentic Is a Spectrum, Not a Label
- The Six Properties
- The Spectrum in Code
- Who Decides the Control Flow
- Choosing the Right Point on the Spectrum
- Summary & Next Steps
1. Agentic Is a Spectrum, Not a Label
There is no boundary at which a system becomes "an agent." There is a dial, and the useful question is how far along it you need to be.
The Spectrum
─────────────────────────────────────────
1. SINGLE CALL prompt in, answer out
2. CHAIN fixed sequence of calls, each
feeding the next
3. ROUTER a model picks which fixed
branch to take
4. TOOL-USING LOOP the model chooses actions
until done
5. PLANNING AGENT the model decomposes the goal
first, then executes
6. MULTI-AGENT several agents coordinate
◄── more predictable more capable ──►
◄── cheaper, testable costlier, harder ──►
─────────────────────────────────────────
The Rule Worth Internalising Now
─────────────────────────────────────────
Use the LEAST agentic system that solves the
problem.
Every step rightward costs predictability,
testability, latency and money — and buys
flexibility you may not need. Most production
"agents" would be better as level 2 or 3.
─────────────────────────────────────────
2. The Six Properties
What people mean by "agentic" decomposes into six properties that a system can have independently.
1. AUTONOMY
─────────────────────────────────────────
Acts without step-by-step human instruction.
Measured by: how many steps between human inputs.
2. GOAL-DIRECTEDNESS
─────────────────────────────────────────
Pursues an OUTCOME, not a procedure. You specify
what "done" looks like, not how to get there.
This is what separates level 4 from level 2.
3. TOOL USE
─────────────────────────────────────────
Can affect or observe the world beyond generating
text. Without this, autonomy is meaningless —
there is nothing to be autonomous ABOUT.
4. MEMORY
─────────────────────────────────────────
Retains state across steps and, sometimes, across
sessions. Module 3 is devoted to this.
5. ADAPTABILITY
─────────────────────────────────────────
Changes approach in response to results. An agent
that retries the identical failing action is
looping, not adapting (Module 4, Chapter 4).
6. REFLECTION
─────────────────────────────────────────
Evaluates its own output and revises. The
distinguishing property of the more capable
patterns — Module 4, Chapter 3.
─────────────────────────────────────────
Using These as a Checklist
─────────────────────────────────────────
When someone describes a system as "agentic",
ask which of the six it actually has.
Most commercial "AI agents" have tool use and
nothing else — which makes them level 3 or 4, and
that is often exactly right. The problem is not
being at level 3; it is not KNOWING you are.
─────────────────────────────────────────
3. The Spectrum in Code
The distinction is clearest when the same task is written at three levels.
# LEVEL 2 — A CHAIN. You wrote the control flow. It runs the same way every time.
def summarize_ticket(client, ticket):
category = classify(client, ticket) # step 1, always
context = retrieve(category) # step 2, always
return draft_reply(client, ticket, context) # step 3, always# LEVEL 3 — A ROUTER. The model picks a BRANCH; you still wrote every branch.
def handle_ticket(client, ticket):
route = classify(client, ticket, options=["billing", "technical", "refund"])
return { # the set of outcomes is FIXED
"billing": handle_billing,
"technical": handle_technical,
"refund": handle_refund,
}[route](client, ticket)# LEVEL 4 — A TOOL-USING LOOP. The model decides the sequence AND its length.
def resolve_ticket(client, ticket, tools, max_steps=10):
messages = [{"role": "system", "content": "Resolve the ticket. Use tools to gather "
"what you need before replying."},
{"role": "user", "content": ticket}]
for _ in range(max_steps):
reply = client.chat.completions.create(
model="gpt-4o", messages=messages, tools=tools.schemas).choices[0].message
if not reply.tool_calls:
return reply.content
messages.append(reply)
for call in reply.tool_calls:
messages.append({"role": "tool", "tool_call_id": call.id,
"content": str(tools.run(call))})
raise StepLimitExceeded() # the loop MUST be boundedRead the Difference Structurally
─────────────────────────────────────────
Level 2: no branching. Fully testable.
Level 3: branching, but a FINITE, enumerable set
of paths. Still testable — test each branch.
Level 4: an unbounded set of possible paths. You
can no longer enumerate them, which is why
Module 7 evaluates TRAJECTORIES rather
than outputs.
─────────────────────────────────────────
4. Who Decides the Control Flow
There is one question that places any system on the spectrum, and it cuts through all the marketing.
The Question
─────────────────────────────────────────
"At runtime, does the MODEL decide what happens
next — or did the DEVELOPER already decide?"
DEVELOPER decides ──► a workflow (levels 1-3)
MODEL decides ──► an agent (levels 4-6)
─────────────────────────────────────────
Why This Is the Right Question
─────────────────────────────────────────
It predicts everything else about the system:
If the DEVELOPER decides:
- execution paths are enumerable and testable
- cost and latency are bounded and known
- failures are reproducible
- debugging is ordinary software debugging
If the MODEL decides:
- the path is non-deterministic
- cost varies per run and can spike
- failures may not reproduce
- you need TRACING to know what happened at all
─────────────────────────────────────────
Note that a system can be highly capable and still be a workflow. A five-stage pipeline with retrieval, an LLM at each stage, and structured handoffs is sophisticated engineering — and entirely deterministic in its control flow. That is a feature.
5. Choosing the Right Point on the Spectrum
Decision Guide
─────────────────────────────────────────
Can you write down the steps in advance?
──► LEVEL 2. Do that. It is cheaper, faster
and testable, and it will not surprise you.
Are there a handful of known paths?
──► LEVEL 3. A router plus fixed branches.
Does the necessary sequence genuinely depend on
what is discovered along the way?
──► LEVEL 4. This is the real threshold.
Does the task need decomposition before any work
can start?
──► LEVEL 5 (Module 4).
Do genuinely separate specialisations need to
work in parallel, with separate contexts?
──► LEVEL 6 (Module 6) — and read Module 6,
Chapter 5 first, on why this usually
makes things worse.
─────────────────────────────────────────
The Test for Level 4
─────────────────────────────────────────
"Could I have written this sequence of steps
before seeing the input?"
If yes, you do not need an agent — you need the
function you just described.
Investigating a fraud alert genuinely fails this
test: whether to check the merchant depends on
what the customer history turned up. Summarising
a document does not fail it at all.
─────────────────────────────────────────
6. Summary & Next Steps
Key Takeaways
- Agentic is a six-level spectrum from single call to multi-agent; each step right trades predictability, testability and cost for flexibility.
- "Agentic" decomposes into six independent properties — autonomy, goal-directedness, tool use, memory, adaptability, reflection — and most systems have only some.
- The defining question is who decides control flow at runtime: developer means workflow and testable paths, model means agent and non-deterministic trajectories.
- Use the least agentic system that solves the problem, and apply the level-4 test: if you could have written the steps in advance, write them.
Concept Check
- A colleague calls their five-stage retrieval pipeline "an agentic system." Using this chapter's question, what is it actually, and does that matter?
- Why does level 4 require trajectory evaluation while level 3 does not?
- Apply the level-4 test to "generate a weekly sales summary from our database." What level does it need, and why?
Next Chapter
→ Chapter 3: Classical Agent Types, Reframed
Jr Codex — 1-on-1 Personalized Coaching | Back to Module Index | Back to Agentic AI Index