<?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: Pavan Belagatti</title>
    <description>The latest articles on Forem by Pavan Belagatti (@pavanbelagatti).</description>
    <link>https://forem.com/pavanbelagatti</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%2F68703%2F7bccb7a9-6fa4-416f-bad5-956f12ab6193.jpeg</url>
      <title>Forem: Pavan Belagatti</title>
      <link>https://forem.com/pavanbelagatti</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pavanbelagatti"/>
    <language>en</language>
    <item>
      <title>This is How I Automated My GitHub PRs with AI Agents &amp; Agentic Workflows!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Mon, 04 May 2026 07:32:04 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/this-is-how-i-automated-my-github-prs-with-ai-agents-agentic-workflows-11c6</link>
      <guid>https://forem.com/pavanbelagatti/this-is-how-i-automated-my-github-prs-with-ai-agents-agentic-workflows-11c6</guid>
      <description>&lt;p&gt;If you want to Automate GitHub PRs, the real goal is not just adding another bot comment to a pull request. The goal is to give reviewers the context they usually have to gather manually: who owns the service, whether it is deployed, whether basic repository standards are in place, and whether the change looks safe to merge.&lt;/p&gt;

&lt;p&gt;A useful AI pull request workflow can do exactly that. When a PR opens, it can sync metadata from GitHub, pull operational and ownership context from an internal developer platform, send that context to an LLM, and return a structured review summary plus a risk level. That reduces blind approvals and cuts down on repetitive reviewer questions.&lt;/p&gt;

&lt;p&gt;This guide explains how to Automate GitHub PRs using GitHub Actions, Port, a lightweight webhook server, and an LLM such as GPT-4. It also covers what this kind of workflow should evaluate, why a middleware service is needed, and what mistakes to avoid.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/CCs-jn3IDlw"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  What it means to automate GitHub PRs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvqhl5hyevf5osns56c6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvqhl5hyevf5osns56c6.png" alt="Automate GitHub PRs" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To Automate GitHub PRs, I am talking about a workflow where opening a pull request triggers an automated review pipeline. Instead of checking only the code diff, the system looks at the broader service context and then posts a structured result back to the PR.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That result can include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service ownership&lt;/li&gt;
&lt;li&gt;Repository readiness signals, such as a README or CODEOWNERS presence&lt;/li&gt;
&lt;li&gt;Scorecard or compliance status&lt;/li&gt;
&lt;li&gt;Deployment status, such as staging and production workloads&lt;/li&gt;
&lt;li&gt;An AI-generated summary&lt;/li&gt;
&lt;li&gt;A risk level, such as low, medium, or high&lt;/li&gt;
&lt;li&gt;Suggested action items when something is missing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is different from a traditional static code review bot. The value comes from combining code events with operational context from systems outside GitHub.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why teams want to automate GitHub PRs
&lt;/h2&gt;

&lt;p&gt;Most pull request delays are not caused by code syntax alone. They come from uncertainty.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuvaiyfkzrgpdogcnzdf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuvaiyfkzrgpdogcnzdf.png" alt="GitHub PR AI" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reviewers often need answers to questions like:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who owns this service?&lt;/li&gt;
&lt;li&gt;Is this service already running anywhere?&lt;/li&gt;
&lt;li&gt;Is the repository production-ready?&lt;/li&gt;
&lt;li&gt;Does it follow the team’s baseline standards?&lt;/li&gt;
&lt;li&gt;Is there enough context to approve safely?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without automation, someone has to hunt for that information across GitHub, deployment systems, internal docs, and team ownership records. That takes time and usually leads to either delayed merges or weak review quality.&lt;/p&gt;

&lt;p&gt;When you Automate GitHub PRs with AI and catalog data, reviewers get a structured starting point within seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqp6johiia5606ulkkq7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqp6johiia5606ulkkq7.png" alt="PR Show" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What a good automated PR review should check
&lt;/h2&gt;

&lt;p&gt;If you want to build a useful system and not just a noisy one, focus on checks that help humans make better decisions.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Ownership
&lt;/h3&gt;

&lt;p&gt;The review should identify the responsible team or service owner. This helps route questions quickly and gives confidence that the change belongs to a known part of the platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Repository hygiene
&lt;/h3&gt;

&lt;p&gt;Basic project files matter. A README and CODEOWNERS file are simple indicators that the repository follows expected practices. These signals are easy to include and often useful in readiness checks.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Scorecard or standards compliance
&lt;/h3&gt;

&lt;p&gt;A scorecard can represent repository quality or policy compliance. In the demonstrated setup, the scorecard level acts as one of the inputs used to judge pull request readiness.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Deployment context
&lt;/h3&gt;

&lt;p&gt;Whether a service is deployed to staging or production changes how risky a PR feels. A change to an actively deployed service deserves different attention than a repo that is not yet in use.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Risk assessment
&lt;/h3&gt;

&lt;p&gt;The output should classify the PR in a simple, scannable way. A low, medium, or high risk label works well because it gives the reviewer an immediate signal.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Summary and action items
&lt;/h3&gt;

&lt;p&gt;The review should not stop at a label. It should explain why the PR was marked a certain way and list any missing prerequisites.&lt;/p&gt;

&lt;h3&gt;
  
  
  Architecture to automate GitHub PRs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A practical architecture for this workflow has four parts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub to detect PR activity&lt;/li&gt;
&lt;li&gt;Port to hold and expose context about services, scorecards, workloads, and PR entities&lt;/li&gt;
&lt;li&gt;A webhook server to coordinate API calls and write results back&lt;/li&gt;
&lt;li&gt;An LLM to produce the structured review verdict&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The flow works like this:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A developer opens a pull request in GitHub.&lt;/li&gt;
&lt;li&gt;A GitHub Action runs and syncs PR data into Port.&lt;/li&gt;
&lt;li&gt;Port detects the new PR entity and triggers an automation.&lt;/li&gt;
&lt;li&gt;The automation calls a publicly reachable webhook endpoint.&lt;/li&gt;
&lt;li&gt;The webhook server fetches related context from Port.&lt;/li&gt;
&lt;li&gt;The server sends that context to the LLM.&lt;/li&gt;
&lt;li&gt;The LLM returns a structured verdict.&lt;/li&gt;
&lt;li&gt;The server posts a review comment to GitHub and writes the summary and risk level back into Port.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49e9laulux6ghos8vgbj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49e9laulux6ghos8vgbj.png" alt="GitHub PR Demo" width="800" height="1032"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Why is Port useful in this workflow
&lt;/h3&gt;

&lt;p&gt;Port acts as the context layer. It is where service metadata, ownership, scorecards, workloads, and pull request entities can live together in a catalog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23mdydn7gnfxc3igkwo7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F23mdydn7gnfxc3igkwo7.png" alt="Port workflow" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That matters because an LLM alone does not know:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which team owns a given service&lt;/li&gt;
&lt;li&gt;Whether the repo has certain governance files&lt;/li&gt;
&lt;li&gt;Whether the service is deployed in staging or production&lt;/li&gt;
&lt;li&gt;What the latest scorecard or policy status is&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By connecting GitHub as a data source and modeling those related entities in a catalog, Port can provide the context the AI needs to produce a more useful PR review.&lt;/p&gt;

&lt;p&gt;In this setup, the pull request becomes an entity that can be enriched with fields such as:&lt;br&gt;
&lt;em&gt;AI review summary&lt;/em&gt;&lt;br&gt;
&lt;em&gt;AI risk level&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Run history&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Audit data&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to automate GitHub PRs step by step
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Step 1: Connect GitHub to your internal developer platform
&lt;/h4&gt;

&lt;p&gt;Start by integrating GitHub so your platform can detect repositories and pull request activity. In the demonstrated pattern, GitHub is connected as a data source inside Port.&lt;/p&gt;

&lt;p&gt;This connection allows pull request details to be synced and associated with the right service or repository metadata.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fult01sfb07gp4ukpf5d8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fult01sfb07gp4ukpf5d8.png" alt="Connect GitHub" width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Create a GitHub Action that syncs PR data
&lt;/h4&gt;

&lt;p&gt;The automation begins in GitHub. You need a workflow file that runs on pull request activity and sends the relevant information into Port.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;At minimum, the sync should include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PR number&lt;/li&gt;
&lt;li&gt;Title&lt;/li&gt;
&lt;li&gt;Branch&lt;/li&gt;
&lt;li&gt;Repository&lt;/li&gt;
&lt;li&gt;Associated service, if available&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the event bridge that lets you Automate GitHub PRs with richer catalog-based context instead of relying on code diff events alone.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Model the related entities in Port
&lt;/h4&gt;

&lt;p&gt;The automated review is only as good as the context available. The useful entities in this design include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service entity with team, ownership, and repository details&lt;/li&gt;
&lt;li&gt;Scorecard entity with pass or fail style readiness indicators&lt;/li&gt;
&lt;li&gt;Workload entity showing staging and production deployment information&lt;/li&gt;
&lt;li&gt;Pull request entity that gets enriched with AI results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If these relationships are incomplete, your AI verdict will be weaker.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 4: Add a Port automation to trigger the review
&lt;/h4&gt;

&lt;p&gt;Once the PR entity appears in Port, an automation should fire automatically. This automation sends the event to your webhook server.&lt;/p&gt;

&lt;p&gt;That trigger is the handoff from catalog event detection to the external processing logic.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Run a webhook server as middleware
&lt;/h4&gt;

&lt;p&gt;This part is essential. Port can trigger workflows and call webhooks, but the actual review process requires a custom layer that can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Authenticate with APIs&lt;/li&gt;
&lt;li&gt;Fetch multiple related entities&lt;/li&gt;
&lt;li&gt;Build a prompt with structured context&lt;/li&gt;
&lt;li&gt;Call the LLM&lt;/li&gt;
&lt;li&gt;Post a GitHub comment&lt;/li&gt;
&lt;li&gt;Write fields back into Port&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the demonstrated implementation, this middleware is a lightweight Python application running continuously in the cloud.&lt;/p&gt;

&lt;p&gt;That always-on endpoint matters because local development servers are not reliable for production automation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd4l0iv4n8k90r2yxo6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnd4l0iv4n8k90r2yxo6s.png" alt="PR Automate demo" width="800" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 6: Deploy the middleware somewhere with a permanent public URL
&lt;/h4&gt;

&lt;p&gt;A cloud deployment platform such as Railway works well for this. The important requirement is a stable HTTPS endpoint that Port can call every time a PR event occurs.&lt;/p&gt;

&lt;p&gt;If the server is not always available, the automation chain breaks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 7: Send context to the LLM and request a structured verdict
&lt;/h4&gt;

&lt;p&gt;The webhook server should gather the relevant Port data and send it to the LLM in a structured way. The desired output should also be structured, ideally as JSON.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The resulting verdict can include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Overall approval recommendation&lt;/li&gt;
&lt;li&gt;Risk level&lt;/li&gt;
&lt;li&gt;Short review summary&lt;/li&gt;
&lt;li&gt;Missing requirements&lt;/li&gt;
&lt;li&gt;Action items&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Structured outputs are much easier to write back into systems and display consistently.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 8: Write the result back to GitHub and Port
&lt;/h4&gt;

&lt;p&gt;Finally, the middleware should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Post a human-readable comment to the PR in GitHub&lt;/li&gt;
&lt;li&gt;Update the PR entity in Port with the AI summary&lt;/li&gt;
&lt;li&gt;Set the AI risk level field in Port&lt;/li&gt;
&lt;li&gt;Record success in the automation run or audit log&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives both developers and platform teams a clear trail of what happened.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgaozc8dfxwwnmgj8iw2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frgaozc8dfxwwnmgj8iw2.png" alt="successful PR Automation" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the PR comment should look like&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9vy7ii5grui5w4qb4g6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb9vy7ii5grui5w4qb4g6.png" alt="PR Comment" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A good automated PR comment is short, structured, and focused on decision support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It should answer these questions quickly:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who owns the service?&lt;/li&gt;
&lt;li&gt;What does the scorecard or readiness status say?&lt;/li&gt;
&lt;li&gt;Where is the service deployed?&lt;/li&gt;
&lt;li&gt;What is the AI verdict?&lt;/li&gt;
&lt;li&gt;Are any action items required?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A comment that simply says “looks good” is not enough. A useful automated review should give a reviewer enough context to decide what to inspect next.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using AI agents and self-service actions
&lt;/h3&gt;

&lt;p&gt;One notable part of this setup is that platform actions and AI agents can be created inside Port itself. That makes it easier to operationalize workflows like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PR readiness review&lt;/li&gt;
&lt;li&gt;PR summary generation&lt;/li&gt;
&lt;li&gt;Risk analysis&lt;/li&gt;
&lt;li&gt;Other engineering actions such as ticket creation or health reporting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters if you want your pull request automation to be part of a larger internal developer platform rather than a standalone script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F601vvdogftujh0aurtr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F601vvdogftujh0aurtr3.png" alt="Port catalog" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Common mistakes when you automate GitHub PRs
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Relying only on the code diff&lt;/strong&gt;&lt;br&gt;
If the AI sees only the changed files, it cannot reason about deployment status, ownership, or baseline readiness. The context layer is what makes the review valuable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Posting unstructured comments&lt;/strong&gt;&lt;br&gt;
A long generic paragraph is hard to scan. Use a consistent template with ownership, readiness, deployment, verdict, and action items.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skipping the middleware layer&lt;/strong&gt;&lt;br&gt;
Trying to connect everything directly often becomes limiting. A custom webhook server is useful because it can orchestrate multiple API calls and handle bidirectional updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hosting the server locally&lt;/strong&gt;&lt;br&gt;
For continuous automation, the endpoint must be publicly reachable all the time. A local laptop is not a stable production service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overtrusting the AI output&lt;/strong&gt;&lt;br&gt;
Even if you Automate GitHub PRs, the output should support human review, not replace it entirely. The AI is helping summarize context and flag risk, not acting as the final approver in every case.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using incomplete catalog data&lt;/strong&gt;&lt;br&gt;
If service ownership is wrong or workload data is outdated, the PR review will reflect those gaps. Data quality matters as much as prompt quality.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You can automate your developer workflows using &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=githubpr" rel="noopener noreferrer"&gt;Port.io&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  What this setup is best for
&lt;/h4&gt;

&lt;p&gt;This approach is especially useful for teams that already manage service metadata in a developer platform and want faster, more informed pull request reviews.&lt;/p&gt;

&lt;h4&gt;
  
  
  It is a strong fit when:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;You have many services and ownership is not always obvious&lt;/li&gt;
&lt;li&gt;Reviewers frequently ask for operational context before approving&lt;/li&gt;
&lt;li&gt;You want PRs enriched with platform metadata automatically&lt;/li&gt;
&lt;li&gt;You already use GitHub Actions and can add webhook-based automations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is less useful if your environment has no structured service catalog yet. In that case, the first step is improving metadata, not adding AI.&lt;/p&gt;

&lt;h4&gt;
  
  
  A practical checklist to automate GitHub PRs
&lt;/h4&gt;

&lt;p&gt;Use this checklist if you want to implement the same pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connect GitHub as a data source&lt;/li&gt;
&lt;li&gt;Create PR sync automation with GitHub Actions&lt;/li&gt;
&lt;li&gt;Model service, scorecard, workload, and PR entities&lt;/li&gt;
&lt;li&gt;Create a Port automation triggered by PR creation&lt;/li&gt;
&lt;li&gt;Deploy a public webhook server&lt;/li&gt;
&lt;li&gt;Fetch Port context inside the server&lt;/li&gt;
&lt;li&gt;Send structured context to an LLM&lt;/li&gt;
&lt;li&gt;Post the verdict to GitHub&lt;/li&gt;
&lt;li&gt;Write summary and risk fields back to Port&lt;/li&gt;
&lt;li&gt;Review data quality regularly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Final takeaway
&lt;/h3&gt;

&lt;p&gt;If you want to Automate GitHub PRs in a way that actually helps reviewers, focus on context first and AI second. The most useful automation does not just analyze changed code. It brings together service ownership, readiness signals, deployment status, and a structured verdict in one place.&lt;/p&gt;

&lt;p&gt;A setup built with GitHub Actions, Port, a cloud-hosted middleware service, and an LLM can turn pull request reviews from a context-hunting exercise into a faster, better-informed workflow. Done well, this approach gives every PR a head start before a human reviewer even begins.&lt;/p&gt;

&lt;p&gt;You can automate any of your developer workflows using &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=githubpr" rel="noopener noreferrer"&gt;Port.io&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>ai</category>
      <category>development</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Developer's Guide to Agent Skills (Hands-On Tutorial)!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Mon, 20 Apr 2026 06:03:37 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/developers-guide-to-agent-skills-hands-on-tutorial-5e0p</link>
      <guid>https://forem.com/pavanbelagatti/developers-guide-to-agent-skills-hands-on-tutorial-5e0p</guid>
      <description>&lt;p&gt;Agent Skills are suddenly everywhere in the AI engineering world, and for good reason. They solve a very real problem: AI agents may be smart, but they still know nothing about your organization unless you explicitly teach them. They do not automatically understand your internal workflows, your service catalog, your production readiness rules, or the exact steps needed to fix recurring issues.&lt;/p&gt;

&lt;p&gt;That is where Agent Skills come in. They give your AI agent reusable knowledge, structured instructions, and workflow-specific context so it can do meaningful work instead of acting like a generic chatbot with tool access.&lt;/p&gt;

&lt;p&gt;If you have been hearing about skills.md files, MCP servers, Claude, Copilot, and custom agent workflows, this is the missing mental model. Once you get it, the whole ecosystem makes a lot more sense.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/w65tyLWjGqA"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Agent Skills are getting so much attention
&lt;/h2&gt;

&lt;p&gt;One quick way to understand whether a concept matters is to look at search interest. The term Agent Skills has been climbing fast, especially in recent months. That is usually a sign that people are not just curious, they are actively trying to use something in real projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuofaxc9qd0h2r04kn8d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuuofaxc9qd0h2r04kn8d.png" alt="Agent Skills" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And it makes sense. This is not a niche concept only for AI researchers. Developers, platform teams, engineering managers, and AI engineers can all benefit from it because Agent Skills increase both capability and efficiency for AI agents.&lt;/p&gt;

&lt;p&gt;A lot of the early buzz is tied to Claude because Anthropic introduced the concept as an open standard. But the idea is bigger than one model or one company. The important part is that a skill can travel across platforms, which makes it much more useful than a one-off prompt hidden in one tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  How we got here: from function calling to MCP to Agent Skills
&lt;/h2&gt;

&lt;p&gt;To really understand Agent Skills, it helps to place them in the broader evolution of AI agents interacting with the outside world.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4rjuxdo7ivch0mgsyr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4rjuxdo7ivch0mgsyr3.png" alt="MCP to Agent Skills" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Function calling
&lt;/h3&gt;

&lt;p&gt;The first big step was function calling, also known as tool calling. This was when large language models started invoking external tools through a predefined JSON schema. A classic example is something like get weather data for a city.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That was useful, but it had clear limitations:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manual wiring everywhere. Every function had to be described and connected by hand.&lt;/li&gt;
&lt;li&gt;Error handling was your job. If something failed, the system did not really know how to recover intelligently.&lt;/li&gt;
&lt;li&gt;Scaling was painful. Every new capability increased developer overhead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So function calling gave models access to tools, but not much autonomy or reusable workflow intelligence.&lt;/p&gt;

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

&lt;p&gt;Then came Model Context Protocol, or MCP. This made it much easier to connect AI agents to external tools and data sources through a standard protocol.&lt;/p&gt;

&lt;p&gt;The easiest way to think about MCP is as a USB-like standard for AI systems. Instead of custom integrations for every tool, you get a cleaner, more interoperable plug-and-play model. That is why so many companies are now building MCP servers for their own systems and workflows.&lt;/p&gt;

&lt;p&gt;MCP was a major leap because it standardized access.&lt;br&gt;
But access alone is not enough.&lt;/p&gt;
&lt;h3&gt;
  
  
  3. Agent Skills
&lt;/h3&gt;

&lt;p&gt;This is where Agent Skills become important. If MCP gives your AI agent access to external tools and data, Agent Skills teach the agent what to do with those tools and data.&lt;/p&gt;

&lt;p&gt;That is the core idea.&lt;/p&gt;

&lt;p&gt;Instead of giving an agent only tool access, you package repeatable workflows, domain knowledge, trigger conditions, and repair playbooks into reusable skill files. The agent can then reason through a task in a more structured and specialized way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Each stage in this evolution shifts more agency from the developer to the system:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Function calling gave the model tool access.&lt;/li&gt;
&lt;li&gt;MCP standardized access to tools and data.&lt;/li&gt;
&lt;li&gt;Agent Skills gave the model reusable capability and workflow intelligence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why this feels like a truly agentic progression.&lt;/p&gt;
&lt;h2&gt;
  
  
  What Agent Skills actually are
&lt;/h2&gt;

&lt;p&gt;Agent Skills are folders of instructions and supporting files that package a repeatable workflow, specialized knowledge, or a new capability for your AI agent.&lt;/p&gt;

&lt;p&gt;On the surface, that might sound like saved prompts. But they are more than that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A good skill does not just store text. It defines:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When the skill should activate&lt;/li&gt;
&lt;li&gt;What the agent should do step by step&lt;/li&gt;
&lt;li&gt;What reference data the agent should use&lt;/li&gt;
&lt;li&gt;What remediation playbooks or actions it can follow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of copy-pasting a giant prompt every time you want an agent to do something specialized, you write that capability once and reuse it across sessions and tools.&lt;/p&gt;

&lt;p&gt;This is exactly what makes Agent Skills powerful. They turn a general-purpose model into something much closer to a reliable specialist.&lt;/p&gt;
&lt;h3&gt;
  
  
  Example: Custom deployment skill
&lt;/h3&gt;

