<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: albe_sf</title>
    <description>The latest articles on DEV Community by albe_sf (@albertomontagnese).</description>
    <link>https://dev.to/albertomontagnese</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3928059%2F8788e7f6-c941-4959-b1cf-18686efc9034.jpg</url>
      <title>DEV Community: albe_sf</title>
      <link>https://dev.to/albertomontagnese</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/albertomontagnese"/>
    <language>en</language>
    <item>
      <title>Microsoft's Agent Framework is a bet on production-grade agents</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 21 Aug 2026 15:03:03 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/microsofts-agent-framework-is-a-bet-on-production-grade-agents-466o</link>
      <guid>https://dev.to/albertomontagnese/microsofts-agent-framework-is-a-bet-on-production-grade-agents-466o</guid>
      <description>&lt;p&gt;Microsoft's new Agent Framework is the successor to both AutoGen and Semantic Kernel, combining their strengths into a single, production-focused toolkit. This isn't another academic agent prototype; it's a bet that the next phase of AI engineering is about durable, observable, and enterprise-grade multi-agent systems. The takeaway is that the abstractions for building agents are maturing, moving from single-prompt loops to explicitly defined, stateful workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  what it is: a unified successor
&lt;/h2&gt;

&lt;p&gt;The Agent Framework merges the design philosophies of its predecessors. It takes the multi-agent orchestration patterns from AutoGen and combines them with the enterprise features of Semantic Kernel, such as state management, type safety, and telemetry. The new framework is designed for teams moving agents from prototype to production and need capabilities beyond what previous tools offered.&lt;/p&gt;

&lt;p&gt;Key features are explicitly aimed at production environments. It offers full support for both Python and .NET, a flexible middleware system, and robust orchestration patterns. This isn't just about calling an LLM in a loop. The framework provides graph-based workflows that let you define complex interactions like sequential tasks, concurrent operations, and group collaborations between agents. This explicit control over the execution path is a significant step up from the implicit state tracking common in earlier agent designs.&lt;/p&gt;

&lt;h2&gt;
  
  
  why it matters: from prototype to production
&lt;/h2&gt;

&lt;p&gt;For any engineer who has tried to move a clever agent prototype into a real production environment, the challenges are familiar. Stateless chat loops are brittle. A lack of observability makes debugging nearly impossible. The new Agent Framework addresses these problems directly. It emphasizes durability, restartability, and human-in-the-loop control.&lt;/p&gt;

&lt;p&gt;This is a framework for systems that are expected to run reliably. It includes features like checkpointing, streaming, and even time-travel debugging for agent workflows. For teams already invested in the Microsoft ecosystem, it integrates with Azure AI Foundry and Azure OpenAI, providing a clear path to deployment and hosting.&lt;/p&gt;

&lt;p&gt;A core part of this production-readiness is a standardized way of defining skills and tools. The framework has moved towards code-defined skills, providing a more structured and maintainable approach than parsing files.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Example of registering a tool in a workflow
# This is a conceptual illustration based on framework patterns.
&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;agent_framework&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;WorkflowFactory&lt;/span&gt;

&lt;span class="c1"&gt;# Assume 'send_email' is a Python callable you've defined elsewhere
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;send_email&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;recipient&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;subject&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;body&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="c1"&gt;# ... implementation for sending an email ...
&lt;/span&gt;    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Sending email to &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;recipient&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Email sent successfully.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Create a workflow factory and register the Python function as a tool
&lt;/span&gt;&lt;span class="n"&gt;factory&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;WorkflowFactory&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;register_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;send_email&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;send_email&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# The workflow can now reference 'send_email' in its declarative definition,
# allowing the agent to invoke this function with the correct parameters.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This explicit registration is a simple but critical feature for building robust systems where an agent's capabilities are clearly defined and version-controlled, rather than being implicitly derived from prompts.&lt;/p&gt;

&lt;h2&gt;
  
  
  who should use it
&lt;/h2&gt;

&lt;p&gt;The Agent Framework is a strong fit for a few specific groups. First, any enterprise team currently using AutoGen or Semantic Kernel should consider this their official upgrade path. Microsoft has indicated that new feature investment will go into the Agent Framework, with the older tools shifting to maintenance mode.&lt;/p&gt;

&lt;p&gt;Second, developers building systems that require complex, multi-step orchestration will benefit from the graph-based workflow engine. If your use case involves more than a single agent or requires handoffs, collaboration, or durable execution, this framework provides the necessary primitives.&lt;/p&gt;

&lt;p&gt;Finally, organizations building on the Microsoft stack will find this to be the most integrated and supported option. The ties to Azure, .NET, and enterprise-grade observability through OpenTelemetry make it a natural choice for teams that need to meet production SLAs.&lt;/p&gt;

&lt;h2&gt;
  
  
  the takeaway
&lt;/h2&gt;

&lt;p&gt;The era of simple, proof-of-concept agent libraries is giving way to robust, production-oriented frameworks. Microsoft's Agent Framework is a clear signal of this shift. It recognizes that the hard part of building with AI is not the model call, but the orchestration, state management, and operational stability of the entire system. For builders shipping real products, this focus on production-grade primitives is the most important development in the agent space this year.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/microsoft/agent-framework" rel="noopener noreferrer"&gt;Microsoft Agent Framework on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>devtools</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Beyond the Chat Box: OpenAI's OS-level Agent and Its Plaintext Problem</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 19 Aug 2026 15:02:30 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/beyond-the-chat-box-openais-os-level-agent-and-its-plaintext-problem-3aek</link>
      <guid>https://dev.to/albertomontagnese/beyond-the-chat-box-openais-os-level-agent-and-its-plaintext-problem-3aek</guid>
      <description>&lt;p&gt;The agent is leaving the chat window and moving into the operating system. OpenAI's new "Computer History" feature for the ChatGPT macOS app creates a searchable timeline of your actions by tracking clicks and keystrokes. This provides an agent with the context to act on your behalf, but its implementation—a local, unencrypted, plaintext database of your activity—is a security trade-off every builder should stop and consider.&lt;/p&gt;

&lt;h2&gt;
  
  
  how it works
&lt;/h2&gt;

&lt;p&gt;Computer History uses the macOS accessibility framework to create a persistent memory of your actions. An OpenAI product and engineering manager described it as letting ChatGPT “learn from everything you do on your computer.” In practice, this means logging events like clicks, keystrokes, and application switches to build a timeline of your work. A demo showed the agent correctly identifying the last Google Doc a user viewed by searching through this history.&lt;/p&gt;

&lt;p&gt;Control is a key part of the pitch. The feature is opt-in, not enabled by default. It reportedly ignores activity in private browsing tabs, and you can manually blacklist specific applications from being tracked. Users can also view the database of memories and remove specific items. For business accounts, an administrator must first enable the feature before individual users can opt in.&lt;/p&gt;

&lt;h2&gt;
  
  
  the local memory trade-off
