<?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>DEV Community: Peter Damiano </title>
    <description>The latest articles on DEV Community by Peter Damiano  (@petediano).</description>
    <link>https://dev.to/petediano</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%2F3919995%2F8d808462-c0cb-41cc-aa6f-14b36d100468.jpg</url>
      <title>DEV Community: Peter Damiano </title>
      <link>https://dev.to/petediano</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/petediano"/>
    <language>en</language>
    <item>
      <title>hello world</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Thu, 14 May 2026 12:29:40 +0000</pubDate>
      <link>https://dev.to/petediano/hello-world-4dfp</link>
      <guid>https://dev.to/petediano/hello-world-4dfp</guid>
      <description>&lt;p&gt;hello world&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>The Death of RAG? Long-Context Windows vs. Vector Databases</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Thu, 14 May 2026 08:40:59 +0000</pubDate>
      <link>https://dev.to/petediano/the-death-of-rag-long-context-windows-vs-vector-databases-56m0</link>
      <guid>https://dev.to/petediano/the-death-of-rag-long-context-windows-vs-vector-databases-56m0</guid>
      <description>&lt;h1&gt;
  
  
  The Death of RAG? Long-Context Windows vs. Vector Databases
&lt;/h1&gt;

&lt;p&gt;For the past year, Retrieval-Augmented Generation (RAG) has been the gold standard for grounding LLMs in proprietary data. By indexing documents into vector databases and retrieving only relevant chunks, we bypassed the limitations of small context windows.&lt;/p&gt;

&lt;p&gt;But the landscape has shifted.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rise of Infinite Context
&lt;/h2&gt;

&lt;p&gt;Models like Google's Gemini 1.5 Pro (2 million tokens) and Anthropic's Claude 3.5 Sonnet (200k tokens) have changed the math. When you can feed an entire codebase, multiple textbooks, or hours of video into a single prompt, the overhead of building a complex RAG pipeline starts to look... unnecessary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why RAG Still Matters
&lt;/h2&gt;

&lt;p&gt;Despite the "Long Context" hype, RAG isn't dead. Here is why:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Cost:&lt;/strong&gt; Passing 1 million tokens through an LLM every time you ask a question is incredibly expensive. RAG allows you to pay for only the relevant context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latency:&lt;/strong&gt; Processing massive prompts increases "Time to First Token" (TTFT) significantly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updates:&lt;/strong&gt; If your data changes hourly, you don't want to re-upload a massive corpus to a prompt. Updating a vector database entry is faster.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A Hybrid Approach
&lt;/h2&gt;

&lt;p&gt;Developers should adopt a tiered strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use Long Context for:&lt;/strong&gt; Complex reasoning tasks where the model needs a global understanding of the entire data set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use RAG for:&lt;/strong&gt; Fact retrieval, FAQ systems, and high-frequency queries where speed and cost-efficiency are critical.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Simple Context Implementation (Python)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Loading a large doc directly into context
&lt;/span&gt;&lt;span class="k"&gt;with&lt;/span&gt; &lt;span class="nf"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;huge_manual.txt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;r&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Use the following manual to answer: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;user_query&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;

Context: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;We are moving away from "RAG as a default" to "RAG as a tool." As context windows expand, simplify your architecture first. Only introduce the complexity of vector databases and embedding models when your costs and latency requirements demand it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Beyond Basic RAG: The Rise of Agentic Retrieval</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Wed, 13 May 2026 20:03:38 +0000</pubDate>
      <link>https://dev.to/petediano/beyond-basic-rag-the-rise-of-agentic-retrieval-18h9</link>
      <guid>https://dev.to/petediano/beyond-basic-rag-the-rise-of-agentic-retrieval-18h9</guid>
      <description>&lt;h1&gt;
  
  
  Beyond Basic RAG: The Rise of Agentic Retrieval
&lt;/h1&gt;