&lt;p&gt;Here's an example of a custom skill for deploying services in your organization:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"deploy-to-production"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Deploy to Production"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"properties"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Guide for deploying services to production. Use when users ask to deploy, release, or promote a service to production."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"instructions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"# Deploy to Production&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;Follow these steps to deploy a service to production:&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Step 1: Verify prerequisites&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;- Check that all tests pass.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Verify the service has a production-readiness scorecard score above 80%.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Confirm the service owner has approved the deployment.&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Step 2: Run the deployment&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;Execute the deployment action for the target service and environment.&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;**Example input:**&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Service: `payment-service`&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Environment: `production`&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;**Expected output:**&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Deployment initiated successfully.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Action run ID returned for tracking.&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Step 3: Verify deployment&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;- Check the action run status.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Verify the service is healthy in production.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- Monitor for any alerts in the first 15 minutes.&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Common edge cases&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;- If tests are failing, do not proceed with deployment.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- If scorecard score is below threshold, recommend remediation steps first.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- If deployment fails, check logs and suggest rollback if needed."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"references"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"references/deployment-runbook.md"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"# Deployment Runbook&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Pre-deployment checklist&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;- [ ] All CI checks pass&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- [ ] Code review approved&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;- [ ] QA sign-off received&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## Rollback procedure&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;If deployment fails:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;1. Revert to previous version&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;2. Notify on-call team&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;3. Create incident ticket"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"references/common-errors.md"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"# Common Deployment Errors&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## ImagePullBackOff&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Cause: Container registry authentication failed.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Fix: Verify registry credentials.&lt;/span&gt;&lt;span class="se"&gt;\n\n&lt;/span&gt;&lt;span class="s2"&gt;## CrashLoopBackOff&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Cause: Application fails to start.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;Fix: Check application logs and configuration."&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"assets"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"assets/deployment-config.yaml"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"apiVersion: apps/v1&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;kind: Deployment&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;metadata:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;  name: {{ service_name }}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;spec:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;  replicas: 3&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;  strategy:&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;    type: RollingUpdate"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The open standard behind Agent Skills
&lt;/h2&gt;

&lt;p&gt;Agent Skills were originally created by Anthropic and released as an open standard on December 18, 2025, along with the specification and SDK. The standard is now governed as a cross-platform specification at agentskills.io.&lt;/p&gt;

&lt;p&gt;The practical implication is huge. A skill created for Claude is not trapped inside Claude. The same skill can work across multiple AI platforms that adopt the standard, including tools like OpenAI Codex, Gemini CLI, GitHub Copilot, Cursor, VS Code, and others.&lt;/p&gt;

&lt;p&gt;That portability is what makes this more than another product feature. It is infrastructure for reusable agent behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why LLMs need Agent Skills in the first place
&lt;/h2&gt;

&lt;p&gt;LLMs are great at general conversation, brainstorming, and broad reasoning. But when workflows become complex, they often become inconsistent. They forget details, miss edge cases, or answer too generically because they do not have the right context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This becomes painfully obvious in cases like:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Analyzing internal service health&lt;/li&gt;
&lt;li&gt;Understanding organization-specific scorecards&lt;/li&gt;
&lt;li&gt;Applying a company's engineering rules&lt;/li&gt;
&lt;li&gt;Generating precise remediation steps&lt;/li&gt;
&lt;li&gt;Working across tools like GitHub, issue trackers, and internal platforms&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Agent Skills help bridge that gap. They move the model from passive chat behavior to active, specialized execution grounded in your real systems and workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical example: building an Agent Skill with Port.io
&lt;/h2&gt;

&lt;p&gt;To make this concrete, consider a real workflow built around &lt;a href="https://www.port.io/blog/introducing-skills-in-port" rel="noopener noreferrer"&gt;Port.io&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6myl0x3471a9dz77gzej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6myl0x3471a9dz77gzej.png" alt="Port Skills" width="800" height="882"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://port.io?utm_source=med&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=skills" rel="noopener noreferrer"&gt;Port&lt;/a&gt; is an agentic internal developer platform that helps teams automate engineering workflows. It acts as a central place where developers can see services, ownership, scorecards, readiness, and other operational data without bouncing between a dozen different tools.&lt;/p&gt;

&lt;p&gt;In this example, Port's MCP server is connected so the AI agent can access live data from a Port account. Once connected, the agent can pull information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Services in the catalog&lt;/li&gt;
&lt;li&gt;Blueprints in the organization&lt;/li&gt;
&lt;li&gt;Production readiness states&lt;/li&gt;
&lt;li&gt;Scorecard pass/fail data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That gives the agent raw access. Then Agent Skills provide the behavior and context needed to make that access useful.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three-file structure of this Agent Skill
&lt;/h2&gt;

&lt;p&gt;The example skill is built around a production readiness workflow and uses three main files.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. skills.md
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;This is the brain and trigger mechanism of the skill.&lt;br&gt;
It includes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The skill name&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Metadata like author and version&lt;/li&gt;
&lt;li&gt;Activation keywords&lt;/li&gt;
&lt;li&gt;Instructions for how the agent should behave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this case, the skill is focused on Port readiness. The description includes keywords such as scorecard, level B, and branch protection so the agent knows when to activate the skill.&lt;/p&gt;

&lt;p&gt;It also defines the workflow for diagnosing failures, understanding readiness levels, generating PR descriptions, and suggesting fixes.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. references/scorecard-state.md
&lt;/h3&gt;

&lt;p&gt;This file contains the factual reference data.&lt;br&gt;
It acts like a snapshot of the actual Port catalog, including the current state of services and scorecard rules. In the example, it includes data for six services and their pass/fail status against readiness rules.&lt;/p&gt;

&lt;p&gt;This matters because it stops the agent from answering in vague terms. Instead of saying, "You may need better branch policies," it can say, "This specific service is failing because branch protection is missing and no recent PR activity exists."&lt;/p&gt;

&lt;h3&gt;
  
  
  3. assets/fix-checklist.md
&lt;/h3&gt;

&lt;p&gt;This file is the remediation playbook.&lt;br&gt;
&lt;strong&gt;It gives the agent a step-by-step checklist for fixing failures, such as:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assigning the correct team&lt;/li&gt;
&lt;li&gt;Enabling branch protection&lt;/li&gt;
&lt;li&gt;Setting code owners&lt;/li&gt;
&lt;li&gt;Ensuring recent PR freshness&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So if the reference file tells the agent what is wrong, the checklist tells it how to fix it.&lt;/p&gt;

&lt;h3&gt;
  
  
  What this skill enables the agent to do
&lt;/h3&gt;

&lt;p&gt;Once these files are in place and the Port MCP server is connected, the AI agent becomes dramatically more useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It can answer questions like:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What services are in my Port catalog?&lt;/li&gt;
&lt;li&gt;What blueprints exist in my organization?&lt;/li&gt;
&lt;li&gt;Why is the travel service failing its scorecard?&lt;/li&gt;
&lt;li&gt;Which service is closest to reaching level B?&lt;/li&gt;
&lt;li&gt;Write a PR description for Agentic AI explaining the readiness impact.&lt;/li&gt;
&lt;li&gt;Assign Agentic AI to the AI team.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And importantly, it can answer these without forcing you to paste all the context into every new conversation.&lt;/p&gt;

&lt;p&gt;That is the practical magic of Agent Skills. Context is packaged once, then reused repeatedly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Port readiness in this example
&lt;/h2&gt;

&lt;p&gt;The skill in this setup revolves around production readiness in Port.&lt;/p&gt;

&lt;p&gt;Port readiness is basically a grading system that tells you how production-ready a service is. The levels include things like A, B, C, and F, depending on how many scorecard rules are satisfied.&lt;/p&gt;

&lt;p&gt;In the example workflow, several services are currently at level C. The agent can inspect the rules, explain why a service is still at level C, and tell you what must be done to move it up to level B.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Typical requirements for moving from level C to level B include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assigning a team&lt;/li&gt;
&lt;li&gt;Enabling GitHub branch protection&lt;/li&gt;
&lt;li&gt;Pushing a recent PR&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because the skill has both the scorecard state and the remediation checklist, it can map those rules directly into actionable next steps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7x0a4sjtktgxhnv64b3g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7x0a4sjtktgxhnv64b3g.png" alt="Port Readiness" width="800" height="508"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the interaction feels in practice
&lt;/h2&gt;

&lt;p&gt;After connecting the MCP server and loading the skill into a coding environment like GitHub Copilot agent mode in VS Code, you can work conversationally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can ask:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why is the prompt engineering service failing?&lt;/li&gt;
&lt;li&gt;What team is assigned to this service?&lt;/li&gt;
&lt;li&gt;How can all my services reach level B?&lt;/li&gt;
&lt;li&gt;Can you push a simple PR to this service?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent then checks the skill instructions, pulls the relevant facts from the reference file, uses the checklist for remediation guidance, and responds in a way that is specific to your setup.&lt;/p&gt;

&lt;p&gt;In the example, the agent can even update team assignments in the scorecard state and suggest exact actions needed to improve readiness.&lt;/p&gt;

&lt;p&gt;This is a big shift from normal chatbot usage. Instead of asking broad questions and getting broad answers, you are interacting with an agent that understands your environment and your operational rules.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why this is more powerful than prompts alone
&lt;/h3&gt;

&lt;p&gt;A long prompt can tell an agent a lot of things once. But it is still fragile.&lt;/p&gt;

&lt;p&gt;Prompts are easy to lose, hard to standardize, and difficult to reuse cleanly across teams and platforms. They also tend to degrade over time as workflows evolve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agent Skills solve that by separating responsibilities:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The skill file defines behavior and triggers&lt;/li&gt;
&lt;li&gt;The reference file provides facts and current state&lt;/li&gt;
&lt;li&gt;The checklist file provides action plans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That structure makes the whole system more maintainable, shareable, and predictable.&lt;/p&gt;

&lt;p&gt;It also makes it easier to build agents that do not just know tools, but know how your organization actually works.&lt;/p&gt;

&lt;h3&gt;
  
  
  The bigger takeaway
&lt;/h3&gt;

&lt;p&gt;The important idea here is not just Port, Claude, or one specific tutorial setup. The bigger takeaway is that Agent Skills are a reusable layer of organizational intelligence for AI agents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can imagine applying the same pattern to many other internal workflows:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Incident triage&lt;/li&gt;
&lt;li&gt;Release readiness&lt;/li&gt;
&lt;li&gt;Security policy checks&lt;/li&gt;
&lt;li&gt;Onboarding flows&lt;/li&gt;
&lt;li&gt;Documentation enforcement&lt;/li&gt;
&lt;li&gt;Infrastructure review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As long as the agent has access to the right tools and data through something like MCP, skills can teach it how to reason and act within that domain.&lt;/p&gt;

&lt;h3&gt;
  
  
  What makes Agent Skills so compelling right now
&lt;/h3&gt;

&lt;p&gt;There are three reasons Agent Skills feel especially important right now.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI agents are everywhere, but most are still generic.&lt;/li&gt;
&lt;li&gt;MCP gives agents access, but not domain behavior.&lt;/li&gt;
&lt;li&gt;Teams need reusable workflows, not prompt improvisation every time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That combination creates the perfect environment for skills to become a foundational pattern.&lt;/p&gt;

&lt;p&gt;If the first wave of AI was about generating text, and the second wave was about calling tools, this next wave is about packaging expertise so agents can repeatedly perform meaningful work.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final thoughts
&lt;/h3&gt;

&lt;p&gt;Agent Skills are one of the clearest signs that AI tooling is maturing from demos into operational systems.&lt;/p&gt;

&lt;p&gt;They let you encode workflows once, connect them to real systems, and reuse them across platforms. In practical terms, that means your AI agent can stop acting like an outsider and start behaving like a teammate who understands your stack, your rules, and your goals.&lt;br&gt;
That is the real leap here.&lt;/p&gt;

&lt;p&gt;MCP gives your agent the keys. Agent Skills teach it how to drive.&lt;br&gt;
If you want to explore this approach hands-on, the Port-based production readiness example is a great model: connect your data source, define the skill behavior in skills.md, add factual reference state, add a remediation checklist, and then let the agent work against your real environment.&lt;/p&gt;

&lt;p&gt;Once you see that flow in action, it becomes obvious why Agent Skills are getting so much attention.&lt;/p&gt;

&lt;p&gt;BTW, &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=skills" rel="noopener noreferrer"&gt;Try Port for Free&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>developer</category>
      <category>softwaredevelopment</category>
      <category>mcp</category>
    </item>
    <item>
      <title>DORA Report Takeaways + Build Your Own DORA Metrics Dashboard with MCP!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Thu, 09 Apr 2026 13:04:10 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/dora-report-takeaways-build-your-own-dora-metrics-dashboard-with-mcp-421o</link>
      <guid>https://forem.com/pavanbelagatti/dora-report-takeaways-build-your-own-dora-metrics-dashboard-with-mcp-421o</guid>
      <description>&lt;p&gt;The question of whether to adopt AI in software development has already been answered. According to the &lt;a href="https://cloud.google.com/resources/content/2025-dora-ai-assisted-software-development-report" rel="noopener noreferrer"&gt;2025 DORA AI Capabilities Model&lt;/a&gt; - based on research from nearly 5,000 technology professionals and over 100 hours of qualitative analysis - close to 90% of developers are already using AI in their day-to-day work.  What remains unresolved is not adoption, but effectiveness. Many organizations have equipped their developers with powerful AI tools, yet struggle to translate individual productivity gains into meaningful business outcomes. This disconnect is at the heart of DORA’s latest research.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyecjdqw08ty57w7mti2u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyecjdqw08ty57w7mti2u.png" alt="DORA Report latest" width="800" height="692"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The report introduces a critical insight: AI is an amplifier. It does not inherently improve systems; instead, it magnifies the strengths and weaknesses that already exist. High-performing teams become faster and more effective, while struggling teams often see their inefficiencies scale. This reframes the entire conversation around AI adoption. Success is no longer about choosing the right tools—it is about building the right foundations. Understanding and investing in these foundations is what determines whether AI becomes a competitive advantage or just another layer of complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Core Insight: AI Alone Doesn’t Improve Performance
&lt;/h2&gt;

&lt;p&gt;One of the most important findings from DORA is that AI adoption, on its own, has only a modest impact on organizational performance. While developers may experience significant gains in speed and efficiency, these improvements often fail to propagate through the rest of the system. Instead, they are absorbed by bottlenecks in testing, security reviews, approvals, and deployment pipelines. This creates a situation where teams appear to move faster locally, but the overall system remains constrained.&lt;/p&gt;

&lt;p&gt;This phenomenon highlights a fundamental truth: software delivery is a system, not a collection of individual tasks. Optimizing one part of the system without addressing the rest leads to imbalances rather than improvements. If data is fragmented, workflows are unclear, or processes are overly complex, AI will simply accelerate these issues. Teams may generate more code, but that code will still face the same downstream friction.&lt;/p&gt;

&lt;p&gt;DORA’s research makes it clear that meaningful improvements only emerge when AI is paired with strong technical and cultural capabilities. These capabilities ensure that gains at the individual level can flow through the entire value stream, ultimately impacting organizational performance. Without them, AI remains an isolated productivity tool rather than a transformative force.&lt;/p&gt;

&lt;h3&gt;
  
  
  Clear and Communicated AI Stance
&lt;/h3&gt;

&lt;p&gt;A clear and communicated AI stance is one of the most foundational capabilities identified by DORA. In many organizations, ambiguity around AI usage creates uncertainty, which in turn slows adoption and increases risk. Developers often fall into two extremes: either they avoid using AI due to fear of violating policies, or they use it freely without understanding the boundaries. Both scenarios lead to suboptimal outcomes.&lt;/p&gt;

&lt;p&gt;DORA emphasizes that an effective AI stance must be both comprehensible and communicated. It should clearly define what is expected, what is permitted, and how AI can be safely used within the organization. This clarity provides psychological safety, allowing developers to experiment and adopt AI tools with confidence. Importantly, the stance does not need to be overly restrictive or overly permissive—it simply needs to be well-defined and consistently applied.&lt;/p&gt;

&lt;p&gt;The impact of this capability is significant. Organizations with a clear AI stance see improvements in individual effectiveness, organizational performance, and software delivery throughput, while also reducing friction. This is because developers are no longer second-guessing their decisions or navigating uncertainty. Instead, they can focus on using AI effectively within a known framework, which ultimately leads to better outcomes across the board.&lt;/p&gt;

&lt;h3&gt;
  
  
  Healthy Data Ecosystems
&lt;/h3&gt;

&lt;p&gt;DORA identifies healthy data ecosystems as one of the most impactful capabilities for successful AI adoption. AI systems rely heavily on data, and the quality of that data directly influences the quality of outcomes. Organizations with high-quality, accessible, and well-integrated data see significantly stronger benefits from AI compared to those with fragmented or unreliable data systems.&lt;/p&gt;

&lt;p&gt;A healthy data ecosystem is characterized by three key attributes: data must be trustworthy, easily accessible, and unified across the organization. When these conditions are met, AI can operate with the context it needs to produce meaningful and accurate outputs. However, when data is siloed or inconsistent, AI tends to generate results that reflect those inconsistencies, often leading to confusion and rework.&lt;/p&gt;

&lt;p&gt;DORA also highlights that poor data environments lead to what can be described as “localized productivity gains.” Developers may work faster with AI, but their output gets slowed down or corrected later in the process due to data-related issues. This prevents organizations from realizing true end-to-end improvements. Investing in data quality, governance, and accessibility is therefore not just a data initiative—it is a prerequisite for making AI effective at scale. Without it, AI becomes a force multiplier for bad data rather than a driver of better outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI-Accessible Internal Data
&lt;/h3&gt;

&lt;p&gt;Closely related to healthy data ecosystems is the concept of making internal data accessible to AI systems. DORA distinguishes between simply having good data and ensuring that AI tools can effectively use that data. This capability focuses on connecting AI systems to internal sources such as codebases, documentation, and organizational knowledge. When AI operates without access to internal context, it remains a general-purpose assistant. It can provide useful suggestions, but those suggestions lack specificity and alignment with the organization’s unique systems and practices. In contrast, when AI is connected to internal data, it becomes significantly more effective, offering insights and outputs that are tailored to the organization’s environment. &lt;/p&gt;

&lt;p&gt;DORA’s findings show that this capability has a strong positive impact on both code quality and individual effectiveness. Teams that enable AI to access internal data experience more relevant outputs and fewer errors, which reduces rework and improves overall efficiency.&lt;/p&gt;

&lt;p&gt;However, this capability also comes with responsibility. Poor-quality or outdated data can lead to poor AI outputs at scale. Organizations must ensure that the data being exposed to AI is accurate, up-to-date, and well-maintained. This reinforces the importance of strong data governance and continuous data hygiene as part of AI adoption strategies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Strong Version Control Practices
&lt;/h3&gt;

&lt;p&gt;As AI increases the speed and volume of code generation, version control becomes more critical than ever. DORA’s research highlights that AI-assisted development introduces a level of unpredictability, as generated outputs can vary in quality and correctness. This makes it essential for teams to have strong version control practices in place to manage risk effectively.&lt;/p&gt;

&lt;p&gt;Frequent commits and the ability to rollback changes are particularly important. DORA found that these practices amplify the positive effects of AI adoption. Frequent commits create a clear and traceable history of changes, making it easier to identify issues and isolate problems. Rollback mechanisms provide a safety net, allowing teams to quickly revert changes when something goes wrong.&lt;/p&gt;

&lt;p&gt;This capability enables teams to experiment with AI-generated code without compromising system stability. It transforms version control from a passive tool into an active safeguard that supports safe and continuous development. In an AI-assisted environment, version control is not just about tracking changes—it is about enabling controlled experimentation. Teams that invest in strong version control practices are better positioned to harness the benefits of AI while minimizing the associated risks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Working in Small Batches
&lt;/h3&gt;

&lt;p&gt;Working in small batches is a long-standing best practice in software development, and DORA reinforces its importance in the context of AI. While AI enables developers to generate large amounts of code quickly, large changes are inherently more difficult to review, test, and integrate. This increases the likelihood of errors and slows down the overall delivery process.&lt;/p&gt;

&lt;p&gt;DORA’s research shows that teams working in small batches experience better product performance and reduced friction, even if their perceived individual productivity is slightly lower. Smaller changes are easier to validate, easier to deploy, and less likely to introduce instability into the system.&lt;/p&gt;

&lt;p&gt;This capability acts as a counterbalance to the speed introduced by AI. It ensures that rapid code generation does not lead to uncontrolled complexity. Instead, it channels that speed into manageable, incremental improvements. By focusing on small, testable units of work, teams can maintain a steady flow of value while minimizing risk. This approach aligns with the broader goal of turning individual productivity gains into consistent and reliable system-level performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  User-Centric Focus
&lt;/h3&gt;

&lt;p&gt;DORA’s findings around user-centric focus are particularly striking. The report shows that AI adoption can have dramatically different outcomes depending on whether teams are aligned with user needs. Teams with a strong user-centric focus see improvements in performance, while those without it can actually experience declines.&lt;/p&gt;

&lt;p&gt;This highlights a critical point: AI amplifies direction, not just speed. If teams are focused on delivering user value, AI helps them do it faster and more effectively. However, if teams are focused on output rather than outcomes, AI accelerates the production of features that may not deliver real value. Maintaining a user-centric approach requires continuous alignment with user needs. This includes integrating user feedback into development processes, measuring success based on outcomes rather than outputs, and ensuring that development efforts are guided by clear user goals.&lt;/p&gt;

&lt;p&gt;In an AI-driven environment, developers must take on a more active role in ensuring that generated outputs align with user expectations. This requires a shift in mindset from simply building features to delivering meaningful outcomes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quality Internal Platforms
&lt;/h3&gt;

&lt;p&gt;The final capability identified by DORA is the presence of high-quality internal platforms. These platforms play a critical role in enabling AI adoption at scale by providing standardized workflows, reducing friction, and ensuring consistency across teams. DORA’s research shows that the impact of AI on organizational performance is heavily influenced by the quality of internal platforms. When platforms are well-designed and provide a seamless developer experience, AI-driven improvements can propagate throughout the organization. When platforms are lacking, these improvements remain isolated.&lt;/p&gt;

&lt;p&gt;Internal platforms serve as the infrastructure that supports modern software development. They provide the tools, processes, and guardrails that allow teams to build, test, and deploy software efficiently and safely. In the context of AI, they ensure that generated outputs can move smoothly through the delivery pipeline. &lt;/p&gt;

&lt;p&gt;By reducing complexity and standardizing processes, internal platforms enable teams to focus on delivering value rather than managing infrastructure. This makes them a key enabler of successful AI adoption.&lt;/p&gt;

&lt;h3&gt;
  
  
  From AI Adoption to Agentic Workflows
