<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Renato D. Prado</title>
    <description>The latest articles on Forem by Renato D. Prado (@renato_dprado_bbf0901ec).</description>
    <link>https://forem.com/renato_dprado_bbf0901ec</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3203878%2Fa42acaad-6826-4c55-b46f-9741d0c7f306.png</url>
      <title>Forem: Renato D. Prado</title>
      <link>https://forem.com/renato_dprado_bbf0901ec</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/renato_dprado_bbf0901ec"/>
    <language>en</language>
    <item>
      <title>Agentic AI - Part 1: foundations</title>
      <dc:creator>Renato D. Prado</dc:creator>
      <pubDate>Wed, 13 May 2026 20:01:23 +0000</pubDate>
      <link>https://forem.com/renato_dprado_bbf0901ec/agentic-ai-part-1-foundations-40ga</link>
      <guid>https://forem.com/renato_dprado_bbf0901ec/agentic-ai-part-1-foundations-40ga</guid>
      <description>&lt;h1&gt;
  
  
  Agentic AI: a tech lead's glossary
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Study notes from coursers like Pluralsight on agentic AI and other references, organized as a glossary I wish I'd had on day one.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every dev I know is using AI tools, and most of us are fuzzy on the words behind them. Where does a transformer fit in? What does MCP actually solve? Is "agentic AI" a real thing or just rebranded chatbots?&lt;/p&gt;

&lt;p&gt;This is my map of the territory: machine learning at the bottom, agents and MCP at the top, and the concepts in between — tokens, memory, tools, RAG, vector databases. Built for lookup, not for a single read-through. If a term is fuzzy in your head, jump to it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Foundations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Machine Learning
&lt;/h3&gt;

&lt;p&gt;Normal coding: you write the rules. &lt;em&gt;"If the email subject says 'free money,' mark it as spam."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Machine learning flips that. You don't write the rules — the program &lt;em&gt;finds&lt;/em&gt; them by trial and error. You give it thousands of emails labeled "spam" or "not spam." For each one, the program guesses the label, compares its guess to the correct answer, and nudges a bunch of internal numbers (its &lt;strong&gt;weights&lt;/strong&gt;) to be a little less wrong. Do that millions of times across thousands of examples, and those weights settle into something useful.&lt;/p&gt;

&lt;p&gt;What does a weight actually &lt;em&gt;look&lt;/em&gt; like? Picture the spam detector keeping a running score for each email. See the word "viagra"? Add 0.8 to the score. Unknown sender? Add 0.5. Lots of exclamation marks? Add 0.2. If the total clears a threshold, the email gets tagged as spam. Those numbers — 0.8, 0.5, 0.2 — are weights. Training is the process of finding what each one should be.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What comes out of training isn't code. It's the model — a file holding all those weights. A simple spam filter might have thousands. An LLM has billions. Hand the model a new email, and it produces a verdict: spam or not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Want to feel it for yourself? Try Google's &lt;strong&gt;Teachable Machine&lt;/strong&gt; (&lt;a href="https://teachablemachine.withgoogle.com" rel="noopener noreferrer"&gt;teachablemachine.withgoogle.com&lt;/a&gt;). Train an image classifier in your browser with your webcam — show it a few photos of "happy face" vs "sad face" and watch it learn to tell them apart.&lt;/p&gt;

&lt;h3&gt;
  
  
  Where LLMs fit
&lt;/h3&gt;

&lt;p&gt;A few useful distinctions before going further:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt; is the broad field — anything where a machine does something we'd call intelligent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine learning&lt;/strong&gt; is a subset of AI: systems that learn patterns from data instead of being explicitly programmed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deep learning&lt;/strong&gt; is a subset of ML that uses multi-layer neural networks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLMs&lt;/strong&gt; are a specific application of deep learning, built on the transformer architecture (introduced in 2017).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So: &lt;strong&gt;LLM ⊂ deep learning ⊂ ML ⊂ AI.&lt;/strong&gt; Claude, ChatGPT, Gemini, Llama — all LLMs.&lt;/p&gt;

&lt;p&gt;These terms get used interchangeably, but they're not the same thing. A spam filter and ChatGPT are both AI, both ML, but only one is an LLM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Neural networks and deep learning
&lt;/h3&gt;

&lt;p&gt;A neural network is one specific kind of ML algorithm. Loosely inspired by the brain: layers of nodes connected to each other, every connection carrying one of those weights from before. Input enters on one side, flows through the layers, a prediction comes out. The training loop is the same as before — guess, check, nudge the weights — there are just far more weights to nudge.&lt;/p&gt;

