YouTube2Text

Роадмап по Агентской разработке в эпоху AI — Transcript

by Артём Шумейко · 4,249 words · 650 segments · language en · Watch on YouTube

Full transcript

  1. 0:00Most of us start our days the same way
  2. 0:02these days. You turn on your computer
  3. 0:04in the morning, open Codex or Cloudcode
  4. 0:07, and it helps you develop software or
  5. 0:09write code. It seems like you've
  6. 0:12mastered AI, mastered agents,
  7. 0:14understand how it all works, and can
  8. 0:16confidently move forward in your career
  9. 0:18. But in reality, there are quite a few
  10. 0:22pitfalls and pitfalls you can encounter
  11. 0:24when using agents and LM. This applies
  12. 0:28especially to becoming as proficient as
  13. 0:30possible in their use, and it's worth
  14. 0:33delving deeper into how to use them.
  15. 0:37Today, I'll walk you through a
  16. 0:38step-by-step roadmap of what you need
  17. 0:40to implement in your development, in
  18. 0:42your project, so that, firstly, it's
  19. 0:43faster, secondly, it's cheaper, you'll
  20. 0:45have plenty of tokens left over, and
  21. 0:47you can simply solve more problems—in
  22. 0:49other words, optimize your work as much
  23. 0:51as possible. My name is Artem. I'm a
  24. 0:54senior end-to-end developer. I'm also
  25. 0:56currently developing with agents. So,
  26. 0:58if you like this topic, be sure to
  27. 1:00support the video by liking and
  28. 1:01subscribing to the channel. And here we
  29. 1:03go. So, let's start with the basics and
  30. 1:06gradually work our way up to the most
  31. 1:08subtle and advanced options for using
  32. 1:09agents. So, the first step of our
  33. 1:11roadmap, which most people have
  34. 1:13probably already taken, is the
  35. 1:14transition from LLM to agent-based
  36. 1:16development. That is, you have some
  37. 1:19software running on your computer—an
  38. 1:21application, for example, Codex, or
  39. 1:23you're working with Cloudcode in the
  40. 1:25terminal—and it has access to your
  41. 1:27computer, allowing it to execute
  42. 1:29commands, open files, and modify the
  43. 1:31Git repository, so that it's as close
  44. 1:33to your code as possible. You don't
  45. 1:36have to manually copy-paste something
  46. 1:37from the browser and paste it into your
  47. 1:39code. This step is quite simple and
  48. 1:41straightforward. I would have skipped
  49. 1:43it pretty quickly if not for one thing,
  50. 1:45and that mostly concerns GPT chat. If
  51. 1:47we're talking about Cloudcode, this
  52. 1:49doesn't apply to it. But GPT chat does.
  53. 1:53If you have fairly large, complex tasks
  54. 1:55, such as speech-related or
  55. 1:57planning-related, that are somewhat
  56. 2:00abstracted from the code, or can easily
  57. 2:02be given some context in the browser
  58. 2:05version, then it's perfectly possible
  59. 2:07to spend tokens in the browser version
  60. 2:10on heavy resarch, best-practice
  61. 2:12research, planning a complex task, or
  62. 2:14decomposing it, and then transfer them
  63. 2:17to the agent. Why does this happen?
  64. 2:20Simply because we have two sets of
  65. 2:22tokens: one for the browser version,
  66. 2:24for chat GPT, and one for the agent,
  67. 2:27for code, for example. VCLD code
  68. 2:29doesn't work this way; the same tokens
  69. 2:31will be spent in the browser and on the
  70. 2:33computer, but for neural networks,
  71. 2:35including chat GPT, it's very
  72. 2:36convenient. You can delegate such tasks
  73. 2:39to the browser version for thinking.
  74. 2:42Okay. Nevertheless, of course, we spend
  75. 2:4390 percent of our work in agents, and
  76. 2:45we need to understand how to work with
  77. 2:47them. So, before we move on to agent
  78. 2:50files, instructions, configs, skills,
  79. 2:52and hooks, let's just talk. What's the
  80. 2:55difference between an agent and a lamka
  81. 2:56? Many people might not even understand
  82. 2:59. The point is, we still communicate
  83. 3:03with the lamka, it still makes
  84. 3:06decisions, but the executor is often
  85. 3:09our computer. For example, the lamka
  86. 3:13understands, "Aha, I need to read these
  87. 3:14files." It issues a command to the
  88. 3:18agent, and our computer knows it can
  89. 3:20run the ls command and see what files
  90. 3:23are there, for example, in the
  91. 3:25repository in the current folder, or
  92. 3:27read or search with grep, for example,
  93. 3:29on Linux or Mac, simply by using a
  94. 3:31command to search for a certain word in
  95. 3:34all files. So, the lamka doesn't do
  96. 3:38this; it only receives data from the
  97. 3:41agent, what it found on our computer,
  98. 3:43and gives it certain commands to make
  99. 3:46changes. Well, besides that, of course,
  100. 3:49our agent can work with external MS
  101. 3:51Lists, external tools, access the
  102. 3:53database, and much, much more. And
  103. 3:55while the agent has quite a lot of
  104. 3:57freedom, it's important to remember
  105. 3:59that you always need to give it
  106. 4:01constraints. We'll look at the formats
  107. 4:04for this a little later, but it's
  108. 4:05important to limit it, specify your
  109. 4:07project architecture, the stack you're
  110. 4:09using, and what boundaries it shouldn't
  111. 4:11cross, what it shouldn't do. This is
  112. 4:14very important. That is, not only ask
  113. 4:16it to define a goal, yes, a definition
  114. 4:18of done—what needs to be done, how to
  115. 4:20know when a task is complete—but also
  116. 4:22prohibit it from certain things. And
  117. 4:25it's also important to remember that
  118. 4:28agents are very fond of context,
  119. 4:30especially if it's running, for example
  120. 4:32, like you're developing a product, and
  121. 4:35it has 100 tests. If your agent runs
  122. 4:38tests after every task, and the tests
  123. 4:40generate, say, 10,000 lines of logs,
  124. 4:43just to confirm that the tests passed,
  125. 4:45then LMKA still loads those 10,000
  126. 4:48lines of code. There's a huge number of
  127. 4:51tokens there, say, 300,000 tokens. And
  128. 4:54then they live in your context and
  129. 4:55simply saturate it. You spend more
  130. 4:58tokens, or more money, and you work
  131. 5:00less efficiently. LMKA simply devours
  132. 5:03unnecessary data, analyzes it for some
  133. 5:05reason, and thinks everything is fine.
  134. 5:07Although, of course, this could be
  135. 5:09eliminated, for example. We'll talk
  136. 5:10about that a bit later. Okay, let's
  137. 5:13move on to configuring the agent,
  138. 5:15because this is something that is a
  139. 5:16must-have in your project. Moreover,
  140. 5:19what are the specifics of files like
  141. 5:21agents.mdown or clod.m? Markdown,
  142. 5:24they're not universal. Depending on the
  143. 5:28project you're working on—a website,
  144. 5:30a Telegram bot, a frontend project—
  145. 5:33you'll have a different agents.m file.
  146. 5:36You need different rules, different
  147. 5:38important settings, different launch
  148. 5:40methods. So, in this Markdown file,
  149. 5:43essentially just a text file, you can
  150. 5:45describe everything, and most
  151. 5:46importantly, quite concisely, for
  152. 5:48example, no more than 100-200 lines.
  153. 5:50You don't need to write down or cram
  154. 5:51the entire project architecture in
  155. 5:52there, how everything works, how
  156. 5:53everything is interconnected, or any
  157. 5:55diagrams or pictures. No. This file
  158. 5:58usually stores basic information about
  159. 6:00the project. For example, if it's an
  160. 6:02end-to-end project, what kind of
  161. 6:04architecture and stack it uses, and
  162. 6:05what commands can be used. For example,
  163. 6:08this command to launch, this command to
  164. 6:11run tests, this command to run the
  165. 6:13linter, this command to run a migration
  166. 6:15—so it definitely uses them and
  167. 6:17doesn't reinvent the wheel every time.
  168. 6:21Then, be sure to specify restrictions
  169. 6:24on what this agent is not allowed to do
  170. 6:27in this project. For example, they're
  171. 6:29not allowed to access the product
  172. 6:31database, or they're not allowed to
  173. 6:33access it and modify data or attempt to
  174. 6:34modify data. Obviously, these
  175. 6:37restrictions don't guarantee the agent
  176. 6:39won't go and delete your product
  177. 6:42database. Of course, it's important to
  178. 6:45have a good head on your shoulders and
  179. 6:47not give them the login and password
  180. 6:49for the product database user, or only
  181. 6:51give them the username and password so
  182. 6:53they can only read the data, even if
  183. 6:55they try to modify it and violate the
  184. 6:57instructions, so the database simply
  185. 6:59refuses them. So, we rely on this file,
  186. 7:04but we never trust the agent. We're not
  187. 7:09sure they'll always use it. We need to
  188. 7:11protect ourselves in this case and
  189. 7:13carefully weigh the risks. Also,
  190. 7:15something very important that many
  191. 7:18forget or don't know is the nested
  192. 7:21files agents.m or gemini.md for Gemini
  193. 7:24or clot.mD. They all have their own
  194. 7:26names. What's the point? For example,
  195. 7:30for each directory in my project, I
  196. 7:32have a directory associated with tests.
  197. 7:35I can have a specific set of rules for
  198. 7:38tests, including how they're written,
  199. 7:40which directories they're created in,
  200. 7:42what exactly we're testing, what
  201. 7:44percentage of test coverage we need,
  202. 7:46how much we're testing for each
  203. 7:48attribute, key, value, and so on. And
  204. 7:51this is then written down in each
  205. 7:53folder separately. That is, if the code
  206. 7:55that the agent or feature that the
  207. 7:57agent is developing is writing involves
  208. 7:59testing, when it gets to the tests
  209. 8:01folder, it will see a file called "
  210. 8:03agents.Markdown" there, and it will
  211. 8:05understand: "Aha, I need to do this,
  212. 8:07this, this." Or if it goes, for example
  213. 8:10, to the payments folder and needs to
  214. 8:11change something about payments, the
  215. 8:13payment system, the connection,
  216. 8:15whatever—Cloud Payments, Stripe—it
  217. 8:16will have a set of instructions: what
  218. 8:18can be done, what can't be done, how
  219. 8:20and where to place things so that
  220. 8:21nothing breaks, right? That's probably
  221. 8:24the most important thing. And all these
  222. 8:26instructions are, like, local, related
  223. 8:28to payments, users, authorization, and
  224. 8:31tests. You don't need to write them all
  225. 8:33into one huge "agents" file. At the
  226. 8:36root of your repository and your folder
  227. 8:38. No need. Break them into small nested
  228. 8:41subfiles. They can be nested not only
  229. 8:45one level deep, but also nested under
  230. 8:47folders, and then under folders, and
  231. 8:48then under folders. And it has its own
  232. 8:50"agents" file. And always remember that
  233. 8:55it's loaded into the context, and then
  234. 8:56always passed on to the next one. The
  235. 8:59context accumulates, but this file
  236. 9:01lives there, so there's no need to make
  237. 9:03it huge. You'll just quickly fill up
  238. 9:05the context. And as we know, if our
  239. 9:08model has a fairly large context, it
  240. 9:10can start hallucinating. This is, of
  241. 9:12course, undesirable behavior. Nobody
  242. 9:14wants that. Therefore, don't even think
  243. 9:17about how this will save us tokens, but
  244. 9:19think about how our neural network will
  245. 9:22work properly and deliver the result we
  246. 9:24want. Make it concise, very short. Okay
  247. 9:29. The next step is creating skills for
  248. 9:32common tasks. Or maybe you're not using
  249. 9:35skills yet. Maybe you've already
  250. 9:37accumulated skills, like me, for every
  251. 9:39common use case. And that's definitely
  252. 9:42something worth using. Let me clarify
  253. 9:45right away what's the difference
  254. 9:46between the "agents" file. Markdown and
  255. 9:48skills. Agents are probably just a
  256. 9:52description of your project, how we
  257. 9:54work with it, and how we don't. That is
  258. 9:57, a very high-level approach. Skills,
  259. 10:00however, relate to a specific task.
  260. 10:04Imagine that you regularly create new
  261. 10:06tables, add them to the database, and,
  262. 10:09naturally, you need to do this through
  263. 10:12migrations. If you're a developer, you
  264. 10:14understand what a migration is. We
  265. 10:15create a file that describes which
  266. 10:17column and type is added to the table.
  267. 10:20And there may be rules for how this
  268. 10:22migration is added, what else needs to
  269. 10:24be done. For example, we run this
  270. 10:26command to create a migration on a
  271. 10:28specific database, a local one, for
  272. 10:30example. We check that the file
  273. 10:31contains this, this, and this. And we
  274. 10:34make these changes to the migration. We
  275. 10:36don't forget to check this, this, and
  276. 10:38this. Basically, a checklist or simply
  277. 10:40a workflow for the agent so that when
  278. 10:42creating a migration, they always
  279. 10:44follow a single pipeline and don't
  280. 10:45forget important things. Or another
  281. 10:48example. Say you're developing an
  282. 10:51endpoint, and you need to create a new
  283. 10:53endpoint, a, through which the user
  284. 10:55gets their statistics, like, I don't
  285. 10:58know, completing their tasks on some
  286. 11:00platform. It's important that we
  287. 11:02already have a lot of endpoints in the
  288. 11:04system, hundreds, let's say. And we're
  289. 11:07constantly adding or changing new ones.
  290. 11:10And if the task is frequent, it's
  291. 11:12routine, something is always repeated
  292. 11:14in it, some pieces of code, it makes
  293. 11:16sense to wrap it in a skill so that we
  294. 11:19can always, for example, check whether
  295. 11:21the user is an administrator, a
  296. 11:22moderator, or a regular user. Secondly,
  297. 11:26don't forget to pull up the user ID.
  298. 11:28Third, for example, some plugins, based
  299. 11:30on their own experience, absolutely
  300. 11:32always require adding a certain
  301. 11:34parameter, otherwise caching won't work
  302. 11:36. And obviously, this kind of local
  303. 11:40information is specific to my project
  304. 11:44and my library; it's relevant only to
  305. 11:47me. If someone writes in another
  306. 11:49language, there's no library, and this
  307. 11:51skill or this skill point isn't
  308. 11:53relevant to them. Therefore, we often
  309. 11:55write our own skills for ourselves, for
  310. 11:57our own projects, for our own needs.
  311. 11:59It's not like we simply copied a skill
  312. 12:01from someone else and it will work for
  313. 12:04us. But only if the other person is
  314. 12:07using the same stack, with the same
  315. 12:09architecture, and roughly the same
  316. 12:11library versions. Then you can copy it,
  317. 12:14but that's, of course, more rare. MCP
  318. 12:16plus tools. And, surely, most of you
  319. 12:20have heard of MCP. If you don't know
  320. 12:22how this works, what it looks like
  321. 12:23under the hood, or if you'd even like
  322. 12:25to write your own MCP, please let me
  323. 12:26know in the comments. It's not for
  324. 12:28nothing that I'm a Python developer; I
  325. 12:30can show you how to write one. But
  326. 12:32let's get down to business. Many people
  327. 12:36have heard of MCPs, but for some reason
  328. 12:38forget to implement them or don't
  329. 12:41realize that the system you're using
  330. 12:43has one. Imagine a work task. In your
  331. 12:47corporate system, you have GPA for task
  332. 12:50tracking or Asana, Affluence for
  333. 12:52documentation, and some important
  334. 12:55context is stored there—yes, it is.
  335. 12:58And centry, where all the bugs
  336. 13:00accumulate from the frontend, backend,
  337. 13:03and, let's say, some database that
  338. 13:05stores data—testing or production
  339. 13:07data. And you keep going: copying a
  340. 13:12task from Jira, some documentation from
  341. 13:14Confluence, from Gitlab, I don't know,
  342. 13:17the latest EMRs or the latest commits,
  343. 13:20basically, some information from the
  344. 13:23repository, say, and you provide a link
  345. 13:25or, again, copy the entire bug report
  346. 13:28from Cry or Glglip. It's just a stupid
  347. 13:33job. And it's stupid because it can be
  348. 13:34optimized. That is, everyone used to do
  349. 13:36it this way. As if it were normal. You
  350. 13:38copy something, search Google, Stack
  351. 13:40Overflow, Habr to see if anyone has
  352. 13:42encountered this problem. Now it's
  353. 13:44simply inefficient. You're just wasting
  354. 13:46time. It's much more convenient to
  355. 13:48connect the MCP of all these tools.
  356. 13:50Connect the Confluence MCP so that the
  357. 13:53agent always knows, "Oh, I have
  358. 13:55Confluence." And LMKA, when it's
  359. 13:58thinking about the task, will say: "Aha
  360. 14:00, yeah, okay, let's first go to Jira,
  361. 14:02see what the task is, and let's see
  362. 14:04what links there might be. There might
  363. 14:07be a link to the central bin inside
  364. 14:09Jira. It will itself go to the central
  365. 14:11MCP, go to confluence, combine all the
  366. 14:13data into a single context, and,
  367. 14:15together with your code, it will
  368. 14:16understand:" Aha, there was an error
  369. 14:18here, let's fix it like this, like this
  370. 14:20, like this, like this. "That is, the
  371. 14:22point is that most developers know
  372. 14:24about MCP, but they forget to connect
  373. 14:26them. And one more thing, sometimes MCP
  374. 14:29doesn't need to be connected or isn't
  375. 14:31worth it. And here's an example, for
  376. 14:33example, with a database. You use
  377. 14:36Postgql or MongoDB or ClickHouse there.
  378. 14:40You most likely have it locally on your
  379. 14:43computer, well, if you're a developer
  380. 14:45watching this video, and you have a
  381. 14:47console client, for example, PSQL for
  382. 14:50Postgress, and it can easily do queries
  383. 14:52to your database. You don't need, well,
  384. 14:55these are tools, yes, it's a tool, it's
  385. 14:58just a console tool. You don't need to
  386. 15:01connect an MCP, which under the hood
  387. 15:03will also call PSQL and query the
  388. 15:05database. You can simply use the tools
  389. 15:08you have on your computer, like Bash,
  390. 15:10like Curl, for some queries and testing
  391. 15:13. And you don't always need to connect
  392. 15:16an MCP, because it's somehow cool and
  393. 15:17awesome. If you already have Tolza on
  394. 15:20your computer, please use it. Next.
  395. 15:22Different models for different tasks.
  396. 15:25This is a more advanced story. Ah, and
  397. 15:28many don't think about it, don't think
  398. 15:30about it, in principle. They always
  399. 15:32work on the latest model and, well,
  400. 15:34quickly burn through tokens. If you
  401. 15:37have a lot of tasks and you've already
  402. 15:39used up all the tokens, you understand
  403. 15:41that you'll spend all the tokens very
  404. 15:42quickly, up to the limits, and you
  405. 15:44don't have the money or the company
  406. 15:46doesn't pay you, there are several
  407. 15:48accounts, otherwise it makes sense to
  408. 15:50separate them for different types of
  409. 15:52tasks, uh, different models. Let me
  410. 15:54give you an example. Example: You have
  411. 15:56a large, complex problem. It needs,
  412. 15:59well, the huge context, yes, which we
  413. 16:01discussed earlier, there's fat,
  414. 16:02confusion, uh, some kind of bug. To
  415. 16:06understand all this information and
  416. 16:08come up with a solution plan for this
  417. 16:10problem, it's better to use the latest
  418. 16:11model, the most advanced one, including
  419. 16:13the most expensive one. And it has a
  420. 16:17pretty good, high level of reasoning—
  421. 16:19yes, reasoning high or extra high, if
  422. 16:21you have it available or you don't mind
  423. 16:23the tokens—and then it will think for
  424. 16:25a long time and will most likely come
  425. 16:27up with a better, higher-quality
  426. 16:29solution. But the plan it creates, some
  427. 16:33parts of this plan, will consist of
  428. 16:35simply mechanical corrections to some
  429. 16:38files. For example, in this, in this
  430. 16:41function, change the parameter name
  431. 16:43from this to this or swap these two
  432. 16:45lines. These are stupid mechanical
  433. 16:48actions that make sense to use a
  434. 16:51different model. Oh, and, for example,
  435. 16:55you can use an older model, if we're
  436. 16:58talking about GPT, for example, The one
  437. 17:00I use is to use 5.5 instead of 56. It
  438. 17:03sounds like a good idea at first, but
  439. 17:06when switching between different model
  440. 17:08families, we degrade in the sense that
  441. 17:13our context is compressed, and tokens
  442. 17:15are also spent. And it's better,
  443. 17:17instead of using other models, for
  444. 17:19example, if there's a small mechanical
  445. 17:22fix, or maybe a medium one, to simply
  446. 17:24reduce the reasoning level from high to
  447. 17:26medium-medium or low, or even change it
  448. 17:28back to the GPT family from GPT 56, 5.6
  449. 17:33to Terra or Llu. That is, take some
  450. 17:36other weaker models with an even weaker
  451. 17:38reasoning level, so that fewer tokens
  452. 17:40are spent. If you rarely use agents
  453. 17:42there, well, this feature is useless.
  454. 17:44Just use the maximum model. If you
  455. 17:46don't spend all your tokens, you don't
  456. 17:48need to do this. But of course, I know
  457. 17:51how developers use it, how I use it
  458. 17:53myself, how my senior friends use it.
  459. 17:56And tokens are burned very quickly, so
  460. 17:59this feature can very well help you.
  461. 18:02Regularly spend 10, 15-20%less tokens.
  462. 18:06Next. Subagents for independent tasks.
  463. 18:11Just when you figured out what agents
  464. 18:13are, some unknown thing called
  465. 18:15subagents appears. It's actually not
  466. 18:18that difficult to understand. But let's
  467. 18:21take an example: you open two chats in
  468. 18:24parallel and give your prompts, and
  469. 18:27agents are working. These are two
  470. 18:29independent agents. These are not
  471. 18:31subagents. Subagents are when you work
  472. 18:35in one chat, and the main orchestrator
  473. 18:39spawns its own subagents, or one
  474. 18:42subagent. It has its own context, this
  475. 18:46subagent, and it can independently
  476. 18:49perform some task. For example, you
  477. 18:51have a pipeline—well, we haven't
  478. 18:53gotten to that yet, but in general,
  479. 18:55let's say you have a good pipeline
  480. 18:57where the neural network first creates
  481. 18:59a plan, then decomposes the tasks,
  482. 19:01distributing them according to the same
  483. 19:03, for example, complexity or
  484. 19:05risangulation. in models based on
  485. 19:08reflections and starts to act. And it's
  486. 19:12important that some of the actions are
  487. 19:14performed by independent experts, I'd
  488. 19:16like to say, okay, by independent
  489. 19:18subagents who don't have this entire
  490. 19:20context of reflections. That is, if you
  491. 19:24feed an agent a subagent the entire
  492. 19:26context where the decision-making chain
  493. 19:28was, it will consider it reliable, and
  494. 19:30it won't be able to conduct an
  495. 19:32independent, impartial code review. But
  496. 19:36if you tell the subagent, look, this
  497. 19:39was the task, this is the result. Check
  498. 19:43it, well, as if another developer is
  499. 19:44actually checking it. Check if
  500. 19:46everything is okay, if there are no
  501. 19:48problems, if everything is according to
  502. 19:49standards, according to our agents file
  503. 19:51. Check that everything is okay. And he
  504. 19:55really, well, will check your code more
  505. 19:57impartially than an agent with a huge
  506. 19:58context of all the reflections. And
  507. 20:01sometimes this can speed up the work if
  508. 20:04subagents are doing several seemingly
  509. 20:06independent things in parallel. That is
  510. 20:09, there is some complex bug, and it
  511. 20:11needs to be investigated. There's a
  512. 20:13problem. Either there's a cache issue,
  513. 20:16or a database issue, or a problem with
  514. 20:18some other service, or there are
  515. 20:19problems in our code. And we can easily
  516. 20:23, if the tasks are independent, launch
  517. 20:25two or three subagents. It's also
  518. 20:28important to remember that if we have
  519. 20:29an agent and its subagents, the main
  520. 20:31agent itself can also perform work.
  521. 20:33It's not just a manager who sits idly
  522. 20:36by and says," You do this, you do that.
  523. 20:38"It can also work. Therefore, you can
  524. 20:41give the main agent its task, and the
  525. 20:43subagents, well, those little ones, so
  526. 20:46they can look at this RAIDIS, look at
  527. 20:48this database, and they will return
  528. 20:50their research results and feed it to
  529. 20:52the main agent. Okay. The next step is
  530. 20:56parallel work via GitWork 3. This
  531. 20:58applies, of course, more to developers,
  532. 21:00especially when you have a lot of tasks
  533. 21:02in progress, several new bugs have
  534. 21:04appeared, you are developing several
  535. 21:07features. And if no one has used Git 3
  536. 21:11before, well, simply because We used to
  537. 21:14use Git Stash, but now it's a really
  538. 21:16cool feature. What does that mean? Git
  539. 21:203, and you can edit the same repository
  540. 21:24from different branches simultaneously
  541. 21:27on one computer. So, let's say you have
  542. 21:30a branch for one feature. Previously,
  543. 21:32we'd have either a feature or a bug
  544. 21:34open, and we'd be editing one at a time
  545. 21:36, which makes sense (we're kind of one
  546. 21:38person, we share one brain, and it's
  547. 21:40hard to do two tasks in parallel). Now,
  548. 21:42agents can: one can implement a new
  549. 21:44feature, the other can fix a bug,
  550. 21:46especially if they don't overlap in
  551. 21:47code, so there won't be merge conflicts
  552. 21:50later. That would be ideal. If you have
  553. 21:53a lot of features, a lot of deadlines,
  554. 21:56and it's a startup, then I definitely
  555. 21:58recommend using Gitwork 3. Next up is
  556. 22:00verification loop and hooks. This is,
  557. 22:04of course, probably one of the most
  558. 22:07advanced scenarios, when we clearly, uh
  559. 22:10, give commands to the agent, which is
  560. 22:13the definition of, That is, when a task
  561. 22:16is completed or not completed, how many
  562. 22:20times must the agent fail before it
  563. 22:23stops working? Or, let's say it tried
  564. 22:26to fix a test three times, failed, and
  565. 22:28instead of burning the token further,
  566. 22:30it runs for another hour. And there
  567. 22:33might be a bug, you know, when you
  568. 22:34change something in one place, the
  569. 22:35agent changes it, something breaks in
  570. 22:37another, then you change it in another,
  571. 22:38something breaks in this one. And the
  572. 22:40agent might not find the dependency,
  573. 22:41that something needs to be changed in
  574. 22:43both places at once or one of these
  575. 22:44places needs to be deleted. It might
  576. 22:46not understand the dependency, how some
  577. 22:48elements depend on each other, because,
  578. 22:50for example, we didn't convey this in
  579. 22:51the context. Or it's not obvious to the
  580. 22:54agent. Well, of course, this might be
  581. 22:57increasingly obvious to the latest
  582. 22:58models if it can't match such simple
  583. 23:00things. Most likely, it can. But in
  584. 23:03reality, complex things happen,
  585. 23:05especially when external systems
  586. 23:06somehow influence them. External
  587. 23:08specifications, databases, which,
  588. 23:09perhaps, someone is editing in parallel
  589. 23:11or through some triggers. There are
  590. 23:13still some fixes that the agent doesn't
  591. 23:15know about or doesn't have access to,
  592. 23:17so they can only guess, and you know.
  593. 23:21It makes sense to create a feedback
  594. 23:23loop like this, it's called a feedback
  595. 23:25loop for the agent, so it understands,"
  596. 23:27Aha, I messed up, the tests didn't pass
  597. 23:29, the linter didn't pass, I go back to
  598. 23:31this step, run it again, fix the code,
  599. 23:33run the test. Aha, it didn't pass. "And
  600. 23:36so, in this cycle, you determine how
  601. 23:38many such circles there are, and is the
  602. 23:40same context being transmitted there or
  603. 23:41not? Is there some kind of context
  604. 23:44saving and independent checking with
  605. 23:46subagents? This is a complex,
  606. 23:49configurable system, although it
  607. 23:51actually sounds quite simple. Okay. And
  608. 23:53let's highlight a few more things that
  609. 23:56didn't fit in this video. This is, of
  610. 23:58course, context management. I've
  611. 24:00touched on this topic many times, but
  612. 24:02technically it's more difficult to
  613. 24:04implement than just describing it in
  614. 24:05words, right? This is observability, so
  615. 24:08we can monitor the actions of our
  616. 24:11agents, Ideally, we want the system to
  617. 24:13be able to improve itself. These agent
  618. 24:16files, configurations, all the scripts,
  619. 24:19hooks, so that our system can
  620. 24:21automatically improve without our
  621. 24:24intervention or with minimal
  622. 24:26intervention. And again, I'll explain,
  623. 24:29each project has its own set of tools,
  624. 24:31MCP, hooks, and feedback loops are
  625. 24:33relevant. It's hard to just copy the
  626. 24:36entire set from another project and
  627. 24:38that's it, everything will work,
  628. 24:40everything will fly. Most likely, you
  629. 24:43need to customize, tune at least some
  630. 24:45things. And a fairly popular thing is
  631. 24:48Spec Driven Development, which is used
  632. 24:50in bigtech companies, in many teams,
  633. 24:52I've heard, including myself. A very
  634. 24:55cool methodology. And these are all
  635. 24:58those things, if we zoom in, all those
  636. 25:01things, and, of course, there are many
  637. 25:03more besides them that are needed in
  638. 25:05software development or simply when
  639. 25:07writing code, if you're a developer,
  640. 25:09analyst, tester. DevOps, well, just
  641. 25:13doing something Programming, coding, or
  642. 25:15wipe coding. This is something you
  643. 25:18absolutely need to know. If you liked
  644. 25:19the video, please support it with a
  645. 25:20like, a comment, and a subscription.
  646. 25:22This channel hasn't had a video about
  647. 25:24AI yet. However, I have a lot to share.
  648. 25:26So, if you're interested, let me know
  649. 25:28in the comments. And all the best. Bye.
  650. 25:30M.

About this transcript

This page contains the full transcript of Роадмап по Агентской разработке в эпоху AI by Артём Шумейко, generated from the public captions YouTube serves with the video. The transcript has 4,249 words across 650 segments, with the original timestamps preserved so you can click any line to jump to that moment in the embedded player.

What you can do with it

Use the transcript to take notes, quote the speaker, build a study guide, generate a summary with ChatGPT or Claude via the YouTube Summary tool, or export it as a timed subtitle file with YouTube to SRT. You can also re-open it in the transcriber to choose a caption track available on the video.

Free YouTube transcript tool

YouTube2Text is a free YouTube transcript generator — no signup, no daily limit. Paste any YouTube link and get the full transcript instantly, with timestamps, click-to-jump, caption language selection, AI prompts for ChatGPT, Claude, and Gemini, and exports to TXT, SRT, VTT, or Markdown.