&lt;/h3&gt;

&lt;p&gt;As organizations mature across these capabilities, a broader shift begins to emerge. AI is no longer limited to assisting developers at the code level—it starts to participate in workflows across the software development lifecycle. Tasks such as generating changes, validating outputs, and triggering processes become increasingly automated. This shift can be understood as a move toward more agent-assisted or semi-autonomous workflows, where AI systems operate within defined guardrails to support end-to-end processes. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg27hjocsruz5yy345tut.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg27hjocsruz5yy345tut.png" alt="AI adoption to Agentic Workflows" width="800" height="583"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, this evolution is only possible when the foundational capabilities identified by DORA are in place. Without strong data, version control, and platforms, introducing automation at the workflow level increases risk rather than reducing it. With the right foundations, however, it enables a new level of efficiency and consistency in software delivery.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Final Shift: From AI Adoption to Platform Orchestration
&lt;/h3&gt;

&lt;p&gt;As organizations mature across these capabilities, the challenge shifts from adoption to orchestration. Having the right practices in place is no longer sufficient - teams need a central layer that connects systems, enforces workflows, and maintains consistency across the entire SDLC. This is where the quality of your internal platform becomes the defining variable. AI embedded within a strong platform multiplies output. AI layered on top of a weak one multiplies chaos. &lt;/p&gt;

&lt;h3&gt;
  
  
  The IDP Imperative: Why Your Platform Is the Make-or-Break Variable
&lt;/h3&gt;

&lt;p&gt;The numbers are hard to ignore. According to the DORA report, 90% of organizations already report using an internal developer platform. Gartner projects that 85% of platform engineering teams will have IDPs by 2028, and 80% of large engineering organizations will have dedicated platform teams by 2026. But here is the critical nuance DORA surfaces: having a platform is not enough. Platform quality is the make-or-break variable for AI ROI. When platform quality is high, AI adoption has a strong and measurable positive impact on organizational performance. When it is low, that impact is negligible — no matter how sophisticated the AI tools in use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7bkdsscjxegzkc6l26n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg7bkdsscjxegzkc6l26n.png" alt="The need for IDP" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is where the conversation shifts from platform engineering to agentic engineering. The next generation of IDPs cannot simply manage services and workflows - they need to power a shared environment where humans and AI agents run the software development lifecycle together. That requires four critical capabilities: a rich, holistic context lake that correlates data across all environments, services, tools, and policies in real time; orchestration and automation that supports code, low-code, and AI-enabled workflows with governed execution; embedded guardrails and governance with RBAC, confidence thresholds, and human-in-the-loop approval gates; and unified measurement and optimization across DORA metrics, AI impact, and custom standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=all-dora-alldevops-apj-q2" rel="noopener noreferrer"&gt;Port.io&lt;/a&gt; is built for exactly this. As an agentic developer portal, Port goes beyond traditional IDP functionality by embedding AI workflows directly into the platform layer - giving developers not just visibility and self-service, but intelligent automation that operates within defined guardrails. The result is not just faster developers. It is a system where humans stay in control, teams consistently ship value, and AI incidents stop derailing delivery.&lt;/p&gt;

&lt;p&gt;You know, you can build the DORA dashboard inside your Port account to see your engineering performance. See below through a simple walkthrough. &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=all-dora-alldevops-apj-q2" rel="noopener noreferrer"&gt;Signup to Port&lt;/a&gt; right now and start measuring your engineering performance.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/nqdSoLq_Qe0"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>developer</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>This Is How I Automated My Dev Workflow with MCPs - GitHub, Notion &amp; Jira (And Saved Hours)</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Thu, 02 Apr 2026 06:16:48 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/this-is-how-i-automated-my-dev-workflow-with-mcps-github-notion-jira-and-saved-hours-5ag2</link>
      <guid>https://forem.com/pavanbelagatti/this-is-how-i-automated-my-dev-workflow-with-mcps-github-notion-jira-and-saved-hours-5ag2</guid>
      <description>&lt;p&gt;AI agents are no longer a novelty - they’re becoming a practical way to speed up engineering work. But there’s a catch: agents don’t do anything useful unless they can access your real systems securely - documentation, tickets, code, deployment details, and operational logs.&lt;/p&gt;

&lt;p&gt;That’s where MCP (Model Context Protocol) changes the game. MCP provides a standard way to connect AI systems to external tools and data sources. Yet, once you actually start wiring MCP into an organization, a new problem appears: managing many MCP servers, many permissions, and many integrations across teams - without turning your platform into a fragile routing monster.&lt;/p&gt;

&lt;p&gt;This is the gap &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=mcp-devopsq2" rel="noopener noreferrer"&gt;Port&lt;/a&gt; fills. Port acts as a unified, governed interface where your MCP servers live - so developers and AI agents get one entry point, consistent permissions, and connected engineering context.&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/6VBhFq5SJ0s"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  The core problem with agentic workflows: “Everything is separate”
&lt;/h2&gt;

&lt;p&gt;Most teams have the same reality behind the scenes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your documentation is in Notion.&lt;/li&gt;
&lt;li&gt;Your code is in GitHub.&lt;/li&gt;
&lt;li&gt;Your work tracking lives in Jira (and runbooks may be in Confluence).&lt;/li&gt;
&lt;li&gt;Your operational signals are in tools like Sentry or Dynatrace.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff94tsywe8xt8r2fwsb9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff94tsywe8xt8r2fwsb9y.png" alt="Tools chaos" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When an AI agent (or even a human developer) needs to answer a question like “How do we deploy this service?” it’s not one tool—it’s a chain of tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deployment pipeline details&lt;/li&gt;
&lt;li&gt;cluster information&lt;/li&gt;
&lt;li&gt;team context&lt;/li&gt;
&lt;li&gt;runbook/documentation steps&lt;/li&gt;
&lt;li&gt;recent failures and quality signals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without a unifying layer, you end up building custom integrations and custom “routing logic” to decide what tool answers which part of the question.&lt;/p&gt;

&lt;h2&gt;
  
  
  How MCP helps - and what it doesn’t solve
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgzkgfz0daifbnggkjuo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcgzkgfz0daifbnggkjuo.png" alt="MCP image" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP is like an industry “connector standard” for AI. Instead of inventing new adapters for each tool, you can expose capabilities through MCP servers. This lets agents access external systems in a consistent way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But even with MCP, you still face an organization-level bottleneck&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faedpwjgs04u18168ivt5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faedpwjgs04u18168ivt5.png" alt="MCP integration hell" width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;you might have multiple MCP servers (Notion MCP, GitHub MCP, Jira MCP, etc.)&lt;br&gt;
each MCP server has its own permissions model&lt;br&gt;
you need a way to ensure users only see what they’re allowed to access&lt;br&gt;
you need a way to keep knowledge consistent as systems change&lt;/p&gt;

&lt;p&gt;In other words, MCP solves connectivity. Your org still has to solve governance, orchestration, and “one entry point” experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Port’s idea: one governed interface for all your MCP servers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohogpx4afjpac4yl2yzu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohogpx4afjpac4yl2yzu.png" alt="Port MCP server" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=mcp-devopsq2" rel="noopener noreferrer"&gt;Port&lt;/a&gt; positions itself as that unified layer. Think of it as a single, governed gateway sitting in the middle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Developers connect once (to &lt;a href="https://docs.port.io/ai-interfaces/port-mcp-server/overview-and-installation/" rel="noopener noreferrer"&gt;Port’s MCP server&lt;/a&gt;/entry point).&lt;/li&gt;
&lt;li&gt;Port routes requests to the correct &lt;a href="https://www.port.io/blog/connect-external-mcp-servers-into-port" rel="noopener noreferrer"&gt;external MCP servers&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Port enforces permissions so users and agents see only allowed tools/data.&lt;/li&gt;
&lt;li&gt;Port consolidates engineering knowledge into a connected experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The image below shows the “before vs after” framing—fragmented tool access vs Port’s unified gateway approach.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqn27svl88lffgc8qfxld.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqn27svl88lffgc8qfxld.webp" alt="Port MCP connector" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The practical outcome: you stop managing a scattered web of integrations and start scaling agentic AI across the organization.&lt;/p&gt;

&lt;p&gt;This approach shifts from “routing queries” to building connected engineering context. Port doesn’t just pass questions along. The platform synthesizes information across your connected systems into a persistent knowledge graph.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What this means in day-to-day engineering?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SDLC data from one tool can be connected to technical docs from another.&lt;/li&gt;
&lt;li&gt;GitHub commit context can be tied to related tickets and discussions.&lt;/li&gt;
&lt;li&gt;Agents can analyze patterns (deployments, bottlenecks, quality gaps) using a consistent interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So instead of writing custom logic like “if question contains X, query tool Y, then parse Z,” you give the agent one source of truth and let Port handle the orchestration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 1: Notion MCP—make runbooks and onboarding instantly usable
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4mr89l6990o8h0k5eu0.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4mr89l6990o8h0k5eu0.webp" alt="Notion MCP Server" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Documentation is often treated as a static knowledge base. But agentic engineering changes the expectations: documentation must be queryable and actionable.&lt;/p&gt;

&lt;p&gt;When Notion is connected through an MCP server in Port, you can do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search and fetch onboarding checklists instantly.&lt;/li&gt;
&lt;li&gt;Create structured documentation pages automatically.&lt;/li&gt;
&lt;li&gt;Generate a deployment runbook for a new service with service owner and monitoring info.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Realistic use case: a developer asks how to deploy an incident response process. Port fetches the correct runbook from Notion and returns it in context, without the user hunting through Notion pages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 2: GitHub MCP—understand code changes without spelunking through history
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9tqzan577o0uc5a04v1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz9tqzan577o0uc5a04v1.png" alt="GutHub MCP Server" width="800" height="364"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub isn’t just where code lives. It’s also where context lives&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pull request discussions&lt;/li&gt;
&lt;li&gt;commit history&lt;/li&gt;
&lt;li&gt;who changed what&lt;/li&gt;
&lt;li&gt;why it changed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With GitHub connected via MCP through Port, agents can answer questions like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Why did we change the cache logic?”&lt;/li&gt;
&lt;li&gt;“What changed in the payment service last week?”&lt;/li&gt;
&lt;li&gt;“What’s the root cause suggested by the PR discussion?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This shifts engineering from “manual archaeology” to “instant, contextual explanations.” The key advantage isn’t just speed—it’s that the explanation includes the surrounding narrative (PR context, owners, and intent), not just raw diffs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 3: Atlassian Rovo MCP (Jira + Confluence)—incident context in one answer
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7l0r82gzqk8s17iy4ul.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy7l0r82gzqk8s17iy4ul.png" alt="Atlassian Rovo MCP server" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Incident response is where context fragmentation becomes brutally expensive. At 3:00 a.m., no one wants to bounce between tools to gather:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recent incident history (Jira)&lt;/li&gt;
&lt;li&gt;runbooks and procedures (Confluence)&lt;/li&gt;
&lt;li&gt;team notes and next steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Port’s approach with the Atlassian MCP bridge (called Atlassian Robo MCP) connects Jira and Confluence content so agents can answer incident questions as one cohesive response.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outcome&lt;/strong&gt;: faster triage, fewer “where is the runbook?” moments, and lower meantime to recovery because the agent can pull the needed context immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  Example 4: Cross-tool workflows - create and update artifacts across the SDLC
&lt;/h3&gt;

&lt;p&gt;The most compelling part of this architecture is how it enables workflows that span tools. Port becomes the bridge between systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In the demonstration flow, the idea looks like this&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Notion data to create a service-related page (e.g., “feature release 2.1”).&lt;/li&gt;
&lt;li&gt;Ask Port to push that structured information into another system (e.g., GitHub repository updates).&lt;/li&gt;
&lt;li&gt;Query related entities (repositories, Jira issues) to enrich the artifact.&lt;/li&gt;
&lt;li&gt;Use the same connected context to trigger or guide next steps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of hand-carrying information from tool to tool, the agent can operate through Port’s unified interface.&lt;/p&gt;

&lt;p&gt;The screenshot below shows creating a Notion page (service-related artifact) from Port by using the connected MCP tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2p1sercuynymo6iiuaw.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2p1sercuynymo6iiuaw.webp" alt="Notion page creation" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Managing MCP servers from one place: Port’s dashboard experience
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89l7gyw33b76ivoevfjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89l7gyw33b76ivoevfjc.png" alt="Managing MCP servers" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For platform engineers, the operational challenge is real: once MCP exists, you still need a clean way to onboard it for teams.&lt;/p&gt;

&lt;p&gt;Port’s dashboard is designed for that governance layer. Instead of asking developers to wire up MCP servers individually, platform engineers add and configure MCP server integrations centrally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The process is straightforward&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go to Port’s data sources/catalog area.&lt;/li&gt;
&lt;li&gt;Add the MCP server (for example, Notion, GitHub, Atlassian Rovo).&lt;/li&gt;
&lt;li&gt;Choose “when to use” guidance so the agent knows what the MCP server is for.&lt;/li&gt;
&lt;li&gt;Connect via authentication and approve which tools are available.&lt;/li&gt;
&lt;li&gt;Publish so teams can access the unified interface.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy54w6f9kvtf7c1nbe0vc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy54w6f9kvtf7c1nbe0vc.gif" alt="Port MCP Connector guide" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This “configuration as experience” matters. Developers shouldn’t need to understand how MCP servers are wired behind the scenes—they just need reliable answers and safe actions.&lt;/p&gt;

&lt;h4&gt;
  
  
  Governance and permissions: why this matters for scaling
&lt;/h4&gt;

&lt;p&gt;One of the biggest risks in agentic workflows is accidental access. If your AI can query or modify systems, you need guardrails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Port’s model emphasizes&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Approved tools only (you can restrict destructive actions).&lt;/li&gt;
&lt;li&gt;User-level permissions (OAuth-based access aligns with existing account permissions).&lt;/li&gt;
&lt;li&gt;Controlled visibility across teams and roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This enables scaling MCP across the organization without turning security review into a permanent blocker.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to think about the “single entry point” advantage
&lt;/h4&gt;

&lt;p&gt;When people compare internal developer platforms and agent tooling, it’s easy to reduce the conversation to “one UI.” Port’s value is more fundamental:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One entry point to access multiple MCP servers.&lt;/li&gt;
&lt;li&gt;One governed interface to reduce integration sprawl.&lt;/li&gt;
&lt;li&gt;One framework to keep permissions consistent.&lt;/li&gt;
&lt;li&gt;One place where engineering context becomes queryable for agents.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s why this approach can genuinely make teams more productive rather than just adding another layer of tooling complexity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Practical rollout checklist: bring MCP to your org without chaos
&lt;/h3&gt;

&lt;p&gt;If you’re planning an MCP-first agentic setup, here’s a pragmatic way to get started with a unified layer like Port:&lt;br&gt;
&lt;strong&gt;1) Start with the “high leverage” tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Notion for docs/runbooks/onboarding&lt;/li&gt;
&lt;li&gt;GitHub for code and change context&lt;/li&gt;
&lt;li&gt;Jira/Confluence via Atlassian Robo for planning and incidents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2) Decide what actions are safe&lt;/strong&gt;&lt;br&gt;
Not every agent action needs write permissions on day one. Start with read-only where possible, then expand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Define “when to use” descriptions for each MCP server&lt;/strong&gt;&lt;br&gt;
This helps the agent select the right tool for the right job—and reduces incorrect queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4) Build cross-tool workflows intentionally&lt;/strong&gt;&lt;br&gt;
Choose one workflow that’s painful today (e.g., incident triage, release note creation, onboarding). Then wire it end-to-end through Port so value is obvious quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5) Keep governance in the platform layer&lt;/strong&gt;&lt;br&gt;
Developers should not have to manage routing logic, authentication, and tool availability per MCP server. Port should.&lt;/p&gt;

&lt;h4&gt;
  
  
  MCP becomes scalable when you add the governed layer
&lt;/h4&gt;

&lt;p&gt;MCP makes it possible to connect AI agents to external tools in a standard way. But the real engineering breakthrough comes when you turn many MCP servers into a single, governed interface.&lt;/p&gt;

&lt;p&gt;Port’s approach—unifying and orchestrating MCP connections, enforcing permissions, and enabling cross-tool context—helps teams stop switching between tools and start building agentic workflows that actually scale. If you’re exploring MCP for agentic engineering, focus on the “last mile” first: one entry point, governed access, and connected context across your SDLC systems.&lt;/p&gt;

&lt;p&gt;Well, &lt;a href="https://port.io?utm_source=devto&amp;amp;utm_medium=advocacy&amp;amp;utm_campaign=mcp-devopsq2" rel="noopener noreferrer"&gt;Port is free to use&lt;/a&gt;. I want you all to experience the power of agentic automation for your dev workflows.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>developer</category>
      <category>devex</category>
    </item>
    <item>
      <title>Learn How to Build Reliable RAG Applications in 2026!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Mon, 19 Jan 2026 07:00:50 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/learn-how-to-build-reliable-rag-applications-in-2026-1b7p</link>
      <guid>https://forem.com/pavanbelagatti/learn-how-to-build-reliable-rag-applications-in-2026-1b7p</guid>
      <description>&lt;p&gt;LangChain is a developer framework for connecting large language models with data, tools, and application logic. This guide walks through a practical step-by-step workflow to build a Retrieval-Augmented Generation (RAG) document chat: upload documents, chunk and embed them, store embeddings in a vector database, and serve a chat UI that answers only from retrieved context. Use this as a checklist and hands-on recipe for production-style LLM applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is my complete hands-on video guide below.&lt;/strong&gt;&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/x0W2ZbWDQmE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Below is the complete code repo to try&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/pavanbelagatti" rel="noopener noreferrer"&gt;
        pavanbelagatti
      &lt;/a&gt; / &lt;a href="https://github.com/pavanbelagatti/LangChain-RAG-Application" rel="noopener noreferrer"&gt;
        LangChain-RAG-Application
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;LangChain RAG Application (DocChat Pro)&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This repository contains a Retrieval-Augmented Generation (RAG) application built using LangChain, Streamlit, and SingleStore.
The app allows you to upload documents (PDF, TXT, or Markdown), automatically chunk and embed them, store embeddings in SingleStore as a persistent vector database, and chat with your documents using a ChatGPT-like interface.&lt;/p&gt;
&lt;p&gt;The project demonstrates how LangChain connects document loading, text splitting, embeddings, retrieval, and prompt templates into a reliable AI workflow.
It also includes source citations, retrieval debugging, and a reset option for clean demos.&lt;/p&gt;
&lt;p&gt;This is a practical, production-style example of building a real AI application—not a toy chatbot.&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/pavanbelagatti/LangChain-RAG-Application" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How LangChain evolved
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2yo9bu41q5iy3jw8gc0s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2yo9bu41q5iy3jw8gc0s.png" alt="langchain logo" width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before LangChain, developers used LLMs mainly via standalone prompts. That approach left large gaps: no built-in data connectors, no standard way to persist embeddings, limited support for multi-step logic, and no standardized memory or agent tooling. LangChain was created to fill these gaps by providing composable primitives and patterns for LLM-powered apps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key milestones in LangChain's evolution:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open-source modular library that standardizes document loading, splitting, embeddings, and retrievers.&lt;/li&gt;
&lt;li&gt;Agent and chain patterns that let you sequence LLM calls and tool invocations in reproducible workflows.&lt;/li&gt;
&lt;li&gt;Integrations with vector databases, hosts, and model providers to avoid vendor lock-in.&lt;/li&gt;
&lt;li&gt;Growth in community and tooling, with managed runtimes and observability emerging around LangChain patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why use LangChain and when it matters
&lt;/h2&gt;

&lt;p&gt;LangChain is a developer framework that makes it easy to build LLM-powered applications by connecting language models to data sources, vector stores, prompts, memory, and tools. It is not an LLM itself; it is the scaffolding that turns LLMs into reliable, maintainable systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06queaposhngbkttsfz1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06queaposhngbkttsfz1.png" alt="Why LangChain" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjir22wxaz583e3188w8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjir22wxaz583e3188w8.jpeg" alt="LangChain ecosystem" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LangChain is useful when you need LLM responses tied to custom, up-to-date, or proprietary data and when you want predictable, auditable results. Instead of relying purely on prompt tweaks or costly fine-tuning, LangChain helps you assemble components - loaders, splitters, embeddings, vector stores, retrievers, chains, and prompts - into a repeatable pipeline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core LangChain components - overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbuzee08hdcs5ibyjspnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbuzee08hdcs5ibyjspnc.png" alt="LangChain components" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LangChain organizes common functionality into composable components. Understanding each component helps you design correct, debuggable applications.&lt;/p&gt;

&lt;h3&gt;
  
  
  LLMs (model interfaces)
&lt;/h3&gt;

&lt;p&gt;The LLM component is a thin adapter that calls a model provider (OpenAI, Anthropic, local models, etc.). LangChain gives a uniform API so you can swap models without rewriting the rest of your app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Loaders and Indexes
&lt;/h3&gt;

&lt;p&gt;Loaders ingest documents (PDFs, HTML, text, spreadsheets). Index-like modules prepare content for retrieval by preserving metadata and mapping pieces of text to retrievable records.&lt;/p&gt;

&lt;h3&gt;
  
  
  Text splitters and chunking
&lt;/h3&gt;

&lt;p&gt;Splitters break long documents into chunks sized to fit model context windows. Proper chunking balances context completeness and retrieval precision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Embeddings
&lt;/h3&gt;

&lt;p&gt;Embedding models convert text chunks and queries into numeric vectors that capture semantic meaning. LangChain wraps embedding providers so you can change models consistently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vector stores (vector databases)
&lt;/h3&gt;

&lt;p&gt;Vector stores persist embeddings and support similarity search. LangChain provides connectors for many vector databases and vector-enabled SQL stores.&lt;/p&gt;

&lt;h3&gt;
  
  
  Retrievers
&lt;/h3&gt;

&lt;p&gt;Retrievers are configurable search layers that use embedding similarity, filters, or hybrid search to fetch relevant chunks for a query.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chains
&lt;/h3&gt;

&lt;p&gt;Chains are sequences of modular steps: call a retriever, format a prompt, call an LLM, post-process the answer. Chains let you compose robust workflows with predictable behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Agents and tools
&lt;/h3&gt;

