---
url: "https://youtube.com/watch?v=Z-c11pV_uvU&is=smuTRRP8s_d_J4M0"
title: "Anthropic's CCA Exam as a Field-Guide for Agentic Engineering — Frank Coyle, UC Berkeley"
source_kind: youtube
author: AI Engineer
captured: "2026-08-09T18:08:26+00:00"
comment_tree: false
topics: [other]
summary: "Frank Coyle discusses Anthropic's CCA exam as a guide to agentic engineering skills and career preparation in AI."
status: ok
---

# Anthropic's CCA Exam as a Field-Guide for Agentic Engineering — Frank Coyle, UC Berkeley

Channel: AI Engineer

## Transcript

[1s] [music]
[12s] >> Okay, I'm getting rolling and uh welcome
[14s] aboard. We just had a little technical
[16s] issues,
[17s] but uh we resolved them. So, my name is
[19s] Frank Coyle.
[20s] Uh I am a computer science guy. I've
[23s] been teaching computer science for over
[25s] 30 years,
[26s] and I'm now teaching at Berkeley. And
[29s] one of the problems that uh all my
[30s] students,
[32s] past and present, are having is AI,
[34s] because computer science is no longer
[37s] the magic pathway to a job. So, I've
[41s] been trying to figure out ways to uh
[43s] help them come up with schemes to help
[46s] them get ready for this world of agentic
[48s] AI. And one of the things that sort of
[51s] uh
[51s] dropped into my uh plate was the
[55s] something called the Claude Certified
[57s] Architect exam, which I will be talking
[59s] about today, and it has um a number of
[63s] aspects to it. And I think if you're
[64s] interested in a career in agentic AI,
[67s] then certainly take a look at least what
[69s] the exam is about, because I feel that
[72s] um Anthropic knows how people are using
[76s] their system and what the issues are
[78s] going to be.
[79s] So, before we jump into that, I want to
[81s] give a little bit of my
[83s] uh
[83s] my philosophy.
[86s] bop bop bop bop
[93s] May have to do this manually, getting
[94s] stuck.
[96s] So,
[97s] this is a quote from uh
[100s] a woman named Sister Corita Kent.
[102s] Nothing is a mistake. There's no win and
[105s] no fail. There's only make.
[108s] Bottom line here is experiment,
[110s] experiment, experiment. Not only should
[113s] you read, but you should do. You should
[115s] make stuff. Now, what happens when you
[118s] make stuff? A lot of times things don't
[121s] work.
[123s] Thomas Edison said, "I have not failed.
[127s] I've only found 10,000 ways
[129s] that don't work."
[131s] And
[133s] what I want to emphasize here is that
[135s] what this shows us are something that in
[138s] the design patterns movement, which came
[140s] around in the early 1990s with
[142s] object-oriented programming, we had
[144s] patterns for objects. We now have
[147s] patterns for agents, but there's also
[150s] anti-patterns. And I think anti-patterns
[152s] are a key
[154s] to understanding what you should not do
[157s] because understanding what you should
[158s] not do is the key to leading you to what
[161s] you should do.
[164s] So, a little bit about the Claude
[166s] Certified Exam, released in March, so
[169s] it's brand new.
[170s] It is uh
[172s] it is
[173s] based on scenarios. It is timed. It is
[176s] proctored.
[177s] It is available to companies in the
[181s] Claude ecosystem, the Anthropic
[183s] ecosystem, but individuals can pay $99
[186s] and take the exam once every once every
[189s] 6 months.
[191s] And it's not just
[193s] multiple-choice questions. It is
[195s] multiple-choice, but they're
[197s] they are based on
[199s] uh realistic constraints and realistic
[202s] scenarios.
[204s] The five domains.
[206s] There are five domains that are covered
[208s] and they give you the percentages of
[209s] each. So, agentic architecture, 27%.
[213s] Claude code, how to configure the Claude
[215s] code system and workflow, 20%. How to
[220s] doing prompt engineering, structuring
[222s] your output, using JSON all over the
[226s] place.
[227s] Tool design. Model context protocol
[230s] integration. These are topics that you
[232s] should understand and know whether
[234s] you're going to take the exam or not.
[236s] This is going to help you get ready for
[238s] whatever
[240s] the agentic world is going to throw at
[242s] you. And then there's going to be
[243s] contact management and reliability. So
[246s] these are the
[247s] areas of of the kind of questions you're
[250s] going to run into.
[253s] Then there are and they they provide you
[256s] with six production scenarios and your
[260s] the exam will randomly choose four and
[264s] all the questions will be centered
[266s] around the four that they choose.
[269s] And what I'm going to do is walk you
[271s] through
[272s] um
[274s] the production scenarios and give you
[276s] some anti-patterns to be aware of
[278s] because there's a number of ways you can
[280s] solve the problem but one of the big
[281s] things is what not to do and that often
[284s] can be the key to getting these
[286s] questions right. So, number one customer
[289s] support resolution agent. So we have
[291s] agentic loops, control, something called
[294s] stop reason which is
[296s] uh what Cloud Code has. Every time
[298s] something happens, there's a stop reason
[301s] and you need to take a look at that
[302s] because that can give you a lot of
[303s] information about what's going on.
[305s] Uh scenario two, code generation.
[308s] Three, multi-agent research system which
[311s] we'll look at. How do you How do you
[314s] distribute your agents? Hub and spoke.
[317s] Who's the orchestrator? How much
[318s] information should they know? All these
[321s] are important factors. Um
[323s] scenario four, developer
[326s] productivity with code. So how do you do
[328s] subtask isolation? Keep your tasks in
[331s] their little universes. And this
[333s] hearkens back to what we learn in
[335s] computer science from doing
[336s] multi-threaded programming.
[339s] When you have multiple threads operating
[340s] and sharing memory, then you get into
[343s] issues with synchronization. You You to
[345s] put locks
[347s] Keep the little threads independent.
[350s] Keep your agents independent.
[352s] Um
[354s] and then some cloud code for continuous
[356s] integration.
[358s] And then we'll look at some patterns for
[360s] structured data extraction. Okay, that's
[364s] kind of where we're going to go.
[366s] Now, here's something that I I I like to
[369s] point out. Everybody's talking about
[371s] loops, right? Every The loop is the new
[373s] thing.
[374s] Um
[376s] uh Boris Cherney says he doesn't write
[379s] code, but his job is to write loops.
[382s] And Peter Steinberger
[384s] master of Open Claw says, "I don't I
[386s] don't uh I don't code anymore. I just
[388s] design loops
[390s] that prompt your agents."
[392s] So, loops are the new big thing, right?
[394s] Well, no, they're not. Okay? Um
[398s] back in the day
[400s] uh early days of computing, we had
[403s] programming languages were exploding. We
[405s] had Fortran, we had COBOL, and there
[407s] were big fights. My program My
[410s] programming language is better than
[412s] yours. It can do more. No, it can't. We
[415s] can do this.
[416s] Böhm and Jacopini, 1966
[419s] proved that if you want a language to be
[422s] Turing complete, which means can compute
[425s] anything that computers are possibly
[428s] able to compute, then you need only
[431s] three things.
[433s] The ability to
[434s] to to write statements sequentially,
[437s] okay?
[438s] To have if-then conditionals, and the
[441s] third piece is the loop.
[444s] If you add the loop,
[446s] you have Turing computability. And now
[449s] we are seeing this being resurrected in
[452s] the agentic world with the focus on
[455s] loops, cuz up to now we've had sort of
[457s] sequences. You have prompts, you have
[459s] maybe if-then, but now we have a loop.
[462s] And now this is what's giving us the
[463s] power. This is where the agentic stuff
[466s] is getting very exciting.
[468s] Okay.
[470s] I'm start with uh
[472s] with scenario one, customer support
[474s] resolution.
[476s] So here we have
[479s] a loop operating and
[481s] the I'm going to jump to the
[483s] anti-pattern. What you don't want is
[485s] just to let the agent go and do
[487s] something and get the response back and
[491s] use it, okay? What you want to do is you
[493s] want to loop with something called the
[495s] stop reason. So I'm going to show you a
[497s] little code here.
[499s] So here we have while loop. It's a while
[501s] true, it's a loop. We're looping right
[503s] here, okay? So the first little block is
[506s] where we call uh we call the model,
[509s] okay? And we pass it the messages. The
[511s] messages are essentially the sequence of
[514s] prompts that exist in the context
[517s] window, okay? And we are asking the and
[522s] we have a we have a prompt and we have
[525s] we have the context and we have a tool.
[527s] And we're asking the LLM
[530s] to do something with this tool and help
[532s] us out. The problem is the LLM can't do
[536s] anything. It is just a probabilistic
[539s] next word predictor.
[541s] It can't execute tools. So what it does
[544s] though is it can figure out
[548s] if you point it to a tool, it can figure
[551s] out how to set things up so that you or
[554s] your code can execute it. So it's
[557s] important to understand that the LLM is
[558s] not executing these tools. It can't do
[560s] anything except talk back to you, very
[563s] intelligently sometimes, but all it can
[565s] do is talk back to you. So
[568s] when it finishes
[569s] this
[571s] task and has a result which is basically
[576s] here is I've I know what you want. I
[579s] know what the tool can do. Here's how I
[582s] It sets up the parameters that can then
[585s] be or that then used to actually execute
[588s] the tool. So, the second block you see
[591s] why did
[593s] the LLM come back to us? That's our stop
[596s] reason.
[597s] Tool use. Oh, okay. We've stopped
[599s] because
[600s] the LLM it wants to use the tool.
[603s] So, let's just run the tool. So, that's
[605s] what the second block is. Run tool, the
[608s] response is what the LLM said, and it's
[610s] basically the parameters that it has
[613s] extracted from the data that you
[615s] provided it.
[617s] Okay? Then it executes that.
[619s] Then it goes back.
[620s] That then it continues. Continues means
[623s] the LLM sees it and says, "Oh,
[625s] successful run. So, okay."
[628s] Come back down.
[631s] We're not running a tool anymore. We're
[632s] end the end of our loop. Bingo.
[635s] Now,
[636s] then we take the answer, and this is an
[638s] opportunity for you to
[639s] have a human in the loop potentially.
[643s] You check the confidence. If it looks
[645s] good, you keep it. If you don't, then
[647s] you escalate to a human.
[649s] So, now there's another reason why you
[652s] need to make sure you check your stop
[654s] reason. One of the stop reasons may be
[657s] you have run out of tokens, and this
[660s] response is based on partial when the
[664s] LLM had to stop.
[666s] And it's going to give you a response,
[668s] but if you have run out of tokens, then
[670s] you need to take action.
[672s] Okay.
[673s] Um
[675s] Next scenario.
[677s] Uh code generation with Claude. So,
[679s] Claude code has this has this concept of
[682s] the Claude MD file, a markdown file,
[684s] where you put all the things you wanted
[686s] to know.
[687s] What Anthropic recommends is you have
[691s] three levels of Claude.
[694s] One
[696s] that you have at the top level of your
[697s] project,
[699s] the other that you have in inside your
[701s] sort of the project folder, and then
[705s] within directories you can also specify.
[708s] So, the idea is to have a hierarchical
[710s] set of rules that that can then control
[715s] how the system is going to respond.
[718s] Okay.
[720s] Moving right along,
[722s] uh we have a multi-agent research
[724s] system. So, here we're going to have uh
[728s] the problem is
[730s] how do I how do I get my agents to to go
[732s] off and do stuff and bring the answers
[734s] back in a reasonable way? The
[736s] anti-pattern
[738s] you
[739s] have one agent and you load it up with
[741s] tools, all right? So, I like to think
[743s] about you
[744s] you know, you hire somebody to come to
[745s] your house, you hire a carpenter to come
[747s] to the house, and the guy shows up with
[750s] uh
[751s] plumbing tools, carpenter tools,
[753s] electrical tools. He says, "I can do
[755s] anything." Well, maybe you don't want
[756s] this guy, maybe you want a a
[758s] professional carpenter. So, that's the
[760s] kind of idea. And this kind of back
[762s] takes us back to some of the the
[764s] functional programming
[766s] uh
[767s] ideas that functions should be do one
[770s] thing. And if you can get your agents to
[773s] do one thing,
[775s] you with maybe one or two tools
[778s] available to it, then that's going to be
[781s] a win, and that's going to help you with
[782s] this exam. So, specialize,
[785s] don't overload.
[787s] The other part of this is
[789s] don't let your agents
[791s] context spill over into the main context
[796s] because context means tokens, tokens
[799s] mean money,
[801s] and the more context you have, the more
[803s] confused the LLM is going to be in
[806s] giving you an answer. So, even though
[808s] oh, a million token context window, I
[811s] can put everything in there. No, no,
[812s] don't put everything in there.
[814s] Limit what's going to go in there
[815s] because then you're going to get
[817s] a much more accurate system.
[821s] So, here's a
[824s] Here's an example of a specialized sub
[827s] agents.
[828s] You're giving it
[830s] So, this would be the critic. So, let's
[832s] say you've run some stuff. Now, you want
[834s] to get an agent to look at what's
[837s] happened. What you want to do is just
[839s] give it what it needs to solve that
[842s] critic problem. I'm only giving it here
[845s] the
[847s] we're passing it
[848s] the claim and the evidence. So, this is
[851s] your claim is sort of how we're going to
[853s] solve the problem. Here's Here's the
[854s] evidence, but we're not giving it the
[858s] the thought processes that went in to
[862s] creating this claim. Why?
[865s] When you
[867s] When you get a bunch of agents together
[869s] collaborating and talking to each other,
[872s] there's a tendency to have group think.
[875s] And
[876s] all the agents seem to kind of devolve
[879s] into one idea. I mean, it's it's like,
[882s] you know, you're in a group, you know,
[883s] you're at a party, and everybody wants
[886s] pizza except you, but then people talk
[889s] you into
[890s] you you know, you don't want to be uh
[893s] you don't want to spoil the party, so
[894s] you'll go along. And it seems that
[895s] agents kind of work in the same way.
[898s] So, you're going to return
[900s] Basically, you're going to give each
[902s] agent only a slice. I didn't think about
[905s] the pizza analogy, but yes. Every agent
[908s] gets its own slice, and and it it should
[911s] come through.
[912s] Okay.
[917s] Fourth scenario,
[919s] developer productivity. So, the
[922s] anti-pattern.
[925s] Let every subtask dump its full output
[927s] into the primary thread, crowding out
[929s] the context. Again, this is what we're I
[931s] was just talking about. This is bad. Let
[934s] the context grow unbounded. Bad, right?
[938s] For the reasons we just talked about.
[940s] You want to isolate your subtask output,
[943s] and you want to compact
[946s] long sessions. I'm going to take a
[948s] second to talk about that. So, here's
[951s] here's a
[952s] an example of a pattern.
[954s] Uh
[955s] you want to have your agent
[959s] uh
[960s] look at the logs and create a summary
[964s] of where the problems are in the log.
[966s] So, here's your task, scan all the logs
[969s] for error.
[970s] Context fork. So, you're forking the
[973s] agent into a like a separate thread
[976s] where
[977s] whatever the agent does and thinks and
[980s] adds tokens to does not come back and
[983s] pollute the main
[985s] uh
[986s] the main context.
[988s] Now,
[990s] you see here what happens, then you take
[992s] this
[993s] summation, and then you add that
[995s] summation without all the other stuff
[998s] into the overriding context. Now, this
[1002s] last little block is kind of
[1003s] interesting, I think. Because
[1006s] you can check your token count,
[1009s] and you can determine how big the token
[1011s] count is.
[1013s] And
[1015s] if you can set some limit and you know,
[1017s] if if you have more than 150,000 tokens,
[1019s] then what you want to do is you can run
[1021s] a compact. So, Anthropic and Claude have
[1024s] these compaction algorithms
[1028s] that take this giant context and and
[1030s] compact it in some way, shape, or form.
[1032s] Not quite sure how the implementation is
[1035s] of that, but there is compaction. Now, a
[1038s] little side effect a little side channel
[1041s] I've been walking around when you walk
[1043s] outside, you see see these guys handing
[1044s] out these books.
[1046s] Okay? Anybody see these guys handing out
[1048s] these but take them. This is this is
[1050s] actually a pretty good little book. In
[1052s] fact, I was looking at it last night and
[1055s] one of the things it had in it was this
[1057s] is by this guy Sam
[1059s] Sam Bagwell. I have no connection I
[1061s] didn't even know Sam, but it there's a
[1064s] online page 32.
[1066s] It says
[1067s] uh his company provides custom logic for
[1070s] compression of context. So, he's got an
[1074s] and you can write your own. He's got a
[1076s] he's got he you can extend his base
[1077s] class and have your own
[1080s] compression of your data, whatever you
[1081s] think is important. So, I think that's
[1083s] kind of an interesting spin on this
[1086s] whole thing.
[1087s] Okay.
[1089s] Cloud code for
[1092s] uh uh continuous integration
[1095s] uh anti-pattern
[1098s] Always have interactive modes in a
[1099s] pipeline. Well, no no no cuz interactive
[1102s] modes mean uh
[1105s] Cloud will stop and ask you, "You want
[1107s] to do this? You want to do that? Can I
[1108s] have permission for that?" So, there are
[1109s] ways to set it up so that it'll just run
[1112s] straight through, okay?
[1114s] The other
[1116s] uh
[1117s] the other tip that I'll give you here
[1121s] is there's something called
[1123s] the uh
[1125s] the batch. So, you can take your
[1127s] prompts, you can take your work, and you
[1130s] can put them in a batch and for 50%
[1134s] fewer token cost you will get the result
[1137s] they promise in at at least 24 hours.
[1140s] So, if you're going to go take a nap,
[1141s] you're going to go on vacation, you're
[1143s] going to go out, take a a day off, run
[1145s] your stuff in batch mode, and you're
[1147s] going to have a a
[1149s] less to pay.
[1153s] Where am I here?
[1155s] All right, I've only got a few few
[1157s] minutes left, few seconds left, but I
[1160s] want to conclude with this.
[1162s] Remember, nothing is a mistake. There's
[1165s] no win, there's no fail, there's no
[1166s] exam,
[1168s] only make. You do it and you make it and
[1171s] you're going to succeed. If you want to
[1173s] reach out to me, reach out to me uh coil
[1175s] at Berkeley, look at my websites. I got
[1178s] a website co-supreme AI. I'm a big jazz
[1181s] fan and I named this website after John
[1183s] Coltrane, Love Supreme, if you know that
[1184s] song, great. Anyway, that's my story and
[1187s] I'm sticking to it and I'm about to zero
[1189s] time. Okay,
[1190s] >> [applause]
[1191s] >> thank you.