&lt;p&gt;"Deep learning" is just a neural network with many layers — the &lt;em&gt;deep&lt;/em&gt; refers to the layer count.&lt;/p&gt;

&lt;p&gt;Why depth matters: each layer learns a more abstract pattern than the one below it. For image recognition, the first layer might detect edges; the next, shapes; the next, eyes and noses; the next, full faces. For text: letters, then words, then phrases, then meaning. Stack enough layers and the model captures complex patterns.&lt;/p&gt;

&lt;p&gt;The deep learning boom of the 2010s happened because GPUs made training big networks practical, and there was enough digital data to feed them.&lt;/p&gt;

&lt;p&gt;LLMs are deep neural networks. Specifically, ones built on an architecture called the transformer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Transformers — and what makes an LLM different
&lt;/h3&gt;

&lt;p&gt;Earlier language models processed text word by word, in order — slow to train, and they tended to lose track of context across long sentences. The &lt;strong&gt;transformer&lt;/strong&gt;, introduced in a 2017 Google paper called &lt;em&gt;Attention Is All You Need&lt;/em&gt;, fixed both problems with two changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It looks at the whole input at once.&lt;/strong&gt; No more reading sequentially. The model sees the full sequence and processes it in parallel — which also made training scale across GPU clusters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attention pairs every word with the others that matter.&lt;/strong&gt; Think of it like reading with a highlighter, where the highlighting is automatic — learned from training data. For each word in the input, attention scores the others by relevance, weights them, and blends the most important ones into how that word is processed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Concrete example: in &lt;em&gt;"The cat sat on the mat. It was tired,"&lt;/em&gt; when the model reaches &lt;em&gt;"it,"&lt;/em&gt; attention scores &lt;em&gt;"cat"&lt;/em&gt; high and &lt;em&gt;"mat"&lt;/em&gt; low. That's how the model knows &lt;em&gt;"it"&lt;/em&gt; refers back to &lt;em&gt;"cat."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Every well-known LLM since runs on this architecture: GPT, Claude, Gemini, Llama. Same core design, just bigger training data and more weights.&lt;/p&gt;

&lt;p&gt;So what's actually different about an LLM compared to the spam filter from earlier?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generality.&lt;/strong&gt; Old ML: one model per task. An LLM is a single model that handles summarization, code, translation, and reasoning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generation vs. classification.&lt;/strong&gt; Old ML predicts a label or a number ("spam" / "not spam"). LLMs produce text, which lets them do almost anything we can describe in words.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale.&lt;/strong&gt; Old ML: thousands to millions of weights, single GPU. LLMs: billions of weights, GPU clusters, weeks of training, millions of dollars per training run.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tokens
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;token&lt;/strong&gt; is a chunk of text the model reads — sometimes a full word, sometimes a fragment. &lt;em&gt;"Hello, world"&lt;/em&gt; might become three tokens: &lt;code&gt;Hello&lt;/code&gt;, &lt;code&gt;,&lt;/code&gt;, &lt;code&gt;world&lt;/code&gt;. The word &lt;em&gt;"strawberry"&lt;/em&gt; might split into two: &lt;code&gt;straw&lt;/code&gt;, &lt;code&gt;berry&lt;/code&gt;. Each token is then mapped to a number, and those numbers are what the model actually processes.&lt;/p&gt;

&lt;p&gt;Every model has its own tokenizer (the piece that does the chopping), so the same sentence in GPT, Claude, and Gemini can produce different token counts.&lt;/p&gt;

&lt;p&gt;The practical consequence: &lt;strong&gt;context limits and pricing are measured in tokens, not words.&lt;/strong&gt; A model's &lt;strong&gt;context&lt;/strong&gt; is how much text it can work with at once — its working memory. Rule of thumb: 1 English word ≈ 1.3 tokens.&lt;/p&gt;

&lt;p&gt;Every API charges two things separately: &lt;strong&gt;input tokens&lt;/strong&gt; (everything the model reads — system prompt + conversation history + retrieved memory + tool definitions + the new user message) and &lt;strong&gt;output tokens&lt;/strong&gt; (what the model generates, typically priced higher per token than input).&lt;/p&gt;

&lt;p&gt;Every turn, the entire conversation history gets sent as input. By turn 10, the input includes 9 prior turns plus the new message. Token usage grows with chat length.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agents
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Agentic AI
&lt;/h3&gt;

