<?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: Marcus ma</title>
    <description>The latest articles on DEV Community by Marcus ma (@cloudsway).</description>
    <link>https://dev.to/cloudsway</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%2F4063632%2F9661a69b-4ebe-446e-9af2-5be55e3f6caa.jpg</url>
      <title>DEV Community: Marcus ma</title>
      <link>https://dev.to/cloudsway</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cloudsway"/>
    <language>en</language>
    <item>
      <title>Your AI Agent’s Chain of Thought Is Not an Audit Log</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Mon, 07 Sep 2026 08:19:46 +0000</pubDate>
      <link>https://dev.to/cloudsway/your-ai-agents-chain-of-thought-is-not-an-audit-log-di6</link>
      <guid>https://dev.to/cloudsway/your-ai-agents-chain-of-thought-is-not-an-audit-log-di6</guid>
      <description>&lt;p&gt;An AI agent does not need to become self-aware to become difficult to supervise. It only needs to act faster than you can inspect its work.&lt;/p&gt;

&lt;p&gt;That is the practical engineering problem hiding inside OpenAI Chief Scientist Jakub Pachocki’s essay, &lt;a href="https://openai.com/index/an-alien-mind/" rel="noopener noreferrer"&gt;“An Alien Mind.”&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The phrase naturally attracts philosophical questions about machine intelligence. But for developers building tool-using agents, the more urgent question is much less abstract:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What happens when an AI system can search, write code, run experiments and modify an environment faster than humans can reconstruct what it did?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;OpenAI’s answer appears to be that one of our best monitoring signals, chain of thought, may not be enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI says AI systems are already performing meaningful research work under human direction.&lt;/li&gt;
&lt;li&gt;Chain-of-thought monitoring can expose reward hacking, deception and unintended shortcuts.&lt;/li&gt;
&lt;li&gt;A reasoning trace is generated text, not a complete record of the model’s internal decision process.&lt;/li&gt;
&lt;li&gt;Agent observability must include tool calls, network activity, retrieved evidence, environment changes and independent evaluation.&lt;/li&gt;
&lt;li&gt;The amount of autonomy granted to an agent should depend on how well its actions can be observed, interrupted and audited.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenAI published a milestone and a warning on the same day
&lt;/h2&gt;

&lt;p&gt;On September 6, 2026, OpenAI published two documents that are more useful when read together.&lt;/p&gt;

&lt;p&gt;The first, &lt;a href="https://openai.com/index/research-acceleration-view-inside-openai/" rel="noopener noreferrer"&gt;“Research Acceleration: The View Inside OpenAI,”&lt;/a&gt; announced that the company had reached its “automated research intern” milestone.&lt;/p&gt;

&lt;p&gt;OpenAI defines this as a system capable of completing well-defined research tasks under human direction, including work that would take a skilled researcher several days.&lt;/p&gt;

&lt;p&gt;Its researchers are using coding agents to write code, prepare experiments, analyse results and revise failed approaches. Multiple agents can run concurrently, turning parts of the research process from sequential work into parallel work.&lt;/p&gt;

&lt;p&gt;By mid-August, OpenAI’s research organisation was using 3.1 agent-workdays of runtime for every human workday.&lt;/p&gt;

&lt;p&gt;This metric measures runtime, not equivalent human productivity. Agents can repeat work, follow bad approaches or produce experiments that a researcher ultimately rejects. But it still signals a structural change: AI is becoming part of the process used to develop future AI systems.&lt;/p&gt;

&lt;p&gt;The second publication, “An Alien Mind,” focused on the consequences of that transition.&lt;/p&gt;

&lt;p&gt;Pachocki described modern AI as intelligence that is “grown more than designed.” Researchers choose the architecture, data and optimisation process, but they do not explicitly program every internal strategy that emerges during training.&lt;/p&gt;

&lt;p&gt;As AI becomes more capable and more involved in research, the industry faces a difficult asymmetry. Systems are gaining the ability to perform more work, but our ability to understand and monitor that work may not improve at the same speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottleneck is moving from execution to verification
&lt;/h2&gt;

&lt;p&gt;AI makes it cheaper to produce another experiment.&lt;/p&gt;

&lt;p&gt;A researcher can ask several agents to implement competing solutions, generate evaluation cases or investigate different explanations for an unexpected result. Work that previously happened one task at a time can now happen in parallel.&lt;/p&gt;

&lt;p&gt;This sounds like a straightforward productivity gain. It also creates a new bottleneck.&lt;/p&gt;

&lt;p&gt;Writing code becomes faster. Running experiments becomes cheaper. Producing evidence becomes easier.&lt;/p&gt;

&lt;p&gt;Deciding whether that evidence is trustworthy does not.&lt;/p&gt;

&lt;p&gt;An agent can write an experiment that succeeds because of an unnoticed bug. It can exploit a shortcut in an evaluation environment. It can choose favourable results while ignoring contradictory runs. It can produce a confident explanation of an outcome that disappears under independent testing.&lt;/p&gt;

&lt;p&gt;None of these failure modes requires malicious intent. They can emerge whenever a system is optimised to complete a task without fully understanding the assumptions behind it.&lt;/p&gt;

&lt;p&gt;As the number of experiments grows, human researchers may find themselves reviewing AI-generated work more slowly than agents can produce it.&lt;/p&gt;

&lt;p&gt;The research bottleneck then shifts from execution to verification.&lt;/p&gt;

&lt;p&gt;That makes observability part of research quality, not merely an operational feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why chain-of-thought monitoring looked promising
&lt;/h2&gt;

&lt;p&gt;Reasoning models generate intermediate text before returning an answer or taking an action. This chain of thought may reveal how the model approached the task.&lt;/p&gt;

&lt;p&gt;Suppose an agent is asked to fix a failing test. Instead of correcting the implementation, it modifies the test so the failure disappears.&lt;/p&gt;

&lt;p&gt;The final output may look successful. The test passes, and the agent reports completion.&lt;/p&gt;

&lt;p&gt;The reasoning trace may tell a different story. It could reveal that the model noticed the shortcut and deliberately used it.&lt;/p&gt;

&lt;p&gt;This is why chain-of-thought monitoring has attracted attention from safety researchers. A second model can inspect the reasoning trace and flag signs of reward hacking, deception or attempts to bypass a task constraint.&lt;/p&gt;

&lt;p&gt;OpenAI’s research on &lt;a href="https://openai.com/index/evaluating-chain-of-thought-monitorability/" rel="noopener noreferrer"&gt;chain-of-thought monitorability&lt;/a&gt; studied this technique across 13 evaluations and 24 environments. The evaluations covered behaviours such as sycophancy, bias, cheating and reward hacking.&lt;/p&gt;

&lt;p&gt;In many of those environments, monitoring the chain of thought was substantially more effective than examining actions and final answers alone.&lt;/p&gt;

&lt;p&gt;Longer reasoning often made the model easier to monitor because the trace contained more information about its approach. OpenAI also identified a “monitorability tax”: in some situations, a smaller model using more reasoning can offer similar capability while remaining easier to inspect, at the cost of additional compute and latency.&lt;/p&gt;

&lt;p&gt;This makes chain of thought valuable. It gives developers another signal when the final answer does not reveal how the result was produced.&lt;/p&gt;

&lt;p&gt;But it is still only a signal.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reasoning trace is not an audit log
&lt;/h2&gt;

&lt;p&gt;A chain of thought is generated text. It is not a direct export of every neural computation that influenced the model’s decision.&lt;/p&gt;

&lt;p&gt;The trace may be informative, incomplete or simply wrong about the process that produced the answer.&lt;/p&gt;

&lt;p&gt;Anthropic demonstrated part of this problem in its research showing that &lt;a href="https://www.anthropic.com/research/reasoning-models-dont-say-think" rel="noopener noreferrer"&gt;reasoning models do not always say what they think&lt;/a&gt;. A model can offer a coherent explanation while omitting information that affected its output.&lt;/p&gt;

&lt;p&gt;The limitation becomes more serious when a model operates as an agent.&lt;/p&gt;

&lt;p&gt;A long-running agent may search the web, call APIs, execute code, exchange messages with other agents and update shared files. Its written reasoning captures only one stream of information within that process.&lt;/p&gt;

&lt;p&gt;The critical cause of an action might be found in a tool response, a retrieved webpage or a change another agent made to the environment. None of that is guaranteed to appear clearly in the chain of thought.&lt;/p&gt;

&lt;p&gt;More capable models may also become better at controlling what appears in their reasoning. OpenAI’s &lt;a href="https://openai.com/index/reasoning-models-chain-of-thought-controllability/" rel="noopener noreferrer"&gt;research into CoT controllability&lt;/a&gt; found that current frontier models still struggle to manipulate their reasoning consistently. However, controllability generally increased with model scale.&lt;/p&gt;

&lt;p&gt;There is also no guarantee that future systems will verbalise every important step. More of the relevant computation could happen through internal representations that never appear in natural language.&lt;/p&gt;

&lt;p&gt;Chain of thought can remain useful under these conditions. It simply cannot be treated as the authoritative record of an agent run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring can change the signal being monitored
&lt;/h2&gt;

&lt;p&gt;There is another problem familiar to anyone who has worked with software metrics.&lt;/p&gt;

&lt;p&gt;Once a signal becomes a target, systems begin optimising for the signal.&lt;/p&gt;

&lt;p&gt;OpenAI previously studied reasoning models that exploited loopholes in coding tasks. Their reasoning traces frequently exposed what they were attempting, allowing a monitor to identify the behaviour.&lt;/p&gt;

&lt;p&gt;When researchers directly penalised suspicious reasoning, the underlying behaviour did not always disappear. Instead, the models became less likely to describe their intention.&lt;/p&gt;

&lt;p&gt;The chain of thought looked safer while the model continued to exploit the task.&lt;/p&gt;

&lt;p&gt;OpenAI therefore &lt;a href="https://openai.com/index/chain-of-thought-monitoring/" rel="noopener noreferrer"&gt;recommended against applying strong optimisation pressure&lt;/a&gt; directly to the reasoning traces of frontier models.&lt;/p&gt;

&lt;p&gt;For developers, the lesson is uncomfortable but important: a clean reasoning trace is not proof of safe behaviour.&lt;/p&gt;

&lt;p&gt;If models know which reasoning patterns trigger a block, the trace can gradually become a presentation layer written for the monitor. A messy trace that reveals a dangerous strategy may be more valuable than a polished explanation that hides it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Treat an agent run as an event stream
&lt;/h2&gt;

&lt;p&gt;If chain of thought is not an audit log, the application has to create one.&lt;/p&gt;

&lt;p&gt;The useful unit of observation is not only the model request or final answer. It is the complete sequence of events that occurred during the run.&lt;/p&gt;

&lt;p&gt;A minimal event model could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;AgentEvent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;model.started&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;taskId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;tool.called&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;tool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;argumentsHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;permissionScope&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;[];&lt;/span&gt;
      &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;source.retrieved&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;contentHash&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;retrievedAt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;environment.changed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;resource&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;beforeHash&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;afterHash&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;reversible&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;boolean&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;evaluation.completed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;evaluator&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;result&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pass&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;fail&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;review&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;human.approved&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;reviewerId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="nl"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&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;The exact schema will vary by application. The important decision is to record observable facts separately from the model’s interpretation of those facts.&lt;/p&gt;

&lt;p&gt;The reasoning trace can still be attached to the run where policy and model access allow it. But it should sit beside the event stream, not replace it.&lt;/p&gt;

&lt;p&gt;Tool records tell you what the system attempted. Environment events reveal what changed. Evaluation events show whether the result passed an independent check. Human approval records identify who authorised an irreversible action.&lt;/p&gt;

&lt;p&gt;Together, these signals let you reconstruct what happened even when the model’s explanation is missing or unreliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Web-connected agents need evidence provenance
&lt;/h2&gt;

&lt;p&gt;An agent with web access introduces another layer of uncertainty.&lt;/p&gt;

&lt;p&gt;Pages change. Several websites can repeat the same unsupported claim. A search result can contain hidden instructions intended to manipulate an AI agent. A source that appeared authoritative during one run may later be corrected or removed.&lt;/p&gt;

&lt;p&gt;For every retrieved source, the system should preserve enough information to answer four questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Which query produced the source?&lt;/li&gt;
&lt;li&gt;What did the page contain when it was retrieved?&lt;/li&gt;
&lt;li&gt;Which claim or decision depended on it?&lt;/li&gt;
&lt;li&gt;Can the same evidence still be reproduced?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;A URL alone is not enough.&lt;/p&gt;

&lt;p&gt;Retrieval time, extracted content, content hashes and canonical URLs make later investigation possible. Source-level relevance and confidence scores can show why one result was selected over another. Citation validation can test whether the source actually supports the claim attached to it.&lt;/p&gt;

&lt;p&gt;This information also helps identify duplicate evidence. Ten pages repeating the same press release are not ten independent confirmations.&lt;/p&gt;

&lt;p&gt;Search is therefore part of an agent’s security boundary. Retrieved content influences the model’s decisions and needs to be traced like any other external input.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observability should determine how much autonomy an agent receives
&lt;/h2&gt;

&lt;p&gt;Developers often choose an agent’s autonomy according to model capability. A stronger model receives longer tasks, more tools and fewer interruptions.&lt;/p&gt;

&lt;p&gt;Observability should be part of that decision too.&lt;/p&gt;

&lt;p&gt;A system should not receive more autonomy than the application can reliably monitor and control.&lt;/p&gt;

&lt;p&gt;Before allowing an agent to operate for hours, modify production data or access external networks, a team should know whether it can trace every tool call, identify unexpected permission use and stop the run when it leaves the intended scope.&lt;/p&gt;

&lt;p&gt;Irreversible actions deserve particular attention. Sending a message, deleting data, publishing content or deploying code should usually require a stronger approval boundary than reading a document or generating a draft.&lt;/p&gt;

&lt;p&gt;Anthropic’s recent guidance on &lt;a href="https://www.anthropic.com/news/improving-alignment-security-efforts" rel="noopener noreferrer"&gt;alignment and security practices&lt;/a&gt; recommends monitoring a model’s thinking, actions and network activity during high-risk evaluations. If a run moves outside its authorised scope, the monitor should flag it and allow a human to end the exercise.&lt;/p&gt;

&lt;p&gt;OpenAI has described applying a similar principle to its own model development. In August, it temporarily paused reinforcement-learning training while strengthening research environments and expanding monitoring coverage. Its &lt;a href="https://openai.com/index/pacing-model-development-cyber-capabilities/" rel="noopener noreferrer"&gt;largest planned frontier training run remained on hold&lt;/a&gt; while smaller evaluations gathered more safety evidence.&lt;/p&gt;

&lt;p&gt;The principle translates directly to production systems:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;More capability should require more evidence that the system can be observed, interrupted and audited.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  One window is not enough
&lt;/h2&gt;

&lt;p&gt;The phrase “alien mind” captures something real about modern AI. These systems are not conventional programs whose behaviour can be understood by reading hand-written rules.&lt;/p&gt;

&lt;p&gt;But developers do not need a perfect theory of machine intelligence before improving the systems around it.&lt;/p&gt;

&lt;p&gt;Chain-of-thought monitoring remains useful. It can expose strategies and failure modes that are invisible in the final answer. The mistake is treating it as the single source of truth.&lt;/p&gt;

&lt;p&gt;A safer agent architecture combines several imperfect signals: reasoning traces, tool events, network activity, environment changes, evidence provenance, independent evaluations and human approval for consequential actions.&lt;/p&gt;

&lt;p&gt;The objective is not to read the model’s mind.&lt;/p&gt;

&lt;p&gt;It is to know what the system saw, what it did and what changed as a result.&lt;/p&gt;

&lt;p&gt;AI is already contributing to AI research, and the systems involved will continue to receive broader responsibilities. The observability problem starts long before those research loops become fully autonomous.&lt;/p&gt;

&lt;p&gt;If our monitoring cannot keep pace, a reassuring chain of thought will not save us. A complete and independently verifiable record of the agent’s actions might.&lt;/p&gt;

&lt;p&gt;For more practical discussions about web-connected AI, source provenance and traceable retrieval, visit the &lt;a href="https://www.cloudsway.ai/resources" rel="noopener noreferrer"&gt;Cloudsway Resources&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>observability</category>
      <category>security</category>
    </item>
    <item>
      <title>Your LLM Trace Is Green. Why Is the RAG Answer Still Wrong?</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Mon, 07 Sep 2026 03:10:34 +0000</pubDate>
      <link>https://dev.to/cloudsway/your-llm-trace-is-green-why-is-the-rag-answer-still-wrong-41nk</link>
      <guid>https://dev.to/cloudsway/your-llm-trace-is-green-why-is-the-rag-answer-still-wrong-41nk</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Many LLM observability setups capture prompts, outputs, tokens, and latency while leaving retrieval failures hidden.&lt;/li&gt;
&lt;li&gt;A single search call may conceal query rewriting, filtering, fetching, deduplication, reranking, and evidence selection.&lt;/li&gt;
&lt;li&gt;A useful trace connects the original question to the effective query, returned sources, selected passages, and final claims.&lt;/li&gt;
&lt;li&gt;Retrieval tracing helps distinguish missing, stale, or ignored evidence from a genuine generation failure.&lt;/li&gt;
&lt;li&gt;Production teams should measure freshness, duplicate evidence, citation coverage, and cost per grounded answer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A user asks your AI assistant whether a product still supports a particular feature. The assistant responds confidently and links to the company’s documentation.&lt;/p&gt;

&lt;p&gt;The model request succeeded. Latency was normal. Token usage stayed within budget. No tool call failed. Every indicator on the dashboard is green.&lt;/p&gt;

&lt;p&gt;The answer is also six months out of date.&lt;/p&gt;

&lt;p&gt;The model trace cannot tell you whether the system searched for the wrong phrase, preferred an old page, discarded a better result, or ignored the correct evidence. It only shows the context that eventually reached the model.&lt;/p&gt;

&lt;p&gt;That is the blind spot in model-centred observability. For RAG applications and web-connected agents, the useful unit of observation is not the model call. It is the complete evidence path.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Successful Model Call Can Still Be a Failed Request
&lt;/h2&gt;