&lt;p&gt;Agents combine LLM reasoning with tool execution (APIs, calculators, search). LangChain includes patterns for creating agent loops with toolkits and stopping conditions.&lt;/p&gt;

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

&lt;p&gt;Memory modules manage conversation state - short-term for session context and long-term for persistent user data. Memory is essential for chat experiences that require context continuity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Prompt templates
&lt;/h3&gt;

&lt;p&gt;Prompt templates are reusable instruction blueprints. They standardize system messages, user instructions, and context injection to make outputs predictable and auditable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tutorial: What we will build?
&lt;/h3&gt;

&lt;p&gt;A typical LangChain RAG pipeline contains these stages. Plan them before writing code:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Document ingestion and metadata extraction.&lt;/li&gt;
&lt;li&gt;Text splitting and chunking strategy (size, overlap).&lt;/li&gt;
&lt;li&gt;Embedding generation with a chosen embedding model.&lt;/li&gt;
&lt;li&gt;Store embeddings in a vector store with metadata.&lt;/li&gt;
&lt;li&gt;Query embedding and retrieval (top-K, filters).&lt;/li&gt;
&lt;li&gt;Construct a prompt combining retrieved context and user query.&lt;/li&gt;
&lt;li&gt;LLM response generation and attribution (sources/similarity scores).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frv6mfq61dencvy328ns6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frv6mfq61dencvy328ns6.png" alt="LangChain RAG" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Define scope, data, and success criteria
&lt;/h3&gt;

&lt;p&gt;Before coding, decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data types: PDFs, DOCX, HTML, CSV, internal wiki pages.&lt;/li&gt;
&lt;li&gt;Latency and scale: number of documents and query QPS.&lt;/li&gt;
&lt;li&gt;Accuracy expectations: must answers strictly cite docs or can it hallucinate?&lt;/li&gt;
&lt;li&gt;Monitoring: logs for retrieval results, source hits, and LLM outputs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 2: Environment and core libraries
&lt;/h3&gt;

&lt;p&gt;Install the core packages and provider SDKs. Replace provider names with your chosen LLM and vector DB.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install langchain streamlit openai singlestoredb[client] tiktoken&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Set environment variables securely for API keys and vector DB credentials (do not commit .env to source control).&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Ingest documents and split into chunks
&lt;/h3&gt;

&lt;p&gt;Goal: convert each input document into coherent chunks that fit the model's context window and preserve meaning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended splitter settings&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Chunk size: 500–1000 tokens (or 800–1200 characters depending on language)&lt;/li&gt;
&lt;li&gt;Chunk overlap: 100–200 tokens to preserve context across splits&lt;/li&gt;
&lt;li&gt;Prefer semantic boundaries (sections, paragraphs) over fixed-length cuts when possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example ingestion pattern (pseudo-real code using LangChain idioms):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq4qoe0n9wq2gcl4xud6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq4qoe0n9wq2gcl4xud6.png" alt="ingestion pattern" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Create embeddings and store them in a vector database
&lt;/h3&gt;

&lt;p&gt;Convert text chunks into vectors with an embedding model and persist them to a vector store. Choose a persistent vector DB (SingleStore, Pinecone, Milvus, Chroma, etc.) for production.&lt;/p&gt;

&lt;p&gt;Important metadata to store with each vector:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;source document id or file name&lt;/li&gt;
&lt;li&gt;chunk index or position&lt;/li&gt;
&lt;li&gt;original text snippet for provenance&lt;/li&gt;
&lt;li&gt;timestamp or ingestion batch id&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Generic embedding + store pattern:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjw684cm1ptmtmkvv2a1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxjw684cm1ptmtmkvv2a1.png" alt="embeddings" width="800" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpvt2wqt51eeqquuzgi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpvt2wqt51eeqquuzgi6.png" alt="SingleStore dashboard" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If using a managed vector DB, create the collection/table with proper indexing (HNSW/IVF etc.).&lt;/li&gt;
&lt;li&gt;Batch embedding calls to improve throughput and reduce cost.&lt;/li&gt;
&lt;li&gt;Store embeddings and text separately if you need to re-embed with another model later.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 5: Build the retriever and RAG chain
&lt;/h3&gt;

&lt;p&gt;Core idea: for each user query, run a semantic search against the vector store to retrieve top-k candidate chunks, then pass those chunks plus the query to the LLM with a strict prompt that instructs the model to only use the provided context.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Retriever configuration&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Top-k (k): 3–10 depending on average chunk length&lt;/li&gt;
&lt;li&gt;Similarity metric: cosine is common for OpenAI embeddings&lt;/li&gt;
&lt;li&gt;Filter by metadata: restrict to a document set or date range if needed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example RAG flow (LangChain style):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fingqql8jrgype4zlxd9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fingqql8jrgype4zlxd9h.png" alt="RAG Workflow" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Return source documents (or their URLs) to provide citations in the UI and to reduce hallucination risk.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Build a simple Streamlit chat UI
&lt;/h3&gt;

&lt;p&gt;Key UI features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;File upload with immediate "Build / Upsert" button&lt;/li&gt;
&lt;li&gt;Toggles for chunk size, overlap, top-k, and temperature&lt;/li&gt;
&lt;li&gt;Streamed LLM responses plus a sidebar showing retrieved sources and debug info&lt;/li&gt;
&lt;li&gt;Button to reset or drop the knowledge base for demos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjd5u036e03eczu3i2l6w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjd5u036e03eczu3i2l6w.png" alt="chatpro app" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Minimal Streamlit sketch (abbreviated):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbv7rmmebw8ddgz4ontvl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbv7rmmebw8ddgz4ontvl.png" alt="streamlist UI" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Show sources next to each answer using the metadata stored with vectors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Tune, test, and monitor
&lt;/h3&gt;

&lt;p&gt;Tuning checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adjust chunk_size and chunk_overlap until retrieved contexts are coherent.&lt;/li&gt;
&lt;li&gt;Control the LLM temperature: set to 0.0–0.2 for high factuality.&lt;/li&gt;
&lt;li&gt;Adjust top_k: more context can help but increases prompt length and noise.&lt;/li&gt;
&lt;li&gt;Implement answer gating: if the highest-similarity result score is below a threshold, refuse to answer or escalate to human review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Monitoring and logs to add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query traces: query, retrieved doc ids, similarity scores.&lt;/li&gt;
&lt;li&gt;LLM outputs and tokens used (cost monitoring).&lt;/li&gt;
&lt;li&gt;Feedback collection UI to flag incorrect answers and retrain or re-curate data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Common pitfalls and how to avoid them
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Pitfall: Chunking too small. Result: context torn into fragments, leading to wrong or incomplete answers. Fix: increase chunk_size or use semantic splitting.&lt;/li&gt;
&lt;li&gt;Pitfall: Chunk overlap too high. Result: duplicate context leading to longer prompts and higher cost. Fix: balance overlap to preserve transitions only.&lt;/li&gt;
&lt;li&gt;Pitfall: Not storing provenance. Result: impossible to cite or debug answers. Fix: save source filename, page, and chunk id for each vector.&lt;/li&gt;
&lt;li&gt;Pitfall: Open-ended prompts that allow the model to hallucinate. Fix: use strict system prompts and instruct the model to respond "I don't know" when context is insufficient.&lt;/li&gt;
&lt;li&gt;Pitfall: Ignoring vector DB scaling. Fix: plan index parameters and re-shard or re-index as dataset grows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  When to choose fine-tuning or retrieval vs prompt engineering
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Prompt engineering: low cost, best for short-term tweaks and small scope tasks.&lt;/li&gt;
&lt;li&gt;RAG (recommended): best when you need up-to-date, auditable answers tied to documents. It avoids expensive model retraining.&lt;/li&gt;
&lt;li&gt;Fine-tuning: choose for enterprise-level domain adaptation where you control the model and cost/latency tradeoffs, or when you need model-level behavior change not achievable with prompts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Security and governance considerations
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Encrypt credentials, enforce least privilege for vector DB access.&lt;/li&gt;
&lt;li&gt;Remove or redact sensitive text before storing embeddings when compliance requires it.&lt;/li&gt;
&lt;li&gt;Log queries while respecting privacy and retention policies.&lt;/li&gt;
&lt;li&gt;Provide an allowlist/denylist for documents or terms if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Troubleshooting examples
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Low-quality answers despite relevant docs
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Check retriever scores: if similarites are low, embeddings may be mismatched or chunking wrong.&lt;/li&gt;
&lt;li&gt;Increase top_k or expand chunk_overlap to provide more context.&lt;/li&gt;
&lt;li&gt;Ensure embeddings model and similarity metric align (e.g., OpenAI embeddings work well with cosine).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Model drifts or outdated facts
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;RAG ensures answers are grounded in indexed docs; re-index documents periodically or on every significant update.&lt;/li&gt;
&lt;li&gt;Prefer real-time ingestion for highly dynamic sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Practical checklist before launch
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;End-to-end test with representative queries and documents&lt;/li&gt;
&lt;li&gt;Automated unit tests for ingestion and retrieval&lt;/li&gt;
&lt;li&gt;Cost forecast for embeddings and LLM usage&lt;/li&gt;
&lt;li&gt;Monitoring for retrieval hit-rate and source coverage&lt;/li&gt;
&lt;li&gt;Rate limits and graceful degradation for high load&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Screenshots and visual debugging
&lt;/h4&gt;

&lt;p&gt;Inspect the UI for upload progress and the vector DB dashboard to verify stored embeddings and metadata.&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ
&lt;/h3&gt;

&lt;h4&gt;
  
  
  How does LangChain reduce hallucinations?
&lt;/h4&gt;

&lt;p&gt;By combining retrieval (vector search) with generation. The model receives specific, relevant document chunks as context and a strict instruction to answer only from that context. Returning source documents for every answer enables verification and debugging.&lt;/p&gt;

&lt;h4&gt;
  
  
  Do I need to fine-tune my LLM if I use LangChain?
&lt;/h4&gt;

&lt;p&gt;Not necessarily. For most document-grounded applications, RAG provides strong results without fine-tuning. Fine-tuning is useful if you require model-level behavior changes or want to reduce repeated prompt tokens for very large or high-volume deployments.&lt;/p&gt;

&lt;h4&gt;
  
  
  What settings matter most for retrieval quality?
&lt;/h4&gt;

&lt;p&gt;Chunk size, chunk overlap, embedding model choice, top-k, and similarity threshold. Also ensure your text splitter preserves semantic boundaries where possible.&lt;/p&gt;

&lt;h4&gt;
  
  
  Can LangChain switch LLM providers easily?
&lt;/h4&gt;

&lt;p&gt;Yes. LangChain is designed to be provider-neutral: swap LLM and embedding providers by changing the integration class and configuration without rewriting the pipeline logic.&lt;/p&gt;

&lt;h4&gt;
  
  
  Which vector database should I use?
&lt;/h4&gt;

&lt;p&gt;Choose based on scale and latency needs. For prototypes, lightweight stores FAISS should work. But for production, consider managed or scalable options such as SingleStore. Evaluate costs, persistence, query latency, and SDK maturity.&lt;/p&gt;

&lt;h4&gt;
  
  
  Summary and next steps
&lt;/h4&gt;

&lt;p&gt;LangChain is a practical framework to build reliable, data-grounded LLM applications. Follow the steps in this guide to ingest documents, create embeddings, persist vectors in a scalable store, and assemble a retriever + LLM pipeline with strict prompts. Focus on chunking, metadata for provenance, and monitoring retrieval quality. Start with a small pilot: upload sample documents, tune chunk settings, and iterate on prompt constraints before scaling.&lt;/p&gt;

&lt;p&gt;Ready-to-run components to assemble: a document loader, a robust text splitter, an embeddings layer, a persistent vector store, a retriever, a constrained prompt template, and a lightweight UI. Combine these with monitoring and governance to move from prototype to production.&lt;/p&gt;

</description>
      <category>rag</category>
      <category>ai</category>
      <category>developer</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>LangChain vs LangGraph: How to Choose the Right AI Framework!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Thu, 04 Dec 2025 08:07:26 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/langchain-vs-langgraph-how-to-choose-the-right-ai-framework-497h</link>
      <guid>https://forem.com/pavanbelagatti/langchain-vs-langgraph-how-to-choose-the-right-ai-framework-497h</guid>
      <description>&lt;h2&gt;
  
  
  Why this comparison matters - LangChain vs LangGraph
&lt;/h2&gt;

&lt;p&gt;I build practical LLM-powered software and have seen two patterns emerge: straightforward, linear pipelines and stateful, agentic workflows. The question "LangChain vs LangGraph" is not academic. It determines architecture, maintenance, and how the system reasons over time.&lt;/p&gt;

&lt;p&gt;When I say "LangChain vs LangGraph" I mean comparing two different design philosophies. LangChain is optimized for linear sequences: take input, run one or more LLM calls in order, store or return the result. LangGraph is optimized for graphs: nodes, edges, loops, and persistent state across many steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core idea of LangChain
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea1p7cjeff62k002xheh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fea1p7cjeff62k002xheh.png" alt="LangChain" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I use LangChain when the workflow is essentially A then B then C. LangChain provides a standardized framework that saves developers from hard coding integrations, prompt scaffolding, or manual tool orchestration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prompt templates&lt;/strong&gt; - reusable templates that accept variables and generate consistent LLM inputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;LLM-agnostic connectors&lt;/strong&gt; - easy swaps between OpenAI, Anthropic, Mistral, Hugging Face models, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chains&lt;/strong&gt; - the core abstraction: compose multiple steps so each output feeds the next.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Memory&lt;/strong&gt; - short-term or long-term conversational context, useful for stateful chat but limited compared to full state machines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agents and tools&lt;/strong&gt; - let models call APIs, calculators, or external services in a structured way.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LangChain makes developers productive fast. For prototyping prompts, building simple RAG systems, or creating a question-answering pipeline that reads from a vector store and returns a single response, LangChain is an efficient choice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flomxumhg1u41uxhimtm5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flomxumhg1u41uxhimtm5.png" alt="basic langchain tutorial" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Idea of LangGraph
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbwmj9u6zq438ky7czxd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftbwmj9u6zq438ky7czxd.png" alt="Idea of LangGraph" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LangGraph is built on top of LangChain concepts but rethinks workflows as graphs. I think of LangGraph when the system must persist complex state, loop, make decisions, or orchestrate multiple specialized agents.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Nodes&lt;/strong&gt; - discrete tasks: call an LLM, fetch from a database, run a web search, or invoke a summarizer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Edges&lt;/strong&gt; - define conditional transitions, parallel branches, or loopback paths.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;State&lt;/strong&gt; - dynamic context that evolves across nodes: messages, episodic memory, and checkpoints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Decision nodes&lt;/strong&gt; - native support for conditional logic and routing to specialist agents.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LangGraph treats the application as a state machine. Nodes can loop, revisit earlier steps, and perform multi-turn tool calls. This enables agentic behaviors such as reflection, iterative retrieval, or progressive refinement of answers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dhepvcv6g81n8syqnb2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2dhepvcv6g81n8syqnb2.png" alt="graph nodes" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Side-by-side differences - practical checklist for LangChain vs LangGraph
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ztjdm9ck3osters65w1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ztjdm9ck3osters65w1.png" alt="LangChain vs LangGraph" width="800" height="701"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I like to reduce technology choices to a checklist. For "LangChain vs LangGraph" here is the practical comparison I use when deciding which to adopt.&lt;/p&gt;

&lt;h4&gt;
  
  
  Flow type
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LangChain: linear and sequential.&lt;/li&gt;
&lt;li&gt;LangGraph: cyclic and graph-based with loops.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  State management
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LangChain: limited conversational memory.&lt;/li&gt;
&lt;li&gt;LangGraph: rich, persistent state across nodes and sessions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Conditionals and loops
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LangChain: simple branching and one-shot tool calls.&lt;/li&gt;
&lt;li&gt;LangGraph: built-in conditional edges, loops, and checkpoints.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Complexity and agents
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LangChain: well-suited to simple chatbots, RAG, or ETL-like LLM pipelines.&lt;/li&gt;
&lt;li&gt;LangGraph: suited to multi-agent systems, autonomous agent behavior, and long-running workflows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Human in the loop
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;LangChain: possible but not native.&lt;/li&gt;
&lt;li&gt;LangGraph: checkpointing and human-in-the-loop are first-class patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When I weigh "LangChain vs LangGraph", I consider not only current needs but expected future complexity. If the app might grow into a multi-agent orchestration or needs persistent state and retries, starting with LangGraph can save refactors.&lt;/p&gt;

&lt;h3&gt;
  
  
  When to pick LangChain
&lt;/h3&gt;

&lt;p&gt;I recommend LangChain when you need speed of development and your workflow is straightforward. Typical scenarios include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text transformation pipelines: summarize, translate, or extract information and save results.&lt;/li&gt;
&lt;li&gt;Prototyping prompts and testing chains quickly.&lt;/li&gt;
&lt;li&gt;Single-turn user interactions such as customer support responses.&lt;/li&gt;
&lt;li&gt;Basic RAG systems that perform retrieval from a vector store and return a single synthesized answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;LangChain is excellent for these tasks because it provides plug-and-play components - prompt templates, retrievers, and chain combinators - letting you ship quickly without building orchestration primitives yourself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F453ospfm4ugq6sa5t7ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F453ospfm4ugq6sa5t7ww.png" alt="langgraph tutorial" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  When to pick LangGraph
&lt;/h3&gt;

&lt;p&gt;I reach for LangGraph when autonomy, iteration, and state are required. Choose LangGraph when your system needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-step decision making that can loop until an exit condition is met.&lt;/li&gt;
&lt;li&gt;Routing queries to specialist agents depending on context.&lt;/li&gt;
&lt;li&gt;Persistent state across many LLM calls and user interactions.&lt;/li&gt;
&lt;li&gt;Sophisticated tool usage, including multi-turn web searches, summarization, and aggregation of external sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, I built an email drafting agent that retrieves user preferences, consults a calendar, drafts an email, asks for clarifications, and then iteratively refines the draft. That kind of workflow maps naturally to LangGraph.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzh69zxgs5ffrij3zhjnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzh69zxgs5ffrij3zhjnc.png" alt="full langgraph tutorial" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Hands-on walkthrough - a practical LangChain example
&lt;/h4&gt;

&lt;p&gt;I often demonstrate concepts with a RAG example using a vector store. The LangChain pattern looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install the required packages and configure API keys.&lt;/li&gt;
&lt;li&gt;Create prompt templates that accept variables such as "objective" and "topic".&lt;/li&gt;
&lt;li&gt;Initialize an LLM or local model connector via Hugging Face, OpenAI, or other providers.&lt;/li&gt;
&lt;li&gt;Store documents in a vector database and create a retriever.&lt;/li&gt;
&lt;li&gt;Build a retrieval-augmented generation chain that retrieves context and synthesizes answers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This pattern stays linear: retrieve relevant docs then generate an answer. It suits many FAQ bots, documentation assistants, and single-pass pipelines. The code is compact and easy to iterate on, which is one of the core advantages when comparing "LangChain vs LangGraph".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvbdd1iolbftfjptcsyw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwvbdd1iolbftfjptcsyw.png" alt="RAG Pipeline" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Hands-on walkthrough - a practical LangGraph example
&lt;/h4&gt;

&lt;p&gt;Now imagine the same task but with the added need to fetch fresh web results when the local corpus lacks recent information. A LangGraph workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Load static content into a vector store from URLs or documents.&lt;/li&gt;
&lt;li&gt;Create graph nodes: retrieve, web search, decision, and generate.&lt;/li&gt;
&lt;li&gt;Define state: track whether the retrieved results answered the user, store interim summaries, and record tool outputs.&lt;/li&gt;
&lt;li&gt;Connect nodes with conditional edges: if local retrieval fails, route to web search; if web search yields too many noisy results, ask clarifying questions; loop back as needed.&lt;/li&gt;
&lt;li&gt;Run the graph and allow it to iterate until a stop condition is met, then return the final synthesis.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This pattern enables multi-turn tool use and agentic reasoning. In my tests, asking a LangGraph agent about "latest AI developments this month" triggers a web search node when the local knowledge is stale. The agent fetches, summarizes, and checks whether the summary is adequate before presenting it. That behavior highlights the distinction when comparing "LangChain vs LangGraph".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcz5za2wqyc1aixpn5fgn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcz5za2wqyc1aixpn5fgn.png" alt="fully Langgraph tutorial" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Common patterns and anti-patterns
&lt;/h4&gt;

&lt;p&gt;Over time I found patterns that help decide between "LangChain vs LangGraph". Use them as heuristics.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pattern&lt;/strong&gt;: Start simple - If the problem is single-pass, build with LangChain to validate your prompts quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pattern&lt;/strong&gt;: Evolve to graph - If your single-pass pipeline accumulates conditionals and stateful checkpoints, refactor into a LangGraph graph incrementally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anti-pattern&lt;/strong&gt;: Premature complexity - Avoid implementing a full graph when no loops or persistent state are needed. Over-engineering reduces clarity and increases maintenance cost.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anti-pattern&lt;/strong&gt;: One-off tool calls - If you need repeated or multi-stage tool orchestration, a linear chain becomes fragile. LangGraph's native edges and state are better suited.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Example architecture templates
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r217htces9siqn5n2dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r217htces9siqn5n2dw.png" alt="architecture templates" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are two templates I reuse frequently depending on the "LangChain vs LangGraph" decision.&lt;/p&gt;

&lt;h4&gt;
  
  
  Template A - LangChain RAG pipeline
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;User query → Retriever → LLM prompt → Result → Store conversation (optional)&lt;/li&gt;
&lt;li&gt;Good for document Q&amp;amp;A, help centers, and chatbots where each request is largely independent.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Template B - LangGraph agentic pipeline
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;User query → Retrieve → Decision node (sufficient?) → If no, Web search node → Summarize → Reflect/loop → Final generate → Persist episodic memory&lt;/li&gt;
&lt;li&gt;Good for dynamic information requests, research assistants, and multi-agent workflows that need iterative reasoning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Practical tips for migration and scaling
&lt;/h4&gt;