&lt;/h2&gt;

&lt;p&gt;This is where it gets interesting for anyone who builds or uses developer tools. The memory files created by Computer History are stored locally as unencrypted plain-text Markdown. Any application or process running under the same user account could potentially read them.&lt;/p&gt;

&lt;p&gt;This design choice prioritizes simplicity over security. While local storage avoids sending a raw, real-time feed of your every action to the cloud, the lack of encryption is a significant detail. Think about the sensitive information that crosses your screen: API keys, private messages, customer data, un-pushed code. A local plaintext log of the context around that information is a valuable target.&lt;/p&gt;

&lt;p&gt;Here’s a hypothetical look at what a snippet of that memory file might look like, based on the feature's description.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Session: 2026-08-19 14:30:00 UTC&lt;/span&gt;

&lt;span class="gu"&gt;## 14:30:05 - App Switch: Google Chrome&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Action**&lt;/span&gt;: Viewed URL &lt;span class="sb"&gt;`https://console.aws.amazon.com/billing/home`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Keystrokes**&lt;/span&gt;: &lt;span class="sb"&gt;`[CMD+L]`&lt;/span&gt;, &lt;span class="sb"&gt;`billing`&lt;/span&gt;, &lt;span class="sb"&gt;`[ENTER]`&lt;/span&gt;

&lt;span class="gu"&gt;## 14:31:12 - App Switch: Slack&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Action**&lt;/span&gt;: Viewed Channel &lt;span class="sb"&gt;`#dev-prod-alerts`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Context**&lt;/span&gt;: Read messages from @JaneDoe about deployment failure.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Keystrokes**&lt;/span&gt;: &lt;span class="sb"&gt;`[CMD+K]`&lt;/span&gt;, &lt;span class="sb"&gt;`prod-alerts`&lt;/span&gt;, &lt;span class="sb"&gt;`[ENTER]`&lt;/span&gt;

&lt;span class="gu"&gt;## 14:32:45 - App Switch: iTerm2&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Action**&lt;/span&gt;: Executed command
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Keystrokes**&lt;/span&gt;: &lt;span class="sb"&gt;`kubectl get pods -n customer-xyz-prod`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Seeing this structure makes the risk tangible. It's not just a chat history; it's a detailed log of your workflow that could be read by any other process with user-level permissions.&lt;/p&gt;

&lt;h2&gt;
  
  
  a new surface for prompt injection
&lt;/h2&gt;

&lt;p&gt;When an agent has access to your entire digital life as context, the blast radius for prompt injection expands dramatically. OpenAI's own documentation reportedly acknowledges the heightened risk. The feature is designed to pull context from your activity into future chats. If those chats are then used as training data (depending on your settings), a malicious actor could theoretically inject instructions into a Slack message or document that a future version of the model might act upon.&lt;/p&gt;

&lt;p&gt;The line between user data and model instruction is blurring. An agent that can read your private Slack DMs could be manipulated by a message sent by a compromised account. This moves the security perimeter from the developer's machine to every single person and system they interact with.&lt;/p&gt;

&lt;h2&gt;
  
  
  so what should builders do?
&lt;/h2&gt;

&lt;p&gt;This isn't just another feature. It is a real-world deployment of a persistent, OS-integrated agent, and it provides a critical lesson in the design of agentic systems. The trade-off between giving an agent enough context to be useful and preventing that context from becoming a security vulnerability is now a practical problem, not a theoretical one.&lt;/p&gt;

&lt;p&gt;For now, the security burden of this architecture falls on the user. You have to trust that no other process on your machine will read the memory files and that the productivity gain is worth the risk of a new, potent attack surface. As we build and deploy more capable agents, we need to find better primitives for memory and context—ones that don't force this kind of choice between capability and security.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://futurism.com/" rel="noopener noreferrer"&gt;Futurism&lt;/a&gt;&lt;br&gt;
&lt;a href="https://thenextweb.com/" rel="noopener noreferrer"&gt;The Next Web&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Claude 3.5 Sonnet is the new default for builders</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 17 Aug 2026 15:03:17 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/claude-35-sonnet-is-the-new-default-for-builders-489b</link>
      <guid>https://dev.to/albertomontagnese/claude-35-sonnet-is-the-new-default-for-builders-489b</guid>
      <description>&lt;p&gt;Anthropic just released Claude 3.5 Sonnet, and the key takeaway is simple: their mid-tier model now outperforms their previous flagship, Opus, on critical reasoning and coding benchmarks. This isn't just a routine version bump; it's a shift in the cost-performance curve that makes Sonnet 3.5 the practical choice for most production AI work, especially for agentic coding tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  what changed
&lt;/h2&gt;

&lt;p&gt;Claude 3.5 Sonnet is the first release in the new 3.5 family. It delivers higher intelligence than Claude 3 Opus but is priced like the previous, less capable Sonnet model. Specifically, it costs $3 per million input tokens and $15 per million output tokens, with a 200K token context window. It's available now via the Anthropic API, and also on Amazon Bedrock and Google Cloud's Vertex AI.&lt;/p&gt;

&lt;p&gt;The performance improvements are notable across the board. Anthropic reports new industry benchmarks for graduate-level reasoning (GPQA), undergraduate-level knowledge (MMLU), and coding proficiency (HumanEval). The model operates at twice the speed of Claude 3 Opus, which is a significant factor for any real-time or interactive application.&lt;/p&gt;

&lt;h2&gt;
  
  
  the agentic coding leap
&lt;/h2&gt;

&lt;p&gt;For engineers building AI systems, the most important metric is often coding capability. This is where Sonnet 3.5 shows its most significant gains. In an internal agentic coding evaluation, Claude 3.5 Sonnet solved 64% of problems, a massive jump from the 38% solved by Claude 3 Opus.&lt;/p&gt;

&lt;p&gt;This evaluation measures the model's ability to fix bugs or add functionality to an open-source codebase given only a natural language description. The model has to write, edit, and execute code, demonstrating sophisticated reasoning. This isn't just about generating boilerplate. It's about a model's ability to handle code translations, update legacy applications, and migrate codebases effectively.&lt;/p&gt;

&lt;p&gt;A 64% success rate on this kind of task suggests the model is becoming a genuinely useful pair programmer and, in some cases, a viable autonomous agent for certain development workflows. The combination of this performance with the lower cost and higher speed of Sonnet makes it the default choice for building coding agents.&lt;/p&gt;

&lt;p&gt;Getting started with the API remains straightforward. If you're already using the Messages API, it's a simple model name change.&lt;br&gt;
&lt;/p&gt;

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

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;# defaults to os.environ.get("ANTHROPIC_API_KEY")
&lt;/span&gt;    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-api-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-3-5-sonnet-20240620&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Given the following Python file, add a function to calculate the Fibonacci sequence up to n.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  vision gets a serious upgrade
&lt;/h2&gt;