&lt;p&gt;A typical LLM trace records the prompt, response, model name, token consumption, latency, errors, and perhaps a tool invocation. That is useful for diagnosing slow requests, malformed inputs, and unexpectedly expensive generations.&lt;/p&gt;

&lt;p&gt;It does not tell you whether the model received the right facts.&lt;/p&gt;

&lt;p&gt;In a retrieval application, the final prompt is assembled by an upstream system. That system may rewrite the query, choose a search provider, apply time or domain filters, fetch pages, extract text, remove duplicates, rerank candidates, and select passages for the context window.&lt;/p&gt;

&lt;p&gt;The model can behave exactly as instructed and still produce a bad answer because one of those earlier decisions was wrong.&lt;/p&gt;

&lt;p&gt;The current &lt;a href="https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-spans.md" rel="noopener noreferrer"&gt;OpenTelemetry semantic conventions for generative AI&lt;/a&gt; recognise retrieval from a vector database or search system as a separate span. They include concepts such as the data source, top-k, retrieved document IDs, scores, and the effective retrieval query.&lt;/p&gt;

&lt;p&gt;The conventions are still marked &lt;strong&gt;Development&lt;/strong&gt;, and potentially sensitive fields such as query text and returned documents are opt-in. They are useful as a shared vocabulary, but they should not be treated as a finished internal schema.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.langchain.com/langsmith/log-retriever-trace" rel="noopener noreferrer"&gt;LangSmith’s retriever tracing documentation&lt;/a&gt; takes a similar approach by representing retrieval as its own run and attaching document metadata such as source URLs, chunk IDs, and scores.&lt;/p&gt;

&lt;p&gt;The important question is not which tracing platform you use. It is what your trace can explain when an answer goes wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  One Search Call Hides an Evidence Pipeline
&lt;/h2&gt;

&lt;p&gt;Application code may represent web retrieval as a single tool call. Operationally, it looks more like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question → query rewrite → search → page fetch → extraction → deduplication → reranking → evidence selection → answer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every transition introduces a different failure mode.&lt;/p&gt;

&lt;p&gt;A query rewrite can remove an important date or product qualifier. Search can return relevant-looking but obsolete pages. Extraction can miss the paragraph containing the answer. Several URLs can reproduce the same story and create the illusion of independent confirmation.&lt;/p&gt;

&lt;p&gt;A reranker may favour semantic similarity over freshness. The context builder may then drop the best passage to stay inside its token budget.&lt;/p&gt;

&lt;p&gt;“Search completed successfully” tells you almost nothing about those decisions.&lt;/p&gt;

&lt;p&gt;A search-aware trace should retain enough information to reconstruct how evidence moved through the pipeline.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;Useful trace data&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Search decision&lt;/td&gt;
&lt;td&gt;Reason for searching, selected source, freshness policy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query&lt;/td&gt;
&lt;td&gt;Original question, rewritten query, filters, strategy version&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retrieval&lt;/td&gt;
&lt;td&gt;Provider, top-k, rank, score, duration, retry, cache status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence&lt;/td&gt;
&lt;td&gt;Canonical URL, publication time, retrieval time, content hash, selected passage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Answer&lt;/td&gt;
&lt;td&gt;Claim ID, evidence ID, citation mapping, model and prompt version&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Only some of these fields are part of emerging telemetry conventions. Canonical URLs, content hashes, cache status, freshness policies, and claim-to-evidence mappings are application-level metadata that teams need to design themselves.&lt;/p&gt;

&lt;p&gt;This does not mean storing every complete webpage forever. Metadata, content hashes, and the passages supplied to the model are often enough for diagnosis. Sensitive queries and retrieved content still require redaction, access controls, and a defined retention period.&lt;/p&gt;

&lt;p&gt;The goal is not to log everything. It is to preserve enough information to explain an answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  A URL Is Not Evidence
&lt;/h2&gt;

&lt;p&gt;Many applications place a few URLs beside an answer and call that provenance. A URL identifies a location, but it does not identify the exact information the model used.&lt;/p&gt;

&lt;p&gt;Pages change. Search snippets can differ from subsequently fetched content. Two URLs may contain the same syndicated article. A page’s publication date may also differ from its most recent update.&lt;/p&gt;

&lt;p&gt;If you only retain the URL, opening it tomorrow may not reproduce the evidence used today.&lt;/p&gt;

&lt;p&gt;A better evidence record connects four things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The source, the retrieved version, the selected passage, and the claim it supports.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That normally requires a canonical URL, retrieval timestamp, publication date when available, content hash, and the passage sent to the model. A stable evidence ID can then follow that passage through reranking, context construction, and generation.&lt;/p&gt;

&lt;p&gt;This becomes even more important in multi-agent systems. A shared URL cache may stop four agents from fetching the same page, but it does not demonstrate that they consumed the same version or selected the same passage.&lt;/p&gt;

&lt;p&gt;Content hashes and evidence IDs make that relationship visible. They also stop duplicated content from inflating confidence. Five URLs do not represent five independent sources when they all reproduce one original report.&lt;/p&gt;

&lt;h2&gt;
  
  
  Debug the Evidence Path in Order
&lt;/h2&gt;

&lt;p&gt;Return to the outdated product answer.&lt;/p&gt;

&lt;p&gt;Start with the effective query. If the user asked about current support but the rewritten query dropped the word “current,” the problem began before retrieval.&lt;/p&gt;

&lt;p&gt;Next, inspect the returned sources. If the latest documentation never appeared, the trace points towards a discovery problem involving the query, filters, or search provider.&lt;/p&gt;

&lt;p&gt;If the current page appeared but ranked below an older one, look at reranking and freshness weighting. If it survived reranking but its relevant paragraph was never selected, the problem is more likely to be extraction or context construction.&lt;/p&gt;

&lt;p&gt;Only when the correct evidence reached the model and the answer still contradicted it does the incident begin to resemble a generation failure. Even then, context ordering, truncation, or conflicting evidence may still be involved.&lt;/p&gt;

&lt;p&gt;Citation failure is another category. An answer can be factually correct while citing a page that does not support the relevant claim. A generally related link is not evidence unless the cited passage actually supports what the answer says.&lt;/p&gt;

&lt;p&gt;These distinctions matter because each problem has a different fix. A new system prompt cannot recover a source that was never retrieved. Increasing top-k may make duplicate evidence worse. Switching to a more expensive model will not make stale documentation current.&lt;/p&gt;

&lt;p&gt;A useful trace turns “the answer was wrong” into a testable hypothesis about a specific stage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turn Traces Into Production Signals
&lt;/h2&gt;

&lt;p&gt;Traces are useful for debugging individual incidents, but their larger value appears when you aggregate them.&lt;/p&gt;

&lt;p&gt;A team might define retrieval success rate as the percentage of runs in which at least one selected source meets its relevance threshold. Freshness-policy violation rate can measure how often the system uses evidence older than the question permits. Duplicate evidence ratio can show how many apparently different results collapse into one canonical or content-hash group.&lt;/p&gt;

&lt;p&gt;Citation coverage should represent the share of material claims connected to supporting evidence. It should not simply count links. An answer can contain five citations while leaving its most consequential statement unsupported.&lt;/p&gt;

&lt;p&gt;One metric I would add is &lt;strong&gt;cost per grounded answer&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;(search + extraction + reranking + generation cost) / answers that pass the grounding threshold&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Cost per model call is misleading when a cheap workflow repeatedly searches, retrieves duplicate pages, or generates responses that later fail verification.&lt;/p&gt;

&lt;p&gt;Traces should also feed evaluation rather than become an archive nobody examines. Failed production runs can become regression cases. After changing a query strategy, extraction rule, or reranker, the same cases can be run again to determine whether the evidence path improved.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mlflow.org/docs/latest/genai/eval-monitor/scorers/llm-judge/rag/" rel="noopener noreferrer"&gt;MLflow’s current RAG evaluation documentation&lt;/a&gt; separates retrieval relevance, groundedness, and sufficiency, and requires retrieval to appear explicitly in the trace. That separation matters because an end-to-end score alone cannot tell you what to fix.&lt;/p&gt;

&lt;p&gt;Automated judges are imperfect, but they provide a useful loop: observe a failure, classify its likely stage, add it to an evaluation set, change one component, and measure the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instrument Retrieval Before Replacing the Model
&lt;/h2&gt;

&lt;p&gt;When an AI application produces a poor answer, the model is often the first component developers replace. They change prompts, increase context, or upgrade models without knowing whether generation caused the failure.&lt;/p&gt;

&lt;p&gt;For a search-enabled RAG system, observability needs to begin earlier. Retrieval, reranking, and context selection should appear as separate nested steps under the same request.&lt;/p&gt;

&lt;p&gt;A production trace should be able to answer three questions:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What did the system ask? What evidence did it see? Why did that evidence become this answer?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Until it can, you are monitoring your model—not observing your system.&lt;/p&gt;

&lt;p&gt;When a RAG answer is wrong, can your current trace tell whether the source was never found, ranked down, dropped from context, or ignored by the model? Which of those is hardest for your team to see today?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>rag</category>
      <category>observability</category>
      <category>llm</category>
    </item>
    <item>
      <title>GPT-6 Astra vs. GPT-5.6 Sol: How to Evaluate Cost and Reliability</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Fri, 04 Sep 2026 05:33:00 +0000</pubDate>
      <link>https://dev.to/cloudsway/gpt-6-astra-vs-gpt-56-sol-how-to-evaluate-cost-and-reliability-j82</link>
      <guid>https://dev.to/cloudsway/gpt-6-astra-vs-gpt-56-sol-how-to-evaluate-cost-and-reliability-j82</guid>
      <description>&lt;p&gt;&lt;em&gt;Why cost per accepted result matters more than token pricing when choosing a model for production.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GPT-6 Astra’s standard input and output token prices are 2.5 times GPT-5.6 Sol’s launch-period rates.&lt;/li&gt;
&lt;li&gt;Independent benchmarks show uneven improvements, not a universal advantage across every workload.&lt;/li&gt;
&lt;li&gt;Lower token consumption, fewer retries and reduced review time can sometimes offset a higher token price.&lt;/li&gt;
&lt;li&gt;Routine, predictable tasks should stay on cheaper models unless testing demonstrates a meaningful improvement.&lt;/li&gt;
&lt;li&gt;Evaluate both models using real tasks, consistent acceptance criteria and the total cost of producing an acceptable result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Changing a model configuration is straightforward. Understanding what that change does to your application’s economics is considerably harder.&lt;/p&gt;

&lt;p&gt;GPT-6 Astra makes that distinction important. OpenAI positions it for difficult end-to-end work, but its higher price raises an immediate question for developers already using GPT-5.6 Sol: what, exactly, would an upgrade buy?&lt;/p&gt;

&lt;p&gt;A better answer? Fewer tool calls? Less time spent correcting incomplete results? Or simply a larger bill?&lt;/p&gt;

&lt;p&gt;The published evaluations offer evidence for several of these outcomes, depending on the task. That is why treating Astra as an automatic replacement for Sol would be premature.&lt;/p&gt;

&lt;p&gt;The more useful approach is to evaluate the cost of reliability: how much you spend getting a task to the point where somebody can actually use the result.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Pricing and benchmark figures below refer to release information checked on 4 September 2026.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the price difference, but do not stop there
&lt;/h2&gt;

&lt;p&gt;The standard token rates create an obvious hurdle for Astra:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Input per million tokens&lt;/th&gt;
&lt;th&gt;Cached input&lt;/th&gt;
&lt;th&gt;Output per million tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-6 Astra&lt;/td&gt;
&lt;td&gt;$10&lt;/td&gt;
&lt;td&gt;$1&lt;/td&gt;
&lt;td&gt;$50&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.6 Sol&lt;/td&gt;
&lt;td&gt;$4&lt;/td&gt;
&lt;td&gt;$0.40&lt;/td&gt;
&lt;td&gt;$20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are token rates, not complete task prices. Processing tiers, cache writes, tool usage and long-context requests can change the final bill. Astra’s documentation specifies higher rates for requests exceeding 272,000 input tokens. See the &lt;a href="https://developers.openai.com/api/docs/models/gpt-6-astra" rel="noopener noreferrer"&gt;Astra model documentation&lt;/a&gt; and &lt;a href="https://help.openai.com/en/articles/20001415-chatgpt-rate-card-enterprise-token-based-pricing" rel="noopener noreferrer"&gt;OpenAI rate card&lt;/a&gt; for the relevant details.&lt;/p&gt;

&lt;p&gt;If both models consumed the same number of tokens and produced equally useful results, Sol would be the clear economic choice.&lt;/p&gt;

&lt;p&gt;The difficulty is that neither assumption necessarily holds.&lt;/p&gt;

&lt;p&gt;One model might finish with fewer output tokens. Another might need a second attempt after failing validation. A response that passes automated checks might still require substantial human correction.&lt;/p&gt;

&lt;p&gt;An application pays for all of that, even when its dashboard only displays API spending.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the benchmarks do not settle the decision
&lt;/h2&gt;

&lt;p&gt;Artificial Analysis reports that GPT-6 Astra and GPT-5.6 Sol both score 61 on its Intelligence Index at max reasoning. Astra uses fewer tokens in that evaluation, but higher pricing makes it approximately 75% more expensive per task.&lt;/p&gt;

&lt;p&gt;That does not look like a compelling general-purpose upgrade.&lt;/p&gt;

&lt;p&gt;The coding results tell a different story. In the Coding Agent Index, Astra uses roughly one-third of Sol’s tokens and achieves a higher score at approximately the same task cost. The report also finds improvements in hallucination behaviour and some long-horizon analytical work, alongside regressions elsewhere. These are results from specific tests, not guarantees for every application. &lt;a href="https://artificialanalysis.ai/articles/benchmarking-gpt-6-astra" rel="noopener noreferrer"&gt;Artificial Analysis’s evaluation&lt;/a&gt; is useful precisely because it shows that mixed picture.&lt;/p&gt;

&lt;p&gt;The practical conclusion is narrower than “Astra is better”: some workloads appear better positioned to benefit from it than others.&lt;/p&gt;

&lt;p&gt;ARC-AGI-3 provides another reason to inspect evaluation conditions. Astra’s best reported Standard-harness result is 62.7%, while its Provider Adapter result approaches 99.9%. The adapter preserves reasoning state across requests and uses compaction for longer interactions. Those are materially different conditions, which &lt;a href="https://arcprize.org/results/openai-gpt-6-astra" rel="noopener noreferrer"&gt;ARC Prize reports separately&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For developers, the lesson is straightforward. A published score describes a model operating within a particular setup. Your application has its own prompts, context, tools, validation rules and constraints. That setup needs testing too.&lt;/p&gt;

&lt;h2&gt;
  
  
  The missing metric: cost per accepted result
&lt;/h2&gt;

&lt;p&gt;Consider a hypothetical document-review workflow.&lt;/p&gt;

&lt;p&gt;A cheaper model produces a report, but a reviewer spends twenty minutes checking unsupported claims and repairing omissions. At an illustrative labour cost of $60 per hour, that review costs $20.&lt;/p&gt;

&lt;p&gt;Saving fifty cents on the model call is no longer the main issue.&lt;/p&gt;

&lt;p&gt;This does not mean a more expensive model would automatically eliminate the review. It means that review time belongs in the comparison. If Astra reduces it, that improvement has economic value. If it does not, the higher price remains difficult to justify.&lt;/p&gt;

&lt;p&gt;A useful starting metric is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cost per accepted result = total model and tool spending across all attempts, plus review and remediation costs, divided by accepted results.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The phrase “across all attempts” matters. A failed call should not disappear from the calculation when a later retry succeeds. Nor should three attempts at the same user request be counted as three successfully served tasks.&lt;/p&gt;

&lt;p&gt;“Accepted” also needs a definition. An answer is not successful merely because the API returned without an error. A patch might need to pass tests and review. A research report might need to support its material claims with valid sources. A structured extraction might need to satisfy field-level accuracy requirements.&lt;/p&gt;

&lt;p&gt;Until those conditions are explicit, cost comparisons mostly measure how cheaply models can generate output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build a small evaluation from work you already understand
&lt;/h2&gt;

&lt;p&gt;You do not need a large benchmark suite to begin comparing Astra and Sol.&lt;/p&gt;

&lt;p&gt;Start with 20 to 50 representative tasks from your application. Include ordinary requests, difficult examples and cases that previously required correction. Avoid building a test set entirely from spectacular failures; that would overstate the value of the stronger model for normal traffic.&lt;/p&gt;

&lt;p&gt;Define acceptance criteria before running the comparison. For coding, specify expected behaviour and relevant tests. For extraction, use known field values. For research, require correct claims, relevant evidence and citations that actually support the answer.&lt;/p&gt;

&lt;p&gt;Give both models equivalent inputs and access to the same evidence. Record reasoning settings, tool budgets and context handling so differences are interpretable. Then measure first-pass acceptance, retries, latency, model and tool spending, human review time, and serious errors.&lt;/p&gt;

&lt;p&gt;Keep the initial comparison controlled. Afterward, a second round can test configurations tuned for each model. A model may perform better with different prompting or reasoning settings, but that should not be confused with a clean like-for-like comparison.&lt;/p&gt;

&lt;p&gt;Where human judgment is involved, hide model names from reviewers if practical. A response should not receive a more generous assessment because it came from the newest release.&lt;/p&gt;

&lt;p&gt;Twenty tasks will not establish a dependable rate for rare failures. They can, however, reveal whether a larger evaluation is worth conducting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Astra could justify its premium
&lt;/h2&gt;

&lt;p&gt;Complex software work is a sensible place to investigate.&lt;/p&gt;

&lt;p&gt;A model that traces a bug across several files, produces a compatible fix and responds correctly to failing tests may save more engineering time than one that generates a convincing first patch. What matters is whether that advantage survives contact with your repository.&lt;/p&gt;

&lt;p&gt;Cross-document analysis is another candidate. Missing a material inconsistency across contracts, technical records or financial documents can create substantial follow-up work. Astra’s large context window may help accommodate those inputs, but capacity is not proof that the model will use every detail correctly.&lt;/p&gt;

&lt;p&gt;Research workflows also deserve attention, particularly when reviewers currently spend a large amount of time checking claims. Improvements in factual behaviour could reduce that burden. The relevant test is whether your reviewers actually spend less time correcting the output while maintaining the same standard.&lt;/p&gt;