&lt;p&gt;Retrieval-Augmented Generation (RAG) has been the gold standard for grounding LLMs in private data. However, the 'Naïve RAG' pattern—where you blindly fetch the top-k chunks and pass them to an LLM—is hitting a ceiling.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Naïve RAG
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Context Bloat:&lt;/strong&gt; Forcing irrelevant chunks into the prompt costs tokens and confuses the model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fixed Strategy:&lt;/strong&gt; A single vector similarity search rarely captures complex, multi-hop reasoning requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hallucination Persistence:&lt;/strong&gt; When the retrieval fails to find the exact answer, the model often tries to guess instead of admitting it doesn't know.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Enter Agentic RAG
&lt;/h2&gt;

&lt;p&gt;Agentic RAG transforms the retrieval system from a static pipeline into an autonomous agent. Instead of a hard-coded script, the LLM acts as the orchestrator. It decides: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do I need to search at all?&lt;/li&gt;
&lt;li&gt;Should I search a vector database, a SQL table, or browse the web?&lt;/li&gt;
&lt;li&gt;Did I get enough info, or do I need to refine my query?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Simple Agentic Pattern (Pseudo-code)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;agentic_rag&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;initialize_state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;answered&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decide_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SEARCH&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;vector_search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;action&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ANSWER&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_final_response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;final_answer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;By moving to an agentic architecture, you stop treating your data store as a dumb search bar and start treating it as a dynamic knowledge tool. Tools like &lt;strong&gt;LangGraph&lt;/strong&gt; and &lt;strong&gt;LlamaIndex Agents&lt;/strong&gt; are leading this charge, allowing developers to build self-correcting systems that handle ambiguity much better than traditional pipelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The future of enterprise AI isn't just bigger models; it's smarter, autonomous retrieval loops. Start evaluating your RAG pipelines: are they just fetching data, or are they &lt;em&gt;reasoning&lt;/em&gt; about where the data lives?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Beyond Prompting: Why Agentic Workflows are the Future of AI Development</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Wed, 13 May 2026 12:08:36 +0000</pubDate>
      <link>https://dev.to/petediano/beyond-prompting-why-agentic-workflows-are-the-future-of-ai-development-4nko</link>
      <guid>https://dev.to/petediano/beyond-prompting-why-agentic-workflows-are-the-future-of-ai-development-4nko</guid>
      <description>&lt;h1&gt;
  
  
  Beyond Prompting: Why Agentic Workflows are the Future of AI Development
&lt;/h1&gt;

&lt;p&gt;For the past two years, the industry has been obsessed with 'Prompt Engineering.' We’ve spent countless hours tweaking system instructions and few-shot examples to get the perfect response. But the era of the 'Chatty AI' is ending.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Shift to Agentic Workflows
&lt;/h3&gt;

&lt;p&gt;An agentic workflow is not just a request-response cycle. It is a system where an AI is given a goal, a set of tools, and a feedback loop to iterate on its own output until the objective is met. Instead of asking ChatGPT to write code, we are building systems where the AI writes code, runs it, reads the error logs, fixes the bugs, and confirms the test passes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why it matters
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Self-Correction:&lt;/strong&gt; Agents can reflect on their errors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool Use:&lt;/strong&gt; Agents interact with APIs, filesystems, and databases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability:&lt;/strong&gt; By breaking complex tasks into a chain of reasoning, you reduce hallucinations.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  A Simple Agentic Pattern (Pseudo-code)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_agent_loop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MAX_RETRIES&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_valid&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;error&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;run_unit_tests&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;code&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error encountered: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;error&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;. Try again.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Task failed after multiple attempts.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to get started
&lt;/h3&gt;

&lt;p&gt;Stop thinking in terms of single prompts. Start thinking in terms of &lt;strong&gt;States&lt;/strong&gt; and &lt;strong&gt;Transitions&lt;/strong&gt;. Look into frameworks like LangGraph or CrewAI that allow you to orchestrate multiple agents working in harmony.&lt;/p&gt;