&lt;p&gt;Beyond code, Claude 3.5 Sonnet is now Anthropic's strongest vision model. It surpasses Opus on standard vision benchmarks, particularly for tasks that require visual reasoning, like interpreting charts and graphs.&lt;/p&gt;

&lt;p&gt;One of the core capabilities highlighted is its ability to accurately transcribe text from imperfect images. This has immediate applications in industries like retail, logistics, and finance, where systems often need to extract structured data from photos of documents, labels, or products. The improvement here is a step-change, not an incremental tweak.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;For builders, the release of Claude 3.5 Sonnet changes the calculus for model selection. Previously, you had to accept a steep trade-off between cost, speed, and intelligence. The most capable models were often too slow or expensive for production use at scale. Now, the mid-tier model is faster, cheaper, and more intelligent than the previous generation's flagship.&lt;/p&gt;

&lt;p&gt;This makes complex, multi-step workflows and context-sensitive agentic systems more economically viable. The assumption that you must use the largest available model for serious work is officially outdated. For any team building with LLMs today, Sonnet 3.5 should be the new starting point for evaluation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/news/claude-3-5-sonnet" rel="noopener noreferrer"&gt;https://www.anthropic.com/news/claude-3-5-sonnet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Snowflake Cortex just made custom LLMs a first-class citizen</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 14 Aug 2026 15:02:17 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/snowflake-cortex-just-made-custom-llms-a-first-class-citizen-312n</link>
      <guid>https://dev.to/albertomontagnese/snowflake-cortex-just-made-custom-llms-a-first-class-citizen-312n</guid>
      <description>&lt;p&gt;Snowflake just shipped serverless fine-tuning for Cortex AI, its fully managed service for building AI applications. This moves enterprise ML development from a bespoke, infrastructure-heavy task to a managed workflow, making custom models accessible to any data engineer without needing to manage complex infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  what changed
&lt;/h2&gt;

&lt;p&gt;The core update is the introduction of Cortex Fine-Tuning, a managed service that lets you customize popular large language models using your own data, all within the Snowflake security perimeter. This is a significant move because it brings the model to the data, not the other way around. Traditionally, using proprietary data for fine-tuning meant exfiltrating it to a separate environment, creating governance and security headaches. With this release, the training data is read directly from Snowflake tables, so it never leaves the platform's security boundary.&lt;/p&gt;

&lt;p&gt;The service uses parameter-efficient fine-tuning (PEFT) to create customized adapters for pre-trained models. This approach avoids the high cost of training a large model from scratch while delivering better performance on specialized tasks than prompt engineering alone can achieve. The initial release supports models from providers like Meta and Mistral AI.&lt;/p&gt;

&lt;p&gt;Developers can initiate and manage fine-tuning jobs through a simple SQL function or a no-code UI in the AI &amp;amp; ML Studio.&lt;/p&gt;

&lt;h2&gt;
  
  
  a practical workflow
&lt;/h2&gt;

&lt;p&gt;Getting a custom model trained and running is now integrated directly into standard data workflows. You can launch a fine-tuning job with a single SQL command, pointing it to your training data stored in a Snowflake table.&lt;/p&gt;

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

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Prepare your data&lt;/strong&gt;: Your training data must be in a Snowflake table with columns specifically named &lt;code&gt;prompt&lt;/code&gt; and &lt;code&gt;completion&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Launch the job&lt;/strong&gt;: Execute the &lt;code&gt;SNOWFLAKE.CORTEX.FINETUNE&lt;/code&gt; function, specifying a name for your new model, the base model you want to customize (e.g., 'mistral-7b'), and a SQL query to select your training data.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Monitor and deploy&lt;/strong&gt;: The function returns a job ID that you can use to track the status. Once complete, the fine-tuned model is registered and immediately available for inference.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Run inference&lt;/strong&gt;: Call your new model using the standard &lt;code&gt;COMPLETE&lt;/code&gt; function, just as you would with any other pre-trained model in Cortex AI.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here is what the SQL call looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;SNOWFLAKE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CORTEX&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;FINETUNE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s1"&gt;'CREATE'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'my_tuned_support_bot'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'mistral-7b'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'SELECT prompt, completion FROM support_tickets_train_set'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'SELECT prompt, completion FROM support_tickets_validation_set'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This single command abstracts away all the underlying GPU provisioning, software environment configuration, and model management. The fine-tuned model's access is managed through standard Snowflake role-based access control (RBAC).&lt;/p&gt;

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

&lt;p&gt;This update signals a shift in how custom AI is built in the enterprise. By embedding fine-tuning directly into the data cloud, Snowflake is lowering the barrier to entry for creating domain-specific models. Data teams can now improve model accuracy for specialized tasks, like categorizing support tickets or summarizing financial documents, without a dedicated MLOps team managing GPU clusters.&lt;/p&gt;

&lt;p&gt;This approach offers a compelling trade-off: you get the accuracy of a larger model from a fine-tuned smaller model, but with lower inference latency and reduced costs for repeated, specialized tasks. It makes building a custom LLM feel less like a research project and more like creating a materialized view.&lt;/p&gt;

&lt;p&gt;Of course, this is a managed service, so you trade granular control for convenience. You won't be debugging CUDA drivers, but you are dependent on the models and architectures Snowflake chooses to support. Understanding the cost model is also key, as billing is based on the number of tokens processed during training and inference.&lt;/p&gt;

&lt;p&gt;For builders working inside large enterprises, this is a significant development. The ability to securely and easily fine-tune models on your own data, without moving it, solves a major operational and security challenge. It makes custom AI a practical tool for any team that already works with data in Snowflake.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.snowflake.com/" rel="noopener noreferrer"&gt;https://www.snowflake.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.snowflake.com/en/user-guide/cortex/cortex-fine-tuning" rel="noopener noreferrer"&gt;https://docs.snowflake.com/en/user-guide/cortex/cortex-fine-tuning&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>devtools</category>
    </item>
    <item>
      <title>The Agent is Leaving the IDE</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 12 Aug 2026 15:02:42 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/the-agent-is-leaving-the-ide-1ne</link>
      <guid>https://dev.to/albertomontagnese/the-agent-is-leaving-the-ide-1ne</guid>
      <description>&lt;p&gt;The dominant interface for AI coding assistance has been the IDE plugin for years. You type, it suggests, you hit tab. This is useful, but it isn't the frontier. The real work is moving to standalone, terminal-native agents that you can direct to perform complex tasks, and a new wave of tooling is emerging to support this workflow.&lt;/p&gt;

&lt;p&gt;A recently trending toolkit, &lt;code&gt;pi&lt;/code&gt;, is a clear signal of this shift. It's an agent toolkit built around a unified LLM API, an agent loop, a TUI, and a coding agent CLI. This isn't about suggesting the next line of code; it's about providing the infrastructure to build and run autonomous agents that can tackle entire tasks from your command line.&lt;/p&gt;

&lt;h2&gt;
  
  
  from autocomplete to autonomy