&lt;p&gt;A regular LLM chat is one prompt in, one response out. &lt;strong&gt;Agentic AI&lt;/strong&gt; turns that into a loop: the LLM picks an action, the system runs it, the result feeds back, the LLM picks again. Actions come from &lt;strong&gt;tools&lt;/strong&gt; — APIs, code execution, file edits, database queries.&lt;/p&gt;

&lt;p&gt;There's a middle ground between chat and a full agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Workflow&lt;/strong&gt; — a fixed pipeline of LLM calls. The path is hard-coded; the LLM just fills in the steps. &lt;em&gt;Example: classify ticket → summarize → draft reply.&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent&lt;/strong&gt; — no fixed path. The LLM is given a goal and a set of tools, picks the next action, observes the result, and picks again. The loop continues until the goal is reached or a stop condition fires (step limit, token limit, failure).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key difference: &lt;em&gt;who decided the next step — a human writing the pipeline, or the LLM at runtime?&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The agent loop
&lt;/h3&gt;

&lt;p&gt;An agent is an &lt;strong&gt;LLM in a loop with tools and memory&lt;/strong&gt;. One cycle:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The agent receives a task.&lt;/li&gt;
&lt;li&gt;The LLM picks what to do next.&lt;/li&gt;
&lt;li&gt;The agent runs a tool, calls an API, writes a file, etc.&lt;/li&gt;
&lt;li&gt;The agent observes the result.&lt;/li&gt;
&lt;li&gt;Back to step 2 with the new information.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You'll see this written different ways — &lt;em&gt;perceive → reason → act → learn&lt;/em&gt;, or &lt;em&gt;plan → act → adapt&lt;/em&gt;. Same loop.&lt;/p&gt;

&lt;h3&gt;
  
  
  Three components
&lt;/h3&gt;

&lt;p&gt;An agent has three:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LLM&lt;/strong&gt; — the reasoning engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt; — what the agent remembers across steps and sessions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools&lt;/strong&gt; — what the agent can actually do (call APIs, run code, search files, edit data).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Strip any one and you're back to plain chat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Four characteristics
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous execution.&lt;/strong&gt; Runs without step-by-step human input.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal-oriented.&lt;/strong&gt; Works toward an objective, not a fixed script.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proactivity.&lt;/strong&gt; Initiates actions on its own.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration.&lt;/strong&gt; Can work with other agents (multi-agent systems).&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Memory
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;An LLM has no memory of its own.&lt;/strong&gt; Each call to the model is independent — it doesn't remember anything from the previous call. Any continuity you experience in ChatGPT or Claude comes from the conversation history being passed back in every turn.&lt;/p&gt;

&lt;p&gt;Memory is storage that gets auto-injected into the prompt. When the agent needs context, the system pulls relevant entries from storage and adds them to the prompt before the next LLM call.&lt;/p&gt;

&lt;p&gt;How it works in practice:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The agent stores facts somewhere — JSON file, relational database, vector database, a dedicated memory service.&lt;/li&gt;
&lt;li&gt;Each turn, the system retrieves whatever matches the current question (recent messages, facts about the user, prior decisions).&lt;/li&gt;
&lt;li&gt;The retrieved content gets prepended or inserted into the prompt.&lt;/li&gt;
&lt;li&gt;The LLM sees it as context, no different from anything else in the prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Two kinds:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Short-term&lt;/strong&gt; — the conversation so far. The running list of messages passed each turn.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Long-term&lt;/strong&gt; — facts kept across sessions. ChatGPT's memory feature is the consumer example: tell it your favorite dish, come back next week, and it remembers — because &lt;em&gt;"user's favorite dish is feijoada"&lt;/em&gt; got stored and gets injected the next time you ask.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Compressing history
&lt;/h3&gt;

&lt;p&gt;Memory has a hard limit: the model's context window. Once a chat grows past that, something has to give — either older messages get dropped (the agent forgets) or they get compressed.&lt;/p&gt;

&lt;p&gt;Agent systems handle this automatically. As the conversation approaches the context limit, the system makes a separate LLM call to summarize older messages, then carries the summary forward in place of the raw history. The LLM keeps working without hitting the wall.&lt;/p&gt;