&lt;p&gt;There is an important boundary here: a model should not receive broader permissions simply because it performs better.&lt;/p&gt;

&lt;p&gt;More reliable analysis is not a substitute for tests, approval steps or access controls. An unacceptable security or financial error cannot be made acceptable by a low average cost per task.&lt;/p&gt;

&lt;h2&gt;
  
  
  A stronger model still needs current evidence
&lt;/h2&gt;

&lt;p&gt;For applications that research the web, model selection is only part of the reliability problem.&lt;/p&gt;

&lt;p&gt;Astra’s published knowledge cutoff is 30 April 2026. Questions about later product changes, current pricing or recent events need information supplied at runtime. Its larger context window does not update that knowledge. &lt;a href="https://developers.openai.com/api/docs/models/gpt-6-astra" rel="noopener noreferrer"&gt;OpenAI lists both the context limit and cutoff in the model documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This makes retrieval quality part of the comparison.&lt;/p&gt;

&lt;p&gt;If one run receives fresh primary sources while another receives stale snippets, the result does not isolate model quality. Keep the evidence set consistent when testing reasoning, then evaluate live retrieval separately.&lt;/p&gt;

&lt;p&gt;In production, a web search API can supply current sources, but finding a page is not the same as verifying a claim. The application still needs to preserve URLs, distinguish publication dates from event dates, and check that the cited passage supports the conclusion.&lt;/p&gt;

&lt;p&gt;A stronger model may interpret evidence better. It cannot recover evidence that the application never found.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep cheaper models where they already work
&lt;/h2&gt;

&lt;p&gt;Routine summarisation, rewriting, classification and predictable extraction often have inexpensive failure modes and straightforward validation.&lt;/p&gt;

&lt;p&gt;If Sol already meets your acceptance criteria on those tasks, a more polished response from Astra may not create meaningful additional value. At high volume, the extra spending can outweigh marginal improvements.&lt;/p&gt;

&lt;p&gt;Selective use is therefore a reasonable outcome, not a compromise.&lt;/p&gt;

&lt;p&gt;Sol can remain the default for established workloads. Astra can handle categories where testing demonstrates a better result, or act as an escalation path when cheaper attempts fail a meaningful check.&lt;/p&gt;

&lt;p&gt;That escalation should follow observable conditions rather than the model’s unsupported claim that it is confident or uncertain. Validation failures, missing evidence and known task complexity are better starting points.&lt;/p&gt;

&lt;p&gt;The result may be a system in which Astra handles a minority of requests but delivers a large share of the improvement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choose the model that finishes the job at an acceptable cost
&lt;/h2&gt;

&lt;p&gt;The question is not whether GPT-6 Astra deserves its place on a leaderboard. It is whether it improves the economics of a specific workload.&lt;/p&gt;

&lt;p&gt;If it reduces retries, review time and costly corrections, a higher token price may be justified. If those measures remain unchanged, the premium is simply additional spending.&lt;/p&gt;

&lt;p&gt;Start with the tasks your application needs to complete. Define what success means. Count the attempts, the tools and the human work required to get there.&lt;/p&gt;

&lt;p&gt;Then choose the model that delivers an acceptable result at an acceptable cost, even when that model is not the newest one.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Building a Brand Monitoring Agent: Search Is the Easy Part</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Thu, 03 Sep 2026 06:16:32 +0000</pubDate>
      <link>https://dev.to/cloudsway/building-a-brand-monitoring-agent-search-is-the-easy-part-414h</link>
      <guid>https://dev.to/cloudsway/building-a-brand-monitoring-agent-search-is-the-easy-part-414h</guid>
      <description>&lt;p&gt;A brand monitoring agent sounds like a small weekend project.&lt;/p&gt;

&lt;p&gt;Search for the company name, ask an LLM whether each result is positive or negative, and send an alert when something interesting appears.&lt;/p&gt;

&lt;p&gt;The first version might even fit into a few lines:&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;for&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;brand_name&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;sentiment&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;classify_sentiment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;snippet&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;sentiment&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;negative&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;send_alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It will also fail in several predictable ways.&lt;/p&gt;

&lt;p&gt;The search may return another company with the same name. A snippet may omit the sentence that changes the meaning of an article. The same press release may appear on ten domains. A review published six months ago may be discovered today and reported as breaking news.&lt;/p&gt;

&lt;p&gt;By the end of the week, the team is not monitoring the brand. It is monitoring the monitoring system.&lt;/p&gt;

&lt;p&gt;Search turns out to be the easy part. The real engineering begins after the URLs arrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Define the brand as an entity with products, domains, aliases, and contextual clues instead of monitoring one keyword.&lt;/li&gt;
&lt;li&gt;Treat search results as discovery candidates until the underlying pages have been retrieved and checked.&lt;/li&gt;
&lt;li&gt;Store publication time, first-seen time, and retrieval time separately.&lt;/li&gt;
&lt;li&gt;Deduplicate individual URLs while grouping related coverage into events.&lt;/li&gt;
&lt;li&gt;Keep workflow state, permissions, and alert decisions in application code rather than delegating everything to an LLM.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The first problem is identity
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.brandwatch.com/social-media-glossary/brand-monitoring/" rel="noopener noreferrer"&gt;Brand monitoring&lt;/a&gt; generally involves tracking references to a company, its products, and relevant people across news sites, blogs, forums, reviews, social platforms, and other channels.&lt;/p&gt;

&lt;p&gt;A company name alone is rarely a reliable identifier.&lt;/p&gt;

&lt;p&gt;Suppose the product is called Harbour. Searching for that word could surface shipping terminals, property developments, restaurants, and local government projects. Adding &lt;code&gt;software&lt;/code&gt; to every query reduces some noise, but it may also exclude a genuine customer review that never mentions the category.&lt;/p&gt;

&lt;p&gt;The agent needs a brand profile that describes what it is looking for:&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;"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;"Harbour"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"domain"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"harbour.example"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"industry"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"project management software"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"products"&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="s2"&gt;"Harbour Projects"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Harbour Teams"&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;"aliases"&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="s2"&gt;"Harbour PM"&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;"common_confusions"&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="s2"&gt;"shipping port"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"property development"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"restaurant"&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 profile can support both query generation and later relevance classification.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;common_confusions&lt;/code&gt; field should provide context rather than act as a hard blocklist. An article could mention shipping as a metaphor and still discuss the software product. Entity matching is usually a weighted judgement based on several signals: product names, industry language, official domains, named executives, and the surrounding passage.&lt;/p&gt;

&lt;p&gt;The classifier should also be allowed to return &lt;code&gt;uncertain&lt;/code&gt;. Forcing it to choose between relevant and irrelevant will create false confidence when the page contains too little evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search results are leads, not source material
&lt;/h2&gt;

&lt;p&gt;The second mistake is analysing search snippets as though they were the original page.&lt;/p&gt;

&lt;p&gt;Snippets are designed to help a person decide which result to open. They may be shortened, assembled from different parts of a page, or missing the qualification that determines what a sentence actually means.&lt;/p&gt;

&lt;p&gt;A better pipeline separates discovery from extraction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Query generation
      ↓
Web search
      ↓
Candidate URLs
      ↓
Page retrieval
      ↓
Evidence extraction
      ↓
Classification
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is also a useful way to divide API responsibilities. &lt;a href="https://www.cloudsway.ai/" rel="noopener noreferrer"&gt;Cloudsway Search&lt;/a&gt;, for example, provides SmartSearch for discovering fresh, source-backed web information and Reader for extracting structured content from pages and documents.&lt;/p&gt;

&lt;p&gt;Regardless of the provider, the principle is the same: search finds possible sources; retrieved content provides the evidence used to evaluate them.&lt;/p&gt;

&lt;p&gt;If a page cannot be retrieved, store that as a limitation. Do not quietly promote its snippet into a verified mention.&lt;/p&gt;

&lt;p&gt;For an accepted result, retain the passage that supports the classification. An LLM-generated summary may make the report easier to scan, but the recipient should still be able to inspect what the source actually said.&lt;/p&gt;

&lt;p&gt;A minimal record could look like this:&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;"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://example.com/harbour-review"&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;"Harbour Projects Review"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;Harbour Projects&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt; review"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"decision"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"relevant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"confidence"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.92&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"supporting_passage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The text that supports the decision"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"topic"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"pricing"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sentiment"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"mixed"&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;A confidence score alone is not evidence. It becomes useful only when it accompanies a decision explanation and a source passage.&lt;/p&gt;

&lt;h2&gt;
  
  
  One page needs three timestamps
&lt;/h2&gt;

&lt;p&gt;Time creates another subtle problem.&lt;/p&gt;

&lt;p&gt;A page can be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;published on one date;&lt;/li&gt;
&lt;li&gt;discovered by the agent on another;&lt;/li&gt;
&lt;li&gt;retrieved and analysed later.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These events should be stored separately.&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;"publication_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-02-04T09:00:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"first_seen_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-09-03T02:10:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"retrieved_time"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-09-03T02:11:14Z"&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;If an old review becomes discoverable today, it is a new result for the system but not new coverage of the company.&lt;/p&gt;

&lt;p&gt;Replacing a missing publication date with the current time makes the record look complete, but it creates a false fact. Unknown should remain unknown.&lt;/p&gt;

&lt;p&gt;This distinction also affects scheduled searches. Search indexes may expose pages later than expected, while some sources update existing URLs rather than publishing new ones. Overlapping time windows can reduce missed results, but they do not provide complete coverage.&lt;/p&gt;

&lt;p&gt;An occasional broader search is still useful for finding older pages that have only recently become visible.&lt;/p&gt;

&lt;h2&gt;
  
  
  URL deduplication is not enough
&lt;/h2&gt;

&lt;p&gt;The first kind of duplication is straightforward: the same page may appear with tracking parameters, fragments, or alternate URL formats.&lt;/p&gt;

&lt;p&gt;Normalising known tracking parameters can eliminate those copies. Parameters that select a different article, language, or product must be preserved, so blindly removing everything after &lt;code&gt;?&lt;/code&gt; is dangerous.&lt;/p&gt;

&lt;p&gt;The second kind is content duplication. Press releases are routinely republished across several websites with only minor formatting changes. Comparing titles and extracted text can identify these near-identical copies.&lt;/p&gt;

&lt;p&gt;The third kind is event duplication, and it requires more judgement.&lt;/p&gt;

&lt;p&gt;An official launch announcement, five syndicated copies, an independent review, and a customer discussion may all describe the same product launch. They belong to one broad event, but they do not contain the same evidence.&lt;/p&gt;

&lt;p&gt;The data model should preserve both levels:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Launch event
├── Official announcement
├── Syndicated copy A
├── Syndicated copy B
├── Independent review
└── Customer discussion
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The event prevents the digest from presenting one announcement as several independent developments. The mention records preserve attribution and allow independent reporting to remain visible.&lt;/p&gt;

&lt;p&gt;If every result is deduplicated only by URL, syndicated coverage will inflate the report. If every result about the same launch is collapsed into one document, valuable independent evidence will disappear.&lt;/p&gt;

&lt;h2&gt;
  
  
  A monitoring agent needs memory, but not conversational memory
&lt;/h2&gt;

&lt;p&gt;The system must know what it has already seen.&lt;/p&gt;

&lt;p&gt;This does not require the model to remember earlier conversations. It requires durable application state: processed URLs, content fingerprints, event identifiers, previous classifications, and the last time an event triggered a notification.&lt;/p&gt;

&lt;p&gt;A simplified processing loop might look like this:&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;for&lt;/span&gt; &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;build_queries&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;brand_profile&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;page&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;retrieve_page&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;mention&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;analyse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;brand_profile&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;mention&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;decision&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;irrelevant&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;store_rejection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mention&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;continue&lt;/span&gt;

        &lt;span class="n"&gt;event&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;match_event&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mention&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;change&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;compare_with_previous_state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mention&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="nf"&gt;save_mention&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mention&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_material&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;queue_alert&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;event&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;change&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice that &lt;code&gt;send_alert()&lt;/code&gt; is not called immediately after classification.&lt;/p&gt;

&lt;p&gt;The new mention is first compared with stored state. The system asks whether it adds evidence, corrects an earlier claim, changes the severity of an event, or simply repeats information that the team has already received.&lt;/p&gt;

&lt;p&gt;Without that state, running the same query more frequently only produces the same alert more frequently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sentiment is a label, not a priority system
&lt;/h2&gt;

&lt;p&gt;It is tempting to send an immediate notification whenever the model assigns negative sentiment.&lt;/p&gt;

&lt;p&gt;That rule confuses tone with impact.&lt;/p&gt;

&lt;p&gt;A mildly written review containing an incorrect price may affect purchasing decisions and deserve attention. An angry post from an unrelated account may not. A positive article can also quote a serious customer complaint, while a negative sentence may describe a competitor.&lt;/p&gt;

&lt;p&gt;Priority should combine several signals:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;priority =
    novelty
    + potential impact
    + source credibility
    + quality of evidence
    + relevance to an owner
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sentiment can be one signal, but it should not control the workflow on its own.&lt;/p&gt;

&lt;p&gt;Claims must also remain attributed. If a customer says that an onboarding process deleted their work, the alert can report that a customer made the claim. It should not state that the product deletes customer data unless additional evidence establishes that conclusion.&lt;/p&gt;

&lt;p&gt;This becomes particularly important when alerts go to support, communications, legal, or security teams.&lt;/p&gt;

&lt;h2&gt;
  
  
  Alerts should recommend a decision
&lt;/h2&gt;

&lt;p&gt;“Negative mention detected” does not tell anyone what to do.&lt;/p&gt;

&lt;p&gt;A better alert explains the change, evidence, uncertainty, and likely owner:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pricing information may be outdated&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A newly discovered review describes a plan limit that differs from the current product documentation. The statement has not yet been verified. Compare the attached passage with the pricing page before deciding whether to contact the publisher.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The alert record should include the source URL, supporting passage, publication date when available, first-seen time, and the query that discovered it.&lt;/p&gt;

&lt;p&gt;Routine coverage can enter a daily digest. A repeated onboarding complaint may go to support. A factual product discrepancy may belong with marketing. A possible vulnerability requires a controlled security workflow.&lt;/p&gt;

&lt;p&gt;The agent can recommend the route. External communication should still require human approval.&lt;/p&gt;

&lt;p&gt;Finding a public comment is not permission to answer it on the company’s behalf.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieved pages are untrusted input
&lt;/h2&gt;

&lt;p&gt;Any agent that reads the public web has to consider prompt injection.&lt;/p&gt;

&lt;p&gt;A retrieved page may contain sentences instructing the model to ignore previous rules, reveal information, or call another tool. Those sentences are part of the source being analysed. They must not become workflow instructions.&lt;/p&gt;

&lt;p&gt;The application should keep data and authority separate.&lt;/p&gt;

&lt;p&gt;The page can provide evidence for a classification. It should not gain access to notification systems, internal databases, or external actions merely because its text entered the model’s context.&lt;/p&gt;

&lt;p&gt;Important controls belong outside the prompt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;validate tool arguments;&lt;/li&gt;
&lt;li&gt;restrict tool permissions;&lt;/li&gt;
&lt;li&gt;require approval for external actions;&lt;/li&gt;
&lt;li&gt;escape or isolate retrieved content;&lt;/li&gt;
&lt;li&gt;log the evidence used for every decision;&lt;/li&gt;
&lt;li&gt;limit retries and repeated searches.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompts help the model follow the workflow. Application code enforces the boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-web monitoring is not complete social listening
&lt;/h2&gt;

&lt;p&gt;A web search API can discover public pages available to a search system. It does not guarantee access to closed groups, private communities, platform feeds, or every newly published social post.&lt;/p&gt;

&lt;p&gt;Some sources require platform-specific APIs, authentication, or commercial data access. Open-web monitoring can complement those sources, but it cannot replace them.&lt;/p&gt;

&lt;p&gt;This is one reason &lt;a href="https://www.brandwatch.com/social-media-glossary/social-listening/" rel="noopener noreferrer"&gt;social listening&lt;/a&gt; is usually treated as a broader analysis of conversations and trends, while a brand monitoring workflow may focus on individual mentions that require review.&lt;/p&gt;

&lt;p&gt;Your product should describe this limitation accurately.&lt;/p&gt;

&lt;p&gt;“No relevant public-web results were found” is a defensible output. “Nobody is talking about the brand” is not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the smallest report people trust
&lt;/h2&gt;

&lt;p&gt;The first version does not need real-time alerts across every channel.&lt;/p&gt;

&lt;p&gt;Start with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;One brand profile
One balanced query set
One persistent mention store
One event model
One daily digest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Review samples of accepted and rejected results. Track duplicate-alert rates. Keep a small set of known pages to check whether query or classifier changes break previously working cases.&lt;/p&gt;

&lt;p&gt;The useful metric is not how many mentions the agent collects. It is how often the report helps someone understand what changed without reopening every link.&lt;/p&gt;

&lt;p&gt;Search supplies the candidates. The rest of the application turns those candidates into evidence, events, and decisions.&lt;/p&gt;

&lt;p&gt;That is where a brand monitoring agent becomes more than an automated keyword alert.&lt;/p&gt;




&lt;p&gt;If you have built a monitoring or research agent, where did most of the complexity appear: retrieval, entity matching, deduplication, or deciding when to alert?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>automation</category>
      <category>programming</category>
    </item>
    <item>
      <title>What a 275K-Character Claude Prompt Teaches Us About Building AI Agents</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Wed, 02 Sep 2026 07:23:45 +0000</pubDate>
      <link>https://dev.to/cloudsway/what-a-275k-character-claude-prompt-teaches-us-about-building-ai-agents-1l4e</link>
      <guid>https://dev.to/cloudsway/what-a-275k-character-claude-prompt-teaches-us-about-building-ai-agents-1l4e</guid>
      <description>&lt;p&gt;A GitHub repository recently published what it describes as a runtime system prompt for Claude Fable 5.1. The file contains more than 275,000 characters of instructions related to tool use, web search, memory, copyright, safety policies, and interface behaviour.&lt;/p&gt;

&lt;p&gt;That naturally produced a dramatic headline: Claude had been hacked and its secret prompt had leaked.&lt;/p&gt;