&lt;p&gt;The future of software engineering isn't writing every line of code—it's designing the workflows that enable AI to build the software for us.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Why AI-Native Databases Are Replacing Traditional Vector Stores</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Tue, 12 May 2026 20:01:08 +0000</pubDate>
      <link>https://dev.to/petediano/why-ai-native-databases-are-replacing-traditional-vector-stores-42me</link>
      <guid>https://dev.to/petediano/why-ai-native-databases-are-replacing-traditional-vector-stores-42me</guid>
      <description>&lt;h1&gt;
  
  
  Why AI-Native Databases Are Replacing Traditional Vector Stores
&lt;/h1&gt;

&lt;p&gt;For the past year, 'Vector Search' has been the buzzword of the AI engineering world. But as we move from RAG (Retrieval-Augmented Generation) prototypes to production systems, we are hitting a ceiling with traditional bolt-on vector extensions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Retrofitting
&lt;/h2&gt;

&lt;p&gt;Adding vector search to an existing relational database (like Postgres/pgvector) is great for starting out. However, as your data scale hits millions of embeddings, the performance of Approximate Nearest Neighbor (ANN) search starts to degrade when combined with complex filtering and relational joins.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter the AI-Native Database
&lt;/h2&gt;

&lt;p&gt;AI-native databases (like Pinecone, Weaviate, or Qdrant) are built from the ground up for high-dimensional data. They handle the storage, indexing, and retrieval pipeline as a first-class citizen. &lt;/p&gt;

&lt;h3&gt;
  
  
  Key Advantages:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Metadata Filtering:&lt;/strong&gt; Efficiently filtering by time, user ID, or category &lt;em&gt;before&lt;/em&gt; running vector similarity search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managed Embedding Pipelines:&lt;/strong&gt; Many now integrate embedding generation directly into the ingestion flow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time updates:&lt;/strong&gt; Unlike traditional static vector indices, AI-native DBs handle continuous upserts without full re-indexing.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Code Example: Querying a native store
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;qdrant_client&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qdrant_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;QdrantClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;:memory:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Performing a hybrid search (semantic + metadata)
&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;collection_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;knowledge_base&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;query_vector&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; 
    &lt;span class="n"&gt;query_filter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Filter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;must&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;FieldCondition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;source&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;match&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;models&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;MatchValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;docs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;))]&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;limit&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you are building an LLM application that requires high precision and low latency, it is time to move beyond simple vector extensions. Start evaluating AI-native solutions that provide multi-modal storage and sophisticated hybrid search capabilities out of the box.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>The Death of the 'Prompt Engineer': Why Agentic Workflows are the New Standard</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Tue, 12 May 2026 15:40:27 +0000</pubDate>
      <link>https://dev.to/petediano/the-death-of-the-prompt-engineer-why-agentic-workflows-are-the-new-standard-5e22</link>
      <guid>https://dev.to/petediano/the-death-of-the-prompt-engineer-why-agentic-workflows-are-the-new-standard-5e22</guid>
      <description>&lt;h1&gt;
  
  
  The Death of the 'Prompt Engineer': Why Agentic Workflows are the New Standard
&lt;/h1&gt;

&lt;p&gt;For the past two years, "Prompt Engineering" has been the hottest skill in tech. But the era of crafting the perfect 500-word prompt to get an LLM to output valid JSON is coming to an end. We are moving into the age of &lt;strong&gt;Agentic Workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an Agentic Workflow?
&lt;/h2&gt;

&lt;p&gt;Instead of treating an LLM as a static chatbot, we treat it as an engine for reasoning. An agentic workflow involves giving the model a goal, a set of tools (functions), and the ability to iterate until the task is complete.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Shift in Strategy
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Old Way:&lt;/strong&gt; One massive prompt, hoping for a perfect "zero-shot" result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;New Way:&lt;/strong&gt; Breaking the task into sub-steps, using a loop to self-correct, and utilizing tool-calling to fetch external data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Simple Example (Python with Tool Calling)
&lt;/h3&gt;