&lt;p&gt;If you start with LangChain and need to migrate to LangGraph, I recommend the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identify the branching points in your LangChain where decision logic begins to appear.&lt;/li&gt;
&lt;li&gt;Extract prompt templates and retrievers as independent modules that can be used by graph nodes.&lt;/li&gt;
&lt;li&gt;Introduce a lightweight state store so node outputs can be persisted across invocations.&lt;/li&gt;
&lt;li&gt;Replace monolithic chains with nodes that encapsulate a single responsibility: retrieval, web search, summarization, or validation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scaling a LangGraph system requires operational considerations: durable state storage, idempotency of nodes, observability of edges, and human checkpoints for expensive actions. Planning for those early prevents surprises when workflows become long-running.&lt;/p&gt;

&lt;h4&gt;
  
  
  Final decision guide - quick checklist
&lt;/h4&gt;

&lt;p&gt;When I decide between "LangChain vs LangGraph", I run through this checklist:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the workflow single-pass? Choose LangChain.&lt;/li&gt;
&lt;li&gt;Does it require looping or complex decisioning? Choose LangGraph.&lt;/li&gt;
&lt;li&gt;Will the system need to call multiple tools over time? Lean LangGraph.&lt;/li&gt;
&lt;li&gt;Are you prototyping or exploring prompts? Start with LangChain.&lt;/li&gt;
&lt;li&gt;Do you expect long-term sessions and persistent context? LangGraph is preferable.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Closing thoughts
&lt;/h4&gt;

&lt;p&gt;Both frameworks share a common goal: make building with LLMs easier. The difference is architectural intent. LangChain shines for linear orchestration and rapid prototyping. LangGraph shines for stateful, agentic, and cyclic workflows that require coordination, persistence, and multi-turn tool usage.&lt;/p&gt;

&lt;p&gt;When I evaluate "LangChain vs LangGraph" for a product, I balance time to ship against future complexity. If you expect your system to become an autonomous assistant or coordinator, start with a graph mindset and migrate components in. If you need a fast, maintainable pipeline today, LangChain will likely serve you well.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;LangChain goes like this - A then B then C, follows a pre-defined path. LangGraph on the other hand, follows a dynamic path. It starts with A, then it decides if it needs B or C. It can go to C directly depending on the scenario. Loop, and repeat until the goal is satisfied.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you want to reproduce the examples I described, begin with prompt templates and a small vector store for LangChain. For LangGraph, model nodes as single-responsibility components and define clear state schemas for the data that flows through the graph.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2e74kkm0lottgsyg1h6f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2e74kkm0lottgsyg1h6f.png" alt="LangGraph first tutorial" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Complete code examples below.&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;LangChain RAG Tutorial: &lt;a href="https://github.com/pavanbelagatti/LangChain-SingleStore-Package" rel="noopener noreferrer"&gt;https://github.com/pavanbelagatti/LangChain-SingleStore-Package&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Agentic Workflow Tutorial: &lt;a href="https://github.com/pavanbelagatti/LangGraph-Agentic-Tutorial%C2%A0" rel="noopener noreferrer"&gt;https://github.com/pavanbelagatti/LangGraph-Agentic-Tutorial &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below is my complete video on understanding more about LangChain vs. LangGraph.&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/mysm1WAWXbw"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>rag</category>
      <category>agents</category>
    </item>
    <item>
      <title>Transformers: The Magic Engine Behind ChatGPT, Gemini &amp; Every Modern AI Model!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Mon, 17 Nov 2025 07:52:47 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/transformers-the-magic-engine-behind-chatgpt-gemini-every-modern-ai-model-5abk</link>
      <guid>https://forem.com/pavanbelagatti/transformers-the-magic-engine-behind-chatgpt-gemini-every-modern-ai-model-5abk</guid>
      <description>&lt;p&gt;I want to walk you through one of the most important breakthroughs in modern artificial intelligence. The model family called Transformers changed everything about how machines read, understand, and generate language. In this article I explain why Transformers were invented, how they work, and why they sit at the core of systems like GPT, BERT, LLaMA, Claude, and Gemini. I will start from the basics and build up step by step so you can see the full story from simple neural networks to the powerful attention based architecture that powers today's most generative AI systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we needed a new architecture?
&lt;/h2&gt;

&lt;p&gt;When I first learned about sequence processing in AI I noticed a consistent pattern. Early neural networks were great at classifying static inputs like images or tabular data. But language is not a static object. Language unfolds as a sequence. Words depend on earlier words and sometimes on words that appeared many steps before. If a model cannot remember or focus selectively across the whole sequence, it will lose important context. That is the problem Transformers were built to solve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxeqfjbt6u8f0hwe9wr8h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxeqfjbt6u8f0hwe9wr8h.png" alt="LLM Architecture" width="735" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Transformers came into the world to overcome two main limitations. First, earlier models struggled to carry long distance context. Second, those models were often slow to train because they processed tokens one by one. Transformers solved both problems by introducing a powerful mechanism called attention and by processing sequences in parallel. That single change unlocked much larger models, faster training, and far better handling of long context. That is why Transformers now power nearly every large language model and many other AI systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Machine learning and deep learning
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7t6o6eqt797jx0dbaw2n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7t6o6eqt797jx0dbaw2n.png" alt="AI Layers" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;&lt;strong&gt;Image credits: ResearchGate.Net&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let me set the scene by explaining where Transformers sit in the big picture. Artificial intelligence is a broad field. Within it, machine learning is the branch that gives machines the ability to learn from data rather than follow explicitly coded rules. Within machine learning, deep learning is a specialization that uses multi layer artificial neural networks to learn complex patterns from large datasets. Transformers are an architecture within deep learning. They are a specific neural network design that excels at dealing with sequences such as text and speech.&lt;/p&gt;

&lt;p&gt;Machine learning has three common learning paradigms that are worth recalling because they influence how models are trained and used.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lx4t2v85nn7mma3u39r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1lx4t2v85nn7mma3u39r.png" alt="machine learning" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Supervised learning&lt;/strong&gt;: The model learns from labeled examples. For example, you show many images labeled cat or not cat. The model learns the mapping from image to label and can then predict on new images.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Unsupervised learning&lt;/strong&gt;: The model finds structure in unlabeled data. Clustering customers by behavior or learning useful vector representations of words are typical examples.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reinforcement learning&lt;/strong&gt;: The model learns by trial and error, maximizing rewards. This is common in game playing or robotics where actions lead to feedback signals.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Artificial neural networks (ANNs) and their limitations
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0vhmgyh08xj8ztb29ow.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0vhmgyh08xj8ztb29ow.png" alt="ANNs" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Artificial neural networks, or ANNs, are inspired by the brain. They consist of neurons arranged in layers. Each neuron receives inputs, computes a weighted sum, applies a non linear function, and passes a signal forward. Classic feed forward networks work well for image recognition and many other tasks where the entire input can be treated as a static snapshot.&lt;/p&gt;

&lt;p&gt;However feed forward ANNs have a key limitation when it comes to language. They do not have a built-in mechanism to remember earlier words. If you present a sentence to a feed forward network, it sees the sentence as a fixed vector. It does not inherently model sequences or temporal dependencies. Language is not a collection of isolated tokens. Words interact over time. For instance consider the pair dog bites man and man bites dog. The same words appear in both phrases but the meaning is inverted by order. Feed forward methods do not track order naturally. That is why sequence specific models were developed.&lt;/p&gt;
&lt;h3&gt;
  
  
  Recurrent neural networks (RNNs) and the memory problem
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fynl0408f851qgyn3nrcs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fynl0408f851qgyn3nrcs.png" alt="RNNs" width="660" height="188"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Image credits: GeeksForGeeks&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recurrent neural networks, or RNNs, were the first widely used family of models designed for sequential data. The core idea is intuitive. Rather than treating the input as a static vector, an RNN reads tokens one at a time and maintains a hidden state or memory vector that summarizes what it has seen so far. Each new token updates the hidden state. This memory is then used to predict the next token or the output label. RNNs therefore give the model a way to remember previous context as the sequence unfolds.&lt;/p&gt;

&lt;p&gt;RNNs were a major step forward, but they had two serious drawbacks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Vanishing and exploding gradients&lt;/strong&gt;. When training RNNs with long sequences, gradients that propagate back through many steps tend to vanish or explode, making it hard to learn long range dependencies. Variants like LSTM and GRU mitigated this, but the core issue remained challenging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sequential computation&lt;/strong&gt;. RNNs process tokens one by one. This sequential nature makes training slow and prevents efficient parallelization on modern hardware. As models grew larger and datasets exploded, this became a severe bottleneck.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we had a class of models that could remember, but only for a limited number of steps, and they were slow to train. A new idea was needed. That idea is attention.&lt;/p&gt;
&lt;h2&gt;
  
  
  Attention: the key idea
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftworotg2a7zfm4bsnnr5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftworotg2a7zfm4bsnnr5.png" alt="Attention" width="800" height="595"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Image credits: Wikipedia&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Attention is a mechanism that allows a model to look selectively at different parts of the input sequence when producing each output. Instead of relying solely on a single hidden state to carry all past information, attention lets the model compute a direct measure of relevance between any two tokens in the sequence. It answers a simple question for every pair of tokens: how much should token A pay attention to token B?&lt;/p&gt;

&lt;p&gt;Why is that powerful? Because attention breaks the sequential bottleneck and allows the model to connect distant tokens directly. Consider the sentence The cat sat on the mat and it was fluffy. When interpreting the word it, attention helps the model link it directly to cat even though the tokens between them might be several steps long. This alleviates the forgetting problem that RNNs faced.&lt;/p&gt;

&lt;p&gt;A key property of attention is parallelism. Attention computations can be done for all token pairs in parallel. This enables much faster training on modern GPUs and TPUs. Attention also makes it easier to scale to very large models and very long sequences.&lt;/p&gt;
&lt;h3&gt;
  
  
  Attention is All You Need
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsw3ygpdiinq9oqdbk6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzsw3ygpdiinq9oqdbk6y.png" alt="attention is all you need" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That phrase comes from the landmark 2017 paper ‘Attention is All You Need’ that introduced the Transformer architecture. The paper showed that a model built entirely around attention, without recurrent operations, could match or beat prior sequence models on machine translation and other tasks. Crucially, the paper demonstrated that attention based models are faster to train and scale better.&lt;/p&gt;
&lt;h2&gt;
  
  
  Let's dive into Transformers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxjs4unub4a1z69molua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkxjs4unub4a1z69molua.png" alt="Transformer architecture" width="758" height="978"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a high level, a Transformer is a neural network architecture that relies primarily on attention mechanisms to process sequences. It replaces the recurrent parts of previous models with attention based blocks and feed forward networks wrapped with normalization and residual connections. Transformers operate on the entire sequence at once and learn relationships between tokens through attention.&lt;/p&gt;

&lt;p&gt;A Transformer typically has two major components in the original design: an encoder and a decoder. The encoder reads and builds a representation of the input. The decoder generates the output sequence based on that representation. Many modern variants use only the encoder or only the decoder depending on the task. For example, BERT is encoder only and is used for understanding tasks. GPT models are decoder only and are focused on generation. The general architecture and the attention concept are shared across all these variants.&lt;/p&gt;
&lt;h3&gt;
  
  
  High level flow
&lt;/h3&gt;

&lt;p&gt;Here is the simplified flow you can keep in mind.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Input tokens are converted into embeddings, numeric vectors that capture meaning.&lt;/li&gt;
&lt;li&gt;Positional information is added to embeddings so the model knows token order.&lt;/li&gt;
&lt;li&gt;The encoder applies stacked layers of multi head self attention and feed forward networks to produce contextualized representations.&lt;/li&gt;
&lt;li&gt;The decoder uses masked self attention to generate tokens step by step while also attending to the encoder outputs to ground generation on the input.&lt;/li&gt;
&lt;li&gt;The final decoder output is passed through a linear layer and softmax to convert scores into probabilities for the next token.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Key components of Transformers
&lt;/h3&gt;

&lt;p&gt;To understand Transformers in more detail, I will break down the most important pieces and explain what each does and why it matters.&lt;/p&gt;
&lt;h4&gt;
  
  
  1. Token embeddings and positional encoding
&lt;/h4&gt;

&lt;p&gt;Text is discrete and machines need numbers. The first step is to convert each token into a vector. Embeddings capture word meaning in continuous space. Similar words or words that appear in similar contexts end up with similar vectors.&lt;/p&gt;

&lt;p&gt;Transformers process the entire sequence in parallel, so they need explicit information about token order. That is the role of positional encoding. We add a positional vector to each token embedding. This combined vector tells the model both what the token is and where it is in the sequence. Without positional signals the model would not be able to distinguish dog bites man from man bites dog.&lt;/p&gt;
&lt;h4&gt;
  
  
  2. Self attention and scaled dot product
&lt;/h4&gt;

&lt;p&gt;The core operation inside Transformers is self attention. For each token we compute three vectors: the query, the key, and the value. Queries and keys are used to compute attention scores that tell us how much one token should attend to another. Values carry the information that will be combined weighted by those attention scores.&lt;br&gt;
Mathematically, we take the dot product of the query for token i with the key for token j, scale the result, and apply softmax across j to get attention weights. Those weights are used to compute a weighted sum of the value vectors, producing a new representation for token i that incorporates information from other tokens. This is done in parallel for all tokens.&lt;/p&gt;
&lt;h4&gt;
  
  
  3. Multi head attention
&lt;/h4&gt;

&lt;p&gt;Multi head attention means we compute several independent attention operations in parallel and then concatenate their outputs. Each attention head can focus on different types of relationships. For example one head might learn to track subject verb agreement while another head learns to attach pronouns to their referents. Multiple heads give the model richer, more diverse ways to relate tokens.&lt;/p&gt;
&lt;h4&gt;
  
  
  4. Add and norm
&lt;/h4&gt;

&lt;p&gt;Residual connections and normalization are critical for training deep models. After each attention or feed forward block we add the block input to the block output and normalize the result. This stabilizes gradients and enables training much deeper stacks of layers. Conceptually, add and norm helps the model combine new transformed information with the original signal while keeping the training dynamics stable.&lt;/p&gt;
&lt;h4&gt;
  
  
  5. Feed forward networks
&lt;/h4&gt;

&lt;p&gt;Each Transformer layer contains a position wise feed forward network. This is a small two layer neural network applied independently to each position. It increases the model capacity by allowing non linear transformation of each token representation. Feed forward layers are applied after attention and help the model refine the contextualized representation.&lt;/p&gt;
&lt;h4&gt;
  
  
  6. Masked attention in the decoder
&lt;/h4&gt;

&lt;p&gt;When generating sequences autoregressively, the model should not peek at future tokens. The decoder uses masked self attention so each position can only attend to previous positions and itself. This prevents cheating and ensures the model learns to predict the next token from what it has generated so far.&lt;/p&gt;
&lt;h4&gt;
  
  
  7. Cross attention from decoder to encoder
&lt;/h4&gt;

&lt;p&gt;In the encoder decoder design, the decoder includes attention layers that attend to encoder outputs. This cross attention step lets the decoder use the encoder representation of the input as context while generating output. It is the mechanism by which the decoder grounds its generation on the input sequence.&lt;/p&gt;
&lt;h4&gt;
  
  
  8. Final linear and softmax
&lt;/h4&gt;

&lt;p&gt;After the decoder produces the final contextualized vectors, a linear projection maps those vectors to vocabulary sized logits. Softmax converts the logits into probabilities over the vocabulary. The highest probability token is chosen as the next output, or a sampling strategy can be used to introduce diversity.&lt;/p&gt;
&lt;h3&gt;
  
  
  Putting it all together: encoder and decoder
&lt;/h3&gt;

&lt;p&gt;Let me summarize the encoder and decoder roles in concrete terms.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Encoder&lt;/em&gt;&lt;/strong&gt;: Takes the input sequence, converts tokens to embeddings, adds positional information, and applies N stacked layers of multi head self attention followed by feed forward networks. The encoder outputs a set of contextualized vectors, one per input token. Those vectors capture how each token relates to others in the input.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Decoder&lt;/em&gt;&lt;/strong&gt;: Starts with output token embeddings plus positional encoding. It uses masked self attention to process the partial output sequence generated so far. Then it uses multi head cross attention to attend to the encoder outputs. It further refines the combined information with feed forward layers and finally produces logits that are converted to probabilities for the next token.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repeat these blocks and stack many layers. Each layer refines the representation, enabling complex features and long range dependencies to be captured. That is the power of deep Transformers.&lt;/p&gt;
&lt;h3&gt;
  
  
  Why Transformers are so effective
&lt;/h3&gt;

&lt;p&gt;I can condense the reasons why Transformers succeeded into a few connected points.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Parallelism&lt;/strong&gt;. Unlike RNNs, Transformers process all tokens simultaneously. This unlocks massive speedups on GPUs and TPUs, making it feasible to train on very large datasets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Direct long range interactions&lt;/strong&gt;. Attention connects any pair of tokens directly, so models can capture relationships across long distances without needing to propagate information through many intermediate steps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;. Transformers scale well with model size and data. Increasing layers, hidden sizes, and heads generally leads to better performance when sufficient data and compute are available.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility&lt;/strong&gt;. The same architecture can be applied to language, vision, audio, and multimodal tasks. The only changes necessary are tokenization and sometimes positional encodings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interpretability&lt;/strong&gt;. Attention weights provide a rough, often useful signal about which tokens a model is focusing on. While not a definitive explanation tool, attention maps give us intuition about the model behavior.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Common analogies to understand attention and Transformers
&lt;/h3&gt;

&lt;p&gt;I like using a few simple analogies to make intuition stick.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reading a paragraph&lt;/strong&gt;. When you read a paragraph, you do not reread every previous sentence in order to understand the current sentence. Your mind jumps to the most relevant earlier lines. Attention does the same. It lets the model jump to the most relevant tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Searchlight&lt;/strong&gt;. Think of attention as a searchlight that shines on relevant words. Multi head attention is multiple searchlights, each tuned to a different pattern such as subject tracking, negation detection, or coreference resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Index cards on a table&lt;/strong&gt;. Imagine laying all words out as index cards. Instead of stacking them and reading sequentially, you can scan across the table and pick the exact card you need. Transformers make it possible to scan the whole table at once.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Concrete examples
&lt;/h3&gt;

&lt;p&gt;Examples cement understanding. Consider the simple sentence: ‘The cat sat on the mat and it was fluffy’. When the model generates the token, direct connections will allow the model to link it back to the cat token even though several tokens separate them.&lt;/p&gt;

&lt;p&gt;Another example is translating a long sentence where the verb in the first clause must agree with a subject in a much later clause. RNNs struggled to retain that subject information across many steps. Transformers handle this by letting the decoder attend directly to the subject token in the encoder outputs.&lt;/p&gt;

&lt;p&gt;Finally, consider tasks where relationships are non local. For instance in code generation, a function defined early can be called much later. Attention enables the model to relate the call site and the definition directly.&lt;/p&gt;
&lt;h3&gt;
  
  
  Variants and modern practice
&lt;/h3&gt;

&lt;p&gt;Although I described the original encoder decoder Transformer, modern systems vary.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Encoder only&lt;/strong&gt;: Models like BERT use only the encoder. They are trained to produce high quality contextualized representations and are suited for classification, question answering, and feature extraction tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decoder only&lt;/strong&gt;: Models like GPT use only the decoder and are trained autoregressively to predict the next token. These models are natural for generation tasks like chat and story writing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encoder decoder with modifications&lt;/strong&gt;: Machine translation and many sequence transduction tasks still use encoder decoder Transformers, often with task specific adjustments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sparse and efficient Transformers&lt;/strong&gt;: Researchers are working on variants that reduce the quadratic cost of attention with respect to sequence length, enabling longer context windows at lower compute cost.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Practical implications
&lt;/h3&gt;

&lt;p&gt;The arrival of Transformers led directly to the era of large language models. Because Transformers scale effectively, researchers built increasingly large models trained on web scale data. Those models exhibit surprising capabilities in translation, summarization, question answering, code generation, and more. A few practical consequences are worth noting.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Foundation models&lt;/strong&gt;: Large pre trained Transformer based models serve as foundations that can be fine tuned or prompted for many downstream tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transfer learning&lt;/strong&gt;: Pre training on large unlabeled corpora followed by supervised fine tuning or prompt engineering unlocked rapid progress across NLP tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multimodality&lt;/strong&gt;: Transformers can be extended to multiple modalities simply by changing tokenization. Vision Transformers treat image patches as tokens, enabling a unified architecture across text and vision.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Computation and cost&lt;/strong&gt;: The flip side of scaling is cost. Training large Transformers is expensive and energy intensive. This has pushed work on efficient architectures, distillation, and parameter efficient fine tuning.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  From Transformers to Production: The Role of Data Infrastructure
&lt;/h3&gt;

&lt;p&gt;While Transformers revolutionized how models process language, deploying these systems at scale introduces a critical challenge: managing the embeddings they produce. When models like GPT or BERT convert text into vector representations, those embeddings need to be stored, searched, and combined with enterprise data in real time. This is where specialized data infrastructure becomes essential.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=transformer&amp;amp;utm_content=devto" rel="noopener noreferrer"&gt;SingleStore&lt;/a&gt; addresses this challenge by providing a unified platform that handles both vector embeddings and traditional enterprise data. The platform offers indexed Approximate Nearest Neighbor search that delivers up to 1000x faster vector search performance compared to precise methods, making it practical to search through millions of embeddings in milliseconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4hwr48riu2n62rbpu4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz4hwr48riu2n62rbpu4b.png" alt="SingleStore database" width="800" height="799"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For generative AI applications, SingleStore enables Retrieval Augmented Generation, a pattern where relevant enterprise data is matched against user queries using semantic search before being sent to language models. This grounds Transformer-based systems in factual, company-specific information and reduces hallucinations.&lt;/p&gt;

&lt;p&gt;The platform combines vector similarity search with full-text search, SQL analytics, and support for multiple data types including JSON and time-series data. It integrates with leading AI frameworks like LangChain, OpenAI, Hugging Face, and AWS Bedrock, simplifying the path from prototype to production.&lt;/p&gt;

&lt;p&gt;Through SingleStore Notebooks, developers can prototype AI applications using familiar Jupyter-style interfaces while maintaining enterprise-grade security and performance. This bridges the gap between the theoretical power of Transformer architectures and practical deployment requirements that handle real-time data at scale.&lt;/p&gt;
&lt;h3&gt;
  
  
  Limitations and ongoing challenges