&lt;p&gt;Side effect: every future turn sends fewer tokens, which lowers cost.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tools
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;tool&lt;/strong&gt; is something the agent can do beyond producing text. The LLM outputs &lt;em&gt;"call tool X with these arguments,"&lt;/em&gt; the system runs it, and the result feeds back into the next LLM call.&lt;/p&gt;

&lt;p&gt;Common tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File operations (create, edit, delete, search)&lt;/li&gt;
&lt;li&gt;Web search&lt;/li&gt;
&lt;li&gt;API calls&lt;/li&gt;
&lt;li&gt;PDF parsing&lt;/li&gt;
&lt;li&gt;Code execution&lt;/li&gt;
&lt;li&gt;Database queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In API terms, this is called &lt;strong&gt;tool use&lt;/strong&gt; (Anthropic) or &lt;strong&gt;function calling&lt;/strong&gt; (OpenAI). You declare the available tools to the LLM up front; the model decides when to call them.&lt;/p&gt;

&lt;p&gt;Without tools, the agent only produces text.&lt;/p&gt;

&lt;h3&gt;
  
  
  MCP (Model Context Protocol)
&lt;/h3&gt;

&lt;p&gt;LLMs use tools to take action — file operations, database queries, web searches. Historically, each LLM provider defined its own format for declaring tools (OpenAI function calling, Anthropic tool use, Google function declarations), so the same integration had to be rewritten for each.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt; is an open protocol that standardizes how applications expose tools to LLMs. Anthropic released it in November 2024; OpenAI added support in early 2025.&lt;/p&gt;

&lt;p&gt;Three pieces:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt; — exposes a set of tools. Examples: a file system server, a Postgres server, a GitHub server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Client&lt;/strong&gt; — sits inside the LLM application, forwards tool calls to servers, and returns the results.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Host&lt;/strong&gt; — the application the user interacts with (Claude Desktop, Cursor, etc.). It runs the client.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Flow: the user talks to the host → the LLM decides to call a tool → the client routes the call to the right server → the server runs it → the result feeds back into the LLM.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;modelcontextprotocol.io&lt;/a&gt;. Community-built servers are listed on GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  RAG (Retrieval-Augmented Generation)
&lt;/h3&gt;

&lt;p&gt;An LLM only knows what it was trained on, up to a cutoff date. Events from last week, your company's internal docs, today's stock prices — none of it is in the model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RAG&lt;/strong&gt; is the pattern of fetching relevant information from outside the model and injecting it into the prompt before the LLM generates its answer.&lt;/p&gt;

&lt;p&gt;How it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The system detects that the question needs information the model doesn't have.&lt;/li&gt;
&lt;li&gt;It queries an external source — web search, a vector database, a file system, an API.&lt;/li&gt;
&lt;li&gt;The relevant chunks of content come back.&lt;/li&gt;
&lt;li&gt;Those chunks get inserted into the prompt as context.&lt;/li&gt;
&lt;li&gt;The LLM answers using the fresh content.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Example: asking Claude &lt;em&gt;"who won last weekend's F1 race?"&lt;/em&gt; — the model doesn't know. Enable web search, the system retrieves a result page, passes the content to the model, and the model answers from the retrieved text.&lt;/p&gt;

&lt;h3&gt;
  
  
  RAG challenges
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Irrelevant retrieval&lt;/strong&gt; — the system pulls back content that doesn't help, and the LLM answers off-topic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chunking&lt;/strong&gt; — long documents have to be split into pieces small enough to fit the prompt while preserving meaning.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access control&lt;/strong&gt; — when the source contains private data, the system has to respect permissions. The model shouldn't see what the user shouldn't.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Vector databases
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;vector database&lt;/strong&gt; stores text (or images, or other data) as arrays of numbers, then lets you search by similarity instead of exact match.&lt;/p&gt;

&lt;p&gt;The numbers come from an &lt;strong&gt;embedding model&lt;/strong&gt;. Feed it text (or an image, or audio) and it returns a list of numbers — typically hundreds to thousands of them — that captures the meaning of the input. Think of each embedding as a coordinate in a high-dimensional space where similar things sit close together.&lt;/p&gt;

&lt;p&gt;Two examples to make this concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The embeddings for &lt;em&gt;"cat"&lt;/em&gt; and &lt;em&gt;"dog"&lt;/em&gt; sit close together. &lt;em&gt;"Helicopter"&lt;/em&gt; is far from both.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;"How do I reset my password?"&lt;/em&gt; and &lt;em&gt;"I forgot my login"&lt;/em&gt; sit close together, even though they share no words.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A vector database stores those coordinates and answers queries by returning the entries closest to your input.&lt;/p&gt;