&lt;p&gt;Instead of asking an AI to "analyze the web," you provide a tool that it can invoke itself:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_weather&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Simulate an API call
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The weather in &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;location&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; is 22C and sunny.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Defining the tool structure
&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;function&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_weather&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Get the current weather&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;parameters&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;location&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}}}&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}]&lt;/span&gt;

&lt;span class="c1"&gt;# The agent can now decide when to call get_weather based on user input.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;By moving to workflows, we shift the burden of quality from the &lt;em&gt;prompt&lt;/em&gt; to the &lt;em&gt;system architecture&lt;/em&gt;. Engineers should focus on designing the feedback loops, observability, and error-handling mechanisms that surround the model, rather than tweaking adjectives in a prompt template.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Don't get stuck being a "Prompt Engineer." Become an &lt;strong&gt;AI Architect&lt;/strong&gt;. Focus on reliability, cost-efficiency, and modularity. The future belongs to those who build systems that can think for themselves.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Beyond Vector Search: Why GraphRAG is the Future of LLM Context</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Mon, 11 May 2026 19:55:44 +0000</pubDate>
      <link>https://dev.to/petediano/beyond-vector-search-why-graphrag-is-the-future-of-llm-context-3okf</link>
      <guid>https://dev.to/petediano/beyond-vector-search-why-graphrag-is-the-future-of-llm-context-3okf</guid>
      <description>&lt;h1&gt;
  
  
  Beyond Vector Search: Why GraphRAG is the Future of LLM Context
&lt;/h1&gt;

&lt;p&gt;For the past year, Retrieval-Augmented Generation (RAG) has been the gold standard for grounding LLMs in private or proprietary data. However, as we scale, basic vector-based retrieval is hitting a wall. Enter &lt;strong&gt;GraphRAG&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Vector-Only RAG
&lt;/h2&gt;

&lt;p&gt;Vector search relies on semantic similarity. It’s excellent for finding a document that "talks about" a specific topic, but it fails when the answer requires synthesizing information across disparate entities or understanding complex relationships (e.g., "How does the supply chain disruption in Region A affect our Q4 revenue in Product Line B?").&lt;/p&gt;

&lt;h2&gt;
  
  
  What is GraphRAG?
&lt;/h2&gt;

&lt;p&gt;GraphRAG combines the power of vector embeddings with the structural rigor of Knowledge Graphs. Instead of just grabbing chunks of text, the system traverses a graph database to identify explicit relationships between entities.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Workflow:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Extraction&lt;/strong&gt;: Use an LLM to identify entities and relationships within your raw documents.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage&lt;/strong&gt;: Populate a Graph Database (like Neo4j or Memgraph).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retrieval&lt;/strong&gt;: Perform a graph traversal to gather context, then pass that structured path to the LLM.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Example: Traversing Relationships
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Conceptual representation of a Graph Query
&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
MATCH (p:Product {name: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;AI-Chip-X&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;})-[:AFFECTED_BY]-&amp;gt;(e:Event)
MATCH (e)-[:IMPACTS]-&amp;gt;(s:SupplyChainNode)
RETURN e.description, s.location
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;span class="c1"&gt;# The LLM receives a structured narrative based on this path,
# not just random snippets of vector results.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduced Hallucinations&lt;/strong&gt;: By providing ground-truth relationships, the LLM has less room to invent facts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explainability&lt;/strong&gt;: You can trace the path of the "reasoning" back to specific edges in the graph.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Insights&lt;/strong&gt;: It allows for "Global RAG," enabling the model to answer queries about the entire dataset, not just isolated documents.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The future of enterprise AI isn't just bigger context windows—it's better data structures. If you are building high-stakes RAG pipelines, it is time to look into Knowledge Graphs.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Beyond Vector Search: Why GraphRAG is the Future of LLM Context</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Mon, 11 May 2026 15:56:27 +0000</pubDate>
      <link>https://dev.to/petediano/beyond-vector-search-why-graphrag-is-the-future-of-llm-context-3k8e</link>
      <guid>https://dev.to/petediano/beyond-vector-search-why-graphrag-is-the-future-of-llm-context-3k8e</guid>
      <description>&lt;h1&gt;
  
  
  Beyond Vector Search: Why GraphRAG is the Future of LLM Context