&lt;/h3&gt;

&lt;p&gt;Transformers are powerful, but not perfect. Here are some key limitations and open problems I think about.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Quadratic attention cost&lt;/em&gt;&lt;/strong&gt;: Vanilla attention computes interactions between all token pairs, which scales quadratically with sequence length. For very long contexts this becomes prohibitive.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Data and compute hunger&lt;/em&gt;&lt;/strong&gt;: State of the art performance often requires enormous datasets and massive compute budgets. This limits who can train the largest models from scratch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hallucinations and factuality&lt;/em&gt;&lt;/strong&gt;: Generative models can produce fluent but incorrect statements. Attention alone does not guarantee truthfulness.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Interpretability&lt;/em&gt;&lt;/strong&gt;: While attention gives some interpretability, fully understanding why large models produce specific outputs remains challenging.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Summary and final thoughts
&lt;/h3&gt;

&lt;p&gt;In practical terms Transformers brought three major shifts. First they allowed much larger models to be trained efficiently. Second they enabled models to learn complex, long range dependencies that earlier architectures struggled with. Third they provided a flexible framework that can be adapted to many modalities and tasks.&lt;/p&gt;

&lt;p&gt;If you take away one point it is this. Attention changed the game. By letting models focus on the most relevant parts of a sequence no matter where they appear, Transformers made machines much better at understanding and generating language.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Know more about Transformers in my in-depth YouTube video.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/0jjeEY7YSmE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>llm</category>
      <category>ai</category>
      <category>gpt3</category>
    </item>
    <item>
      <title>What is Context Engineering!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Thu, 16 Oct 2025 09:27:27 +0000</pubDate>
      <link>https://forem.com/singlestore-developer/what-is-context-engineering-10kk</link>
      <guid>https://forem.com/singlestore-developer/what-is-context-engineering-10kk</guid>
      <description>&lt;p&gt;AI systems have evolved so much that anyone can build highly agentic autonomous systems with no-code or low-code platforms/tools. We have come a long way from LLM chatbots to RAG systems to AI agents, but still there is one challenge that persists: context. LLMs are only as good as the information they have at the moment of reasoning. Without the right data, tools and signals, they hallucinate, make poor decisions or simply fail to execute reliably. Your AI systems should be equipped with proper context so that they are highly efficient and deliver value. This is where Context Engineering emerges as a discipline to optimally provide the right context at the right time to your AI systems.&lt;/p&gt;

&lt;p&gt;In this article, we’ll dig deeper into the world of context engineering and understand everything about it. Let’s get started. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is context engineering?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5m9jpw36cqqnvlo8n2g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj5m9jpw36cqqnvlo8n2g.png" alt="context engineering" width="800" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike prompt engineering, which focuses mainly on crafting clever instructions for LLMs, context engineering is the systematic discipline of designing and optimizing the surrounding environment in which AI systems operate. It goes beyond prompts to carefully structure the data, tools, information and workflows that maintain the overall context for an AI system. By doing so, context engineering ensures that tasks are executed not just creatively, but reliably, consistently and intelligently.&lt;/p&gt;

&lt;p&gt;At its core, context engineering acknowledges that an LLM by itself knows nothing relevant about a task. Its effectiveness depends on the quality and completeness of the context it receives. This involves curating the right knowledge sources, integrating external systems, maintaining memory across interactions, and aligning tools so the AI agent always has access to what it needs, when it needs it. Small gaps in context can lead to drastically different outcomes — errors, contradictions or hallucinations.&lt;/p&gt;

&lt;p&gt;That’s why context engineering is emerging as one of the most critical practices in building robust AI applications. It’s not just about telling the model what to do; it’s about setting up the stage, the rules and the resources so the AI can make better decisions, reason effectively and adapt to real-world complexity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prompt engineering vs. context engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj7uuqjb4202v8dv69zx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhj7uuqjb4202v8dv69zx.png" alt="Prompt engineering vs. context engineering" width="800" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Context engineering is fundamentally superior to prompt engineering because it addresses the core limitation of AI systems: they only know what you give them.Prompt engineering is like giving someone instructions without any background information, tools or reference materials. You're constantly trying to cram everything into a single question, hoping the AI remembers enough to answer correctly. It's unreliable — the same prompt can produce different results, and there's no way to maintain consistency across interactions or access real-time data.&lt;/p&gt;

&lt;p&gt;Context engineering treats the AI as part of a complete system. Instead of relying on clever wording, you architect the entire environment: you integrate knowledge databases so the AI accesses accurate information, connect external tools and APIs so it can perform real actions, implement memory systems so it remembers previous interactions, and establish workflows that ensure consistent, predictable behavior.&lt;/p&gt;

&lt;p&gt;The difference is profound. Prompt engineering is about asking better questions. Context engineering is about building better systems. One produces occasionally impressive outputs; the other creates reliable, production-ready applications.&lt;/p&gt;

&lt;p&gt;Small gaps in context lead to hallucinations, errors and failures. Context engineering eliminates these gaps systematically, ensuring the AI always has what it needs to make intelligent decisions and deliver consistent results in real-world applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  RAG vs. context engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhx9094qc5vfzw8jj5xsl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhx9094qc5vfzw8jj5xsl.png" alt="RAG vs. context engineering" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The RAG pipeline starts with a query from the user. That query is transformed into an embedding, a vector representation that captures semantic meaning. The system then performs a vector search across a knowledge base to find the most relevant pieces of information. Using Top-K retrieval, it selects a handful of the most similar results. These are then “stuffed into context” and fed into the LLM (Large Language Model). While this approach enriches the model with external knowledge, it is often rigid — relying heavily on similarity search and lacking adaptability in how context is used.&lt;/p&gt;

&lt;p&gt;On the right, context engineering builds on this idea but adds sophistication. After the query, it introduces a context router that decides how best to process and route the information. This router supports three key processes: selection (choosing the most relevant pieces), organization (structuring information logically), and evolution (adapting and improving context dynamically). These steps produce an optimized context, which is then passed to the LLM.&lt;/p&gt;

&lt;p&gt;The difference is clear: RAG fetches and dumps context, while context engineering curates, structures and evolves it, leading to more accurate, reliable and contextually aligned outputs.   &lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of MCP in Context Engineering
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3if29cjegl9uslypwgt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3if29cjegl9uslypwgt.png" alt="MCP in Context Engineering" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://modelcontextprotocol.io/docs/getting-started/intro" rel="noopener noreferrer"&gt;Model context protocol (MCP)&lt;/a&gt; has been the talk of the town for AI applications as a universal USB to plug &amp;amp; play with any tools &amp;amp; data sources. Instead of working with every API, MCP helps you manage everything in one place. The MCP serves as a critical foundation in context engineering, acting as a standardized intermediary between diverse data sources and AI models to deliver structured, actionable context for intelligent applications. &lt;/p&gt;

&lt;p&gt;MCP eliminates the complexity of bespoke integrations by providing a universal interface for databases (such as SQL, NoSQL, and vector stores), APIs, file systems, and external analytics tools. Through its four essential capabilities—standardized interface, context aggregation, dynamic retrieval, and security—MCP seamlessly collects, normalizes, and governs real-time data flow from multiple systems.&lt;/p&gt;

&lt;p&gt;Within context engineering, MCP enables dynamic context elicitation: it fetches, assembles, and secures relevant information tailored to the AI model’s current intent or task, vastly improving response relevance and grounding output in real, up-to-date enterprise knowledge. Developers utilize MCP servers to expose organization-specific data and permissions, while AI agents (such as LLMs) connect through MCP clients to intake context in machine-understandable formats, respond to user queries, and adapt outputs based on the latest data.&lt;/p&gt;

&lt;p&gt;SingleStore exemplifies the practical power of MCP in AI workflows. Its &lt;a href="https://github.com/singlestore-labs/mcp-server-singlestore" rel="noopener noreferrer"&gt;MCP server&lt;/a&gt; bridges LLMs and SingleStore’s high-performance databases, enabling natural language queries, workspace management, SQL execution, and even schema visualization—directly via AI assistants like Claude or development tools. The &lt;a href="https://www.singlestore.com/blog/presenting-singlestore-mcp-server/" rel="noopener noreferrer"&gt;SingleStore MCP server&lt;/a&gt; authenticates with enterprise databases, manages user-specific sessions, enforces access control, and provides seamless, context-rich interactions for both operational and analytical tasks—making it a flagship implementation of context engineering in modern enterprise AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building context-aware workflows with SingleStore
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hqjn0juhncoatoikfu2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0hqjn0juhncoatoikfu2.png" alt="Building context-aware workflows" width="800" height="579"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The diagram illustrates a simplified context engineering workflow built around SingleStore as the long-term memory layer. It begins with the user input, which serves as the query or problem statement. The system then performs retrieval and assembly, where relevant context is fetched from SingleStore using vector search and combined with short-term memory such as recent chat history to build a complete, context-rich prompt. This enhanced prompt is then passed to the LLM or AI agent, which processes it, performs reasoning and optionally executes external tool calls to generate a coherent, informed response. &lt;/p&gt;

&lt;p&gt;The final stage is write-back memory, where the generated answer, conversation insights and any new knowledge are stored back into SingleStore. This ensures that every new interaction strengthens the system’s contextual understanding over time. The result is a self-improving, context-aware workflow — the essence of context engineering in action.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context-aware tutorial with SingleStore
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=context&amp;amp;utm_content=ssblog" rel="noopener noreferrer"&gt;Sign up to SingleStore for free&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go to SingleStore, create a workspace and a database to hold the context.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj64f4v9ci2a7ky2276jd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj64f4v9ci2a7ky2276jd.png" alt="workspace" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a new notebook and start working&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Install required packages &amp;amp; dependencies
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install openai langchain langchain-community langchain-openai singlestoredb --quiet
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 2: Import requiredlLibraries and initialize components
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from langchain_openai import OpenAIEmbeddings  # works after installing langchain-openai
from langchain_community.vectorstores import SingleStoreDB
from openai import OpenAI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Set up SingleStore and OpenAI credentials
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SINGLESTORE_HOST = "Add host URL"   # your host
SINGLESTORE_USER = "admin"                     # your user
SINGLESTORE_PASSWORD = "Add your SingleStore DB password"    # your password
SINGLESTORE_DATABASE = "context_engineering"   # your database
OPENAI_API_KEY = "Add your OpenAI API key"
Step 4: Connect to the SingleStore Database
connection_string = f"mysql://{SINGLESTORE_USER}:{SINGLESTORE_PASSWORD}@{SINGLESTORE_HOST}:3306/{SINGLESTORE_DATABASE}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 5: Initialize embeddings and OpenAI client
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;embeddings = OpenAIEmbeddings(api_key=OPENAI_API_KEY)
client = OpenAI(api_key=OPENAI_API_KEY)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 6: Initialize the SingleStore vector database
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from langchain_community.vectorstores import SingleStoreDB
from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(api_key=OPENAI_API_KEY)

vectorstore = SingleStoreDB(
    embedding=embeddings,
    table_name="context_memory",
    host=SINGLESTORE_HOST,
    user=SINGLESTORE_USER,
    password=SINGLESTORE_PASSWORD,
    database=SINGLESTORE_DATABASE,
    port=3306
)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 7: Insert knowledge into long-term memory
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docs = [
    {"id": "1", "text": "SingleStore unifies SQL and vector search in a single engine."},
    {"id": "2", "text": "Context engineering ensures AI agents always have the right context at the right time."},
    {"id": "3", "text": "SingleStore is ideal for real-time RAG pipelines due to low-latency queries."}
]

# Insert into vector DB
vectorstore.add_texts([d["text"] for d in docs], ids=[d["id"] for d in docs])
print("✅ Knowledge inserted into SingleStore")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 8: Retrieve relevant context
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;query = "Why is SingleStore useful for context engineering?"
results = vectorstore.similarity_search(query, k=2)

print("🔹 Retrieved Context:")
for r in results:
    print("-", r.page_content)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 9: Build prompt for LLM
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from openai import OpenAI
client = OpenAI(api_key=OPENAI_API_KEY)

user_input = "Explain context engineering using SingleStore."

context = "\n".join([r.page_content for r in results])

prompt = f"""
You are a helpful AI agent.
User asked: {user_input}
Relevant context from memory:
{context}
"""

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": prompt}]
)

print("🔹 Agent Answer:\n", response.choices[0].message.content)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 10: Store conversation back (short-term → long-term memory)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vectorstore.add_texts([
    f"User: {user_input}", 
    f"Assistant: {response.choices[0].message.content}"
])


print("✅ Conversation stored back into SingleStore for future retrieval")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 11: Test retrieval again
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;followup_query = "What did we discuss earlier about context engineering?"
followup_results = vectorstore.similarity_search(followup_query, k=3)

print("🔹 Follow-up Retrieved Context:")
for r in followup_results:
    print("-", r.page_content)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The complete notebook code is present in this &lt;a href="https://github.com/pavanbelagatti/context-engineering-SingleStore" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;. &lt;/p&gt;

&lt;h4&gt;
  
  
  The future belongs to context-driven AI
&lt;/h4&gt;

&lt;p&gt;As AI systems become more capable, the real differentiator won’t be bigger models — it will be better context. The ability to deliver the right data, at the right time, in the right format will define how useful and reliable AI truly becomes. Context engineering transforms isolated LLMs into intelligent systems that understand, remember and act with purpose.&lt;/p&gt;

&lt;p&gt;By embracing this discipline, developers can move beyond clever prompts and instead build context-aware ecosystems where memory, reasoning and execution work in harmony. Frameworks like LangChain and databases like SingleStore make this vision practical — offering unified storage, hybrid search and high-speed retrieval that bring context to life.&lt;/p&gt;

&lt;p&gt;In short, context engineering isn’t just a new buzzword — it’s the backbone of the next generation of AI. The sooner we master it, the closer we get to building AI systems that don’t just respond, but truly understand.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>agents</category>
      <category>beginners</category>
    </item>
    <item>
      <title>A Hands-On Guide to Model Context Protocol (MCP)!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Fri, 01 Aug 2025 07:33:56 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/a-hands-on-guide-to-model-context-protocol-mcp-5hfo</link>
      <guid>https://forem.com/pavanbelagatti/a-hands-on-guide-to-model-context-protocol-mcp-5hfo</guid>
      <description>&lt;p&gt;In the rapidly evolving AI landscape, one of the most exciting developments is the Model Context Protocol, or MCP. This open-source protocol is transforming how large language models (LLMs) interact with external tools and data sources, enabling smarter, more context-aware AI applications. As someone deeply fascinated by AI and its real-world applications, I want to take you on a detailed journey into MCP — what it is, why it matters, and how you can start building your own MCP-enabled applications, especially using SingleStore as a powerful backend.&lt;/p&gt;

&lt;p&gt;Whether you’re a developer, AI engineer, or data scientist, this guide will provide a clear, step-by-step walkthrough and practical insights to help you harness MCP and elevate your AI projects. Let’s dive right in!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is MCP? An Introduction to Model Context Protocol
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ska8dqm4n4dpm3fud63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ska8dqm4n4dpm3fud63.png" alt="MCP image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP stands for Model Context Protocol. At its core, MCP is an open-source standard initially developed by Anthropic to standardize the way AI systems, particularly large language models, interact with external tools and data sources.&lt;/p&gt;

&lt;p&gt;Why is this important? Traditional LLMs are incredibly powerful but limited by their training data, which is static and can quickly become outdated. While retrieval-augmented generation (RAG) techniques allow LLMs to access external knowledge bases or documents, they fall short when it comes to interacting with dynamic tools or performing actions beyond reading data. This is where MCP shines.&lt;/p&gt;

&lt;p&gt;MCP allows LLMs to access real-world data and applications beyond their initial training datasets. It enables AI agents to perform actions like querying databases, managing projects, or even creating notebooks — all in a standardized, secure, and scalable way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxvj6imwyb3ev36vsn33.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faxvj6imwyb3ev36vsn33.png" alt="With MCP"&gt;&lt;/a&gt;&lt;br&gt;
Image credits &lt;a href="https://www.descope.com/learn/post/mcp" rel="noopener noreferrer"&gt;Descope&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Think of MCP as a universal remote or a USB-C port for AI applications: it provides a universal interface to connect any tool, service, or data source seamlessly to your AI models. This opens the door to building agentic AI applications that can automate complex workflows and interact with multiple external systems effortlessly.&lt;/p&gt;
&lt;h2&gt;
  
  
  Key Components of MCP
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbm0ftggu1ab9sowq29jl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbm0ftggu1ab9sowq29jl.png" alt="MCP Components"&gt;&lt;/a&gt;&lt;br&gt;
MCP image from the &lt;a href="https://arxiv.org/pdf/2503.23278" rel="noopener noreferrer"&gt;report&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To understand how MCP works, it’s crucial to know its three main components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hosts&lt;/strong&gt;: These are AI-powered applications where users interact with the AI, such as cloud desktops, integrated development environments (IDEs), or chatbots. This is your playground where the magic happens.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clients&lt;/strong&gt;: These modules exist within the host applications and manage the connections to servers. They act as intermediaries, facilitating communication between the host and the external resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Servers&lt;/strong&gt;: These are wrappers around external tools or data sources, exposing their capabilities to AI applications in a standardized way. Examples include a GitHub server or a SingleStore server, each representing a specific external system that the AI can interact with.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By structuring MCP this way, the protocol ensures modularity and flexibility, making it easy to add or swap out servers without disrupting the overall system.&lt;/p&gt;
&lt;h2&gt;
  
  
  How MCP Works: A Practical Overview
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqwh591hmkc07ci2f0si.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgqwh591hmkc07ci2f0si.png" alt="MCP overview"&gt;&lt;/a&gt;&lt;br&gt;
Credits: MCP workflow image by the report &lt;a href="https://arxiv.org/pdf/2503.23278" rel="noopener noreferrer"&gt;Model Context Protocol (MCP): Landscape, Security Threats, and Future Research Directions&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we already know, the MCP (Model Context Protocol) workflow demonstrates how AI agents and applications can seamlessly access and utilize external resources through a standardized protocol. The process begins when a user submits a prompt (like requesting the latest AAPL stock price via email) to MCP Hosts such as chat applications, IDEs, or AI agents.&lt;/p&gt;

&lt;p&gt;These hosts perform intent analysis to understand the request, then communicate through a Transfer Layer that handles the initial request, response, and notifications between clients and servers in a 1:1 relationship. The MCP Servers, which include various services like development tools, databases, and applications (represented by icons for services like GitHub, Gmail, Google Drive, and SQLite), receive these requests and leverage their specific capabilities — including access to Tools, Resources, and Prompts. Based on the request requirements, the servers perform tool selection and orchestration, potentially invoking APIs to access external data sources such as web services, databases, or local files.&lt;/p&gt;

&lt;p&gt;The system can also trigger notifications and sampling mechanisms as needed, ultimately delivering the requested information back through the same pathway to fulfill the user’s original request, creating a comprehensive ecosystem where AI applications can securely and efficiently interact with diverse external resources and services.&lt;/p&gt;
&lt;h3&gt;
  
  
  Much Simpler MCP Flow
&lt;/h3&gt;

&lt;p&gt;When a user interacts with an MCP-enabled AI application, the AI uses the protocol to access external information or trigger actions in other applications.&lt;/p&gt;

&lt;p&gt;For example, you could ask the AI to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search a database for specific information&lt;/li&gt;
&lt;li&gt;Create a task in a project management tool&lt;/li&gt;
&lt;li&gt;Add dummy data to your database for testing&lt;/li&gt;
&lt;li&gt;Create a notebook environment for data analysis_&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These operations happen in real-time, enabling the AI to be context-aware and agentic — meaning it can act autonomously based on the context it has gathered externally.&lt;/p&gt;
&lt;h2&gt;
  
  
  MCP Through Practical Hands-On
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Step 1: Meet SingleStore — The Ideal Database for MCP
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41qa3l7vb5kz6yf0p266.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F41qa3l7vb5kz6yf0p266.png" alt="SingleStore MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For MCP to be truly powerful, it needs a backend that can keep up with real-time data needs and support versatile querying capabilities. This is where SingleStore comes in.&lt;/p&gt;

&lt;p&gt;SingleStore is a relational database that supports vector data and hybrid search, making it perfect for RAG applications and serving as a vector database for AI models. Its high performance and real-time capabilities make it an excellent choice for MCP servers.&lt;/p&gt;

&lt;p&gt;With SingleStore, you can store, query, and manage your data efficiently, and integrate it seamlessly with MCP to empower your AI applications.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 2: Setting Up Your SingleStore MCP Server
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhswbl99q355rm79ru6u0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhswbl99q355rm79ru6u0.png" alt="SingleStore MCP Server"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting up your own SingleStore MCP server is simpler than you might think. Here’s a step-by-step guide to get you started:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Clone the GitHub Repository: The SingleStore MCP server is open source and available on &lt;a href="https://github.com/singlestore-labs/mcp-server-singlestore" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. The repository includes an installer and the MCP server code, enabling seamless integration.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prepare Your Environment: Ensure you have Python installed, along with necessary dependencies such as uvicorn. You’ll also need a SingleStore account, which offers a free tier with credits to get you started.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Initialize the MCP Server: Using the repository’s provided commands, run the init command in your terminal or VS Code. This sets up the MCP server quickly and efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Authenticate with SingleStore: You’ll need to authenticate your SingleStore account to allow the MCP server to access your databases securely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect Your MCP Client: Use an MCP-enabled client like a cloud desktop or chatbot to connect to your SingleStore MCP server. This client will manage interactions between you and the server.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once connected, you are ready to start interacting with your SingleStore database through MCP!&lt;/p&gt;
&lt;h3&gt;
  
  
  Step 3: Exploring MCP Server Capabilities with SingleStore
&lt;/h3&gt;

&lt;p&gt;With your SingleStore MCP server up and running, you can now explore various operations that showcase how MCP enhances AI capabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating a Database&lt;/strong&gt;: Start by asking your MCP client to create a new database. For example, you can say, “Create a database named test in my workspace.” The MCP server will handle the request, authenticate your workspace, and create the database for you.&lt;/p&gt;