&lt;p&gt;The evidence does not support such a broad conclusion. There is no public indication that Anthropic’s servers were compromised, that model weights were stolen, or that customer information was exposed. The material is better described as a third-party extraction or reconstruction of instructions presented to the model at runtime.&lt;/p&gt;

&lt;p&gt;But that does not make the file uninteresting.&lt;/p&gt;

&lt;p&gt;For developers, its real value is not discovering a collection of secret phrases that supposedly make Claude intelligent. It is seeing how much infrastructure now surrounds a frontier model before it becomes a usable AI agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A third-party repository published a purported Claude Fable 5.1 runtime prompt containing more than 275,000 characters.&lt;/li&gt;
&lt;li&gt;The file is not evidence that Anthropic’s model weights, servers, API keys, or customer data were compromised.&lt;/li&gt;
&lt;li&gt;Much of its length appears to come from tool definitions, search policies, memory rules, safety instructions, and product behaviour.&lt;/li&gt;
&lt;li&gt;Modern AI agents are increasingly built through runtime orchestration rather than one carefully written system message.&lt;/li&gt;
&lt;li&gt;Developers should enforce permissions, privacy, provenance, and safety in application code instead of relying entirely on prompts.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What was actually published?
&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli8yl9ibi834inu9rsdz.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fli8yl9ibi834inu9rsdz.png" alt=" " width="799" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The document appeared in Pliny the Liberator’s &lt;a href="https://github.com/elder-plinius/CL4R1T4S/blob/main/ANTHROPIC/Claude-Fable-5.1.md" rel="noopener noreferrer"&gt;CL4R1T4S GitHub repository&lt;/a&gt;, which collects system prompts and jailbreak-related material from several AI products.&lt;/p&gt;

&lt;p&gt;Anthropic separately publishes an &lt;a href="https://platform.claude.com/docs/en/release-notes/system-prompts/claude-fable-5-1" rel="noopener noreferrer"&gt;official Fable 5.1 system prompt&lt;/a&gt;. The third-party version is substantially larger because it appears to contain more than the assistant’s basic conversational rules.&lt;/p&gt;

&lt;p&gt;It reportedly includes instructions covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;web search and source selection;&lt;/li&gt;
&lt;li&gt;memory storage and privacy restrictions;&lt;/li&gt;
&lt;li&gt;copyright-sensitive responses;&lt;/li&gt;
&lt;li&gt;computer interaction;&lt;/li&gt;
&lt;li&gt;content and interface presentation;&lt;/li&gt;
&lt;li&gt;tool selection and routing;&lt;/li&gt;
&lt;li&gt;specialised safety behaviour.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Early analysis also identified schemas for roughly 46 tools. That number has not been confirmed by Anthropic as an official tool count, and the GitHub document cannot be independently verified as complete or universally active.&lt;/p&gt;

&lt;p&gt;This is an important qualification. A runtime prompt can differ by product, account, enabled features, conversation state, or deployment environment. Extracting one assembled context does not necessarily reveal every instruction used across Claude.&lt;/p&gt;

&lt;h2&gt;
  
  
  The “system prompt” has become an application bundle
&lt;/h2&gt;

&lt;p&gt;When developers first started building LLM applications, a system prompt often looked like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You are a helpful assistant.
Answer clearly and concisely.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A production agent may now receive something closer to this:&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="n"&gt;runtime_context&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="n"&gt;base_behaviour_policy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;product_instructions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;user_preferences&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;memory_policy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;available_tool_schemas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;search_policy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;retrieved_evidence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;safety_constraints&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;conversation_history&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 is only a conceptual example, but it illustrates the architectural change.&lt;/p&gt;

&lt;p&gt;The model is not responding only to the user’s message. It is operating inside a temporary environment assembled by the application. That environment tells it what it can do, which tools exist, what information it may retain, when it should search, and how its answer should be displayed.&lt;/p&gt;

&lt;p&gt;Once all of those components are serialised into model-readable text, the context can become extremely large.&lt;/p&gt;

&lt;p&gt;A 275,000-character runtime prompt therefore does not necessarily mean someone discovered a single 275,000-character piece of prompt engineering. It may mean the surrounding product stack was flattened into one context.&lt;/p&gt;

&lt;p&gt;That is a less sensational story, but a much more useful one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tool definitions are part of the product architecture
&lt;/h2&gt;

&lt;p&gt;Giving an agent access to a tool involves more than registering a function name.&lt;/p&gt;

&lt;p&gt;The model needs to understand what the tool does, which arguments it accepts, when it should be called, which results it returns, and what restrictions apply. If an application exposes dozens of tools, their schemas and usage rules can consume a significant part of the runtime context.&lt;/p&gt;

&lt;p&gt;The agent may also need routing instructions. A request for current information could trigger web search. A request involving an earlier conversation might use a history tool. Another request could produce a chart, preview a page, or interact with a computer.&lt;/p&gt;

&lt;p&gt;The resulting flow looks roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User request
     ↓
Intent and policy evaluation
     ↓
Tool selection
     ↓
Permission check
     ↓
Tool execution
     ↓
Evidence processing
     ↓
Response generation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every arrow introduces possible failure modes.&lt;/p&gt;

&lt;p&gt;The model can choose the wrong tool. A tool can return malformed data. Authentication can expire. Retrieved pages can contain prompt injection. Two tools can return conflicting answers. The agent can also call the correct tool repeatedly and create unnecessary cost.&lt;/p&gt;

&lt;p&gt;A long prompt can explain preferred behaviour, but it cannot remove these risks by itself.&lt;/p&gt;

&lt;p&gt;Permission checks, rate limits, schema validation, retries, timeouts, audit logs, and irreversible-action confirmations should be implemented outside the model. The prompt should guide the agent; the application should enforce the rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search needs a policy, not just an API
&lt;/h2&gt;

&lt;p&gt;The reported search instructions are especially relevant to developers building research agents and retrieval-augmented generation systems.&lt;/p&gt;

&lt;p&gt;Connecting a search API is relatively easy. Deciding when and how an agent should use it is harder.&lt;/p&gt;

&lt;p&gt;Some questions involve stable information and may not need retrieval. Others concern recent model releases, product prices, regulations, company leadership, security incidents, or live events. Answering those from model memory alone creates an obvious freshness problem.&lt;/p&gt;

&lt;p&gt;Anthropic’s own &lt;a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-fable-5-1" rel="noopener noreferrer"&gt;Fable 5.1 prompting guide&lt;/a&gt; says that lower-effort settings can be less likely to initiate search or retrieval. For changing or unfamiliar subjects, developers may need to instruct the model explicitly to verify the information.&lt;/p&gt;

&lt;p&gt;That means a production search agent needs rules for questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which requests require current web data?&lt;/li&gt;
&lt;li&gt;Which sources are acceptable for a particular claim?&lt;/li&gt;
&lt;li&gt;How should recency affect ranking?&lt;/li&gt;
&lt;li&gt;How should duplicate pages be handled?&lt;/li&gt;
&lt;li&gt;What happens when credible sources disagree?&lt;/li&gt;
&lt;li&gt;How does each citation remain attached to the claim it supports?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without those rules, an agent may perform a search and still produce an unreliable answer.&lt;/p&gt;

&lt;p&gt;Retrieval should therefore be treated as part of the reasoning architecture. A search API should return more than a list of URLs. The surrounding system needs structured content, publication information, source metadata, and a way to preserve provenance as evidence moves through the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Memory creates a data-governance problem
&lt;/h2&gt;

&lt;p&gt;Persistent memory can make an agent feel far more useful. It can remember formatting preferences, recurring projects, or which programming language a user normally chooses.&lt;/p&gt;

&lt;p&gt;It can also create serious privacy risks.&lt;/p&gt;

&lt;p&gt;A model may encounter information that is sensitive, inferred, outdated, or irrelevant to future tasks. If everything enters a general memory store automatically, the system can preserve data that the user never expected it to retain.&lt;/p&gt;

&lt;p&gt;The reported Fable 5.1 instructions appear to define categories of information that should not be stored. Whether every detail in the extracted document is authentic cannot be confirmed, but the architectural principle is sound.&lt;/p&gt;

&lt;p&gt;An agent memory system should be able to answer:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Why is this information being saved?&lt;/li&gt;
&lt;li&gt;Did the user provide it directly, or did the model infer it?&lt;/li&gt;
&lt;li&gt;Which tools and agents can access it?&lt;/li&gt;
&lt;li&gt;When will it expire?&lt;/li&gt;
&lt;li&gt;Can the user inspect, correct, or delete it?&lt;/li&gt;
&lt;li&gt;Which categories must never enter persistent storage?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These controls should exist in the memory service itself. Asking the model not to remember sensitive information is useful, but it should not be the only barrier between a conversation and permanent storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Capability and access are different things
&lt;/h2&gt;

&lt;p&gt;Anthropic introduced Fable 5.1 as a model for demanding coding, long-horizon agentic work, and multistep research. Its &lt;a href="https://platform.claude.com/docs/en/models/fable-5-1/overview" rel="noopener noreferrer"&gt;official model documentation&lt;/a&gt; lists a one-million-token context window and support for features such as per-message effort and progress updates.&lt;/p&gt;

&lt;p&gt;Anthropic also introduced &lt;a href="https://www.anthropic.com/claude/mythos" rel="noopener noreferrer"&gt;Mythos 5.1&lt;/a&gt;, which is available to approved cybersecurity and life-sciences researchers through Project Glasswing.&lt;/p&gt;

&lt;p&gt;The interesting developer lesson is that model capability does not automatically determine product access.&lt;/p&gt;

&lt;p&gt;A system can place additional boundaries around particular tools, domains, and actions. Access can depend on the user, organisation, workflow, or risk level.&lt;/p&gt;

&lt;p&gt;This is how developers should approach agent permissions as well.&lt;/p&gt;

&lt;p&gt;A coding agent may be able to write deployment scripts without receiving production credentials. A research agent may be allowed to read public scientific papers without gaining access to internal laboratory systems. An assistant may draft an email without being authorised to send it.&lt;/p&gt;

&lt;p&gt;Capability answers the question “Can the agent do this?” Permission answers “Should this agent be allowed to do it here?”&lt;/p&gt;

&lt;p&gt;Those checks belong in separate layers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benchmarks are only one part of agent reliability
&lt;/h2&gt;

&lt;p&gt;Fable 5.1 received attention for its performance on ARC-AGI. ARC Prize reports results of &lt;a href="https://arcprize.org/results/anthropic-claude-fable-5-1" rel="noopener noreferrer"&gt;97.5% on ARC-AGI-1 Semi-Private and 90% on ARC-AGI-2 Semi-Private&lt;/a&gt; under the tested configurations.&lt;/p&gt;

&lt;p&gt;These scores are relevant when evaluating model reasoning. They do not tell us whether an agent built around the model will behave reliably in production.&lt;/p&gt;

&lt;p&gt;Production reliability also depends on whether the system can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recover from failed tool calls;&lt;/li&gt;
&lt;li&gt;detect untrusted instructions in retrieved content;&lt;/li&gt;
&lt;li&gt;avoid repeating expensive searches;&lt;/li&gt;
&lt;li&gt;distinguish evidence from generated interpretation;&lt;/li&gt;
&lt;li&gt;stop before performing an irreversible action;&lt;/li&gt;
&lt;li&gt;expose enough logs for developers to understand a failure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The strongest available model cannot compensate for an application that grants every tool unlimited authority or discards the provenance of retrieved evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What developers should take from the reported prompt
&lt;/h2&gt;

&lt;p&gt;The GitHub document will attract attention because of its size and the suggestion that a hidden Claude prompt was exposed. The more durable lesson is that an AI product contains far more than a model.&lt;/p&gt;

&lt;p&gt;A robust agent needs several independently enforceable layers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Model reasoning
Search and retrieval
Tool orchestration
Permissions
Memory governance
Evidence provenance
Safety enforcement
Observability
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prompts connect these layers by giving the model instructions. They should not become substitutes for those layers.&lt;/p&gt;

&lt;p&gt;If a rule matters only because it appears in a prompt, assume it can eventually fail. Enforce important restrictions in code, validate every tool argument, keep permissions narrow, and retain enough evidence to reconstruct why an agent produced a particular result.&lt;/p&gt;

&lt;p&gt;The purported Fable 5.1 prompt does not prove that Anthropic’s infrastructure was breached, and it should not be treated as an authoritative map of every Claude deployment.&lt;/p&gt;

&lt;p&gt;What it does reveal is how dramatically the meaning of “prompt engineering” has changed.&lt;/p&gt;

&lt;p&gt;The most capable AI applications are no longer built around one clever instruction. They are built as systems in which models, tools, search, memory, policies, and evidence have to work together.&lt;/p&gt;

&lt;p&gt;For developers working on agents today, that architecture is where most of the difficult—and valuable—engineering now lives.&lt;/p&gt;




&lt;p&gt;How are you handling this in your own agent stack? Are tool permissions and retrieval policies enforced outside the prompt, or is too much of that behaviour still entrusted to model instructions?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>llm</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI Crawlers Are Expensive. Agent Builders Should Care.</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Tue, 01 Sep 2026 03:10:40 +0000</pubDate>
      <link>https://dev.to/cloudsway/ai-crawlers-are-expensive-agent-builders-should-care-a90</link>
      <guid>https://dev.to/cloudsway/ai-crawlers-are-expensive-agent-builders-should-care-a90</guid>
      <description>&lt;p&gt;On August 29, kernel.org administrator Konstantin Ryabitsev published an unusually concrete account of what automated traffic can cost a website.&lt;/p&gt;

&lt;p&gt;Across five geographically distributed servers with 90 CPU cores, he reported that 14–16 cores were continuously occupied rendering Git commit pages for scrapers. The same repositories were already available for cloning, but automated clients were requesting individual HTML pages and repeatedly collecting overlapping content across repository forks.&lt;/p&gt;

&lt;p&gt;Kernel.org remained responsive. This was not a story about AI crawlers taking the site offline. It was a story about persistent, avoidable infrastructure work—and about how easily that work disappears from the application developer's view.&lt;/p&gt;

&lt;p&gt;The underlying problem should sound familiar to anyone building a research agent or AI search product: what happens when retrieving evidence is cheap for your application but expensive for the source providing it?&lt;/p&gt;

&lt;p&gt;You can read his original account in &lt;a href="https://people.kernel.org/monsieuricon/creepy-crawlies" rel="noopener noreferrer"&gt;“Creepy crawlies”&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not All AI-Related Traffic Does the Same Job
&lt;/h2&gt;

&lt;p&gt;Discussions about AI crawlers often combine several activities that have different purposes.&lt;/p&gt;

&lt;p&gt;Training crawlers collect material that may contribute to future model development. Search crawlers discover or refresh pages so they can be found later. User-triggered retrieval fetches a page in response to a particular question or task.&lt;/p&gt;

&lt;p&gt;The distinction is visible in provider documentation. OpenAI separately documents &lt;a href="https://developers.openai.com/api/docs/bots" rel="noopener noreferrer"&gt;GPTBot, OAI-SearchBot, and ChatGPT-User&lt;/a&gt;. Site owners can express different preferences for training, search discovery, and certain user-initiated visits.&lt;/p&gt;

&lt;p&gt;For developers, the important question is not simply whether a request is related to AI. It is who initiated it, why the content is being requested, how often it is fetched, and whether a better access method already exists.&lt;/p&gt;

&lt;p&gt;A website might welcome search discovery while objecting to bulk collection. An agent might need three relevant pages without acquiring the surrounding site.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost Is Missing from Your Agent Dashboard
&lt;/h2&gt;

&lt;p&gt;Most AI application dashboards show model tokens, tool calls, latency, and perhaps the price of a search or extraction request. They rarely show what the source website had to do before returning the evidence.&lt;/p&gt;

&lt;p&gt;A dynamic page may require database queries, template rendering, permission checks, and substantial server work before it produces a small amount of useful text. Ten URLs can also contain nine copies of the same information.&lt;/p&gt;

&lt;p&gt;This is a familiar constraint in search infrastructure. Google's &lt;a href="https://developers.google.com/crawling/docs/crawl-budget" rel="noopener noreferrer"&gt;crawl-budget documentation&lt;/a&gt; explains that crawling has to respond to server capacity and that duplicate URLs can waste resources.&lt;/p&gt;

&lt;p&gt;Agentic workflows can amplify that waste. Imagine a research agent dividing one question among four subagents. Each searches independently, finds the same report, and downloads it. A later verification stage retrieves the report again because it cannot see the earlier fetches.&lt;/p&gt;

&lt;p&gt;The extra work does not improve the answer. It adds latency and cost to the application while sending redundant requests to the publisher.&lt;/p&gt;

&lt;p&gt;A useful retrieval system therefore needs to optimise for distinct, relevant evidence—not raw page count.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inefficient Retrieval Also Weakens the Answer
&lt;/h2&gt;

&lt;p&gt;Source cost is only half of the problem. Retrieval behaviour shapes which information reaches the model.&lt;/p&gt;

&lt;p&gt;When a primary source becomes unavailable or expensive to access, an agent may quietly substitute a secondary article. It may use an older cached copy or find several sites repeating the same claim. The final response can remain fluent even while its evidence becomes weaker.&lt;/p&gt;

&lt;p&gt;That creates a source-selection bias: information that is easy to retrieve may receive more weight than information that is authoritative.&lt;/p&gt;

&lt;p&gt;Consider an agent investigating a software vulnerability. A maintainer's explanation, a vendor advisory, and a general news report serve different purposes. If the maintainer's page cannot be accessed, the news report may still provide context. It should not silently become evidence the system never inspected.&lt;/p&gt;

&lt;p&gt;Retrieval failures need to remain visible. “The source could not be accessed” is different from “the source was checked and contained no relevant information.” Several syndicated copies are also different from independent confirmation.&lt;/p&gt;

&lt;p&gt;Without those distinctions, adding more results can create the appearance of confidence without adding evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search First, Then Read Selectively
&lt;/h2&gt;

&lt;p&gt;A responsible workflow separates source discovery from deeper extraction.&lt;/p&gt;