&lt;/h1&gt;

&lt;p&gt;For the past year, the industry standard for grounding LLMs has been Retrieval-Augmented Generation (RAG) using vector databases. While effective for semantic similarity, vector search often struggles with "global" queries—questions that require understanding relationships across disparate documents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Pure Vector RAG
&lt;/h2&gt;

&lt;p&gt;Vector search relies on embedding chunks of text into high-dimensional space. If you ask, "What are the main themes across all company meetings?", a vector search will struggle to retrieve the fragmented, interconnected context needed for a holistic answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter: GraphRAG
&lt;/h2&gt;

&lt;p&gt;GraphRAG combines the power of &lt;strong&gt;Knowledge Graphs&lt;/strong&gt; with LLMs. By extracting entities and their relationships, we can map out a structured web of information. &lt;/p&gt;

&lt;h3&gt;
  
  
  Why it wins:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Relationship Mapping&lt;/strong&gt;: It understands that Entity A is connected to Entity B, not just that they appear in similar paragraphs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Reasoning&lt;/strong&gt;: LLMs can traverse the graph to summarize clusters of information, providing an "overview" that vector search can't match.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduced Hallucinations&lt;/strong&gt;: By enforcing constraints through graph schemas, the model is less likely to drift during generation.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A Simple Implementation Concept
&lt;/h2&gt;

&lt;p&gt;To implement a basic GraphRAG pipeline, you need to transition from text-to-chunks to text-to-graph:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Conceptual flow for extracting triples
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain_experimental.graph_transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LLMGraphTransformer&lt;/span&gt;

&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;ChatOpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;graph_transformer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LLMGraphTransformer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Extract nodes and edges from document chunks
&lt;/span&gt;&lt;span class="n"&gt;graph_documents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;graph_transformer&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;convert_to_graph_documents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;documents&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Store in a graph database like Neo4j
&lt;/span&gt;&lt;span class="n"&gt;graph&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add_graph_documents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;graph_documents&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Verdict
&lt;/h2&gt;

&lt;p&gt;Vector search isn't dead—it's evolving into a hybrid approach. The future of enterprise AI isn't just about semantic similarity; it's about structural understanding. If you're building RAG pipelines today, start looking into integrating graph structures. Your users will notice the difference in reasoning quality immediately.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>The Evolution of RAG: Why Agentic Workflows are the New Standard</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Mon, 11 May 2026 12:42:17 +0000</pubDate>
      <link>https://dev.to/petediano/the-evolution-of-rag-why-agentic-workflows-are-the-new-standard-5d62</link>
      <guid>https://dev.to/petediano/the-evolution-of-rag-why-agentic-workflows-are-the-new-standard-5d62</guid>
      <description>&lt;h1&gt;
  
  
  The Evolution of RAG: Why Agentic Workflows are the New Standard
&lt;/h1&gt;

&lt;p&gt;For the past two years, Retrieval-Augmented Generation (RAG) has been the gold standard for connecting LLMs to private data. However, the 'retrieve-then-generate' paradigm is hitting a wall: complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Limitation of Static RAG
&lt;/h2&gt;

&lt;p&gt;Traditional RAG pipelines act as static lookups. If a user asks a complex, multi-part question, a standard RAG system often struggles because it assumes a single context injection is enough to answer the prompt. &lt;/p&gt;

&lt;h2&gt;
  
  
  Enter Agentic RAG
&lt;/h2&gt;