&lt;p&gt;This process demonstrates how MCP abstracts away the complexity of database management and lets you operate with natural language commands.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adding Dummy Data&lt;/strong&gt;: Next, you can instruct the MCP client to add dummy data to your new database. The server will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create tables such as &lt;code&gt;employees&lt;/code&gt;, &lt;code&gt;products&lt;/code&gt;, and &lt;code&gt;orders&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Populate these tables with sample records&lt;/li&gt;
&lt;li&gt;Generate SQL commands behind the scenes to execute these tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For instance, the server might create an employees table with columns like first name, last name, email, department, and salary, then insert several sample employee records.&lt;/p&gt;

&lt;p&gt;This feature is invaluable for developers and data scientists who want to quickly prototype and test SQL queries or AI workflows without manually setting up data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running Queries and Analyzing Data&lt;/strong&gt;: After populating your database, you can query it using natural language or SQL commands. For example, you might ask for “all employees grouped by department,” and the MCP server will execute the SQL query and return aggregated data like employee counts and average salaries per department.&lt;/p&gt;

&lt;p&gt;This capability enables dynamic data exploration and empowers AI agents to provide actionable insights based on real-time data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is the complete step-by-step video tutorial below.&lt;/strong&gt;&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/0D1VFOMzzsU?start=1"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Verifying Your Data in SingleStore
&lt;/h3&gt;

&lt;p&gt;It’s always good to verify that the MCP server executed your commands correctly. You can log in to your SingleStore account and navigate to your workspace to check the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The newly created database (e.g., test)&lt;/li&gt;
&lt;li&gt;The tables created (employees, products, orders)&lt;/li&gt;
&lt;li&gt;Sample data inserted into these tables&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By viewing the data directly in SingleStore’s dashboard or data studio, you gain confidence that your MCP server is working as expected and that your AI client can interact with the database seamlessly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Automating Workflows with MCP Servers
&lt;/h3&gt;

&lt;p&gt;Beyond simple CRUD operations, MCP servers open the door to automating complex workflows. Here’s what you can do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schedule jobs to run at specific intervals&lt;/li&gt;
&lt;li&gt;Create and manage notebooks for data analysis&lt;/li&gt;
&lt;li&gt;Take snapshots of your database state&lt;/li&gt;
&lt;li&gt;Trigger actions in external applications based on AI decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By building MCP servers around your favorite tools and services, you can create a unified AI ecosystem where your models not only understand data but also act on it intelligently and autonomously.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why MCP is a Game-Changer for AI Applications
&lt;/h4&gt;

&lt;p&gt;The promise of MCP lies in its ability to overcome limitations that have traditionally held back LLMs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Real-Time Context&lt;/strong&gt;: MCP enables LLMs to access up-to-date information rather than relying solely on static training data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool Integration&lt;/strong&gt;: LLMs can interact with a wide range of external tools, from databases to project management apps, expanding their usefulness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardization&lt;/strong&gt;: MCP provides a standardized protocol, meaning developers can build modular, interoperable AI systems without reinventing the wheel.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentic AI&lt;/strong&gt;: With MCP, AI agents can take autonomous actions based on context, opening new horizons for automation and intelligent decision-making.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For anyone serious about building next-generation AI applications, understanding and leveraging MCP is essential.&lt;/p&gt;

&lt;h4&gt;
  
  
  Final Thoughts and Next Steps
&lt;/h4&gt;

&lt;p&gt;Model Context Protocol is truly a revolutionary step forward in making AI models smarter, more flexible, and more capable of interacting with the real world. By standardizing how AI connects to external data and tools, MCP unlocks new possibilities for building agentic AI applications that can automate workflows, analyze data, and perform tasks autonomously.&lt;/p&gt;

&lt;p&gt;Using SingleStore as an MCP server backend provides a robust, high-performance platform that supports complex querying and vector search, making it an ideal partner for MCP-powered AI systems.&lt;/p&gt;

&lt;p&gt;If you’re eager to get hands-on, I highly encourage you to visit the SingleStore MCP server GitHub repository, sign up for a free SingleStore account, and try setting up your own MCP server. Experiment with creating databases, adding dummy data, and running queries. This practical experience will deepen your understanding of MCP and prepare you to build powerful AI applications.&lt;/p&gt;

&lt;p&gt;Remember, the future of AI is not just about smarter models but about smarter interactions — and MCP is leading the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Useful Links to Get Started&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/singlestore-labs/mcp-server-singlestore" rel="noopener noreferrer"&gt;SingleStore MCP Server GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://tinyurl.com/SingleStoreMCP" rel="noopener noreferrer"&gt;Sign Up for SingleStore Free Tier&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for joining me on this deep dive into MCP. I hope this guide empowers you to explore and innovate with this exciting protocol.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Happy building!&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>ai</category>
      <category>database</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Top AI Coding Assistants Every Developer Should Try!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Fri, 30 May 2025 08:49:54 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/top-ai-coding-assistants-every-developer-should-try-38mm</link>
      <guid>https://forem.com/pavanbelagatti/top-ai-coding-assistants-every-developer-should-try-38mm</guid>
      <description>&lt;p&gt;The software development landscape has been revolutionized by AI coding assistants, transforming how developers write, debug, and optimize code. These intelligent tools have evolved from simple auto-completion features to sophisticated AI companions that understand context, generate entire functions, and even explain complex codebases. &lt;/p&gt;

&lt;p&gt;With the rapid advancement of large language models and machine learning, today's AI coding assistants offer unprecedented capabilities—from real-time code suggestions and bug detection to automated testing and refactoring. Whether you're a seasoned developer looking to boost productivity or a newcomer seeking guidance, the right AI coding assistant can significantly accelerate your development workflow and code quality.&lt;/p&gt;

&lt;p&gt;Let us talk about som eof the best AI coding assistants available in the market right now. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;GitHub Copilot&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ufjt3zzonhjqfdd0ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi7ufjt3zzonhjqfdd0ie.png" alt="copilot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The pioneer in AI code completion that works directly in your IDE, offering intelligent code suggestions and completions across multiple programming languages. It operates within integrated development environments (IDEs) like VS Code, JetBrains, or browser-based platforms, supporting a wide range of programming languages.&lt;/p&gt;

&lt;p&gt;GitHub Copilot now offers multiple pricing tiers, starting with a free plan that includes 2,000 auto-completions and 50 premium requests per month. The Pro plan at $10/month provides unlimited completions, while the new Pro+ plan at $39/month offers access to premium models like GPT-4.5 and 1,500 premium requests monthly. &lt;/p&gt;

&lt;p&gt;The platform excels in code review assistance, tracking work progress, and suggesting commit descriptions. It's particularly strong for developers working on collaborative projects, with features for organizational license management and IP indemnity for enterprise users. Students and open-source maintainers often qualify for free access, making it accessible to a broader developer community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.cursor.com/" rel="noopener noreferrer"&gt;Cursor&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqm56p57p78g3ncuqd77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqm56p57p78g3ncuqd77.png" alt="cursor ai"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the best AI developer tools in 2025. AI software development, Cursor is a powerful AI-first code editor that provides contextual assistance and code generation capabilities.&lt;/p&gt;

&lt;p&gt;Cursor features an innovative Agent Mode for end-to-end task automation, "Cursor Tab" for highly predictive multi-line autocomplete, and powerful context management using .cursorrules for project-specific AI behavior customization. It's one of the most sophisticated and feature-rich AI-powered IDEs available, combining AI tools with extensive manual control and designed for developers who want precision and a wide array of options for code generation, editing, and debugging. &lt;/p&gt;

&lt;p&gt;The platform excels at modifying existing code and making context-aware suggestions based on recent changes and linter errors. Its new agent mode can generate code across multiple files, run commands, and automatically determine required context without manual file selection.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aws.amazon.com/q/developer/" rel="noopener noreferrer"&gt;Amazon Q Developer&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ows4uf3ycimx7o1v7gt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4ows4uf3ycimx7o1v7gt.png" alt="amazon q developer ai"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon's entry into AI coding assistants that evolved from CodeWhisperer, integrating with JetBrains IDEs and VS Code via a plugin, and uniquely also provides a CLI agent designed to handle large projects and multiple tasks.&lt;/p&gt;

&lt;p&gt;Amazon Q Developer stands out with its enterprise-focused approach, offering specialized capabilities for AWS cloud development and infrastructure management. The platform provides real-time security scanning and vulnerability detection, making it particularly valuable for enterprises prioritizing secure code development. &lt;/p&gt;

&lt;p&gt;Its CLI agent is uniquely positioned to handle complex, multi-repository projects and can assist with deployment automation and cloud resource management. The tool integrates seamlessly with Amazon's broader ecosystem, including AWS CodeCommit, CodeBuild, and CodeDeploy, providing a comprehensive development experience for teams already invested in Amazon's cloud infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://windsurf.com/" rel="noopener noreferrer"&gt;Windsurf&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fac8cixx337sj7bjb5nhp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fac8cixx337sj7bjb5nhp.png" alt="Windsurf ai"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Listed among the best AI developer tools in 2025. AI software development, this is a newer entrant focused on providing comprehensive development assistance.&lt;/p&gt;

&lt;p&gt;Windsurf generally has a cleaner UI compared to Cursor's, feeling like comparing an Apple product to a Microsoft one. Unlike Cursor where you usually have to add context manually or tag the codebase, Windsurf automatically analyzes the codebase and chooses the right file to work on. &lt;/p&gt;

&lt;p&gt;The platform features advanced capabilities like Cascade, Supercomplete, and Memories, designed to boost developer productivity using the AI flow. Windsurf's step-by-step workflow is intuitive and offers superior automatic context detection. It excels in natural language code editing and provides sophisticated auto-completion that anticipates coding patterns. The editor's memory system learns from your coding style and project patterns, making suggestions increasingly personalized over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://aider.chat/" rel="noopener noreferrer"&gt;Aider&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf05etz2hm87jalwgk9l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf05etz2hm87jalwgk9l.png" alt="Aider AI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the top AI developer tools. AI software development, Aider specializes in helping with code modifications and refactoring.&lt;/p&gt;

&lt;p&gt;Aider effortlessly integrates into your existing development practices, providing sophisticated features like natural language code editing, smart auto-completion, and context-sensitive recommendations. By anticipating your next coding step and aligning with your unique coding style, it becomes an indispensable tool for legacy code maintenance. &lt;/p&gt;

&lt;p&gt;Aider excels in understanding complex codebases and can suggest architectural improvements and code optimization strategies. The platform is particularly valuable for teams working with technical debt, as it can identify areas for improvement and suggest refactoring approaches that maintain functionality while improving code quality. Its command-line interface makes it ideal for developers who prefer terminal-based workflows and batch processing of code modifications.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://sourcegraph.com/cody" rel="noopener noreferrer"&gt;Cody by Sourcegraph&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz36n0w21d7iyk5a3mck4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz36n0w21d7iyk5a3mck4.png" alt="Cody AI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An AI-powered assistant specifically designed for working with complex or legacy codebases, helping you find what you need in seconds, explains unfamiliar logic, and suggests refactoring improvements.&lt;/p&gt;

&lt;p&gt;Cody leverages Sourcegraph's powerful code search and analysis capabilities, making it exceptionally effective for large enterprise codebases with millions of lines of code. The platform provides advanced code graph analysis, allowing it to understand complex dependencies and relationships across multiple repositories. &lt;/p&gt;

&lt;p&gt;It excels in explaining unfamiliar code patterns and can provide historical context about code changes and their rationale. Cody's integration with Sourcegraph's code intelligence platform enables it to offer insights about code usage patterns, potential security vulnerabilities, and compliance issues. &lt;/p&gt;

&lt;p&gt;The tool is particularly valuable for onboarding new team members to complex projects and for maintaining code quality standards across large development teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.tabnine.com/" rel="noopener noreferrer"&gt;Tabnine&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6szajlr48nxeypv9k88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6szajlr48nxeypv9k88.png" alt="Tabnine AI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A popular AI coding assistant that provides intelligent code completions and works across multiple IDEs and programming languages.&lt;/p&gt;

&lt;p&gt;Tabnine offers both cloud-based and on-premises deployment options, making it suitable for organizations with strict security requirements. The platform supports over 30 programming languages and integrates with more than 15 IDEs, providing consistent AI assistance regardless of your development environment. &lt;/p&gt;

&lt;p&gt;Tabnine's local AI models ensure that sensitive code never leaves your environment, addressing privacy concerns common in enterprise settings. The tool learns from your team's coding patterns and can be trained on your specific codebase to provide more relevant suggestions. Its focus on privacy and security, combined with flexible deployment options, makes it a preferred choice for financial institutions, healthcare organizations, and other highly regulated industries.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://visualstudio.microsoft.com/services/intellicode/" rel="noopener noreferrer"&gt;Microsoft IntelliCode&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyihmwcjnr5l4v4gxvbwb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyihmwcjnr5l4v4gxvbwb.png" alt="Intellicode AI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another popular AI coding assistant that enhances Visual Studio and VS Code with AI-powered recommendations.&lt;/p&gt;

&lt;p&gt;IntelliCode leverages Microsoft's extensive experience in developer tools and integrates deeply with the Visual Studio ecosystem. The platform uses machine learning models trained on thousands of open-source projects to provide contextually relevant suggestions that go beyond simple auto-completion. &lt;/p&gt;

&lt;p&gt;It offers whole-line completions and can suggest variable names, function signatures, and code patterns based on your project's context. IntelliCode's tight integration with Microsoft's development ecosystem includes seamless support for .NET, Azure services, and Microsoft's broader developer toolchain. The tool provides personalized recommendations by learning from your coding habits and team conventions, making it particularly effective for teams standardized on Microsoft technologies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Powering AI Development with Modern Data Infrastructure
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j26icbfkredfwtt54rb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j26icbfkredfwtt54rb.png" alt="SingleStore database"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As developers increasingly integrate AI coding assistants into their workflows, the underlying data infrastructure becomes crucial for building custom AI applications. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=devto&amp;amp;utm_content=AIassist" rel="noopener noreferrer"&gt;SingleStore&lt;/a&gt; offers a unified platform combining traditional database capabilities with advanced vector processing, making it ideal for developers building AI-powered tools. &lt;/p&gt;

&lt;p&gt;With native vector database functionality, real-time performance, and support for RAG (Retrieval-Augmented Generation) applications, SingleStore enables developers to create sophisticated semantic search systems, documentation tools, and context-aware development assistants. Its hybrid search capabilities and SQL integration eliminate the need for multiple specialized databases, simplifying the architecture while delivering enterprise-grade performance for AI applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Below is my tutorial on how to build robust RAG systems using Deepseek-R1 &amp;amp; SingleStore.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82" class="crayons-story__hidden-navigation-link"&gt;Run DeepSeek-R1 Locally &amp;amp; Build RAG Applications!&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/pavanbelagatti" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68703%2F7bccb7a9-6fa4-416f-bad5-956f12ab6193.jpeg" alt="pavanbelagatti profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/pavanbelagatti" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Pavan Belagatti
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Pavan Belagatti
                
              
              &lt;div id="story-author-preview-content-2247595" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/pavanbelagatti" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68703%2F7bccb7a9-6fa4-416f-bad5-956f12ab6193.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Pavan Belagatti&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 29 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82" id="article-link-2247595"&gt;
          Run DeepSeek-R1 Locally &amp;amp; Build RAG Applications!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/deepseek"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;deepseek&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/developer"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;developer&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/coding"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;coding&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/fire-f60e7a582391810302117f987b22a8ef04a2fe0df7e3258a5f49332df1cec71e.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2902&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              27&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            6 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Below is my other tutorial on how to build efficient RAG systems using Llama 4 and SingleStore.&lt;/strong&gt;&lt;/p&gt;


&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/singlestore-developer/learn-how-to-build-robust-rag-applications-using-llama-4-2cmg" class="crayons-story__hidden-navigation-link"&gt;Learn How to Build Robust RAG Applications Using Llama 4!&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/singlestore-developer"&gt;
            &lt;img alt="SingleStore logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12110%2Fd3582d8f-2c09-48fa-83e9-e670097bc8c1.png" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/pavanbelagatti" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68703%2F7bccb7a9-6fa4-416f-bad5-956f12ab6193.jpeg" alt="pavanbelagatti profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/pavanbelagatti" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Pavan Belagatti
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Pavan Belagatti
                
              
              &lt;div id="story-author-preview-content-2390577" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/pavanbelagatti" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F68703%2F7bccb7a9-6fa4-416f-bad5-956f12ab6193.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Pavan Belagatti&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/singlestore-developer" class="crayons-story__secondary fw-medium"&gt;SingleStore&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/singlestore-developer/learn-how-to-build-robust-rag-applications-using-llama-4-2cmg" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 8 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/singlestore-developer/learn-how-to-build-robust-rag-applications-using-llama-4-2cmg" id="article-link-2390577"&gt;
          Learn How to Build Robust RAG Applications Using Llama 4!
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/database"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;database&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/singlestore-developer/learn-how-to-build-robust-rag-applications-using-llama-4-2cmg" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;10&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/singlestore-developer/learn-how-to-build-robust-rag-applications-using-llama-4-2cmg#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              4&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;AI coding assistants have become indispensable tools in modern software development, offering everything from intelligent code completion to sophisticated refactoring capabilities. The platforms covered—from GitHub Copilot's pioneering approach to Cursor's advanced agent mode and specialized tools like Cody for legacy codebases—demonstrate the diverse solutions available for different development needs. &lt;/p&gt;

&lt;p&gt;As these tools continue evolving with better context understanding and more powerful AI models, they're reshaping how we approach coding challenges. The key is experimenting with multiple assistants to find the perfect match for your workflow, coding style, and project requirements. Embrace these AI companions to unlock your full development potential.&lt;/p&gt;

</description>
      <category>development</category>
      <category>developers</category>
      <category>ai</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Build a Real-Time News AI Agent Using LangChain — In Just a Few Steps!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Mon, 26 May 2025 06:33:56 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/build-a-real-time-news-ai-agent-using-langchain-in-just-a-few-steps-4d60</link>
      <guid>https://forem.com/pavanbelagatti/build-a-real-time-news-ai-agent-using-langchain-in-just-a-few-steps-4d60</guid>
      <description>&lt;p&gt;In the rapidly evolving landscape of artificial intelligence, AI agents have emerged as one of the most practical and powerful applications of large language models. These intelligent systems can understand natural language, reason about complex tasks, and autonomously use specialized tools to accomplish goals—much like having a digital assistant that can think, plan, and execute actions on your behalf. Today, we'll explore how to build a sophisticated real-time news AI agent that can fetch current events, perform web searches, and engage in meaningful conversations, all while running locally on your machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding AI Agents
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmrveq87n1pdve46mlh9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmrveq87n1pdve46mlh9.png" alt="AI Agents image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AI agents represent a significant leap forward from traditional chatbots or simple question-answering systems. At their core, AI agents are autonomous software entities that can perceive their environment, make decisions, and take actions to achieve specific objectives. Unlike static AI models that simply respond to prompts, agents possess the ability to reason about problems, plan multi-step solutions, and dynamically select from a toolkit of specialized functions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architectural Deep Dive: Building Blocks of Our News Agent
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vrcvnluyq86dxs7orx4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vrcvnluyq86dxs7orx4.png" alt="AI Agent architecture"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our real-time news AI agent exemplifies modern agent architecture through its sophisticated yet approachable design. Built on LangChain—an open-source framework specifically designed for LLM-powered applications—the system demonstrates how to effectively combine reasoning capabilities with practical functionality.&lt;/p&gt;

&lt;p&gt;The foundation of our agent rests on OpenAI's GPT models, specifically leveraging the function calling capabilities that allow the model to determine when and how to use external tools. This isn't merely about generating text; it's about intelligent decision-making. When a user asks for "the latest news about climate change," the agent must understand the intent, decide which news tool to use, format the appropriate API call, process the results, and synthesize a coherent response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqv2e1t2hhme1ybpnlt3i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqv2e1t2hhme1ybpnlt3i.png" alt="AI Agents workflow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The agent's toolkit showcases the versatility of modern AI systems. The web search functionality uses DuckDuckGo to provide general information beyond the model's training data, ensuring the agent can access current information on virtually any topic. &lt;/p&gt;

&lt;p&gt;Two specialized news tools work in tandem: LatestNews fetches category-based or topic-specific stories, while LocationNews is optimized for geography-specific news retrieval. A calculator tool handles mathematical operations safely and efficiently, while the time tool provides temporal grounding, helping the agent understand "current" in the context of real-time requests.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Agent: Implementation
&lt;/h2&gt;

&lt;p&gt;Create a Python virtual environment first and then install the dependencies required.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install --upgrade "langchain&amp;gt;=0.2.0" "langchain-openai&amp;gt;=0.0.5" "langchain-community&amp;gt;=0.0.15"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Mention your api keys for AI agent's tool calling purpose&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OPENAI_API_KEY=Add your openai api key
TAVILY_API_KEY=Add your Tavily api key
NEWSAPI_API_KEY=Add your newsapi pai key
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Below is our agent implementation code workflow.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os
from dotenv import load_dotenv
import gradio as gr
from langchain_openai import ChatOpenAI
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.tools import Tool
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import AIMessage, HumanMessage
from langchain_community.tools.ddg_search import DuckDuckGoSearchRun
from datetime import datetime
import requests
import json

# Load environment variables
load_dotenv()

# Initialize the language model
llm = ChatOpenAI(
    model="gpt-4",
    temperature=0
)

# Define custom tools
def get_current_time() -&amp;gt; str:
    """Get the current date and time."""
    return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

def calculator(expression: str) -&amp;gt; str:
    """Evaluate a mathematical expression."""
    try:
        return str(eval(expression))
    except Exception as e:
        return f"Error calculating: {str(e)}"