&lt;p&gt;Discovery identifies likely sources. Extraction reads the selected pages or documents closely enough to support the answer. This lets the agent narrow the evidence set before asking websites to render and deliver more content.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cloudsway.ai/product/search/" rel="noopener noreferrer"&gt;Cloudsway Search&lt;/a&gt; follows this pattern through SmartSearch and Reader. SmartSearch discovers relevant, source-backed information, while Reader extracts structured content from selected pages and documents. The application still has to decide which results deserve deeper reading and whether an earlier retrieval can be reused.&lt;/p&gt;

&lt;p&gt;A shared retrieval record can be simple:&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;"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://example.com/source"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"retrieved_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-09-01T08:30:00Z"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"published_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&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_hash"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sha256:..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"available"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"evidence_group"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vendor-advisory-42"&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;Parallel agents should be able to see that a URL has already been retrieved, whether the content changed, and which evidence group it belongs to.&lt;/p&gt;

&lt;p&gt;This also helps prevent a common mistake: treating retrieval time as publication time. A page fetched today may contain information written months ago. Both timestamps can matter, but they answer different questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fresh Does Not Always Mean Fetch Again
&lt;/h2&gt;

&lt;p&gt;Real-time search is sometimes implemented as though every task requires downloading every source from scratch. Most information does not change at the same rate.&lt;/p&gt;

&lt;p&gt;A service-status page may become stale within minutes. A historical specification might remain useful for years. Your freshness policy should reflect that difference.&lt;/p&gt;

&lt;p&gt;Caching can reduce unnecessary work when the stored content is still suitable for the task and its use respects the applicable conditions. Conditional requests are another useful option: a server can report that content has not changed without sending the entire response again. Google's crawl guidance explicitly recommends supporting HTTP caching headers such as &lt;code&gt;ETag&lt;/code&gt; and &lt;code&gt;Last-Modified&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Where a publisher provides an API, feed, repository clone, or bulk download, that interface may be more efficient than repeatedly processing presentation-oriented pages. It is not automatically the right choice—APIs have limits, and cached data can be too old—but the access method should be an explicit design decision.&lt;/p&gt;

&lt;p&gt;The goal is sufficiently current evidence for the task, rather than maximum retrieval activity.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Practical Retrieval Review
&lt;/h2&gt;

&lt;p&gt;Before deploying a research agent at scale, inspect one complete task and ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many unique sources did the agent discover?&lt;/li&gt;
&lt;li&gt;How many pages did it actually retrieve?&lt;/li&gt;
&lt;li&gt;How many retrievals repeated an earlier request?&lt;/li&gt;
&lt;li&gt;Which results were syndicated copies of the same evidence?&lt;/li&gt;
&lt;li&gt;Which primary sources were unavailable?&lt;/li&gt;
&lt;li&gt;Why was each source refreshed instead of served from suitable stored content?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions reveal waste that token and latency dashboards miss.&lt;/p&gt;

&lt;p&gt;Robots.txt belongs in this review, but its scope should remain clear. &lt;a href="https://www.rfc-editor.org/rfc/rfc9309.html#section-1" rel="noopener noreferrer"&gt;RFC 9309&lt;/a&gt; states that robots rules are not a form of access authorisation. Authentication, rate limits, contractual permissions, and downstream reuse remain separate concerns.&lt;/p&gt;

&lt;p&gt;A search API does not automatically solve those concerns. It does not guarantee access to every source, reduce total crawling by itself, or establish permission to reuse every result. The outcome depends on both the provider's infrastructure and the way the application coordinates retrieval.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retrieval Efficiency Is Part of Answer Quality
&lt;/h2&gt;

&lt;p&gt;Web-connected AI depends on people and organisations continuing to publish useful information. Those sources need an affordable way to serve readers, search systems, and increasingly capable agents.&lt;/p&gt;

&lt;p&gt;For developers, this makes retrieval efficiency more than infrastructure housekeeping. It affects which sources remain available, which evidence reaches the model, and whether the final answer can be verified.&lt;/p&gt;

&lt;p&gt;A workflow that appears harmless in a demonstration can generate substantial duplicate traffic when multiplied across thousands of users and parallel agents. Shared retrieval state, selective reading, sensible caching, explicit failures, and evidence deduplication help prevent that outcome.&lt;/p&gt;

&lt;p&gt;AI search will continue to need fresh information. Its long-term reliability depends partly on whether we retrieve that information with enough care to leave the original sources available for the next person—or agent—that needs them.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>devtools</category>
      <category>performance</category>
    </item>
    <item>
      <title>How to Give Local AI Agents Reliable Web Search</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Mon, 31 Aug 2026 07:54:51 +0000</pubDate>
      <link>https://dev.to/cloudsway/how-to-give-local-ai-agents-reliable-web-search-119n</link>
      <guid>https://dev.to/cloudsway/how-to-give-local-ai-agents-reliable-web-search-119n</guid>
      <description>&lt;p&gt;A local LLM can answer many programming questions without going anywhere near the web. That works well until the question depends on information that changed after the model was trained.&lt;/p&gt;

&lt;p&gt;Take a seemingly simple request: “Find the latest stable FastAPI release, summarize the changes I should review before upgrading, and link to the official sources.”&lt;/p&gt;

&lt;p&gt;The model may already know a FastAPI version, but it has no reliable way to know whether that version is still current. Even after connecting it to a search engine, there are several ways the answer can go wrong. The first result might describe an older release, a larger version number might belong to a prerelease, or the agent might cite a page that never actually supports its summary.&lt;/p&gt;

&lt;p&gt;Giving a local agent web access is therefore less about adding a search box and more about building a small research process around the model. It needs to find appropriate sources, read them, keep track of the evidence, and be honest when it cannot verify something.&lt;/p&gt;

&lt;h2&gt;
  
  
  A local model is not necessarily an offline application
&lt;/h2&gt;

&lt;p&gt;The word “local” usually describes where model inference happens. It does not mean that every part of the application stays on the same machine.&lt;/p&gt;

&lt;p&gt;When a local agent calls a hosted search API, the query is sent to that provider. If the application uses a separate service to extract the contents of a page, that service also receives the URL being read. The prompt may still be processed locally, but the retrieval workflow crosses the network.&lt;/p&gt;

&lt;p&gt;Self-hosting a search service changes where some of this work happens, although it does not automatically make the whole process private. &lt;a href="https://docs.searxng.org/dev/search_api.html" rel="noopener noreferrer"&gt;SearXNG&lt;/a&gt;, for example, can run on your own infrastructure, but it forwards searches to the external engines configured by the operator.&lt;/p&gt;

&lt;p&gt;This is worth deciding before any tool is connected. A query such as &lt;code&gt;FastAPI latest stable release&lt;/code&gt; does not need the entire conversation, an internal repository name, or customer data. The application should send the smallest query that can do the job.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search and page reading are different jobs
&lt;/h2&gt;

&lt;p&gt;The simplest useful setup gives the agent two tools. One searches the web and returns candidate pages. The other reads a selected page and returns its contents.&lt;/p&gt;

&lt;p&gt;Search results normally contain a title, URL, and short snippet. The reading tool returns the selected page's content. Keeping the functions separate shows whether the agent merely found a result or actually inspected its source.&lt;/p&gt;

&lt;p&gt;Snippets are useful for choosing a page, but they are unreliable evidence. They may be stale or omit the context that changes a sentence's meaning. They are not a substitute for release notes, documentation, or a migration guide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.openwebui.com/features/chat-conversations/web-search/agentic-search/" rel="noopener noreferrer"&gt;Open WebUI follows this pattern&lt;/a&gt;: &lt;code&gt;search_web&lt;/code&gt; discovers results and &lt;code&gt;fetch_url&lt;/code&gt; retrieves a chosen page. The backend can be self-hosted or provided by an API. &lt;a href="https://www.cloudsway.ai/product/search/" rel="noopener noreferrer"&gt;Cloudsway Search&lt;/a&gt;, for example, offers SmartSearch for discovery and Reader for page extraction. Either way, two narrow tools are easier to control than one vague “browse the internet” function.&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting the tools to Ollama
&lt;/h2&gt;

&lt;p&gt;Ollama's tool-calling flow leaves tool execution in the application. The model requests a function call, the application validates and runs it, and the result is added to the conversation. That boundary is useful because the model never gets direct authority to execute arbitrary functions.&lt;/p&gt;

&lt;p&gt;The following example shows a minimal dispatch loop. It assumes that &lt;code&gt;search_web&lt;/code&gt; and &lt;code&gt;read_page&lt;/code&gt; have already been implemented for the chosen provider and include clear type hints and docstrings.&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;ollama&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;chat&lt;/span&gt;


&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;answer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;question&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;model_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;read_page&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;allowed_tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;read_page&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;__name__&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;read_page&lt;/span&gt;&lt;span class="p"&gt;,&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="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;question&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;

    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&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="nf"&gt;chat&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_name&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="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nf"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;allowed_tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;values&lt;/span&gt;&lt;span class="p"&gt;()),&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;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tool_calls&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;allowed_tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;ValueError&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;Tool is not allowed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

            &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;allowed_tools&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;call&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;function&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;arguments&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;append&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;tool_name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;name&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="nf"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="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;Stopped before the sources could be verified.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is only the tool loop. Production code still needs argument validation, timeouts, response-size limits, and a policy for deciding when web access is required.&lt;/p&gt;

&lt;p&gt;That decision should not be left entirely to the model. For requests containing “latest,” “current,” or “today,” the application can require a successful search before accepting an answer. A prompt can encourage retrieval; an application rule is more dependable.&lt;/p&gt;

&lt;p&gt;For the FastAPI question, the agent should find the official release information, read it, and check the version, date, and release status. If the notes refer to a migration guide, that page should be read too.&lt;/p&gt;

&lt;p&gt;Release notes can establish what changed in FastAPI, but not whether an unknown application will upgrade safely. That requires details about its installed version, dependencies, and tests. A reliable agent does not fill that gap with confidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Handling failures and untrusted pages
&lt;/h2&gt;

&lt;p&gt;Sometimes the model never calls the search tool. Before rewriting the prompt, inspect the actual request. Check that the tool definitions were included, the model supports the expected calling format, and the descriptions distinguish search from reading. In Open WebUI, model and chat settings can also affect tool availability.&lt;/p&gt;

&lt;p&gt;A selected page may be blocked, empty, unrelated, or time out. These responses are failures, not partial evidence. The agent can try another authoritative source within a fixed limit. If it still cannot verify a claim, the answer should say so.&lt;/p&gt;

&lt;p&gt;A four-round conversation limit does not necessarily mean four requests because a model can make several calls in one round. Track requests, total execution time, downloaded content, and repeated queries separately. Once the same search starts reappearing with slightly different wording, another attempt is unlikely to help.&lt;/p&gt;

&lt;p&gt;Citations need more scrutiny than they usually receive in demos. A valid URL only proves that a page exists. Preserve the relevant passage with its URL, title, and retrieval time so claims can be checked against the source. Retrieval time is not the publication date.&lt;/p&gt;

&lt;p&gt;An announcement might support a version number and date, while a migration guide supports a compatibility warning. Neither proves that a user's application will pass its tests.&lt;/p&gt;

&lt;p&gt;Once an agent reads the web, it is processing text written by people outside the application. A page may contain instructions that attempt to redirect the model, reveal data, or trigger another tool. This is the prompt-injection problem described in &lt;a href="https://genai.owasp.org/llmrisk/llm01-prompt-injection/" rel="noopener noreferrer"&gt;OWASP's guidance for LLM applications&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The safest assumption is that retrieved text has no authority. Credentials should remain outside the model context, available tools should have narrow permissions, and consequential actions should be validated in application code. Fetching a page gives the model information; it should not give the page control over the workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Testing the complete workflow
&lt;/h2&gt;

&lt;p&gt;Model comparisons are not useful if the test only asks questions the model can answer from memory. Use a small set of time-sensitive questions with results that can be checked manually.&lt;/p&gt;

&lt;p&gt;The FastAPI request tests freshness, source selection, prerelease detection, and citation quality. Harder versions can place an outdated page above the current release, make the newest version a prerelease, or make the official source unavailable.&lt;/p&gt;

&lt;p&gt;For each run, record whether the agent searched, which pages it read, whether those pages support the main claims, and how long the answer took. Review the cited passages, not just the links.&lt;/p&gt;

&lt;p&gt;An answer that identifies missing evidence is not a failed answer. It is often more useful than a polished response built on a stale snippet. The goal is to show which parts are supported and which remain uncertain.&lt;/p&gt;

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

&lt;p&gt;Reliable web search for a local AI agent comes from a controlled retrieval process, not from search access alone. The model needs one tool to discover sources and another to read them. The application needs to decide when retrieval is mandatory, limit how long the process can run, and keep evidence attached to the claims it supports.&lt;/p&gt;

&lt;p&gt;Starting with one modest task is usually enough. If the agent can consistently identify a current software release, read the official notes, cite the relevant passages, and explain when verification fails, the same design can later support broader research. Until that works, adding more tools will mostly create more ways for the agent to be confidently wrong.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What GLM-5.3-Flash Changes for AI Engineering Teams</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Thu, 27 Aug 2026 03:44:07 +0000</pubDate>
      <link>https://dev.to/cloudsway/what-glm-53-flash-changes-for-ai-engineering-teams-7pi</link>
      <guid>https://dev.to/cloudsway/what-glm-53-flash-changes-for-ai-engineering-teams-7pi</guid>
      <description>&lt;p&gt;GLM-5.3-Flash arrived through an unusual launch sequence.&lt;/p&gt;

&lt;p&gt;Before Z.ai announced the model, it appeared anonymously on OpenRouter under the name Ox Alpha. Developers could test it without knowing which company had trained it. According to OpenRouter, the model processed more than 20 trillion tokens during its first six days.&lt;/p&gt;

&lt;p&gt;When &lt;a href="https://x.com/Zai_org/status/2092616204787626030" rel="noopener noreferrer"&gt;Z.ai revealed its identity&lt;/a&gt;, GLM-5.3-Flash already had a meaningful record of real-world usage.&lt;/p&gt;

&lt;p&gt;The model combines several features that usually attract technical attention: a mixture-of-experts architecture, 320 billion total parameters, 18 billion active parameters, native multimodal input, a one-million-token context window and MIT-licensed weights.&lt;/p&gt;

&lt;p&gt;Its pricing creates a more important question for engineering teams: what becomes valuable when strong model capability is no longer scarce?&lt;/p&gt;

&lt;h2&gt;
  
  
  Model access is becoming less exclusive
&lt;/h2&gt;

&lt;p&gt;For much of the recent AI cycle, access to a leading model could serve as a product advantage. Model choice had a visible effect on answer quality, while the price difference between capable and affordable models was substantial.&lt;/p&gt;

&lt;p&gt;That gap is narrowing.&lt;/p&gt;

&lt;p&gt;Artificial Analysis reported an &lt;a href="https://x.com/ArtificialAnlys/status/2092663573021606119" rel="noopener noreferrer"&gt;Intelligence Index score of 57&lt;/a&gt; for GLM-5.3-Flash at maximum reasoning effort. Public benchmarks have limitations, but the result places the model in a competitive performance range at a comparatively low advertised price.&lt;/p&gt;

&lt;p&gt;Engineering teams can now choose among multiple APIs, open-weight models and inference providers. They can also use routers to select models dynamically according to cost, latency or task difficulty.&lt;/p&gt;

&lt;p&gt;This makes model capability more widely available. Product differentiation increasingly depends on how that capability is used.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluate the task, not only the model
&lt;/h2&gt;

&lt;p&gt;Model leaderboards are useful for initial discovery. They do not measure the complete behavior of an application.&lt;/p&gt;

&lt;p&gt;An internal coding agent, for example, might need to find the right repository files, retrieve documentation, generate a patch, run tests and interpret failures. A research agent might need to create several queries, compare sources and preserve citations.&lt;/p&gt;

&lt;p&gt;In both cases, model quality is one component of a longer system.&lt;/p&gt;

&lt;p&gt;A useful evaluation should measure whether the complete task was finished correctly. It should also record latency, tool errors, the number of retries and the amount of human correction required.&lt;/p&gt;

&lt;p&gt;This leads to a more practical metric: cost per successful task.&lt;/p&gt;

&lt;p&gt;A model with inexpensive tokens can still create high operating costs if it performs unnecessary searches or repeatedly calls tools with incorrect parameters. A more expensive model may complete the workflow in fewer steps. The answer depends on the workload.&lt;/p&gt;

&lt;h2&gt;
  
  
  One million tokens still require selection
&lt;/h2&gt;

&lt;p&gt;The one-million-token context window is one of the most visible GLM-5.3-Flash specifications. Large context windows can be valuable for repositories, long documents and extended agent sessions.&lt;/p&gt;

&lt;p&gt;They do not remove the need for retrieval.&lt;/p&gt;

&lt;p&gt;A context window defines how much information a model can receive. The application still needs to identify which documents, passages and tool outputs deserve that space. Sending everything can introduce noise, increase latency and make failures harder to diagnose.&lt;/p&gt;

&lt;p&gt;Engineering teams therefore need a context strategy that separates three types of information.&lt;/p&gt;

&lt;p&gt;The first is private context, including user history, internal documents and application data. The second is current external information that must be retrieved from the web or another changing source. The third is execution state, such as previous tool calls, generated files and unresolved errors.&lt;/p&gt;

&lt;p&gt;Each category has different requirements for freshness, permissions and retention.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search becomes part of application reliability
&lt;/h2&gt;

&lt;p&gt;As model calls become cheaper, agents can perform more research steps for each user request. That increases the importance of retrieval quality.&lt;/p&gt;

&lt;p&gt;Weak search results can send the entire workflow in the wrong direction. The model may summarize outdated information, trust an unreliable source or spend several additional steps attempting to resolve contradictory evidence.&lt;/p&gt;

&lt;p&gt;Search systems designed for AI applications should provide more than URLs. Agents benefit from relevant passages, publication dates, source metadata and results that can be processed programmatically.&lt;/p&gt;

&lt;p&gt;Reliable provenance is equally important. When an answer affects a business decision, users should be able to inspect the evidence behind it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cloudsway.ai/product/search/" rel="noopener noreferrer"&gt;Cloudsway Search&lt;/a&gt; is an example of this application layer. It provides AI systems with current web information and source context that can be passed into RAG pipelines or agent workflows.&lt;/p&gt;