&lt;p&gt;Agentic RAG introduces &lt;strong&gt;reasoning&lt;/strong&gt; and &lt;strong&gt;looping&lt;/strong&gt;. Instead of a single retrieval step, an agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Decomposes the user query into sub-tasks.&lt;/li&gt;
&lt;li&gt;Decides whether it needs to search a vector database, query an API, or perform a calculation.&lt;/li&gt;
&lt;li&gt;Iteratively refines the answer based on intermediate findings.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Simple Conceptual Implementation (Python)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain.agents&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;initialize_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Tool&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain.llms&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="c1"&gt;# Define tools
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;search_knowledge_base&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Simulate vector search
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;The company profit in Q3 was $5M.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;Tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;KnowledgeBase&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;func&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;search_knowledge_base&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Search internal docs&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize Agent
&lt;/span&gt;&lt;span class="n"&gt;llm&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;temperature&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;initialize_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;zero-shot-react-description&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What was the Q3 profit and what does that mean for our Q4 strategy?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tool Usage:&lt;/strong&gt; Models are no longer just passive text generators; they are orchestrators.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback Loops:&lt;/strong&gt; Agents can self-correct when a retrieval attempt yields irrelevant data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability:&lt;/strong&gt; By shifting to an agentic architecture, your system becomes adaptable to new data sources without needing a complete refactor of your retrieval logic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The future isn't just about better retrieval algorithms; it's about better reasoning frameworks. Start building agents today!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Moving Beyond Naive RAG: The Rise of Agentic Retrieval</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Mon, 11 May 2026 09:43:36 +0000</pubDate>
      <link>https://dev.to/petediano/moving-beyond-naive-rag-the-rise-of-agentic-retrieval-14an</link>
      <guid>https://dev.to/petediano/moving-beyond-naive-rag-the-rise-of-agentic-retrieval-14an</guid>
      <description>&lt;h1&gt;
  
  
  Moving Beyond Naive RAG: The Rise of Agentic Retrieval
&lt;/h1&gt;

&lt;p&gt;For the past year, Retrieval-Augmented Generation (RAG) has been the gold standard for grounding LLMs. But let's face it: naive RAG—taking a user query, turning it into an embedding, and doing a similarity search—is often fragile. It fails at multi-hop reasoning and lacks the ability to self-correct.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;Agentic RAG&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Agentic RAG?
&lt;/h3&gt;

&lt;p&gt;Instead of a static pipeline, Agentic RAG treats the retrieval process as an autonomous agent's task. The agent decides whether it needs to perform a search, query a SQL database, or reach out to an external API. It can look at the retrieved context, realize it's insufficient, and try a different search strategy.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Shift in Architecture
&lt;/h3&gt;

&lt;p&gt;In traditional RAG, the logic is hard-coded. In Agentic RAG, we use tools:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Example of an agent-based retrieval tool using LangChain/LangGraph
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;langchain.tools&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt;

&lt;span class="nd"&gt;@tool&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;search_knowledge_base&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Useful for when you need to answer questions about proprietary data.&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="c1"&gt;# Implementation logic for high-performance vector search
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;

&lt;span class="c1"&gt;# The agent can now decide to use this tool dynamically
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why it matters:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Decision Making:&lt;/strong&gt; The model evaluates if it has enough info to answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Self-Correction:&lt;/strong&gt; If the retrieved documents don't contain the answer, the agent can rephrase the query or broaden its search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-Source Synthesis:&lt;/strong&gt; It can pull data from a vector DB &lt;em&gt;and&lt;/em&gt; a live documentation API in a single turn.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;If you want to implement this today, look into &lt;strong&gt;LangGraph&lt;/strong&gt; for building stateful, multi-actor applications, or &lt;strong&gt;LlamaIndex’s Query Engine&lt;/strong&gt; tools. Stop building static pipelines and start building agents that reason about their context.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Beyond Vector Search: Mastering Contextual Retrieval for LLMs</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Sun, 10 May 2026 19:13:30 +0000</pubDate>
      <link>https://dev.to/petediano/beyond-vector-search-mastering-contextual-retrieval-for-llms-45af</link>
      <guid>https://dev.to/petediano/beyond-vector-search-mastering-contextual-retrieval-for-llms-45af</guid>
      <description>&lt;h1&gt;
  
  
  Beyond Vector Search: Mastering Contextual Retrieval for LLMs
&lt;/h1&gt;