def get_latest_news(query: str = "", category: str = "") -&amp;gt; str:
    """
    Get the latest news headlines.
    Parameters:
    - query: Search term for specific news (optional)
    - category: News category like business, entertainment, health, science, sports, technology (optional)
    """
    api_key = os.getenv("NEWSAPI_API_KEY")
    if not api_key:
        return "News API key not found. Please set NEWSAPI_API_KEY in your .env file."

    # Construct the API request
    url = "https://newsapi.org/v2/top-headlines"
    params = {
        "apiKey": api_key,
        "language": "en",
        "pageSize": 5  # Limit to 5 articles for readability
    }

    # Add optional parameters if provided
    if query:
        params["q"] = query
    if category and category.lower() in ["business", "entertainment", "general", "health", "science", "sports", "technology"]:
        params["category"] = category.lower()
    elif not query:  # Default to general news if no query or category
        params["category"] = "general"

    try:
        response = requests.get(url, params=params)
        if response.status_code == 200:
            news_data = response.json()
            if news_data["totalResults"] == 0:
                # Try an alternative approach with everything endpoint for location-based searches
                return get_location_news(query)

            # Format the results
            result = f"Latest News {f'on {query}' if query else ''} {f'in {category}' if category else ''}:\n\n"
            for i, article in enumerate(news_data["articles"], 1):
                result += f"{i}. {article['title']}\n"
                result += f"   Source: {article['source']['name']}\n"
                result += f"   Published: {article['publishedAt']}\n"
                result += f"   Summary: {article['description'] if article['description'] else 'No description available'}\n"
                result += f"   URL: {article['url']}\n\n"

            return result
        else:
            return f"Error fetching news: {response.status_code}"
    except Exception as e:
        return f"Error processing news request: {str(e)}"

def get_location_news(location: str) -&amp;gt; str:
    """
    Get news for a specific location using the everything endpoint.
    This is better for location-based searches.
    """
    api_key = os.getenv("NEWSAPI_API_KEY")
    if not api_key:
        return "News API key not found. Please set NEWSAPI_API_KEY in your .env file."

    # Use the everything endpoint which is better for location searches
    url = "https://newsapi.org/v2/everything"
    params = {
        "apiKey": api_key,
        "q": location,  # Search for the location name
        "sortBy": "publishedAt",  # Sort by most recent
        "language": "en",
        "pageSize": 5
    }

    try:
        response = requests.get(url, params=params)
        if response.status_code == 200:
            news_data = response.json()

            if news_data["totalResults"] == 0:
                return f"No news found for location: {location}. Try a different search term or check back later."

            # Format the results
            result = f"Latest News related to {location}:\n\n"
            for i, article in enumerate(news_data["articles"], 1):
                result += f"{i}. {article['title']}\n"
                result += f"   Source: {article['source']['name']}\n"
                result += f"   Published: {article['publishedAt']}\n"
                result += f"   Summary: {article['description'] if article['description'] else 'No description available'}\n"
                result += f"   URL: {article['url']}\n\n"

            return result
        else:
            return f"Error fetching location news: {response.status_code}"
    except Exception as e:
        return f"Error processing location news request: {str(e)}"

# Create search tool
duckduckgo_search = DuckDuckGoSearchRun()

# Define the tools
tools = [
    Tool(
        name="Search",
        func=duckduckgo_search.run,
        description="Useful for searching the web for current information."
    ),
    Tool(
        name="Calculator",
        func=calculator,
        description="Useful for performing mathematical calculations. Input should be a mathematical expression."
    ),
    Tool(
        name="CurrentTime",
        func=get_current_time,
        description="Get the current date and time. No input is needed."
    ),
    Tool(
        name="LatestNews",
        func=get_latest_news,
        description="Get the latest news headlines. You can specify a search query and/or category (business, entertainment, health, science, sports, technology)."
    ),
    Tool(
        name="LocationNews",
        func=get_location_news,
        description="Get news for a specific location or city. Input should be the name of the location (e.g., 'Mumbai', 'New York')."
    )
]

# Create the agent prompt
prompt = ChatPromptTemplate.from_messages([
    ("system", """You are an intelligent assistant that helps users with their questions.
    You have access to tools that can search the web, get the latest news, perform calculations, and get the current time.
    Use these tools to provide helpful and accurate responses.

    When asked about general news or news categories, use the LatestNews tool.
    When asked about news in a specific location or city, use the LocationNews tool.

    Always think step by step and explain your reasoning clearly.
    """),
    MessagesPlaceholder(variable_name="chat_history"),
    ("human", "{input}"),
    MessagesPlaceholder(variable_name="agent_scratchpad")
])

# Create the agent
agent = create_openai_tools_agent(
    llm=llm,
    tools=tools,
    prompt=prompt
)

# Create the agent executor
agent_executor = AgentExecutor.from_agent_and_tools(
    agent=agent,
    tools=tools,
    verbose=True,
    handle_parsing_errors=True,
    max_iterations=5
)

# Initialize chat history
chat_history = []

# Function to process user input
def process_input(message):
    global chat_history
    # Run the agent
    response = agent_executor.invoke({
        "input": message,
        "chat_history": chat_history
    })
    # Update chat history
    chat_history.append(HumanMessage(content=message))
    chat_history.append(AIMessage(content=response["output"]))
    return response["output"]

# Create the Gradio interface
with gr.Blocks(title="AI Agent Dashboard") as demo:
    gr.Markdown("# 🤖 AI Agent Dashboard")
    gr.Markdown("Ask me anything! I can search the web, get the latest news, perform calculations, and more.")

    chatbot = gr.Chatbot(height=500)
    msg = gr.Textbox(label="Your question", placeholder="Ask me about the latest news, search the web, or do calculations...")
    clear = gr.Button("Clear conversation")

    def respond(message, chat_history):
        bot_message = process_input(message)
        chat_history.append((message, bot_message))
        return "", chat_history

    def clear_chat():
        global chat_history
        chat_history = []
        return None

    msg.submit(respond, [msg, chatbot], [msg, chatbot])
    clear.click(clear_chat, None, chatbot, queue=False)

if __name__ == "__main__":
    demo.launch(share=True)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Run the application to see the AI Agent dashboard with real-time magic.&lt;br&gt;
&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python3 agent.py  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You should be able to open your localhost and see this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajweuckkcxiocfuymy3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fajweuckkcxiocfuymy3w.png" alt="local news"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcudx87itsofbgw4quovq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcudx87itsofbgw4quovq.png" alt="news info from sf"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The complete code is present here below.&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/pavanbelagatti" rel="noopener noreferrer"&gt;
        pavanbelagatti
      &lt;/a&gt; / &lt;a href="https://github.com/pavanbelagatti/LangChain-AI-Agent" rel="noopener noreferrer"&gt;
        LangChain-AI-Agent
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview of the AI Agent Architecture&lt;/h2&gt;
&lt;/div&gt;

&lt;p&gt;This agent is built using a modern AI architecture that combines large language models (LLMs) with specialized tools. The fundamental design pattern follows what's known as a "tool-using agent" architecture, where an LLM acts as the brain that can reason about problems and decide which specialized tools to use to accomplish tasks
Core Components and Technologies&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Framework: LangChain&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;LangChain is an open-source framework designed specifically for building LLM-powered applications.
It provides the scaffolding for connecting language models to external tools and data sources.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Language Model: OpenAI's GPT model&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;We used gpt-4, which supports function calling.
This allows the model to determine when to use which tools in a structured way.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Agent Type: OpenAI Tools Agent&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;We implemented the agent using LangChain's create_openai_tools_agent pattern.
This pattern leverages OpenAI's function calling capabilities for reliable tool selection.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;User Interface: Gradio&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Gradio provides a simple way to create…&lt;/p&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/pavanbelagatti/LangChain-AI-Agent" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;
  
  
  SingleStore as a Vector Database &amp;amp; for Real-Time Analytics
&lt;/h3&gt;

&lt;p&gt;For enhanced data persistence and real-time analytics, &lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=short&amp;amp;utm_content=deepseek" rel="noopener noreferrer"&gt;SingleStore&lt;/a&gt; provides an excellent foundation for scaling your news AI agent. As a distributed SQL database optimized for both transactions and analytics, SingleStore can store conversation history, user preferences, and cached news data while enabling lightning-fast queries across large datasets. Its ability to handle real-time data ingestion makes it perfect for continuously updating news feeds, while its SQL compatibility ensures easy integration with your existing Python codebase. This combination allows your agent to maintain context across sessions and perform sophisticated analytics on news trends and user interactions.&lt;/p&gt;

&lt;p&gt;SingleStore has excellent LangChain integration that can significantly improve your agent's memory and news data management.&lt;/p&gt;

&lt;h4&gt;
  
  
  Key Benefits of Adding SingleStore:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Persistent Memory&lt;/strong&gt;: Store conversation history across sessions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic News Search&lt;/strong&gt;: Find related articles using AI-powered similarity search.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Analytics&lt;/strong&gt;: Analyze trending topics and news patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable Caching&lt;/strong&gt;: Efficiently store and retrieve large amounts of news data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=short&amp;amp;utm_content=deepseek" rel="noopener noreferrer"&gt;Try SingleStore for free!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Once you signup to SingleStore, create a workspace and a database.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn4a7pwj859apb5kr1uh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhn4a7pwj859apb5kr1uh.png" alt="workspace and db"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Then go to the 'Data Studio'&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60jop1hspmv4vycuisky.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F60jop1hspmv4vycuisky.png" alt="data studio"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create a new notebook&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs2fqk1t14hrsgrtisc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs2fqk1t14hrsgrtisc3.png" alt="create notebook"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start adding the step-by-step code&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!pip install --upgrade "langchain&amp;gt;=0.2.0" "langchain-openai&amp;gt;=0.0.5" "langchain-community&amp;gt;=0.0.15"
!pip install --upgrade "singlestoredb&amp;gt;=1.0.0" "langchain-singlestoredb&amp;gt;=0.1.0"
!pip install --upgrade gradio requests python-dotenv
!pip install --upgrade sentence-transformers tiktoken
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import os
import gradio as gr
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain.agents import create_openai_tools_agent, AgentExecutor
from langchain_core.tools import Tool
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain_core.messages import AIMessage, HumanMessage
from langchain_community.tools.ddg_search import DuckDuckGoSearchRun
from langchain_community.vectorstores import SingleStoreDB
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_core.documents import Document
from datetime import datetime
import requests
import json
import singlestoredb as s2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SINGLESTORE_HOST = "add your SingleStore "
SINGLESTORE_PORT = 3306
SINGLESTORE_USER = "add your username"
SINGLESTORE_PASSWORD = "add password"
SINGLESTORE_DATABASE = "add db name"
SINGLESTORE_TABLE = "ai_agent_knowledge"
OPENAI_API_KEY = "add your OpenAI API key"
NEWSAPI_API_KEY = "add your newsapi key"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Below is the complete repository that will guide you on integrating SingleStore database functionality. This will allow your agent to store and retrieve information from a vector database, making it more powerful for knowledge management and retrieval.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/pavanbelagatti" rel="noopener noreferrer"&gt;
        pavanbelagatti
      &lt;/a&gt; / &lt;a href="https://github.com/pavanbelagatti/A-Agent-SingleStore" rel="noopener noreferrer"&gt;
        A-Agent-SingleStore
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;AI Agents with SingleStore&lt;/h2&gt;

&lt;/div&gt;

&lt;p&gt;Enhance your AI Agents by integrating SingleStore database functionality.
This will allow your agent to store and retrieve information from a vector database, making it more powerful for knowledge management and retrieval.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=short&amp;amp;utm_content=deepseek" rel="nofollow noopener noreferrer"&gt;Try SingleStore for free!&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/pavanbelagatti/A-Agent-SingleStore" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Building a real-time news AI agent demonstrates the practical power of combining large language models with specialized tools and thoughtful architecture. Through LangChain's framework, we've created a system that can understand natural language, make intelligent decisions about tool usage, and provide valuable real-time information while maintaining user privacy and control.&lt;/p&gt;

</description>
      <category>nlp</category>
      <category>ai</category>
      <category>developer</category>
      <category>rag</category>
    </item>
    <item>
      <title>Level Up Your Coding Game with These Free Vibe Coding Tools!</title>
      <dc:creator>Pavan Belagatti</dc:creator>
      <pubDate>Tue, 20 May 2025 04:47:03 +0000</pubDate>
      <link>https://forem.com/pavanbelagatti/level-up-your-coding-game-with-these-free-vibe-coding-tools-2fii</link>
      <guid>https://forem.com/pavanbelagatti/level-up-your-coding-game-with-these-free-vibe-coding-tools-2fii</guid>
      <description>&lt;p&gt;The landscape of software development tools has undergone radical transformation with the rise of "vibe coding" platforms that blend AI assistance, collaborative features, and intuitive interfaces. These tools empower developers to focus on creative problem-solving while automating repetitive tasks. From AI pair programmers to no-code app generators, the following tools represent the cutting edge of modern development workflows. But first, let's understand what is vibe coding. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is Vibe Coding?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17310fr1wzzl2zgsrn9i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F17310fr1wzzl2zgsrn9i.png" alt="vibe coding image" width="800" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The term "vibe coding" was coined by &lt;a href="https://x.com/karpathy/status/1886192184808149383" rel="noopener noreferrer"&gt;Andrej Karpathy&lt;/a&gt;, a prominent AI researcher and former Tesla AI lead, in February 2025. He described it as a style of coding where one "fully gives in to the vibes, embraces exponentials, and forgets that the code even exists." Karpathy emphasized minimal keyboard interaction, relying heavily on AI to handle coding tasks, and accepting AI-generated code without scrutinizing every line. He noted that while vibe coding is efficient for quick projects or prototyping, it has limitations, such as AI’s imperfect bug-fixing capabilities and the need for human oversight.&lt;/p&gt;

&lt;p&gt;Vibe coding is a new approach to software development where programmers express their intentions using natural language (plain speech or prompts), and artificial intelligence (AI), particularly large language models (LLMs), automatically generates the executable code. Instead of manually writing code line-by-line, developers describe what they want the software to do, and AI tools translate those descriptions into working code. This shifts the programmer’s role from traditional coding to guiding, testing, and refining AI-generated code. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Practical Steps in Vibe Coding&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Choose an AI Coding Assistant&lt;/em&gt;: Select a platform that suits your needs, such as Replit, GitHub Copilot or any other.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Define Your Requirement&lt;/em&gt;: Provide a clear, specific prompt describing what you want to build. The quality of the prompt directly influences the AI output.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Code Generation and Refinement&lt;/em&gt;: The AI produces initial code based on the prompt. The developer tests it, then refines the prompt or code iteratively to improve functionality.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In summary, vibe coding represents a paradigm shift in programming, leveraging AI to transform natural language prompts into functional code, emphasizing speed, creativity, and iterative refinement over traditional manual coding. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's see some top free vibe coding tools.&lt;/strong&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Replit
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8mqll6tmeokntquoy04.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq8mqll6tmeokntquoy04.png" alt="Replit vibe coding" width="756" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://replit.com/" rel="noopener noreferrer"&gt;Replit&lt;/a&gt;'s cloud-based IDE redefines collaborative coding with real-time multiplayer editing and instant environment setup. Its customizable workspace features integrated AI assistance (Ghostwriter), persistent containers, and seamless deployment capabilities. Developers can code in 50+ languages without local setups, while features like project templates and package management streamline prototyping. The platform's educational focus shines through Replit Courses, making it ideal for both learning and production-grade development. With built-in hosting and database solutions, Replit eliminates infrastructure headaches for full-stack projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lovable
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ojezzjg610m9p8ll86t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ojezzjg610m9p8ll86t.png" alt="Lovable vibe coding" width="800" height="185"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lovable.dev/" rel="noopener noreferrer"&gt;Lovable.dev&lt;/a&gt; emerges as the AI co-engineer for rapid application development, transforming natural language prompts into functional React/TypeScript codebases. The platform automates API integrations (Stripe, Supabase) and generates responsive UIs while maintaining code modularity for customization. Its iterative refinement feature allows developers to tweak components through conversational feedback, bridging the gap between mockups and production code. Lovable particularly excels at MVP creation, reducing initial development time from weeks to hours while maintaining clean architecture patterns suitable for scaling.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbj9s6pstxds2hz1g3ed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpbj9s6pstxds2hz1g3ed.png" alt="GitHub copilot vibe coding" width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Microsoft's AI pair programmer revolutionized code completion with context-aware suggestions drawn from entire codebases. &lt;a href="https://github.com/features/copilot" rel="noopener noreferrer"&gt;Copilot&lt;/a&gt; Chat now extends beyond autocomplete to explain complex logic, generate tests, and refactor legacy code. The 2025 update introduced Copilot Extensions that integrate directly with CI/CD pipelines and cloud services. Developers report 55% faster coding speeds when using its advanced code transformation features, particularly for cross-language migrations and documentation generation. Enterprise tiers add private codebase training and compliance auditing for large organizations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supernova
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn1mocshz0svijfid3s8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn1mocshz0svijfid3s8.png" alt="supernova vibe coding" width="800" height="268"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.supernova.io/" rel="noopener noreferrer"&gt;Supernova&lt;/a&gt; solves design-system fragmentation through automated token synchronization between Figma and code repositories. Its version-controlled design tokens manage colors, typography, and spacing across multiple themes (light/dark modes, platform-specific styles). The platform's CI/CD pipeline automatically generates platform-specific code (iOS, Android, Web) and Style Dictionary configurations. New 2025 features include AI-assisted token naming suggestions and conflict resolution during design updates, making it essential for maintaining consistency in large-scale projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  Claude 3.7 Sonnet
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj5exmc2w6pjqs2jdinb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgj5exmc2w6pjqs2jdinb.png" alt="claude vibe coding" width="696" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/claude/sonnet" rel="noopener noreferrer"&gt;Anthropic's hybrid reasoning model&lt;/a&gt; combines instant coding suggestions with visible chain-of-thought processing. Developers can toggle between quick answers and extended problem-solving sessions, particularly effective for debugging complex algorithms. The Claude Code CLI tool integrates with existing workflows, enabling terminal-based code generation and database schema migrations. Its "teaching mode" explains suggested code line-by-line, making it invaluable for upskilling junior developers while maintaining productivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Emergent
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hfxm0wskqdwpc7lh38h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8hfxm0wskqdwpc7lh38h.png" alt="emergent labs vibe coding" width="800" height="218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://app.emergent.sh/" rel="noopener noreferrer"&gt;Emergent&lt;/a&gt; pioneers agentic coding with AI workers that handle requirements analysis, technical design, and deployment. Developers describe features in natural language, then collaborate with AI agents through iterative feedback loops. The platform's special sauce lies in its physics-engine integration for game development and prebuilt AI workflow templates. Recent updates added Three.js visualization helpers and automated A/B testing setups, enabling rapid iteration of interactive web experiences.&lt;/p&gt;

&lt;h3&gt;
  
  
  DeepSite
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4wrvr0as0yx7wookj9e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft4wrvr0as0yx7wookj9e.png" alt="DeepSite vibe coding" width="800" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This Hugging Face-hosted tool &lt;a href="https://huggingface.co/spaces/enzostvs/deepsite" rel="noopener noreferrer"&gt;DeepSite&lt;/a&gt; democratizes web development through conversational UI generation. Users describe website functionality (e.g., "e-commerce site with dark mode") to receive production-ready React code with integrated CMS backends. DeepSite's computer vision capabilities convert wireframe sketches into functional components, while its accessibility checker ensures WCAG compliance. The free tier supports basic sites, with premium plans adding custom domain support and SEO optimization features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Firebase Studio
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry7b060gy9a7uajbvgwk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fry7b060gy9a7uajbvgwk.png" alt="firebase studio vibe coding" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://firebase.studio/" rel="noopener noreferrer"&gt;Google&lt;/a&gt;'s rebranded Project IDX now tightly integrates Gemini AI with Firebase services for full-stack app creation. The prototyping agent converts prompts into Next.js apps with Firestore databases and Auth workflows preconfigured. Live emulator suites enable testing security rules and cloud functions without deployment. A standout feature is the visual data modeler that syncs schema changes across frontend components and backend APIs automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bolt.new
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7hasxajq7ah5j7ptxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnp7hasxajq7ah5j7ptxu.png" alt="Bolt vibe coding" width="800" height="298"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Built on WebContainers technology, &lt;a href="https://bolt.new/" rel="noopener noreferrer"&gt;Bolt.new&lt;/a&gt; combines AI generation with a full browser-based IDE supporting npm packages and Supabase backends. Its "vibecode" mode suggests experimental tech stack combinations (e.g., Svelte + WebAssembly) based on project requirements. The AI mentor feature proactively identifies potential performance issues and offers optimization strategies. One-click Netlify deployment and real-time collaboration make it ideal for hackathons and educational workshops.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cline
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhchdw2njjp85wyqjs9x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhchdw2njjp85wyqjs9x.png" alt="Cline vibe coding" width="423" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cline.bot/" rel="noopener noreferrer"&gt;This open-source AI agent&lt;/a&gt; operates directly in VS Code with granular permission controls. Unlike passive code assistants, Cline executes commands, edits files, and even researches documentation-all with user approval at each step. Its novel knowledge graph integration helps maintain architectural consistency across large codebases. The 2025 update introduced team coordination features, enabling AI agents to manage Jira tickets and coordinate cross-service changes in enterprise environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus Pick: Powering the Vibe Behind the Scenes – SingleStore
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faeq4erwcm23kyy6cej2h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faeq4erwcm23kyy6cej2h.png" alt="SingleStore vibe coding" width="800" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While most of these tools focus on creating a fluid, intuitive coding experience, SingleStore brings the power under the hood. As a distributed SQL database that supports real-time analytics and vector search, &lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=devto&amp;amp;utm_content=vibecoding" rel="noopener noreferrer"&gt;SingleStore&lt;/a&gt; is ideal for developers building GenAI features, chatbots, or collaborative tools like the ones above. If you're coding anything that needs speed, scalability, or intelligent data retrieval—SingleStore is the engine that helps your "vibe coding" stay fast and responsive. Bonus: it works great with LangChain, LlamaIndex, and tools like EmbedAnything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://portal.singlestore.com/intention/cloud?utm_medium=referral&amp;amp;utm_source=pavan&amp;amp;utm_term=devto&amp;amp;utm_content=vibecoding" rel="noopener noreferrer"&gt;Try SingleStore for free to build your AI Agents!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;These tools collectively shift development from syntax-focused coding to intentional system design. While AI handles boilerplate and implementation details, developers gain bandwidth for innovation and user experience optimization. The 2025 landscape shows particular strength in bridging design-development gaps (Supernova), enabling safe AI collaboration (Cline), and creating new abstraction layers for complex systems (Emergent). As these platforms mature, they promise to democratize high-quality software creation while raising the ceiling of what small teams can achieve.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>developers</category>
      <category>ai</category>
      <category>development</category>
    </item>
  </channel>
</rss>