&lt;/h2&gt;

&lt;p&gt;The first wave of AI tools competed on the quality of their inline suggestions. The next wave is competing on autonomy. The unit of work is no longer a single completion, but an entire task delegated to an agent that can plan, use tools, and self-correct.&lt;/p&gt;

&lt;p&gt;This requires a different architecture. An agent running in a terminal can be given more complex instructions, access the file system, execute shell commands, and run for longer than a typical IDE extension. It fits naturally into the existing workflows of experienced engineers who live in the command line. This is about moving from a passive assistant to an active collaborator.&lt;/p&gt;

&lt;h2&gt;
  
  
  a command-line native workflow
&lt;/h2&gt;

&lt;p&gt;Terminal-first tools embrace the composability of the shell. Instead of being locked into a specific editor's UI, you get a tool that can be scripted, piped, and integrated into other processes like Git hooks or CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;Imagine delegating a refactoring task. Instead of highlighting code and asking a chatbot in a side panel, you could run a command directly. A toolkit like &lt;code&gt;pi&lt;/code&gt; provides the primitives to build agents that can execute these kinds of commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# A plausible example of a terminal-based agent command&lt;/span&gt;
pi run-agent &lt;span class="nt"&gt;--task&lt;/span&gt; &lt;span class="s2"&gt;"Read the system design notes and generate a MermaidJS sequence diagram for the auth flow. Save it to docs/auth_flow.md"&lt;/span&gt;
&lt;span class="nt"&gt;--model&lt;/span&gt; gpt-5.6-sol &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--allow-read&lt;/span&gt; ./docs/system-design.md &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--allow-write&lt;/span&gt; ./docs/auth_flow.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a fundamentally more powerful interaction model. The agent is explicitly granted capabilities (reading and writing specific files) and given a high-level goal. It brings the power of agentic workflows into the native environment where developers already manage servers, run tests, and build software.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this matters now
&lt;/h2&gt;

&lt;p&gt;This shift isn't just a preference for a different UI. It's a response to the growing capability of frontier models. As models get better at reasoning and tool use, constraining them to simple code completion wastes their potential. A standalone agent can be given a more complex 'thought' process, a dedicated environment, and a clearer set of instructions and constraints.&lt;/p&gt;

&lt;p&gt;For builders, this means rethinking how we integrate AI into our development loops. The most impactful applications of AI in software development may not live inside the editor at all. They might be daemons we run, CLI tools we invoke, or automated steps in our deployment scripts. Toolkits that provide a framework for these agents are the critical infrastructure for the next phase of AI-native development.&lt;/p&gt;

&lt;h2&gt;
  
  
  sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/earendil-works/pi" rel="noopener noreferrer"&gt;https://github.com/earendil-works/pi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>devtools</category>
      <category>programming</category>
    </item>
    <item>
      <title>Stop Letting AI Agents Run Unsupervised on Your Machine</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 10 Aug 2026 15:02:18 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/stop-letting-ai-agents-run-unsupervised-on-your-machine-2j3i</link>
      <guid>https://dev.to/albertomontagnese/stop-letting-ai-agents-run-unsupervised-on-your-machine-2j3i</guid>
      <description>&lt;p&gt;Letting a coding agent run loose on your dev machine is a significant, unnecessary risk. The convenience of autonomous agents that can install packages, run tests, and modify your codebase is obvious, but the security model has been a major gap. A new tool provides the isolation that's been missing, making local agent execution a viable practice instead of a liability.&lt;/p&gt;

&lt;p&gt;Docker Sandboxes provide a proper, hypervisor-based jail for your agents. This isn't just another container; it's a lightweight, purpose-built microVM that gives each agent its own kernel, filesystem, and network stack. The result is hard isolation from your host system, which should be the default for running any tool that executes autonomously.&lt;/p&gt;

&lt;h2&gt;
  
  
  the agent containment problem
&lt;/h2&gt;

&lt;p&gt;The core issue is that powerful agents need broad permissions to be useful. They need to interact with your shell, your filesystem, and the network. A simple container shares the host kernel, which presents a large attack surface. We've seen multiple reports of agents from major labs breaching their testing environments due to misconfigurations. When an agent can write files and execute commands, a small mistake can lead to a compromised system.&lt;/p&gt;

&lt;p&gt;The previous answer was a constant stream of permission prompts, which negates the entire point of autonomous workflows. Full virtual machines are too heavy and slow for the quick, disposable environments that agent-based development requires. This is the gap Docker Sandboxes are built to fill: providing the security of a VM with the ergonomics of a container.&lt;/p&gt;

&lt;h2&gt;
  
  
  how microvm isolation works
&lt;/h2&gt;

&lt;p&gt;Unlike a standard container, a microVM (mVM) does not share your host machine's kernel. When you launch an agent in a sandbox, Docker spins up an mVM with its own dedicated resources. Your project directory is mounted in, but the agent cannot see or touch anything outside of that workspace. It can install packages, build containers, and even run &lt;code&gt;rm -rf&lt;/code&gt; without affecting your host machine.&lt;/p&gt;

&lt;p&gt;This architecture also provides critical security for networking and credentials. Network access is deny-by-default, forcing you to choose a policy like 'Balanced' or 'Locked Down'. This prevents an agent from unexpectedly exfiltrating data. Your LLM API keys are also protected; they are injected by a host-side proxy, so the agent itself never has direct access to the raw credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  getting started with the sbx cli
&lt;/h2&gt;

&lt;p&gt;You interact with sandboxes through the &lt;code&gt;sbx&lt;/code&gt; command-line tool. Installation is handled by standard package managers. For macOS, you can use Homebrew.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install the CLI on macOS&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;docker/tap/sbx

&lt;span class="c"&gt;# Authenticate with Docker&lt;/span&gt;
sbx login

&lt;span class="c"&gt;# Navigate to your project and run an agent&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; ~/your-project
sbx run claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;sbx run&lt;/code&gt; command launches the specified agent (support includes Claude Code, Gemini CLI, Copilot CLI, and others) inside its own sandboxed mVM. The first time you run it, you'll be prompted to set a default network policy. The 'Balanced' option is a sensible starting point, as it allows access to common package managers and code hosts while blocking other traffic.&lt;/p&gt;

&lt;p&gt;There are also more advanced options, including a &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt; flag for when you need to grant an agent full autonomy within its sandbox. Use it with care, but recognize that this is the point: the danger is now contained entirely within a disposable environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  a necessary piece of the stack
&lt;/h2&gt;

&lt;p&gt;Agentic workflows are moving from a novelty to a core part of the development process. But until now, running them locally involved a direct trade-off between utility and security. Wrapping agents in isolated microVMs by default is the correct architectural pattern.&lt;/p&gt;