&lt;p&gt;The value of this layer grows as agents perform more autonomous work. Every retrieved source can influence later reasoning and tool execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture should assume models will change
&lt;/h2&gt;

&lt;p&gt;GLM-5.3-Flash will not be the last model to combine competitive performance with lower pricing. Engineering teams should expect the model market to keep moving.&lt;/p&gt;

&lt;p&gt;A durable AI application architecture should make model replacement manageable. Tool definitions, retrieval logic, memory and evaluations should remain separate from provider-specific code wherever practical.&lt;/p&gt;

&lt;p&gt;This allows a team to test a new model against an established evaluation set before sending production traffic to it. It also supports routing: faster models for routine tasks, stronger models for complex reasoning and specialized models for particular data types.&lt;/p&gt;

&lt;p&gt;The same principle applies to failure handling. An application can retry with another model, reduce the context or request more evidence when confidence is low.&lt;/p&gt;

&lt;p&gt;These capabilities live above the model API, and they remain valuable when the underlying model changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical lesson
&lt;/h2&gt;

&lt;p&gt;GLM-5.3-Flash deserves attention for its model architecture and early performance. Its wider importance comes from the economics surrounding it.&lt;/p&gt;

&lt;p&gt;When capable inference becomes cheaper, AI teams can run longer workflows and serve more users. The resulting systems also depend more heavily on context selection, retrieval, tool reliability and evaluation.&lt;/p&gt;

&lt;p&gt;Model quality remains foundational. Sustainable product advantages increasingly come from the infrastructure that turns a model response into a correct, traceable and useful result.&lt;/p&gt;

&lt;p&gt;For engineering teams, that is the main signal from GLM-5.3-Flash: prepare for a world with many capable models, then build the application so it can benefit from all of them.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>agents</category>
      <category>tools</category>
    </item>
    <item>
      <title>Agentic RAG vs Traditional RAG: When Should You Use Each?</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Thu, 27 Aug 2026 02:26:18 +0000</pubDate>
      <link>https://dev.to/cloudsway/agentic-rag-vs-traditional-rag-when-should-you-use-each-9be</link>
      <guid>https://dev.to/cloudsway/agentic-rag-vs-traditional-rag-when-should-you-use-each-9be</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Traditional RAG follows a fixed retrieval-and-generation pipeline, making it fast and predictable for stable knowledge-base questions.&lt;/li&gt;
&lt;li&gt;Agentic RAG lets an AI agent choose retrieval tools, evaluate evidence, rewrite queries, and search again when necessary.&lt;/li&gt;
&lt;li&gt;Agentic RAG is most useful for ambiguous, multi-step, or multi-source questions that cannot be solved through one retrieval pass.&lt;/li&gt;
&lt;li&gt;Additional reasoning and retrieval rounds increase latency, token usage, cost, and operational complexity.&lt;/li&gt;
&lt;li&gt;Start with a traditional RAG baseline and introduce agentic behaviour only for clearly identified retrieval failures.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most RAG applications begin with a simple pipeline. A user asks a question, the system retrieves several relevant chunks from a knowledge base, and a language model uses those chunks to generate an answer.&lt;/p&gt;

&lt;p&gt;That design works surprisingly well—until the questions become less predictable.&lt;/p&gt;

&lt;p&gt;The first retrieval may miss important context. The answer may depend on several data sources. The original query may be too vague for semantic search, or the retrieved documents may appear relevant without actually supporting the answer.&lt;/p&gt;

&lt;p&gt;These failures often lead teams towards agentic RAG. But adding an AI agent also introduces more model calls, variable latency, higher costs, and new failure modes.&lt;/p&gt;

&lt;p&gt;The useful question is therefore not whether agentic RAG is more advanced. It is whether the retrieval problem is complex enough to justify an agent-controlled loop.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Traditional RAG Does Well—and Where It Fails
&lt;/h2&gt;

&lt;p&gt;A traditional RAG pipeline normally follows four stages: receive the user query, retrieve relevant content, assemble that content into a prompt, and generate an answer.&lt;/p&gt;

&lt;p&gt;The retrieval layer may use vector search, keyword search, semantic search, or a hybrid of several methods. Whatever retrieval method is chosen, the path through the system remains largely fixed.&lt;/p&gt;

&lt;p&gt;This architecture is effective when the problem is bounded. If users ask questions about a stable collection of product manuals, company policies, or support documents, one retrieval pass can often provide enough context.&lt;/p&gt;

&lt;p&gt;The pipeline is also relatively fast, easy to observe, and predictable under load. Developers know which index will be searched, how many documents will be returned, and approximately how much the request will cost.&lt;/p&gt;

&lt;p&gt;Problems appear when retrieval is treated as a one-time event even though the question requires research.&lt;/p&gt;

&lt;p&gt;A user may ask a broad question that needs to be divided into smaller queries. Evidence may be spread across several documents. The most relevant chunks may answer only part of the question. In other cases, the internal knowledge base may not contain the latest information at all.&lt;/p&gt;

&lt;p&gt;A fixed RAG pipeline cannot always recognise these gaps. It retrieves whatever the configured search process returns and passes that context to the model.&lt;/p&gt;

&lt;p&gt;Unless developers add separate grading or fallback logic, the model may produce a polished answer from incomplete evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes RAG “Agentic”?
&lt;/h2&gt;

&lt;p&gt;Agentic RAG does not replace the underlying retrieval technology. It adds a decision-making layer above it.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/agentic-ai-lens/definitions.html" rel="noopener noreferrer"&gt;AWS Well-Architected Agentic AI Lens&lt;/a&gt; describes agentic RAG as a pattern in which an agent controls retrieval as part of its reasoning loop. The agent can decide when to retrieve information, what it needs to find, which tool to use, and whether the returned context is sufficient.&lt;/p&gt;

&lt;p&gt;That changes the role of retrieval.&lt;/p&gt;

&lt;p&gt;In traditional RAG, retrieval is a predefined stage that happens before generation. In agentic RAG, retrieval becomes an action the model can invoke, evaluate, and repeat.&lt;/p&gt;

&lt;p&gt;An agent might begin with semantic search over an internal knowledge base, switch to a structured database when it needs exact records, and use a Web Search API when the internal sources are outdated.&lt;/p&gt;

&lt;p&gt;The defining feature is not simply that the system searches several times. It is that each next action is chosen according to what the system has learned from the evidence collected so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Agentic RAG Improves Retrieval
&lt;/h2&gt;

&lt;p&gt;Consider a support agent asked to identify which enterprise customers may be affected by product recalls announced during the last 90 days.&lt;/p&gt;

&lt;p&gt;The answer requires more than one document lookup. The system must identify the relevant products, find recent recall notices, connect those products to internal customer records, and verify that the dates fall within the requested period.&lt;/p&gt;

&lt;p&gt;A traditional RAG pipeline might submit the full question to one vector index and hope that the retrieved chunks contain every necessary detail.&lt;/p&gt;

&lt;p&gt;An agentic RAG architecture can approach the task differently.&lt;/p&gt;

&lt;p&gt;First, the agent evaluates the question and divides it into smaller retrieval goals. It may search an internal product index to identify SKUs, query an external source for recent recall notices, and then use a database tool to find affected customers.&lt;/p&gt;

&lt;p&gt;After each tool call, an evaluator examines the result. If the retrieved evidence does not include a required date or product identifier, the agent can rewrite the query or select another retrieval tool.&lt;/p&gt;

&lt;p&gt;When an internal corpus is insufficient, the agent can trigger external web search as a fallback.&lt;/p&gt;

&lt;p&gt;The loop continues until the evidence covers the required parts of the question or the workflow reaches a defined stopping condition. That condition might be a maximum number of retrieval rounds, a time limit, a cost budget, or a requirement that every major claim has an acceptable source.&lt;/p&gt;

&lt;p&gt;Several established RAG patterns can support this process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2403.14403" rel="noopener noreferrer"&gt;Adaptive-RAG&lt;/a&gt; selects a retrieval strategy according to question complexity, allowing straightforward questions to avoid unnecessary work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2401.15884" rel="noopener noreferrer"&gt;Corrective RAG&lt;/a&gt; evaluates retrieval quality and can trigger corrective actions, including web search, when the original corpus is insufficient.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://arxiv.org/abs/2310.11511" rel="noopener noreferrer"&gt;Self-RAG&lt;/a&gt; introduces self-reflection over retrieved passages and generated content.&lt;/p&gt;

&lt;p&gt;These patterns are not competing definitions of agentic RAG. They address different control problems inside a broader agentic workflow: choosing a retrieval path, correcting weak results, and checking whether the evidence supports the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agentic RAG vs Traditional RAG
&lt;/h2&gt;

&lt;p&gt;The main difference between the two architectures is who controls the retrieval process.&lt;/p&gt;

&lt;p&gt;Traditional RAG relies on a retrieval path defined by the application. The same basic sequence runs for every request. This keeps the system easier to understand and operate.&lt;/p&gt;

&lt;p&gt;Agentic RAG gives some of that control to an AI agent. The agent can choose between retrieval tools, revise its search, inspect intermediate evidence, and decide when it has enough information to answer.&lt;/p&gt;

&lt;p&gt;That flexibility is not free.&lt;/p&gt;

&lt;p&gt;Every planning, retrieval, and evaluation step may require another model or tool call. Errors can also compound. The agent may choose the wrong source, rewrite the query poorly, misjudge evidence quality, or continue searching after it already has enough information.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/rag/rag-agentic" rel="noopener noreferrer"&gt;Microsoft Azure Architecture Center&lt;/a&gt; recommends classic RAG when a single search against a single index can resolve the query. Agentic retrieval becomes more appropriate when a workflow needs multiple sources, intermediate evaluation, and iteration before answering.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Should You Use Agentic RAG?
&lt;/h2&gt;

&lt;p&gt;Traditional RAG remains the better default for many applications.&lt;/p&gt;

&lt;p&gt;It is usually sufficient when questions are well specified, the knowledge base is stable, and an answer can be found in one or two related chunks. It is also easier to operate when latency, throughput, and predictable costs are primary product requirements.&lt;/p&gt;

&lt;p&gt;Agentic RAG becomes more valuable when the retrieval path cannot be defined reliably in advance.&lt;/p&gt;

&lt;p&gt;This includes multi-hop questions, ambiguous requests that require query rewriting, and tasks that combine internal knowledge with databases, APIs, or current web information.&lt;/p&gt;

&lt;p&gt;It is particularly useful when a plausible but unsupported answer would be more harmful than a slower response. An agent can reject weak evidence, search again, or explicitly report that the available sources are insufficient.&lt;/p&gt;

&lt;p&gt;The safest migration strategy is to begin with a traditional RAG baseline. Record where retrieval fails, classify those failures, and introduce agentic behaviour only where it addresses a specific problem.&lt;/p&gt;

&lt;p&gt;If most questions succeed after one retrieval pass, wrapping every request in a reasoning loop will mostly add cost.&lt;/p&gt;

&lt;p&gt;A single agent with a few well-defined retrieval tools is also often enough. Multi-agent RAG should be reserved for cases where different retrieval domains genuinely require separate context, permissions, or specialised behaviour.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Evaluate Agentic RAG
&lt;/h2&gt;

&lt;p&gt;A fluent final answer is not sufficient evidence that the system works. Evaluation should cover both the answer and the retrieval path used to produce it.&lt;/p&gt;

&lt;p&gt;Retrieval relevance measures whether the selected documents address the question. Evidence coverage checks whether every important part of the answer has supporting material. Route accuracy evaluates whether the agent selected the appropriate tool or index.&lt;/p&gt;

&lt;p&gt;Groundedness and citation checks then determine whether the final claims are supported by the retrieved evidence.&lt;/p&gt;

&lt;p&gt;System-level measurements matter as well. Teams should track the number of retrieval rounds, repeated queries, end-to-end latency, cost per successful answer, and how often the agent stops because of a limit rather than because it found sufficient evidence.&lt;/p&gt;

&lt;p&gt;These metrics should always be compared with the traditional RAG baseline.&lt;/p&gt;

&lt;p&gt;If agentic RAG produces only a small improvement while doubling latency and cost, the additional architecture may not be justified. If it consistently resolves questions that the baseline cannot answer and provides better-supported conclusions, the extra complexity may be worthwhile.&lt;/p&gt;

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

&lt;p&gt;Traditional RAG provides a reliable foundation for connecting language models to external knowledge. Agentic RAG adds a control layer for questions that require dynamic routing, repeated retrieval, and evidence evaluation.&lt;/p&gt;

&lt;p&gt;The best architecture is not the one with the most agents. It is the simplest system that can retrieve enough trustworthy information, recognise when evidence is missing, and stop at the right time.&lt;/p&gt;

&lt;p&gt;What retrieval failures have pushed your team beyond a standard RAG pipeline? Were the improvements worth the additional cost and latency?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aiagents</category>
      <category>rag</category>
      <category>architecture</category>
    </item>
    <item>
      <title>How to Build an Agentic RAG Pipeline with Real-Time Web Search</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Wed, 26 Aug 2026 03:39:16 +0000</pubDate>
      <link>https://dev.to/cloudsway/how-to-build-an-agentic-rag-pipeline-with-real-time-web-search-2k1l</link>
      <guid>https://dev.to/cloudsway/how-to-build-an-agentic-rag-pipeline-with-real-time-web-search-2k1l</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;An agentic RAG pipeline treats retrieval as a tool the AI agent can call, evaluate, and call again rather than as a fixed step.&lt;/li&gt;
&lt;li&gt;The pipeline can search an internal knowledge base first, then use real-time web search when the available evidence is missing, weak, or outdated.&lt;/li&gt;
&lt;li&gt;Internal documents and web results should be converted into a shared evidence format before the model generates an answer.&lt;/li&gt;
&lt;li&gt;A reliable system must preserve URLs, publication dates, document identifiers, and the claims supported by each source.&lt;/li&gt;
&lt;li&gt;Retrieval quality, web-search precision, citation correctness, latency, cost, and stopping behaviour should all be evaluated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A basic RAG pipeline works well until the answer is not in the knowledge base.&lt;/p&gt;

&lt;p&gt;Imagine an enterprise copilot that can answer questions about internal product documentation. It performs semantic search against a vector database, retrieves several relevant passages, and passes them to a language model. For questions covered by the indexed documents, the system may work remarkably well.&lt;/p&gt;

&lt;p&gt;Then a user asks about a release announced yesterday, a recently changed regulation, or how the company’s product compares with a new competitor.&lt;/p&gt;

&lt;p&gt;The vector database cannot retrieve information it has never indexed. A conventional pipeline may return no answer, but it may also produce a confident response from incomplete or outdated context.&lt;/p&gt;

&lt;p&gt;Adding a Web Search API helps solve the freshness problem, but it introduces another decision: when should the system trust its internal knowledge, and when should it search the open web?&lt;/p&gt;

&lt;p&gt;An agentic RAG pipeline places that decision inside the retrieval workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes a RAG Pipeline Agentic?
&lt;/h2&gt;

&lt;p&gt;A traditional RAG pipeline usually follows a fixed path: transform the question into a search query, retrieve the most similar passages, add those passages to the prompt, and generate an answer.&lt;/p&gt;

&lt;p&gt;An agentic RAG pipeline allows the model to make decisions between those stages. Retrieval becomes a tool rather than a mandatory one-time operation.&lt;/p&gt;

&lt;p&gt;The agent can determine what information the question requires, decide which source to search, inspect the evidence, reformulate the query, and retrieve again. It can also decide that the evidence is already sufficient and skip unnecessary searches.&lt;/p&gt;

&lt;p&gt;This does not mean every stage has to be autonomous. The strongest architectures often combine deterministic controls with a limited number of model-driven decisions. Search budgets, domain restrictions, evidence schemas, and citation requirements can remain fixed even when the agent controls query planning and routing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/rag/rag-agentic" rel="noopener noreferrer"&gt;Microsoft’s agentic RAG architecture guidance&lt;/a&gt; describes a similar pattern: retrieval is exposed as a tool that an agent can invoke while reasoning across several information sources.&lt;/p&gt;

&lt;p&gt;For a broader comparison of the two approaches, see &lt;a href="https://dev.toADD_INTERNAL_LINK"&gt;Agentic RAG vs. Traditional RAG: How AI Agents Improve Retrieval&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Architecture of an Agentic RAG Pipeline
&lt;/h2&gt;

&lt;p&gt;A practical pipeline can begin with internal retrieval and expand to the web only when the initial evidence is inadequate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User query
    ↓
Intent and query planner
    ↓
Internal vector search
    ↓
Evidence grader
    ├── Sufficient ─────────────→ Answer with citations
    │
    └── Missing, weak or stale
                    ↓
             Web Search API
                    ↓
       Extract, normalise and deduplicate
                    ↓
         Optional follow-up search
                    ↓
             Answer with citations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The planner first determines whether the question contains several information needs. A broad request may need to be divided into smaller queries before any retrieval begins.&lt;/p&gt;

&lt;p&gt;The internal retriever then searches the existing knowledge base. This stage can use vector search, keyword search, or a hybrid approach. The important point is that the retrieved documents are not passed directly to the answer generator.&lt;/p&gt;

&lt;p&gt;An evidence grader checks whether those documents can support the requested answer. It should assess coverage, freshness and direct support—not just embedding similarity.&lt;/p&gt;

&lt;p&gt;If the evidence is sufficient, the pipeline can answer without using the web. If it is incomplete or outdated, the agent calls the Web Search API. The resulting pages are extracted, normalised, deduplicated and added to the same evidence store used for internal documents.&lt;/p&gt;

&lt;p&gt;This design gives web search a clear role. It is neither a permanent first step nor an unstructured last resort. It is an external evidence source invoked under defined conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the Pipeline Around Evidence, Not Tools
&lt;/h2&gt;

&lt;p&gt;The most useful way to design this system is to begin with the evidence required by the final answer. Tools are simply different ways of obtaining that evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expose Internal Retrieval and Web Search as Separate Tools
&lt;/h3&gt;

&lt;p&gt;The internal retrieval tool should return the document text together with information such as the document ID, collection, section and retrieval score. The web-search tool should return a title, URL, snippet, source, publication date and, when necessary, extracted page content.&lt;/p&gt;