&lt;p&gt;Concrete use case: a company chatbot that answers questions from internal docs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup (one time):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Break the company wiki into chunks (paragraphs, sections, whatever fits).&lt;/li&gt;
&lt;li&gt;Run each chunk through an embedding model. Get back one vector per chunk.&lt;/li&gt;
&lt;li&gt;Store the chunks alongside their vectors in a vector database (Pinecone, Chroma, pgvector).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Query time (every user message):&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The user asks: &lt;em&gt;"How do I file expense reports?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;You embed the question with the same embedding model.&lt;/li&gt;
&lt;li&gt;The database returns the chunks whose vectors are closest to the question vector — say, the top 5.&lt;/li&gt;
&lt;li&gt;Those chunks get injected into the LLM prompt: &lt;em&gt;"Use this context to answer: [chunks]. Question: How do I file expense reports?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;The LLM answers using the retrieved content.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Common vector databases: Pinecone, Weaviate, Chroma, Milvus, pgvector (a Postgres extension).&lt;/p&gt;




&lt;h2&gt;
  
  
  To be continued
&lt;/h2&gt;

&lt;p&gt;Part 1 covers the foundations: ML, transformers, tokens, agents, memory, tools, MCP, RAG, vector databases.&lt;/p&gt;

&lt;p&gt;Part 2 will cover the applied side — agentic coding, global rules and CLAUDE.md, vibe coding vs context engineering, multi-agent systems, guardrails, observability, and CI/CD with agents.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>TechMag 1 - May 1</title>
      <dc:creator>Renato D. Prado</dc:creator>
      <pubDate>Tue, 12 May 2026 15:43:08 +0000</pubDate>
      <link>https://forem.com/renato_dprado_bbf0901ec/techmag-1-may-26-5anl</link>
      <guid>https://forem.com/renato_dprado_bbf0901ec/techmag-1-may-26-5anl</guid>
      <description>&lt;p&gt;&lt;em&gt;The work moved. The craft didn't.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A weekly read for devs, tech leads, and anyone keeping up with where AI is taking software engineering..&lt;/p&gt;

&lt;h2&gt;
  
  
  Try This Week
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;How to keep up&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The New Senior Engineer
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Chris Parsons — chrismdp.com&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Less reviewing, more training.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you're still tied to your IDE, you're working a year behind. The 2026 toolchain recommendation: install Claude Code or Codex CLI, not Copilot. The senior engineer's job has shifted from writing code or reviewing diffs to training the AI to write better code.&lt;/p&gt;

&lt;p&gt;The central point: the harness around the model matters as much as the model itself. Leverage lives in standing instructions in AGENTS.md or CLAUDE.md and in skill files that teach the agent your conventions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How fast you can tell whether the output is right separates teams that ship from teams stuck&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;As Chris puts it: "Coding with AI is now the default. The question is whether you are doing it as a reviewer, a prompter, or a trainer. The trainer role compounds."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.chrismdp.com/coding-with-ai/" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Harness
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Henrique Bastos — blog post&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Some teams keep getting better. Others run in place forever.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The difference is whether they've built a harness — something that turns repetitive work into a loop.&lt;/p&gt;

&lt;p&gt;Most processes are designed from scratch every time, with context living in someone's head. Each run costs the same as the first. &lt;strong&gt;In a loop, each run leaves things ready for the next. Starting again is almost free.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AI made this personal. When an agent produces garbage, the instinct is to fix the prompt. But that fix dies with the session. The real move is to fix the environment — add a test, tighten a boundary, write a rule. That fix sticks. Every future run inherits it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/pulse/making-sense-harness-engineering-henrique-bastos-ezotf/" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quality &amp;amp; Craft
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;How to think well in the AI era.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Below the Illusion of Progress
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Kent Beck — LinkedIn&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The new failure mode: When the code looks fine but isn't.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most teams get through problems in a messy way — without really solving them. The result is &lt;strong&gt;software that mostly works, but is hard to change. Not great, but it holds.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There's a worse state: when it becomes possible to &lt;strong&gt;claim things are working when they aren't&lt;/strong&gt;, as AI tools do. Complexity builds, and progress slows down.&lt;/p&gt;