&lt;p&gt;This makes experimenting with different agents and complex, multi-step tasks safer. If an agent corrupts its environment, you can simply destroy the sandbox and start over. This isn't just a new feature; it's a foundational piece of infrastructure for any engineer building with AI today.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.docker.com/" rel="noopener noreferrer"&gt;Docker Sandboxes Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>programming</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Claude 3.5 Sonnet is more than a model upgrade. It's a workflow change.</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 07 Aug 2026 15:02:25 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/claude-35-sonnet-is-more-than-a-model-upgrade-its-a-workflow-change-1c6p</link>
      <guid>https://dev.to/albertomontagnese/claude-35-sonnet-is-more-than-a-model-upgrade-its-a-workflow-change-1c6p</guid>
      <description>&lt;p&gt;Anthropic's release of Claude 3.5 Sonnet isn't just another point on the benchmark chart. The real story for developers is the introduction of 'Artifacts,' a feature that shifts the interaction from a simple chat prompt to a persistent, interactive workspace. This changes how you should think about using the tool for real work.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is claude 3.5 sonnet?
&lt;/h2&gt;

&lt;p&gt;Claude 3.5 Sonnet is the first model in Anthropic's new 3.5 family. It's positioned as their mid-tier model, but it outperforms their previous top-tier model, Claude 3 Opus, on a range of benchmarks, particularly in coding, graduate-level reasoning, and undergraduate-level knowledge. It's also twice as fast as Opus and comes at a significantly lower cost: $3 per million input tokens and $15 per million output tokens.&lt;/p&gt;

&lt;p&gt;This combination of higher performance at a lower price point makes it suitable for more complex, enterprise-scale workflows like customer support and multi-step automation. In an internal coding evaluation, Sonnet 3.5 solved 64% of problems, a marked improvement over the 38% solved by Opus, showing strong capabilities in bug fixing and adding functionality to existing codebases.&lt;/p&gt;

&lt;h2&gt;
  
  
  the 'artifacts' feature is the real story
&lt;/h2&gt;

&lt;p&gt;The bigger shift for builders is the introduction of Artifacts. When you ask Claude to generate content like a code snippet, a website design, or a document, it now appears in a dedicated window next to the conversation. This creates an interactive workspace where you can see your generated content render in real-time and iterate on it with further prompts.&lt;/p&gt;

&lt;p&gt;This fundamentally changes the development workflow. Instead of copying and pasting code from a chatbot into a local IDE to see if it works, you can now prompt, preview, and refine directly in the Claude interface. This is especially powerful for front-end development, data visualization, and rapid prototyping. You can ask for a React component, see it render, and then ask for changes, all within the same view.&lt;/p&gt;

&lt;p&gt;Here's a practical example of how you might use this for a simple task. You could start by asking for a basic SVG chart.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Create an SVG of a simple bar chart with three bars representing the values 30, 70, and 50. The bars should be blue.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The SVG would appear in the Artifacts window. You could then iterate on it with follow-up prompts like, "Add labels for each bar with their corresponding values," or "Change the color of the second bar to orange." The Artifacts view updates with each command, providing a tight feedback loop that wasn't possible in a traditional chat UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  how this changes your workflow
&lt;/h2&gt;

&lt;p&gt;This move from a conversational model to a collaborative tool has several implications. First, it makes the model a more viable partner for rapid prototyping. The ability to generate and immediately see a working UI component or a data visualization removes significant friction.&lt;/p&gt;

&lt;p&gt;Second, it points to a future where the distinction between chat interfaces and IDEs begins to blur. The model isn't just providing text; it's creating and maintaining state in a dedicated workspace. This is a step towards more agentic systems that can independently write, edit, and execute code based on natural language instructions.&lt;/p&gt;

&lt;p&gt;For builders, this means you can start using Claude for tasks that were previously too cumbersome. Think of building small internal tools, generating boilerplate for a new project, or quickly creating interactive demos. The feedback loop is now fast enough to make this practical.&lt;/p&gt;

&lt;h2&gt;
  
  
  the takeaway
&lt;/h2&gt;

&lt;p&gt;The key takeaway from the Claude 3.5 Sonnet release isn't just that the models are getting better, faster, and cheaper. The more significant trend is the evolution of the user interface around them. Features like Artifacts are turning these models from simple Q&amp;amp;A machines into genuine workbenches for software development. This is where the next wave of productivity gains will come from.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.anthropic.com/news/claude-3-5-sonnet" rel="noopener noreferrer"&gt;Introducing Claude 3.5 Sonnet&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Your Data Warehouse Can See Now: Multimodal AI Comes to SQL</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 05 Aug 2026 15:04:46 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/your-data-warehouse-can-see-now-multimodal-ai-comes-to-sql-188h</link>
      <guid>https://dev.to/albertomontagnese/your-data-warehouse-can-see-now-multimodal-ai-comes-to-sql-188h</guid>
      <description>&lt;p&gt;Running inference on unstructured data like images or audio has always meant leaving your data warehouse. You build a separate pipeline, manage a Python service, and orchestrate data movement between systems. That pattern is starting to break. With Snowflake's release of multimodal functions in Cortex AI, you can now analyze image and video content with familiar SQL commands, directly where your data lives.&lt;/p&gt;

&lt;p&gt;This isn't just a cosmetic change. It represents a fundamental shift in how we should think about unstructured data pipelines. The takeaway is that the complex, multi-service architectures we built for tasks like image classification or video analysis can now be radically simplified into a single SQL query. This collapses the stack, tightens security, and puts powerful AI capabilities into the hands of any analyst who knows SQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  what just changed
&lt;/h2&gt;

&lt;p&gt;Snowflake has integrated multimodal AI capabilities directly into its SQL engine through a set of features called Cortex AI Functions. Now in public preview, these functions allow you to run inference on unstructured data like images, audio, and documents that live in Snowflake stages or even external object storage like S3. This is handled without moving the data out of Snowflake's security perimeter.&lt;/p&gt;

&lt;p&gt;The system introduces a native &lt;code&gt;FILE&lt;/code&gt; data type, which allows SQL to directly reference and operate on this kind of data. Instead of treating an image as an inert blob, the query engine can now pass it to a model for analysis as part of a standard query. This eliminates the need for external tools and specialized skills to bridge the gap between structured and unstructured data analysis.&lt;/p&gt;

&lt;h2&gt;
  
  
  why it matters: collapsing the ai/data stack
&lt;/h2&gt;

&lt;p&gt;The main consequence for builders is the simplification of the data stack. The typical workflow for analyzing, say, user-uploaded images in a product catalog involves several steps: an ETL process to extract the data, a separate service to call a vision API, and another process to load the resulting metadata back into the warehouse. This creates complexity, latency, and multiple points of failure.&lt;/p&gt;

&lt;p&gt;By embedding the model call directly in SQL, you remove the need for that entire external pipeline. This offers a few concrete advantages. First, performance and cost. Snowflake claims this native integration can be over 30% faster and reduce costs by up to 60% compared to traditional, manually orchestrated AI implementations. Second, it democratizes access. Any data analyst can now perform tasks that previously required a machine learning engineer, like filtering products based on visual characteristics or aggregating customer sentiment from call recordings. Finally, it unifies governance. All data, structured and unstructured, is processed within a single, secure platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  a practical sql example
&lt;/h2&gt;