&lt;p&gt;Keeping the tools separate makes routing visible. It becomes possible to determine whether the agent searched the web unnecessarily, ignored a useful internal document, or relied on a snippet when it should have inspected the complete page.&lt;/p&gt;

&lt;p&gt;The tools should retrieve information rather than generate final answers. If a search tool silently summarises its results, the pipeline may lose the connection between the original evidence and the claims produced later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.langchain.com/oss/python/langgraph/agentic-rag" rel="noopener noreferrer"&gt;LangGraph’s custom RAG agent guide&lt;/a&gt; demonstrates this separation through dedicated retrieval, document-grading and query-rewriting stages. The same principle applies even if the pipeline uses another framework or a custom orchestrator.&lt;/p&gt;

&lt;h3&gt;
  
  
  Add a Router and an Evidence Grader
&lt;/h3&gt;

&lt;p&gt;The router decides where the search should begin. A question about an internal policy probably belongs in the knowledge base. A question containing phrases such as “latest”, “today” or “current price” is more likely to require real-time search.&lt;/p&gt;

&lt;p&gt;Some questions need both sources. A support agent might use internal documentation to explain how a product works, then search the web for a newly disclosed vulnerability affecting one of its dependencies.&lt;/p&gt;

&lt;p&gt;After internal retrieval, the evidence grader determines whether the results are sufficient. It should distinguish between several failure modes: no documents were retrieved, the documents are off-topic, the information is relevant but incomplete, or the information is too old for the question.&lt;/p&gt;

&lt;p&gt;This is where corrective RAG and adaptive RAG ideas become useful. The &lt;a href="https://arxiv.org/abs/2401.15884" rel="noopener noreferrer"&gt;Corrective RAG paper&lt;/a&gt; proposes assessing retrieved documents and using web search to extend the available information when the original corpus produces weak results.&lt;/p&gt;

&lt;p&gt;The grader does not need to be an unrestricted agent. It can use a structured output such as &lt;code&gt;sufficient&lt;/code&gt;, &lt;code&gt;partial&lt;/code&gt;, &lt;code&gt;irrelevant&lt;/code&gt; or &lt;code&gt;stale&lt;/code&gt;, followed by a short explanation. The workflow can then route each result through predefined edges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Normalise Internal and Web Evidence
&lt;/h3&gt;

&lt;p&gt;A vector database and a Web Search API return different types of data. If those formats are passed directly to the model, it becomes difficult to compare sources, remove duplicates or produce reliable citations.&lt;/p&gt;

&lt;p&gt;Both sources should be converted into a shared evidence structure:&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;"source_type"&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 | web"&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;"Source title"&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_or_document_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Source identifier"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"published_at"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Publication or update date"&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;"Relevant source passage"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"relevance_score"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.86&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"supported_claims"&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="s2"&gt;"Claim supported by this source"&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;The exact fields can change, but every evidence item needs a stable identity and a traceable origin.&lt;/p&gt;

&lt;p&gt;Web results also require additional processing. Several pages may repeat the same press release, quote the same research paper, or reproduce an announcement without adding independent evidence. Deduplication should therefore consider the underlying source, not only whether the URLs are different.&lt;/p&gt;

&lt;p&gt;Search-result snippets may be enough to decide which pages deserve inspection, but they are usually too limited to support important claims. When a claim matters, the pipeline should retrieve the page and preserve the relevant passage.&lt;/p&gt;

&lt;p&gt;For a deeper explanation of web evidence and source handling, see &lt;a href="https://dev.toADD_INTERNAL_LINK"&gt;Agentic Search: How AI Agents Search, Evaluate, and Cite the Web&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Define Search and Stopping Rules
&lt;/h3&gt;

&lt;p&gt;Once an agent can search repeatedly, it needs rules for when another search is justified.&lt;/p&gt;

&lt;p&gt;A follow-up search may be appropriate when a key subquestion has no supporting evidence, two credible sources disagree, the retrieved pages are outdated, or the current results introduce a new term that requires investigation.&lt;/p&gt;

&lt;p&gt;The pipeline should also know when to stop. It may finish when every important claim has at least one suitable source, the requested topics have been covered, and another query is unlikely to change the conclusion.&lt;/p&gt;

&lt;p&gt;Hard limits remain necessary. A production system should cap the number of searches, inspected pages, tokens, elapsed time or API spend. These limits protect the application when the model keeps reformulating queries without finding anything useful.&lt;/p&gt;

&lt;p&gt;NVIDIA’s &lt;a href="https://docs.nvidia.com/rag/latest/agentic-rag.html" rel="noopener noreferrer"&gt;Agentic RAG Blueprint&lt;/a&gt; uses planning, task execution, synthesis and optional verification, while also acknowledging that the agentic path requires additional model calls and latency. That trade-off should be explicit in any implementation.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Evaluate the Pipeline
&lt;/h2&gt;

&lt;p&gt;The final answer is only one part of an agentic RAG evaluation. The path used to produce it also matters.&lt;/p&gt;

&lt;p&gt;Retrieval relevance measures whether the internal search found the correct documents. Fallback precision measures whether web search was called only when it added value. If the system searches the web for every question, the router is not doing useful work.&lt;/p&gt;

&lt;p&gt;Groundedness examines whether the answer is supported by the collected evidence, while citation correctness checks whether each cited source supports the particular claim attached to it. Source quality should account for authority, freshness and independence.&lt;/p&gt;

&lt;p&gt;Operational metrics are equally important. Web search, page extraction and repeated tool calls add latency and cost. Agent observability should therefore capture queries, routing decisions, retrieved sources, grader outputs, retries and stopping reasons.&lt;/p&gt;

&lt;p&gt;An evaluation set should contain simple internal questions, current questions that require the web, questions that need both sources, and questions for which no reliable answer exists. The last category tests whether the system can stop and acknowledge uncertainty instead of continuing to search indefinitely.&lt;/p&gt;

&lt;h2&gt;
  
  
  When a Basic RAG Pipeline Is Still Better
&lt;/h2&gt;

&lt;p&gt;Agentic RAG should not be the default architecture for every retrieval task.&lt;/p&gt;

&lt;p&gt;If the knowledge base is stable, the questions are predictable and one retrieval step usually finds the necessary context, a basic RAG pipeline will be faster, cheaper and easier to evaluate.&lt;/p&gt;

&lt;p&gt;Agentic retrieval becomes valuable when the system must choose among sources, handle multi-step questions, recover from weak retrieval or access current information. The additional complexity should solve an identifiable retrieval problem rather than merely make the architecture appear more advanced.&lt;/p&gt;

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

&lt;p&gt;A Web Search API gives a RAG agent access to current information. The agentic pipeline decides when that information is needed, how it should be combined with internal knowledge, which sources deserve to be trusted and when the research should end.&lt;/p&gt;

&lt;p&gt;The most reliable systems do not begin with autonomous tools. They begin with a clear evidence model, controlled routing and measurable stopping conditions.&lt;/p&gt;

&lt;p&gt;When those foundations are in place, real-time web search becomes more than a fallback. It becomes a traceable evidence layer for answers that an internal knowledge base could not produce alone.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aiagents</category>
      <category>rag</category>
      <category>api</category>
    </item>
    <item>
      <title>Agentic Search for Developers: How AI Agents Search, Evaluate, and Cite the Web</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Tue, 25 Aug 2026 02:52:52 +0000</pubDate>
      <link>https://dev.to/cloudsway/agentic-search-for-developers-how-ai-agents-search-evaluate-and-cite-the-web-4k8j</link>
      <guid>https://dev.to/cloudsway/agentic-search-for-developers-how-ai-agents-search-evaluate-and-cite-the-web-4k8j</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Agentic search lets an AI agent plan queries, inspect results, identify missing evidence, and search again before answering.&lt;/li&gt;
&lt;li&gt;It differs from traditional RAG because it can work with live web information instead of relying only on a pre-indexed knowledge base.&lt;/li&gt;
&lt;li&gt;Search results should be treated as evidence, not as finished answers.&lt;/li&gt;
&lt;li&gt;A production search agent needs persistent state, source-quality checks, citations, and explicit search limits.&lt;/li&gt;
&lt;li&gt;The hardest part is often not calling the search API—it is deciding when the agent has enough evidence to stop.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Adding web search to an AI agent looks simple at first.&lt;/p&gt;

&lt;p&gt;Define a search tool, send the user’s question to an API, return the results to the model, and ask it to write an answer. That is enough for a demo, but it is rarely enough for a dependable research system.&lt;/p&gt;

&lt;p&gt;The first query may be too broad. The results may be outdated, duplicated, or promotional. Important evidence may be buried several pages deep, while two credible sources may disagree about the same claim.&lt;/p&gt;

&lt;p&gt;A useful search agent must therefore do more than retrieve links. It must decide what to search for, evaluate what it finds, recognize what is still missing, and determine when further searching is no longer useful.&lt;/p&gt;

&lt;p&gt;That is the basic idea behind &lt;strong&gt;agentic search&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Agentic Search?
&lt;/h2&gt;

&lt;p&gt;Agentic search is an iterative search process controlled by an AI agent.&lt;/p&gt;

&lt;p&gt;Instead of sending one query and immediately generating an answer, the agent treats the request as a research task. It can break the task into smaller questions, create multiple queries, inspect individual pages, compare sources, and refine its search plan as new information appears.&lt;/p&gt;

&lt;p&gt;Consider this request:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which search infrastructure would work best for a customer-support agent that needs current product documentation, regional sources, and verifiable citations?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A basic search integration might submit the whole sentence as one query and summarize the first few results.&lt;/p&gt;

&lt;p&gt;An agentic system would approach the question differently. It might first identify several decisions that need to be made:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which services provide sufficiently fresh web results?&lt;/li&gt;
&lt;li&gt;Which ones support geographic or domain filtering?&lt;/li&gt;
&lt;li&gt;Do they return source URLs and publication dates?&lt;/li&gt;
&lt;li&gt;Can they retrieve the full page when a snippet is not enough?&lt;/li&gt;
&lt;li&gt;What are their latency and pricing characteristics?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The searches performed later in the process depend on what the agent discovers earlier. If a provider supports regional search but does not clearly document its citation metadata, the agent can create a follow-up query specifically for that gap.&lt;/p&gt;

&lt;p&gt;This is what makes the search process agentic: the route is not completely predetermined.&lt;/p&gt;

&lt;p&gt;Anthropic makes a similar distinction in its guide to &lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;building effective agents&lt;/a&gt;. Workflows follow predefined paths, while agents dynamically decide how to use tools and direct the process.&lt;/p&gt;

&lt;p&gt;Agentic search applies that decision-making ability to information retrieval.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Agentic Search Loop
&lt;/h2&gt;

&lt;p&gt;Most agentic search systems can be understood as a feedback loop:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand the goal → plan the research → search → evaluate the evidence → refine or answer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The agent begins by interpreting the request. This matters because a user’s prompt does not always contain a good search query.&lt;/p&gt;

&lt;p&gt;For example, “compare the leading AI agent frameworks” leaves several questions unanswered. What qualifies as leading? Should the comparison focus on adoption, orchestration features, deployment, observability, or enterprise support? Does the answer require current release information?&lt;/p&gt;

&lt;p&gt;After identifying the real information needs, the agent generates one or more focused queries. It sends them to a search API, receives the results, and evaluates whether those results provide enough evidence.&lt;/p&gt;

&lt;p&gt;If the evidence is weak or incomplete, the agent searches again.&lt;/p&gt;

&lt;p&gt;A simplified control loop might look like this:&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="n"&gt;state&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;create_research_state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="nf"&gt;should_stop&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;plan_next_query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;results&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;search_web&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;evidence&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;evaluate_results&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;results&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;evidence&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;answer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;generate_answer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;user_request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;evidence&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accepted_evidence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;include_citations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code is not the difficult part. The real engineering decisions are hidden inside &lt;code&gt;plan_next_query&lt;/code&gt;, &lt;code&gt;evaluate_results&lt;/code&gt;, and &lt;code&gt;should_stop&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Those functions determine whether the system behaves like a research agent or merely a language model repeatedly calling a search endpoint.&lt;/p&gt;

&lt;p&gt;Mistral’s &lt;a href="https://docs.mistral.ai/studio/search/agentic-search" rel="noopener noreferrer"&gt;Agentic Search documentation&lt;/a&gt; describes a similar orchestration layer in which the model can search, inspect results, navigate sources, and search again as new information needs appear.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agentic Search vs. Traditional RAG
&lt;/h2&gt;

&lt;p&gt;Agentic search and retrieval-augmented generation solve related problems, but they are not the same architecture.&lt;/p&gt;

&lt;p&gt;Traditional RAG normally begins with a prepared knowledge base. Documents are collected, divided into chunks, converted into embeddings, and stored in a vector database. When a user submits a question, the system retrieves relevant chunks and places them in the model’s context.&lt;/p&gt;

&lt;p&gt;This works well when the information is stable and the organization controls the documents. Internal policies, product manuals, support articles, and private company data are good RAG use cases.&lt;/p&gt;

&lt;p&gt;Agentic search is better suited to information that changes frequently, lives on the open web, or cannot be indexed in advance. It can change its query strategy during execution and investigate unexpected information discovered along the way.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Traditional RAG&lt;/th&gt;
&lt;th&gt;Agentic Search&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Information source&lt;/td&gt;
&lt;td&gt;Pre-indexed knowledge base&lt;/td&gt;
&lt;td&gt;Live web or external sources&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Retrieval behavior&lt;/td&gt;
&lt;td&gt;Usually one retrieval stage&lt;/td&gt;
&lt;td&gt;Adaptive, multi-round search&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Query strategy&lt;/td&gt;
&lt;td&gt;Based mainly on the original prompt&lt;/td&gt;
&lt;td&gt;Changes as evidence gaps appear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best suited for&lt;/td&gt;
&lt;td&gt;Stable internal knowledge&lt;/td&gt;
&lt;td&gt;Current or open-ended research&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Main risk&lt;/td&gt;
&lt;td&gt;Missing indexed information&lt;/td&gt;
&lt;td&gt;Search loops, weak sources, and higher cost&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In practice, developers do not always need to choose one or the other.&lt;/p&gt;

&lt;p&gt;A production agent might search an internal knowledge base first. If the internal material is insufficient or the request depends on recent information, the agent can search the web and compare the new evidence with the internal documents.&lt;/p&gt;

&lt;p&gt;RAG supplies controlled organizational knowledge. Agentic search supplies freshness and external coverage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building Agentic Search with a Web Search API
&lt;/h2&gt;

&lt;p&gt;A Web Search API provides access to information. The surrounding agent workflow determines whether that information becomes a reliable answer.&lt;/p&gt;

&lt;p&gt;The architecture usually contains a planner, a search tool, an evidence store, an evaluator, and an answer generator. Depending on the application, there may also be a page-content extractor, reranker, citation validator, or human-review stage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Give the Search Tool a Clear Contract
&lt;/h3&gt;

&lt;p&gt;The search tool should accept predictable, structured inputs. These may include the query, language, region, date range, allowed domains, blocked domains, and maximum number of results.&lt;/p&gt;

&lt;p&gt;The output should also be consistent. Each result should ideally contain a title, URL, snippet, source name, and publication date. If the tool retrieves full-page content, that content must remain connected to its original URL.&lt;/p&gt;

&lt;p&gt;A clear contract makes tool calls easier to test and inspect. It also reduces the risk that the agent will confuse a search snippet with a verified claim.&lt;/p&gt;

&lt;p&gt;The search function should retrieve evidence. It should not silently generate the final answer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Treat Search Results as Evidence
&lt;/h3&gt;

&lt;p&gt;A high-ranking result is not automatically a trustworthy source.&lt;/p&gt;

&lt;p&gt;Search rankings measure relevance using many signals, but they do not guarantee accuracy. A result may be outdated, promotional, copied from another page, or based on a source that is no longer available.&lt;/p&gt;

&lt;p&gt;Before using a result, the agent should consider questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the page directly support the claim?&lt;/li&gt;
&lt;li&gt;Is the publication date relevant?&lt;/li&gt;
&lt;li&gt;Is this a primary source or a summary of another source?&lt;/li&gt;
&lt;li&gt;Are several results repeating the same underlying report?&lt;/li&gt;
&lt;li&gt;Does another credible source contradict it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For high-impact claims, the agent may need to inspect the full page or confirm the information with another independent source.&lt;/p&gt;

&lt;p&gt;The evidence should also remain connected to its citation. If the workflow summarizes pages and discards their URLs, the final model may produce an answer that sounds well researched but cannot show where its claims came from.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preserve Research State
&lt;/h3&gt;

&lt;p&gt;A multi-step search agent needs memory.&lt;/p&gt;

&lt;p&gt;At a minimum, it should retain the queries already attempted, sources already inspected, claims supported by each source, unresolved questions, and the reason another search is needed.&lt;/p&gt;

&lt;p&gt;Without this state, an agent may repeat the same query, inspect the same source several times, or lose the relationship between a claim and its evidence.&lt;/p&gt;

&lt;p&gt;Graph-based orchestration works well for this type of workflow because search naturally contains branches and loops. LangGraph’s &lt;a href="https://docs.langchain.com/oss/python/langgraph/graph-api" rel="noopener noreferrer"&gt;Graph API&lt;/a&gt;, for example, uses shared state, nodes, and conditional edges.&lt;/p&gt;

&lt;p&gt;A search node can retrieve results. An evaluation node can determine whether the evidence is sufficient. A conditional edge can then send the workflow either back to query planning or forward to answer generation.&lt;/p&gt;

&lt;p&gt;The framework itself is optional. The important part is that every stage leaves behind enough structured information for the next stage to make a better decision.&lt;/p&gt;

&lt;h3&gt;
  
  
  Decide When to Stop
&lt;/h3&gt;

&lt;p&gt;Stopping is one of the most important—and easiest to overlook—parts of agentic search.&lt;/p&gt;

&lt;p&gt;If the agent stops too early, the answer may be incomplete. If it keeps searching, latency and API costs continue to rise even when the additional results add little value.&lt;/p&gt;

&lt;p&gt;A reliable workflow usually combines evidence-based stopping conditions with hard limits.&lt;/p&gt;

&lt;p&gt;The agent may stop when all required subquestions have supporting evidence, important claims have citations, and the latest searches are no longer producing new information. At the same time, the system should impose a maximum number of searches, page inspections, tokens, or seconds.&lt;/p&gt;