&lt;p&gt;No clear solution yet for working with AI here. Better data, tests, prompting — all might help, but none is enough. The first step is awareness.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/kentbeck_most-teams-muddle-software-that-mostly-works-activity-7455790619098275840-uAW6" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Principles Don't Change
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Robert C. Martin — X/Twitter&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;AI raises the level of abstraction — it doesn't change software engineering.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Uncle Bob Martin has been on a roll lately, and his core message is consistent: &lt;strong&gt;AI doesn't change software engineering — it just raises the level of abstraction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"AI is just another step up the semantic expression ladder. We initially expressed our semantics in binary, then assembler, then Fortran, then C, then Java, then Python. AI is just the next step up that same old ladder."&lt;/p&gt;

&lt;p&gt;What we're losing is syntax — semicolons, braces — and good riddance. What stays is everything that actually matters: design, architecture, formalism, behavioral and structural semantics. Objects still matter (the AI is literally generating them). Principles from decades ago still apply.&lt;/p&gt;

&lt;p&gt;His warning to engineers: a few disciplines and tools aren't enough. You still need a mental model of what the AI is doing, the engineering insight to correct it, and the instinct to form suspicions and verify them — without falling back on exhaustive code reviews.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://x.com/unclebobmartin" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creation Cost Approaching Zero
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Kent Beck — LinkedIn&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If anyone can clone your software with an AI, what happens to scale?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Software used to work like this: one person spends a long time building something great, and then millions of people use that same thing. The work pays off because it's spread across a huge number of users.&lt;/p&gt;

&lt;p&gt;AI may break this. Maybe people will be able to ask an AI to clone your software. &lt;strong&gt;So instead of everyone using your version, you get multiple near-identical copies floating around — and you never reach the scale you used to.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But here's the twist: building software is also cheaper now. You didn't spend as much time on it either. So maybe it doesn't matter that you have fewer users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/kentbeck_ever-since-data-communication-became-free-activity-7453970638148370432-4wW4" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Worth Knowing
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;On the radar this week&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Legacy Code Isn't Going Anywhere
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Vikas Pujar — LinkedIn&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Even when AI nails the headline task, the work around it doesn't disappear.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Vikas Pujar asked Claude how long it would actually take to convert the world's 800 billion lines of COBOL into Java, now that Anthropic claims AI can handle the translation. &lt;strong&gt;The answer: in the best case, 844 years.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The interesting part wasn't the timeline — it was the breakdown. Code translation is only about 20% of the effort. The other 80% is parallel testing, business approvals, regulatory compliance, and deployment — work where AI moves the needle far less.&lt;/p&gt;

&lt;p&gt;A useful reminder that even when AI is genuinely good at the headline task, the work around it doesn't disappear. It seems there's still a long career waiting for anyone willing to do it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/posts/vikaspujar_mainframehumor-activity-7441857962270228481-77r_" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Structured-Prompt-Driven Development
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Wei Zhang — martinfowler.com&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Treating prompts as code — but is it too heavy for most teams?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thoughtworks recently published Structured Prompt-Driven Development (SPDD) on Martin Fowler's site — a method that treats prompts as first-class artifacts: version-controlled, reviewed, and reused. &lt;strong&gt;The core rule is when reality diverges, fix the prompt first, then update the code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a serious framework, with its own seven-part canvas (REASONS) and a CLI tool (openspdd) to run the workflow.&lt;/p&gt;

&lt;p&gt;But here's the thing: a lot of ways to work with AI are emerging right now, and many of them come from the AI tools themselves — CLAUDE.md, skill files, AGENTS.md. These are lightweight, already integrated into the tools developers actually use, and easy to adopt one piece at a time. Heavyweight methodologies like SPDD might be the right fit for big consultancies and regulated environments, but will most teams actually adopt it — or will the simpler conventions baked into Claude Code or Codex win on adoption alone?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://martinfowler.com/articles/structured-prompt-driven/" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Opted Everyone Into Training
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Gergely Orosz — LinkedIn&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your private code is training Microsoft's AI — unless you opt out.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gergely Orosz raised the alarm: &lt;strong&gt;GitHub quietly opted every user — paying customers included — into letting their private code train Microsoft's AI models.&lt;/strong&gt; Pro subscribers, Copilot subscribers, all of it. The opt-out lives under Settings → Privacy, and Orosz's point is sharp: a true platform for code wouldn't do this.&lt;/p&gt;

&lt;p&gt;Worth checking your settings if you haven't already.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/gergelyorosz/" rel="noopener noreferrer"&gt;Read more...&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>career</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