&lt;p&gt;Let's say you have a table of product listings, with structured data like &lt;code&gt;product_id&lt;/code&gt; and &lt;code&gt;price&lt;/code&gt;, alongside a column containing a URL to a product image stored in a Snowflake stage. You need to identify products that are missing a required safety warning label in their image.&lt;/p&gt;

&lt;p&gt;Instead of building an external image processing service, you can now write a SQL query to do the check directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- Find products missing a visible safety label from their primary image&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt;
    &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;product_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image_url&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;
    &lt;span class="n"&gt;products&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt;
    &lt;span class="n"&gt;SNOWFLAKE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;CORTEX&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;COMPLETE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;'pixtral-large'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;-- or another supported vision model&lt;/span&gt;
        &lt;span class="s1"&gt;'Does this image contain a standard electrical safety warning label? Answer YES or NO.'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;p&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;image_url&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'NO'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This query joins your structured product data with AI-driven analysis of your unstructured image data in a single statement. It's a simple but powerful pattern that can be extended to classification, object detection, sentiment analysis from audio, and more, all within the environment your data team already uses.&lt;/p&gt;

&lt;h2&gt;
  
  
  the takeaway for builders
&lt;/h2&gt;

&lt;p&gt;The line between the data platform and the AI platform is dissolving. Bringing multimodal inference directly into the data warehouse is a significant step toward simplifying the productionalization of AI. For engineers and data teams, this means less time spent on plumbing and orchestration and more time spent on extracting value from data.&lt;/p&gt;

&lt;p&gt;The most valuable data in many organizations—call recordings, support documents, product images, promotional videos—is often the hardest to analyze at scale. Tools that lower the barrier to processing this data natively are a major unlock. It's time to re-evaluate those complex Python-based data processing jobs and see if they can be replaced with a few lines of SQL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.snowflake.com/" rel="noopener noreferrer"&gt;Simplifying Multimodal Data Analysis with Snowflake Cortex AI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.snowflake.com/blog/cortex-aisql-reimagining-sql-ai-query-language-multimodal-data/" rel="noopener noreferrer"&gt;Cortex AISQL: Reimagining SQL into AI Query Language for Multimodal Data&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>sql</category>
      <category>devtools</category>
    </item>
    <item>
      <title>PaliGemma Isn't a Chatbot. It's Your Next Fine-Tuning Base for Vision.</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 03 Aug 2026 15:04:36 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/paligemma-isnt-a-chatbot-its-your-next-fine-tuning-base-for-vision-5e1d</link>
      <guid>https://dev.to/albertomontagnese/paligemma-isnt-a-chatbot-its-your-next-fine-tuning-base-for-vision-5e1d</guid>
      <description>&lt;p&gt;Google's release of the PaliGemma model family provides a powerful new component for vision-language tasks. The key takeaway is that these are not general-purpose multimodal chatbots, but adaptable, open-source base models designed specifically for fine-tuning. If you're building a system for a specific visual task, you should be reaching for PaliGemma as a starting point, not a finished product.&lt;/p&gt;

&lt;h2&gt;
  
  
  what is paligemma?
&lt;/h2&gt;

&lt;p&gt;PaliGemma is a family of vision-language models (VLMs) that combines two strong, open components: a SigLIP vision encoder and a Gemma language decoder. The architecture is straightforward: the SigLIP model processes an image into a sequence of tokens, which are then prepended to the text prompt's tokens and fed into the Gemma model for a text-based output.&lt;/p&gt;

&lt;p&gt;These models come in several sizes and flavors. The original PaliGemma is based on a Gemma 2B model, while the newer PaliGemma 2 family uses larger Gemma 2 backbones, with variants up to 27B parameters. They are released with a few different checkpoints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;PT (Pretrained):&lt;/strong&gt; These are the base models. They are intended as the starting point for further fine-tuning on your specific downstream task. Using these directly without tuning is not recommended.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Mix:&lt;/strong&gt; These checkpoints have been fine-tuned on a mixture of academic datasets. They can handle some common use cases out-of-the-box, like basic VQA or object detection, and serve as a good demonstration of the PT models' capabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Crucially, PaliGemma models are also trained on multiple image resolutions, typically 224x224, 448x448, and 896x896 pixels. Higher resolutions yield better performance on tasks requiring fine detail, like reading text in an image, but come at a higher computational cost.&lt;/p&gt;

&lt;h2&gt;
  
  
  why this isn't another multimodal chatbot
&lt;/h2&gt;

&lt;p&gt;The most important thing for a builder to understand is that PaliGemma is not designed for conversational use. It is a single-turn VLM, optimized to take an image and a text prompt to generate a direct, textual response. It excels when conditioned with specific task prefixes like "detect" or "segment".&lt;/p&gt;

&lt;p&gt;Its primary purpose is to be a compact, transfer-friendly base for fine-tuning. This is a significant distinction from general-purpose, chat-optimized models. Instead of trying to craft the perfect few-shot prompt to convince a large, generic model to perform your specific visual task, the intended workflow with PaliGemma is to fine-tune it on a dataset tailored to your needs. This approach is often more robust, efficient, and performant for specialized applications such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Visual Question Answering (VQA)&lt;/li&gt;
&lt;li&gt;  Object Detection and Segmentation&lt;/li&gt;
&lt;li&gt;  Optical Character Recognition (OCR)&lt;/li&gt;
&lt;li&gt;  Document Understanding&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  getting started with a fine-tuning setup
&lt;/h2&gt;

&lt;p&gt;You can work with PaliGemma directly through the Hugging Face &lt;code&gt;transformers&lt;/code&gt; library. The setup involves using the &lt;code&gt;PaliGemmaProcessor&lt;/code&gt; which conveniently wraps the image processor and tokenizer.&lt;/p&gt;

&lt;p&gt;When preparing data for fine-tuning, you provide the model with the answer by passing it as a &lt;code&gt;suffix&lt;/code&gt; to the processor. This automatically formats the labels for the model during the training process.&lt;/p&gt;

&lt;p&gt;Here's a conceptual snippet for how you would prepare a single training example:&lt;br&gt;
&lt;/p&gt;

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

&lt;span class="c1"&gt;# Load the processor for your chosen model checkpoint
&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;google/paligemma-3b-pt-224&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;processor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;PaliGemmaProcessor&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;from_pretrained&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Your training data
&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;load_your_image&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;path/to/image.jpg&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;What is in this image?&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;a pallas cat&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# The processor prepares image, text, and labels (from the suffix)
&lt;/span&gt;&lt;span class="n"&gt;inputs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;processor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;images&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;image&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;suffix&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
    &lt;span class="n"&gt;return_tensors&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;pt&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# These 'inputs' are now ready to be passed to the model during your fine-tuning loop