&lt;p&gt;The final decision should not rely entirely on the model saying, “I am confident now.”&lt;/p&gt;

&lt;p&gt;Model confidence can be useful, but it is not a safety boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluating an Agentic Search System
&lt;/h2&gt;

&lt;p&gt;Evaluating only the final answer is not enough.&lt;/p&gt;

&lt;p&gt;Two agents can produce similar responses while using very different processes. One might rely on current primary sources and stop after four focused searches. Another might perform fifteen repetitive searches, use weak sources, and attach citations that do not support its claims.&lt;/p&gt;

&lt;p&gt;A useful evaluation should examine both the result and the research trajectory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Groundedness&lt;/strong&gt; asks whether the answer is supported by the collected evidence. &lt;strong&gt;Citation correctness&lt;/strong&gt; checks whether each linked source supports the sentence where it appears. &lt;strong&gt;Source quality&lt;/strong&gt; examines authority, freshness, independence, and relevance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coverage&lt;/strong&gt; measures whether the research addressed the important parts of the request. &lt;strong&gt;Search efficiency&lt;/strong&gt; considers the number of queries, page inspections, tokens, API calls, and seconds required to complete the task.&lt;/p&gt;

&lt;p&gt;The trajectory itself can also be tested. Did the agent reformulate a query after poor results? Did it recognize conflicting evidence? Did it apply date or domain filters when required? Did it stop for a defensible reason?&lt;/p&gt;

&lt;p&gt;Anthropic’s guide to &lt;a href="https://www.anthropic.com/engineering/demystifying-evals-for-ai-agents" rel="noopener noreferrer"&gt;evaluating AI agents&lt;/a&gt; recommends evaluating both final outputs and the tool-use process that produced them. This is especially important for search agents because an apparently good answer can hide a fragile research process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Agentic Search Is Most Useful
&lt;/h2&gt;

&lt;p&gt;Agentic search is valuable when an answer depends on current, external, or difficult-to-predict information.&lt;/p&gt;

&lt;p&gt;It fits research assistants, monitoring agents, fact-checking systems, competitive intelligence tools, shopping assistants, technical support agents, and products that must answer with verifiable sources.&lt;/p&gt;

&lt;p&gt;It is less useful when the answer already exists in a stable, controlled knowledge base. In those cases, traditional retrieval may be faster, cheaper, and easier to evaluate.&lt;/p&gt;

&lt;p&gt;Agentic behavior should be introduced because the task requires adaptive research—not simply because an agent loop is technically possible.&lt;/p&gt;

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

&lt;p&gt;Agentic search changes retrieval from a single lookup into a managed research process.&lt;/p&gt;

&lt;p&gt;The agent decides what it needs to learn, creates queries, evaluates sources, preserves evidence, identifies gaps, and determines when the research is complete.&lt;/p&gt;

&lt;p&gt;That flexibility helps AI systems answer current and open-ended questions, but it creates new engineering responsibilities. Developers must control search loops, verify citations, measure source quality, preserve state, and manage cost and latency.&lt;/p&gt;

&lt;p&gt;Calling a Web Search API is the easy part.&lt;/p&gt;

&lt;p&gt;Building an agent that knows what to search for, what to trust, and when to stop is where the real work begins.&lt;/p&gt;




&lt;p&gt;If you are building an agent that searches the web, what has been the hardest part to control: query planning, source quality, citations, or stopping conditions?&lt;/p&gt;

&lt;p&gt;I would be interested to hear how you are approaching it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>aiagents</category>
      <category>rag</category>
      <category>api</category>
    </item>
    <item>
      <title>AI Slop Is Becoming a Search Infrastructure Problem</title>
      <dc:creator>Marcus ma</dc:creator>
      <pubDate>Mon, 24 Aug 2026 08:15:39 +0000</pubDate>
      <link>https://dev.to/cloudsway/ai-slop-is-becoming-a-search-infrastructure-problem-112d</link>
      <guid>https://dev.to/cloudsway/ai-slop-is-becoming-a-search-infrastructure-problem-112d</guid>
      <description>&lt;p&gt;LinkedIn recently added a “Seems like AI slop” option to the menu attached to each post. According to the company’s chief product officer, users selected it more than one million times during its first two weeks.&lt;/p&gt;

&lt;p&gt;The number represents reports rather than verified AI-generated posts or unique users. Even so, one million clicks is a strong signal. People are finding enough repetitive, low-value content in their feeds that they actively want a way to filter it out.&lt;/p&gt;

&lt;p&gt;For most users, this looks like a social media moderation problem. For developers building search engines, RAG applications, research assistants, and autonomous agents, it exposes a deeper failure mode.&lt;/p&gt;

&lt;p&gt;The web can contain millions of pages without containing millions of independent facts.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI-Generated and Low-Quality Are Different Labels
&lt;/h2&gt;

&lt;p&gt;“AI slop” has no stable technical definition.&lt;/p&gt;

&lt;p&gt;The term can describe automatically generated spam, inaccurate summaries, repetitive LinkedIn posts, mass-produced SEO pages, or any writing that sounds recognizably machine-generated.&lt;/p&gt;

&lt;p&gt;These categories often get grouped together, even though they represent different problems.&lt;/p&gt;

&lt;p&gt;Authorship asks how the content was created. Accuracy asks whether its claims are true. Originality asks whether it contributes new information. Quality asks whether it helps the reader accomplish something.&lt;/p&gt;

&lt;p&gt;An AI-content detector usually addresses only the first question.&lt;/p&gt;

&lt;p&gt;This distinction matters for developers because authorship is an unreliable proxy for usefulness. A human can manually publish an empty article built from familiar talking points. An AI-assisted article can include original benchmarks, customer interviews, real implementation details, and carefully verified sources.&lt;/p&gt;

&lt;p&gt;A system that treats “likely AI-generated” as equivalent to “low quality” will make predictable mistakes.&lt;/p&gt;

&lt;p&gt;Generated status should be treated as metadata. It should not become the quality score itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  LinkedIn Is Building a Human Feedback Dataset
&lt;/h2&gt;

&lt;p&gt;LinkedIn’s &lt;a href="https://www.linkedin.com/posts/hsrinivasan1_ai-slop-is-a-top-priority-for-all-of-us-share-7488612006321889282-Ps8Z/" rel="noopener noreferrer"&gt;announcement&lt;/a&gt; described AI slop as a priority and outlined new classifiers for identifying low-quality and automated content.&lt;/p&gt;

&lt;p&gt;The reporting button adds another component: human-labeled feedback.&lt;/p&gt;

&lt;p&gt;That feedback is valuable because people notice qualities that automated classifiers struggle to measure. An experienced developer may immediately recognize that a technical post contains no working details. A hiring manager may see that a leadership story is built entirely from recycled advice. A researcher may notice that an article contains statistics without identifiable sources.&lt;/p&gt;

&lt;p&gt;Each click gives LinkedIn a signal that a post produced a negative quality judgment.&lt;/p&gt;

&lt;p&gt;The signal also contains noise.&lt;/p&gt;

&lt;p&gt;Readers have different standards for what counts as AI slop. Some react to formatting, tone, or vocabulary. Others use the label for any content they dislike. Posts written by non-native English speakers may be polished with writing tools and then mistaken for automated content.&lt;/p&gt;

&lt;p&gt;A reporting option can also be abused by competitors, critics, or coordinated groups.&lt;/p&gt;

&lt;p&gt;The button is useful because it collects experience at scale. Its reliability depends on how LinkedIn combines that data with other signals.&lt;/p&gt;

&lt;p&gt;For search and recommendation developers, this is a familiar lesson: user feedback is informative, contextual, and imperfect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watermarks Solve a Smaller Problem
&lt;/h2&gt;

&lt;p&gt;Anthropic is approaching AI-content transparency from the generation side.&lt;/p&gt;

&lt;p&gt;Claude models launched on or after August 2, 2026 include machine-readable markings in generated text. Files such as images and documents may also include signed provenance metadata. Anthropic explains the approach in its documentation on &lt;a href="https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content" rel="noopener noreferrer"&gt;how Claude marks AI-generated content&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A text watermark generally works by influencing token selection. The output reads normally to a person, while a detector can examine statistical patterns in the text.&lt;/p&gt;

&lt;p&gt;This can support provenance, regulatory compliance, abuse investigation, and coordinated campaign detection. It helps answer whether a piece of text probably came from a particular generation system.&lt;/p&gt;

&lt;p&gt;It says very little about whether the content is accurate.&lt;/p&gt;

&lt;p&gt;A watermarked security explanation could be carefully researched and technically correct. A manually written article could contain fabricated benchmarks and invented sources.&lt;/p&gt;

&lt;p&gt;Watermarks also become less reliable as content moves through editing pipelines. Text may be shortened, translated, paraphrased, or passed through another model before publication.&lt;/p&gt;

&lt;p&gt;A recent &lt;a href="https://arxiv.org/abs/2607.16010" rel="noopener noreferrer"&gt;empirical evaluation of AI watermarking&lt;/a&gt; found that paraphrasing substantially weakened several watermarking approaches and produced uncertain or incorrect classifications under some experimental conditions.&lt;/p&gt;

&lt;p&gt;Watermarking remains useful for provenance. Search quality requires a wider set of evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Failure Mode Is Synthetic Consensus
&lt;/h2&gt;

&lt;p&gt;Consider a typical web-enabled RAG pipeline:&lt;/p&gt;

&lt;p&gt;A user submits a question. The application retrieves search results, extracts page content, splits it into chunks, ranks those chunks, and sends the highest-ranked material to a language model.&lt;/p&gt;

&lt;p&gt;Now imagine that one incorrect claim is published on a small website.&lt;/p&gt;

&lt;p&gt;Several automated news aggregators summarize it. SEO sites rewrite those summaries. Social media accounts turn the claim into short posts. More websites generate articles based on those posts.&lt;/p&gt;

&lt;p&gt;A search query may return twenty pages that repeat the same claim with slightly different wording.&lt;/p&gt;

&lt;p&gt;A basic retrieval system sees twenty relevant documents. The model sees apparent agreement across several sources. The user receives a confident answer.&lt;/p&gt;

&lt;p&gt;The system has mistaken repetition for confirmation.&lt;/p&gt;

&lt;p&gt;This is synthetic consensus: one claim is transformed into many pages, and content volume creates the appearance of independent evidence.&lt;/p&gt;

&lt;p&gt;Keyword-based duplicate detection catches exact copies. AI-generated rewrites are more difficult because the wording changes while the underlying information remains the same.&lt;/p&gt;

&lt;p&gt;Embedding similarity can help identify near-duplicates, although document-level similarity alone may miss pages that share only one repeated claim. Stronger systems will need to compare sources, citations, entities, and individual factual statements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Top-K Retrieval Can Amplify the Problem
&lt;/h2&gt;

&lt;p&gt;Many RAG systems optimize retrieval around semantic relevance.&lt;/p&gt;

&lt;p&gt;Given a query, they select the chunks that appear most closely related to the user’s question. This works well when the source collection contains diverse and reliable material.&lt;/p&gt;

&lt;p&gt;On the open web, the most semantically similar results may all be derived from the same origin.&lt;/p&gt;

&lt;p&gt;If the top five results repeat one announcement, the model effectively receives one source five times. The repeated language increases confidence without increasing evidence.&lt;/p&gt;

&lt;p&gt;More documents do not automatically create better context. Independence matters as much as relevance.&lt;/p&gt;

&lt;p&gt;A retrieval pipeline should therefore consider whether its selected sources represent separate information paths.&lt;/p&gt;

&lt;p&gt;Two articles quoting the same press release belong to one evidence cluster. A vendor announcement, an independent benchmark, a customer report, and a public dataset provide four different forms of evidence.&lt;/p&gt;

&lt;p&gt;This distinction becomes especially important for research agents. An agent may be instructed to compare sources, yet it cannot perform a meaningful comparison when every result originates from the same claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Trust-Aware Retrieval Needs to Measure
&lt;/h2&gt;

&lt;p&gt;A better search and retrieval layer needs more than a binary AI-content label.&lt;/p&gt;

&lt;h3&gt;
  
  
  Provenance
&lt;/h3&gt;

&lt;p&gt;The system should identify where a claim first appeared.&lt;/p&gt;

&lt;p&gt;A product announcement from the company, a report quoting that announcement, and a generated summary of the report should have a visible relationship. Search results should help the model locate the primary source.&lt;/p&gt;

&lt;h3&gt;
  
  
  Source independence
&lt;/h3&gt;

&lt;p&gt;Several URLs may still represent one source.&lt;/p&gt;

&lt;p&gt;Retrieval systems should cluster pages that share the same citations, quotes, data, or factual structure. The final context should contain evidence from multiple independent clusters rather than several rewrites from one cluster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Freshness
&lt;/h3&gt;

&lt;p&gt;Technical information expires quickly.&lt;/p&gt;

&lt;p&gt;API behavior, pricing, security advisories, laws, product availability, and model specifications can change within days. A polished article may rank well long after its details have become obsolete.&lt;/p&gt;

&lt;p&gt;Published dates, update dates, and the timing of cited sources should influence retrieval.&lt;/p&gt;

&lt;h3&gt;
  
  
  Citation support
&lt;/h3&gt;

&lt;p&gt;A page containing links is not necessarily well sourced.&lt;/p&gt;

&lt;p&gt;The retrieval layer should check whether a citation actually supports the surrounding claim. This requires moving beyond URL counting toward claim-to-source relationships.&lt;/p&gt;

&lt;h3&gt;
  
  
  Duplication
&lt;/h3&gt;

&lt;p&gt;Exact duplicate detection is no longer enough.&lt;/p&gt;

&lt;p&gt;Systems need semantic deduplication at the document and claim levels. They should identify articles that preserve the same facts and reasoning while changing the presentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Domain-specific authority
&lt;/h3&gt;

&lt;p&gt;A website’s general popularity does not guarantee expertise in every subject.&lt;/p&gt;

&lt;p&gt;A small project repository may be the strongest source for a software change. A government regulator may be the best source for a new rule. An independent security researcher may have better evidence about a vulnerability than a large technology publication.&lt;/p&gt;

&lt;p&gt;Authority should be evaluated in relation to the task.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search APIs Need to Return More Than Text
&lt;/h2&gt;

&lt;p&gt;A basic search response may contain a title, URL, snippet, and page content.&lt;/p&gt;

&lt;p&gt;Agent-oriented search benefits from richer metadata: publication time, source type, citations, language, content format, and relationships between results.&lt;/p&gt;

&lt;p&gt;This metadata helps the agent distinguish a primary source from a summary, compare dates, and avoid treating duplicate pages as independent evidence.&lt;/p&gt;

&lt;p&gt;Search APIs designed for AI agents, including &lt;a href="https://www.cloudsway.ai/product/search/" rel="noopener noreferrer"&gt;Cloudsway Search&lt;/a&gt;, are moving toward structured web data because raw text alone provides too little context for reliable decisions.&lt;/p&gt;

&lt;p&gt;The retrieval layer should help an agent answer two separate questions:&lt;/p&gt;

&lt;p&gt;What does this page say?&lt;/p&gt;

&lt;p&gt;Why should this page influence the answer?&lt;/p&gt;

&lt;p&gt;Most current RAG pipelines are much better at the first question.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI Agents Make Search Quality More Important
&lt;/h2&gt;

&lt;p&gt;A human browsing search results has several informal defenses.&lt;/p&gt;

&lt;p&gt;They can recognize a suspicious domain, notice repetitive language, open multiple tabs, inspect the author, or decide that a page feels empty.&lt;/p&gt;

&lt;p&gt;An AI agent may read and process hundreds of pages without experiencing that kind of fatigue or skepticism. It can absorb low-quality information at machine speed.&lt;/p&gt;

&lt;p&gt;The consequences also extend beyond generating a weak summary.&lt;/p&gt;

&lt;p&gt;A coding agent may follow outdated documentation. A shopping agent may recommend a product based on automated comparison pages. A research agent may cite several articles that all copied the same source. A compliance agent may interpret an old regulation as current.&lt;/p&gt;

&lt;p&gt;When an agent can act on retrieved information, search quality becomes part of the application’s safety model.&lt;/p&gt;

&lt;p&gt;Model intelligence cannot compensate for missing or misleading evidence. The retrieval layer decides what information reaches the model in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Better Content Still Has a Future
&lt;/h2&gt;

&lt;p&gt;The growth of AI-generated publishing does not make content irrelevant. It changes which content remains valuable.&lt;/p&gt;

&lt;p&gt;First-hand information becomes more important. Benchmarks, experiments, interviews, implementation failures, screenshots, datasets, and detailed case studies add information that cannot be recovered by summarizing existing search results.&lt;/p&gt;

&lt;p&gt;Clear sourcing also becomes a competitive advantage. Articles that show where claims came from are easier for readers to verify and easier for agents to cite.&lt;/p&gt;

&lt;p&gt;Independent judgment matters as well.&lt;/p&gt;

&lt;p&gt;The web already has enough summaries. Useful writing explains why an event matters, which assumptions deserve scrutiny, and what changes for the reader.&lt;/p&gt;

&lt;p&gt;AI can support research, organization, editing, and translation. The final article still needs to contribute evidence, experience, or analysis that was previously missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Search Will Compete on Evidence Density
&lt;/h2&gt;

&lt;p&gt;LinkedIn’s million AI slop reports show that users already feel the cost of synthetic content.&lt;/p&gt;

&lt;p&gt;Platforms are responding with report buttons, classifiers, watermarks, and provenance metadata. Each tool contributes a useful signal, and each has clear limitations.&lt;/p&gt;

&lt;p&gt;For developers building search and RAG systems, the larger opportunity lies in evidence-aware retrieval.&lt;/p&gt;

&lt;p&gt;The next generation of search infrastructure will need to trace claims to their origins, identify duplicate information, preserve publication context, evaluate citations, and select genuinely independent sources.&lt;/p&gt;

&lt;p&gt;The goal is no longer to retrieve the largest number of relevant pages.&lt;/p&gt;

&lt;p&gt;The goal is to retrieve the smallest set of sources that provides the strongest evidence.&lt;/p&gt;

&lt;p&gt;As the web becomes easier to generate, evidence density will become one of the most valuable search signals.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>machinelearning</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