&lt;p&gt;Retrieval-Augmented Generation (RAG) has become the gold standard for grounding LLMs in proprietary data. However, the 'naive RAG' approach—chunking documents and performing simple cosine similarity—is failing to scale for complex enterprise needs. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: The 'Lost in the Middle' Phenomenon
&lt;/h2&gt;

&lt;p&gt;LLMs struggle when relevant information is buried in long, noisy context windows. Simple vector retrieval often pulls 'top-k' results that might look semantically similar but lack the specific nuance required for a correct answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution: Contextual Retrieval
&lt;/h2&gt;

&lt;p&gt;To move to production-grade RAG, we must adopt a multi-layered retrieval strategy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Search:&lt;/strong&gt; Combining Keyword Search (BM25) with Vector Search to ensure exact terminology matching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-ranking:&lt;/strong&gt; Using a Cross-Encoder to re-evaluate the relevance of retrieved chunks after the initial search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contextual Enrichment:&lt;/strong&gt; Prepending metadata or document summaries to chunks before embedding to provide better global awareness.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Implementation Snippet (Python)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;sentence_transformers&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;CrossEncoder&lt;/span&gt;

&lt;span class="c1"&gt;# Initial search results
&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;How does our internal API handle authentication?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;search_engine&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Re-ranking to improve precision
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;CrossEncoder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cross-encoder/ms-marco-MiniLM-L-6-v2&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;pairs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;scores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pairs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Sort results by relevance score
&lt;/span&gt;&lt;span class="n"&gt;ranked_results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;zip&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;scores&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;reverse&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Precision is the new KPI. If your RAG system is hallucinating or missing key data, stop tuning your chunk size and start improving your retrieval pipeline. The future of AI isn't just bigger context windows; it's smarter, more precise information access.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
    <item>
      <title>Moving Beyond Chatbots: The Rise of Agentic Workflows</title>
      <dc:creator>Peter Damiano </dc:creator>
      <pubDate>Sun, 10 May 2026 14:20:28 +0000</pubDate>
      <link>https://dev.to/petediano/moving-beyond-chatbots-the-rise-of-agentic-workflows-1gna</link>
      <guid>https://dev.to/petediano/moving-beyond-chatbots-the-rise-of-agentic-workflows-1gna</guid>
      <description>&lt;h1&gt;
  
  
  Moving Beyond Chatbots: The Rise of Agentic Workflows
&lt;/h1&gt;

&lt;p&gt;For the past two years, the industry has been obsessed with LLM wrappers—simple interfaces that send a prompt to an API and display the result. But the frontier has shifted. The future isn't a chatbot; it's an &lt;strong&gt;Agentic Workflow&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an Agentic Workflow?
&lt;/h2&gt;

&lt;p&gt;An agentic workflow allows an AI to break down complex goals into smaller tasks, use external tools (browsing, code execution, database lookups), and iteratively refine its output based on feedback loops.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;If you treat an LLM as a single-turn reasoning engine, you're limited by its token output. If you treat it as an agent, you can solve multi-step problems like: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Build a full-stack dashboard from this database schema."&lt;/li&gt;
&lt;li&gt;"Audit this repository for security vulnerabilities and write the patches."&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Basic Agent Pattern in Python
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Concept: A simple feedback loop for an LLM agent
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tool_list&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;history&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are an autonomous agent.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;

    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;llm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;task&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;is_done&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;

        &lt;span class="c1"&gt;# Agent decides to use a tool
&lt;/span&gt;        &lt;span class="n"&gt;tool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_tool&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;history&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Roadmap
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Planning:&lt;/strong&gt; Let the LLM break down the objective.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reflection:&lt;/strong&gt; Allow the model to critique its own output.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool Use:&lt;/strong&gt; Give it access to private APIs and local file systems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We are moving from an era of "AI as a tool" to "AI as a coworker." Are you building agents yet? Let's discuss in the comments.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>software</category>
      <category>tech</category>
    </item>
  </channel>
</rss>