# inputs['pixel_values'], inputs['input_ids'], inputs['attention_mask'], inputs['labels']
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This workflow makes it clear that the model is built to learn a mapping from an image and a specific question to a specific answer format, which is exactly what you want for a production system.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what for builders
&lt;/h2&gt;

&lt;p&gt;The release of open, high-quality base models like PaliGemma changes the calculus for building vision-enabled features. Instead of relying on a brittle chain of prompts for a closed, generalist model, you have a more direct engineering path.&lt;/p&gt;

&lt;p&gt;For your next project involving a specific vision-language task—whether it's document analysis, UI component detection, or product categorization—don't start with a chatbot. Start with a PaliGemma pretrained checkpoint. Fine-tuning a smaller, specialized model will almost always give you a more reliable and cost-effective result than prompt-wrangling a massive, general-purpose one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://ai.google.dev/gemma/docs/paligemma" rel="noopener noreferrer"&gt;Google AI for Developers: PaliGemma&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://huggingface.co/blog/paligemma" rel="noopener noreferrer"&gt;Hugging Face Blog: PaliGemma&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>python</category>
    </item>
    <item>
      <title>Anthropic's Opus 5 Release Is About Production Engineering, Not Just Performance</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Fri, 31 Jul 2026 15:02:55 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/anthropics-opus-5-release-is-about-production-engineering-not-just-performance-4ga3</link>
      <guid>https://dev.to/albertomontagnese/anthropics-opus-5-release-is-about-production-engineering-not-just-performance-4ga3</guid>
      <description>&lt;p&gt;Anthropic released Claude Opus 5 this month, and while it closes the capability gap with their frontier models, the most significant updates are not about raw intelligence. The real story for builders is a new focus on production-ready features that provide more control and predictability, a clear signal that we are moving from an era of capability demos to one of pragmatic engineering.&lt;/p&gt;

&lt;h2&gt;
  
  
  what actually changed
&lt;/h2&gt;

&lt;p&gt;The key updates in Opus 5 are less about what the model can do and more about &lt;em&gt;how&lt;/em&gt; you can control its work. The model reportedly ships with several features aimed directly at developers building real applications.&lt;/p&gt;

&lt;p&gt;First is the concept of "thinking on by default". This addresses a common frustration where models provide fast but shallow answers to complex prompts. By allocating more inference time by default, the model is better positioned to avoid superficial responses. For more difficult tasks, there is now an "explicit max effort tier," allowing you to signal that a particular request requires deeper reasoning without resorting to complex prompt engineering.&lt;/p&gt;

&lt;p&gt;Finally, the inclusion of a 512-token prompt-cache minimum is a direct nod to production concerns around latency and cost. It’s a practical optimization for applications that repeatedly use large system prompts or few-shot examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  the economics of frontier models
&lt;/h2&gt;

&lt;p&gt;For the first time in a while, a new flagship model has been released that significantly increases capability without increasing the price. Opus 5 holds the previous generation's price point of $5 per million input tokens and $25 per million output tokens while delivering performance that approaches Anthropic's more expensive, limited-access models.&lt;/p&gt;

&lt;p&gt;This changes the calculus for developers deciding between a cheaper, faster model and a more capable one. When the top-tier model includes explicit controls for performance and cost, it becomes a more viable default choice. You can imagine an implementation that routes requests based on complexity, using the standard tier for most tasks and reserving the max effort mode for critical reasoning steps.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_claude_completion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;is_high_stakes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;anthropic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Anthropic&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;# Use a different model configuration for high-stakes reasoning
&lt;/span&gt;    &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5-max-effort&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;is_high_stakes&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claude-opus-5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

    &lt;span class="n"&gt;message&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4096&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  implications for agentic systems
&lt;/h2&gt;

&lt;p&gt;These features are particularly relevant for building agentic workflows. A common failure mode for agents is a single weak link in a long chain of reasoning. A model that rushes an answer or misunderstands a critical step can derail an entire multi-step task.&lt;/p&gt;

&lt;p&gt;Features that promote more deliberate reasoning, like default thinking time and an explicit effort toggle, give developers more reliable primitives to build upon. Combined with what is reported as the lowest misaligned-behavior score of any Claude model, these updates are foundational for building agents that can be trusted with more autonomy.&lt;/p&gt;

&lt;p&gt;The release of Opus 5 feels like a turning point. The focus is shifting from simply topping leaderboards to addressing the operational realities of shipping AI products. For engineers in the trenches, this focus on reliability, control, and predictable economics is the most important development of all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.anthropic.com/" rel="noopener noreferrer"&gt;https://www.anthropic.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>claude</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Cursor's New Router Is the Real Agentic Shift</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Wed, 29 Jul 2026 15:03:21 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/cursors-new-router-is-the-real-agentic-shift-la7</link>
      <guid>https://dev.to/albertomontagnese/cursors-new-router-is-the-real-agentic-shift-la7</guid>
      <description>&lt;p&gt;The endless debate over which model to use for which task is getting a new answer: let the router decide. With its latest updates, Cursor is embedding an intelligent model router directly into the IDE, abstracting the choice away and focusing on the user's intent instead. This, combined with more serious controls for team-wide agent infrastructure, marks a significant shift from manually prompting different models to managing a unified, automated development environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  intelligent routing by default
&lt;/h2&gt;

&lt;p&gt;The core of the recent change is Cursor Router, which now powers the 'Auto' mode for model selection. Instead of you explicitly picking between Grok, Claude, or another model, the router analyzes the request and sends it to the best model for the job.&lt;/p&gt;

&lt;p&gt;It operates on three optimization modes you can select:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Intelligence&lt;/strong&gt;: Routes to frontier models for tasks that require maximum capability, equivalent to the most powerful and expensive options.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Balance&lt;/strong&gt;: Aims for strong quality, using the kind of high-performance models most developers would use for daily tasks.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Cost&lt;/strong&gt;: Prioritizes token efficiency, using capable models that get the job done while minimizing spend.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This moves the developer's decision up a level of abstraction. You are no longer thinking about &lt;code&gt;claude-opus-5&lt;/code&gt; vs &lt;code&gt;grok-4.5&lt;/code&gt;. You are thinking about whether the current task requires raw power or cost efficiency. For teams, this is a powerful governance tool. An admin can set the default optimization mode for different groups, ensuring that routine tasks don't accidentally burn through the budget reserved for complex R&amp;amp;D.&lt;/p&gt;

&lt;h2&gt;
  
  
  team infrastructure gets serious
&lt;/h2&gt;

&lt;p&gt;Beyond routing, the updates introduce more robust support for managing agents and tools at a team level. Admins can now configure Team MCP (Mission Critical Prompt) servers once and distribute them across the entire organization. This allows team members to install approved, pre-configured integrations locally without dealing with the setup themselves.&lt;/p&gt;

&lt;p&gt;This is a quiet but critical step for real enterprise adoption. It turns agents from a collection of individual developer setups into managed, consistent infrastructure. When a new engineer joins the team, they can inherit the entire suite of vetted tools and agents, rather than rebuilding it from scratch.&lt;/p&gt;

&lt;p&gt;This might look like a simple JSON config managed by the team lead, ensuring everyone is using the same internal APIs and tools through the IDE.&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;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcp_servers"&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;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"internal-docs-retriever"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.internal.acme.corp/docs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"auth_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"oidc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enabled_for_groups"&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="s2"&gt;"backend-eng"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ml-platform"&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;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ci-cd-agent-trigger"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://mcp.internal.acme.corp/cicd"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"auth_provider"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"oidc"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"enabled_for_groups"&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="s2"&gt;"devops"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"backend-eng"&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;"router_defaults"&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;"default_mode"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Balance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"allowed_modes"&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="s2"&gt;"Balance"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Cost"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"blocked_models"&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;p&gt;This kind of centralized configuration is how you scale agentic development from a solo tool to a team-wide workflow. It provides consistency and control without stifling the developer's inner loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  the so-what
&lt;/h2&gt;

&lt;p&gt;The main takeaway is that the AI-native IDE is becoming an orchestration layer. The cognitive overhead of selecting, configuring, and managing a zoo of different models and agents for every little task is being automated away. By handling model routing and team-wide tool configuration, the IDE lets you focus on defining the problem you want to solve.&lt;/p&gt;

&lt;p&gt;For builders, this means your interaction with AI is moving from the tactical (which model?) to the strategic (what outcome?). It's a fundamental change in the developer experience that points toward a future where the entire codebase is managed at a higher level of abstraction.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.cursor.com/changelog" rel="noopener noreferrer"&gt;What's New in Cursor — Latest Updates &amp;amp; Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>agents</category>
      <category>programming</category>
    </item>
    <item>
      <title>Gemini's New Flash Models Change How You Control Outputs</title>
      <dc:creator>albe_sf</dc:creator>
      <pubDate>Mon, 27 Jul 2026 15:03:42 +0000</pubDate>
      <link>https://dev.to/albertomontagnese/geminis-new-flash-models-change-how-you-control-outputs-l6e</link>
      <guid>https://dev.to/albertomontagnese/geminis-new-flash-models-change-how-you-control-outputs-l6e</guid>
      <description>&lt;p&gt;Google just pushed Gemini 3.6 Flash and 3.5 Flash-Lite to general availability. While the new models target specific builder needs—cost-effective subagents and more efficient planning—the most significant change is the deprecation of &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, and &lt;code&gt;top_k&lt;/code&gt;. This isn't a minor API tweak; it forces a more disciplined, instruction-driven approach to prompting.&lt;/p&gt;

&lt;h2&gt;
  
  
  two new specialized tools
&lt;/h2&gt;

&lt;p&gt;The July 21st release brought two distinct models into production, each with a clear purpose.&lt;/p&gt;

&lt;p&gt;First, Gemini 3.6 Flash is positioned as an upgrade designed to address direct developer feedback about output verbosity. It features improved token efficiency and better capabilities for code and agentic planning, all at a lower price point than its predecessor. This is the model you use for general tasks where you need a balance of performance and cost, with less unwanted chatter in the response.&lt;/p&gt;

&lt;p&gt;Second, Gemini 3.5 Flash-Lite is a purpose-built tool for a specific job: high-volume automation. It’s described as a low-latency, highly cost-effective option for “subagent” tasks. This signals a clear direction toward building more complex, multi-agent systems where smaller, faster, cheaper models can be spun up to handle discrete, repetitive parts of a larger workflow, while a more powerful model acts as the orchestrator.&lt;/p&gt;

&lt;h2&gt;
  
  
  the end of temperature tuning
&lt;/h2&gt;

&lt;p&gt;The most impactful change for engineers using the API is the deprecation of the main sampling parameters. For &lt;code&gt;gemini-3.6-flash&lt;/code&gt; and &lt;code&gt;gemini-3.5-flash-lite&lt;/code&gt;, the &lt;code&gt;temperature&lt;/code&gt;, &lt;code&gt;top_p&lt;/code&gt;, and &lt;code&gt;top_k&lt;/code&gt; parameters are now ignored. The familiar workflow of cranking up the temperature for more “creative” outputs or lowering it for more deterministic ones is gone.&lt;/p&gt;

&lt;p&gt;The official guidance is to now use system instructions to control model behavior. To get deterministic responses, you must define explicit rules for the model to follow. This shifts the burden of control from tweaking API parameters to authoring more robust prompts. Instead of relying on a stochastic sampler to vary your outputs, you now have to explicitly architect the desired output structure, style, and constraints within your instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  what this means for your api calls
&lt;/h2&gt;

&lt;p&gt;This change requires a practical shift in how you structure your code. You can no longer pass a &lt;code&gt;generation_config&lt;/code&gt; object with sampling parameters and expect it to have an effect. The logic for controlling output must move into the &lt;code&gt;system_instruction&lt;/code&gt; content.&lt;/p&gt;

&lt;p&gt;Here’s a conceptual example of the shift. Previously, you might have done this to get a concise JSON output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Before: Relying on sampling parameters
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini-1.5-flash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="c1"&gt;# An older model
&lt;/span&gt;
&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extract the user&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;s name and city from this message: &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Hi, I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;m Alex from Toronto.&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;temperature&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="c1"&gt;# Low temp for factual extraction
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;top_p&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, with the new models, you would achieve determinism through explicit instructions, not sampling config.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# After: Using explicit system instructions
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;google.generativeai&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;

&lt;span class="c1"&gt;# New models ignore temperature, top_p, top_k
&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini-3.6-flash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;system_instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a text processing utility. Your only function is to extract entities from user text. Respond with ONLY a valid, minified JSON object containing &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; and &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;city&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt; keys. Do not add any commentary or markdown formatting.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hi, I&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;m Alex from Toronto.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;generation_config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;# Note: temperature, top_p, top_k are ignored here
&lt;/span&gt;        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;response_mime_type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach forces better prompt engineering hygiene and makes the model's expected behavior more explicit and auditable, as the instructions live alongside the code.&lt;/p&gt;

&lt;h2&gt;
  
  
  the takeaway
&lt;/h2&gt;

&lt;p&gt;This release is more than a model version bump. It’s a statement about where API-driven generation is heading. The move away from sampling parameters toward explicit system instructions is a bet on structured prompting over probabilistic tweaking. For builders, this means the core skill is less about fiddling with API knobs and more about architecting clear, unambiguous instructions for the model to execute. It’s a shift toward treating the model less like a creative oracle and more like a deterministic function that you program with natural language.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://ai.google.dev/" rel="noopener noreferrer"&gt;Gemini API Release Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>machinelearning</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
