[{"data":1,"prerenderedAt":1958},["ShallowReactive",2],{"navigation":3,"/blog/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval":510,"/blog/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval-surround":1954},[4],{"title":5,"path":6,"stem":7,"children":8,"page":509},"Blog","/blog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417,421,425,429,433,437,441,445,449,453,457,461,465,469,473,477,481,485,489,493,497,501,505],{"title":10,"path":11,"stem":12},"Activation Functions Are Not a Detail - ReLU Changed Everything","/blog/activation-functions-are-not-a-detail","blog/activation-functions-are-not-a-detail",{"title":14,"path":15,"stem":16},"Actor-Critic - The First Time RL Feels Trainable","/blog/actor-critic-the-first-time-rl-feels-trainable","blog/actor-critic-the-first-time-rl-feels-trainable",{"title":18,"path":19,"stem":20},"Agent Evals as CI - From Prompt Tests to Scenario Harnesses and Red Teams","/blog/agent-evals-as-ci-from-prompt-tests-to-scenario-harnesses-and-red-teams","blog/agent-evals-as-ci-from-prompt-tests-to-scenario-harnesses-and-red-teams",{"title":22,"path":23,"stem":24},"Agent Runtimes Emerge: SDKs, orchestration primitives, and observability","/blog/agent-runtimes-emerge-sdks-orchestration-primitives-and-observability","blog/agent-runtimes-emerge-sdks-orchestration-primitives-and-observability",{"title":26,"path":27,"stem":28},"Agentic AI Is Becoming a Cybersecurity Problem","/blog/agentic-ai-is-becoming-a-cybersecurity-problem","blog/agentic-ai-is-becoming-a-cybersecurity-problem",{"title":30,"path":31,"stem":32},"Agents as Distributed Systems: outbox, sagas, and “eventually correct” workflows","/blog/agents-as-distributed-systems-outbox-sagas-eventually-correct-workflows","blog/agents-as-distributed-systems-outbox-sagas-eventually-correct-workflows",{"title":34,"path":35,"stem":36},"AJAX → Fetch → GraphQL → tRPC: Choosing Your Data Boundary","/blog/ajax-fetch-graphql-trpc-choosing-your-data-boundary","blog/ajax-fetch-graphql-trpc-choosing-your-data-boundary",{"title":38,"path":39,"stem":40},"Exercise 8 + Course Wrap - Anomaly Detection & Recommenders (and My Next Steps)","/blog/anomaly-detection-and-recommenders","blog/anomaly-detection-and-recommenders",{"title":42,"path":43,"stem":44},"API Evolution at Scale: Compatibility, Contracts, and Consumer-Driven Testing","/blog/api-evolution-at-scale-compatibility-contracts-consumer-driven-testing","blog/api-evolution-at-scale-compatibility-contracts-consumer-driven-testing",{"title":46,"path":47,"stem":48},"Backends: Frameworks Don’t Matter Until They Do (Node, Java, .NET, Go, Python)","/blog/backends-frameworks-dont-matter-until-they-do","blog/backends-frameworks-dont-matter-until-they-do",{"title":50,"path":51,"stem":52},"Backpropagation Demystified - It’s Just the Chain Rule (But Applied Ruthlessly)","/blog/backpropagation-demystified","blog/backpropagation-demystified",{"title":54,"path":55,"stem":56},"Bandits - The First Honest RL Problem","/blog/bandits-the-first-honest-rl-problem","blog/bandits-the-first-honest-rl-problem",{"title":58,"path":59,"stem":60},"Batch Training & Evaluation Again: Promising Results That Survive Scrutiny","/blog/batch-training-evaluation-again-promising-results-that-survive-scrutiny","blog/batch-training-evaluation-again-promising-results-that-survive-scrutiny",{"title":62,"path":63,"stem":64},"bitmex-gym - The Baseline Trading Environment (Where Cheating Starts)","/blog/bitmex-gym-baseline-trading-environment-where-cheating-starts","blog/bitmex-gym-baseline-trading-environment-where-cheating-starts",{"title":66,"path":67,"stem":68},"bitmex-management-gym: Position Sizing and the First Risk-Aware Agent","/blog/bitmex-management-gym-position-sizing-first-risk-aware-agent","blog/bitmex-management-gym-position-sizing-first-risk-aware-agent",{"title":70,"path":71,"stem":72},"Browser Reality: The Event Loop, Rendering, and Why UX Bugs Look Like Backend Bugs","/blog/browser-reality-event-loop-rendering-ux-bugs-backend-bugs","blog/browser-reality-event-loop-rendering-ux-bugs-backend-bugs",{"title":74,"path":75,"stem":76},"Caching Without Folklore: Redis, CDNs, and the Two Hard Things","/blog/caching-without-folklore-redis-cdns-and-the-two-hard-things","blog/caching-without-folklore-redis-cdns-and-the-two-hard-things",{"title":78,"path":79,"stem":80},"Capstone: Build a System That Can Survive (Reference Architecture + Decision Log)","/blog/capstone-build-a-system-that-can-survive","blog/capstone-build-a-system-that-can-survive",{"title":82,"path":83,"stem":84},"Chappie Wiring From Trained Policy to Running Process","/blog/chappie-wiring-from-trained-policy-to-running-process","blog/chappie-wiring-from-trained-policy-to-running-process",{"title":86,"path":87,"stem":88},"CI/CD as Architecture: Testing Pyramids, Pipelines, and Rollout Safety","/blog/ci-cd-as-architecture-testing-pyramids-pipelines-rollout-safety","blog/ci-cd-as-architecture-testing-pyramids-pipelines-rollout-safety",{"title":90,"path":91,"stem":92},"Cloud Infrastructure Without the Fanaticism: IaaS, PaaS, Serverless, Kubernetes","/blog/cloud-infrastructure-without-the-religion","blog/cloud-infrastructure-without-the-religion",{"title":94,"path":95,"stem":96},"Computer-Use Agents in Production: sandboxes, VMs, and UI-action safety","/blog/computer-use-agents-in-production-sandboxes-vms-ui-action-safety","blog/computer-use-agents-in-production-sandboxes-vms-ui-action-safety",{"title":98,"path":99,"stem":100},"Constraints That Teach: Risk Caps, Timeouts, and Surviving Bad Regimes","/blog/constraints-that-teach-risk-caps-timeouts-surviving-bad-regimes","blog/constraints-that-teach-risk-caps-timeouts-surviving-bad-regimes",{"title":102,"path":103,"stem":104},"Containers, Docker, and the Discipline of Reproducibility","/blog/containers-docker-and-the-discipline-of-reproducibility","blog/containers-docker-and-the-discipline-of-reproducibility",{"title":106,"path":107,"stem":108},"Context Assembly as a Subsystem: Summaries, State, and Token Budgets","/blog/context-assembly-as-a-subsystem-summaries-state-and-token-budgets","blog/context-assembly-as-a-subsystem-summaries-state-and-token-budgets",{"title":110,"path":111,"stem":112},"Continuous Control - DDPG and the Seduction of Off-Policy","/blog/continuous-control-ddpg-and-the-seduction-of-off-policy","blog/continuous-control-ddpg-and-the-seduction-of-off-policy",{"title":114,"path":115,"stem":116},"Convolutions - Why CNNs See the World Differently","/blog/convolutions-why-cnns-see-the-world-differently","blog/convolutions-why-cnns-see-the-world-differently",{"title":118,"path":119,"stem":120},"Cost as a First-Class Constraint: FinOps for Architects","/blog/cost-as-a-first-class-constraint-finops-for-architects","blog/cost-as-a-first-class-constraint-finops-for-architects",{"title":122,"path":123,"stem":124},"DALL·E: How Text Became Images (and Why It Changed Everything)","/blog/dalle-how-text-became-images-and-why-it-changed-everything","blog/dalle-how-text-became-images-and-why-it-changed-everything",{"title":126,"path":127,"stem":128},"Data Engineering for Product Teams: OLTP vs OLAP, Streaming, and Truth","/blog/data-engineering-for-product-teams-oltp-vs-olap-streaming-and-truth","blog/data-engineering-for-product-teams-oltp-vs-olap-streaming-and-truth",{"title":130,"path":131,"stem":132},"Data Stores 101 for Architects: SQL, NoSQL, and the Shape of Consistency","/blog/data-stores-101-for-architects-sql-nosql-consistency","blog/data-stores-101-for-architects-sql-nosql-consistency",{"title":134,"path":135,"stem":136},"Dataset Reality — HDF5 Schema, Missing Data, and “Don’t Lie to Yourself” Rules","/blog/dataset-reality-hdf5-schema-missing-data","blog/dataset-reality-hdf5-schema-missing-data",{"title":138,"path":139,"stem":140},"Exercise 5 - Debugging ML (Bias/Variance, Learning Curves, and What to Try Next)","/blog/debugging-ml-bias-variance","blog/debugging-ml-bias-variance",{"title":142,"path":143,"stem":144},"Deep Q-Learning - My First Real Baselines Month","/blog/deep-q-learning-my-first-real-baselines-month","blog/deep-q-learning-my-first-real-baselines-month",{"title":146,"path":147,"stem":148},"Deep Silos in RL: Architecture as Stability (and the First LSTM Variant)","/blog/deep-silos-in-rl-architecture-as-stability","blog/deep-silos-in-rl-architecture-as-stability",{"title":150,"path":151,"stem":152},"Deep Silos - Representation Learning That Respects Feature Families","/blog/deep-silos-representation-learning-feature-families","blog/deep-silos-representation-learning-feature-families",{"title":154,"path":155,"stem":156},"Defining Alpha Without Cheating - Look-Ahead Labels and Leakage Traps","/blog/defining-alpha-without-cheating","blog/defining-alpha-without-cheating",{"title":158,"path":159,"stem":160},"Dissecting ChatGPT: The Product Architecture Around the Model","/blog/dissecting-chatgpt-the-product-architecture-around-the-model","blog/dissecting-chatgpt-the-product-architecture-around-the-model",{"title":162,"path":163,"stem":164},"Distributed Data: Transactions, Outbox, Sagas, and “Eventually Correct”","/blog/distributed-data-transactions-outbox-sagas-eventually-correct","blog/distributed-data-transactions-outbox-sagas-eventually-correct",{"title":166,"path":167,"stem":168},"Why Sequences Break Everything - Enter Recurrent Neural Networks","/blog/enter-recurrent-neural-networks","blog/enter-recurrent-neural-networks",{"title":170,"path":171,"stem":172},"Evaluation Discipline - Walk-Forward Backtesting Inside the Gym","/blog/evaluation-discipline-walk-forward-backtesting-inside-gym","blog/evaluation-discipline-walk-forward-backtesting-inside-gym",{"title":174,"path":175,"stem":176},"Feature Engineering, But Make It Microstructure: Liquidity Created/Removed","/blog/feature-engineering-microstructure-liquidity-created-removed","blog/feature-engineering-microstructure-liquidity-created-removed",{"title":178,"path":179,"stem":180},"First Live Runs - Small Size, Big Lessons","/blog/first-live-runs-small-size-big-lessons","blog/first-live-runs-small-size-big-lessons",{"title":182,"path":183,"stem":184},"From Logistic Regression to Neurons - Rebuilding Intuition from the Perceptron","/blog/from-logistic-regression-to-neurons","blog/from-logistic-regression-to-neurons",{"title":186,"path":187,"stem":188},"From Microstructure to Features - What the Model Will See","/blog/from-microstructure-to-features-what-the-model-will-see","blog/from-microstructure-to-features-what-the-model-will-see",{"title":190,"path":191,"stem":192},"From Classical ML to Deep Learning - What Actually Changed (and What Didn’t) (and My Next Steps)","/blog/from-ml-to-deep-learning-retrospective","blog/from-ml-to-deep-learning-retrospective",{"title":194,"path":195,"stem":196},"From Prediction to Decision - Designing the Trading Environment Contract","/blog/from-prediction-to-decision-trading-environment-contract","blog/from-prediction-to-decision-trading-environment-contract",{"title":198,"path":199,"stem":200},"From Research Rig to System: 2020 Postmortem and the Real Amazing Result","/blog/from-research-rig-to-system-2020-postmortem","blog/from-research-rig-to-system-2020-postmortem",{"title":202,"path":203,"stem":204},"Frontend Systems: Routing, State, Forms, and the “Boring Stack” That Scales","/blog/frontend-systems-routing-state-forms-boring-stack","blog/frontend-systems-routing-state-forms-boring-stack",{"title":206,"path":207,"stem":208},"Function Approximation - The Day RL Stopped Being Stable","/blog/function-approximation-the-day-rl-stopped-being-stable","blog/function-approximation-the-day-rl-stopped-being-stable",{"title":210,"path":211,"stem":212},"GPAI Obligations Begin: What Changes for Model Providers and Enterprises","/blog/gpai-obligations-begin-what-changes-for-model-providers-and-enterprises","blog/gpai-obligations-begin-what-changes-for-model-providers-and-enterprises",{"title":214,"path":215,"stem":216},"Hallucinations: A Probabilistic Failure Mode, Not a Moral Defect","/blog/hallucinations-a-probabilistic-failure-mode-not-a-moral-defect","blog/hallucinations-a-probabilistic-failure-mode-not-a-moral-defect",{"title":218,"path":219,"stem":220},"HTTP as a Distributed Systems API (Without the Buzzwords)","/blog/http-as-a-distributed-systems-api-without-the-buzzwords","blog/http-as-a-distributed-systems-api-without-the-buzzwords",{"title":222,"path":223,"stem":224},"Imitation Learning - GAIL and the Strange Feeling of Learning From Experts","/blog/imitation-learning-gail-and-learning-from-experts","blog/imitation-learning-gail-and-learning-from-experts",{"title":226,"path":227,"stem":228},"Incident Response and Resilience: Designing for Failure, Not Hope","/blog/incident-response-and-resilience-designing-for-failure-not-hope","blog/incident-response-and-resilience-designing-for-failure-not-hope",{"title":230,"path":231,"stem":232},"Initialization, Scale, and the Fragility of Deep Networks","/blog/initialization-scale-fragility-of-deep-networks","blog/initialization-scale-fragility-of-deep-networks",{"title":234,"path":235,"stem":236},"Instruction Tuning: Turning a Completion Engine into an Assistant","/blog/instruction-tuning-turning-a-completion-engine-into-an-assistant","blog/instruction-tuning-turning-a-completion-engine-into-an-assistant",{"title":238,"path":239,"stem":240},"Exercise 3 - One-vs-All + Intro to Neural Networks (Handwritten Digits!)","/blog/intro-to-neural-networks","blog/intro-to-neural-networks",{"title":242,"path":243,"stem":244},"Exercise 1 - Linear Regression From Scratch","/blog/linear-regression-from-scratch","blog/linear-regression-from-scratch",{"title":246,"path":247,"stem":248},"Linear Regression With Multiple Variables (and Why Vectorization Matters)","/blog/linear-regression-with-multiple-vars","blog/linear-regression-with-multiple-vars",{"title":250,"path":251,"stem":252},"Live Alpha Monitoring - When the Market Talks Back","/blog/live-alpha-monitoring-when-market-talks-back","blog/live-alpha-monitoring-when-market-talks-back",{"title":254,"path":255,"stem":256},"Exercise 2 - Logistic Regression for Classification (My First Real Classifier)","/blog/logistic-regression-for-classification","blog/logistic-regression-for-classification",{"title":258,"path":259,"stem":260},"Long Context Isn’t Memory: When to Stuff, When to Retrieve","/blog/long-context-isnt-memory-when-to-stuff-when-to-retrieve","blog/long-context-isnt-memory-when-to-stuff-when-to-retrieve",{"title":262,"path":263,"stem":264},"LSTMs - Engineering Memory into the Network","/blog/lstms-engineering-memory-into-the-network","blog/lstms-engineering-memory-into-the-network",{"title":266,"path":267,"stem":268},"Maker Trades as a Strategy: When Fees Become a Reward Signal","/blog/maker-trades-fees-reward-signal","blog/maker-trades-fees-reward-signal",{"title":270,"path":271,"stem":272},"Microservices vs Modular Monolith: The “When” and the “How”","/blog/microservices-vs-modular-monolith-when-and-how","blog/microservices-vs-modular-monolith-when-and-how",{"title":274,"path":275,"stem":276},"Midjourney and the Product Loop: Why Some Generators Feel Magical","/blog/midjourney-and-the-product-loop-why-some-generators-feel-magical","blog/midjourney-and-the-product-loop-why-some-generators-feel-magical",{"title":278,"path":279,"stem":280},"Model Selection Becomes Architecture: Routing, Budgets, and Capability Tiers","/blog/model-selection-becomes-architecture-routing-budgets-and-capability-tiers","blog/model-selection-becomes-architecture-routing-budgets-and-capability-tiers",{"title":282,"path":283,"stem":284},"Multi-Agent Systems Without Chaos: supervisors, specialists, and coordination contracts","/blog/multi-agent-systems-without-chaos-supervisors-specialists-and-coordination-contracts","blog/multi-agent-systems-without-chaos-supervisors-specialists-and-coordination-contracts",{"title":286,"path":287,"stem":288},"Multimodal Changes UX: designing text+vision+audio systems","/blog/multimodal-changes-ux-designing-text-vision-audio-systems","blog/multimodal-changes-ux-designing-text-vision-audio-systems",{"title":290,"path":291,"stem":292},"Exercise 4 - Neural Networks Learning (Backpropagation Without Tears)","/blog/neural-networks-learning-backpropagation","blog/neural-networks-learning-backpropagation",{"title":294,"path":295,"stem":296},"Normal Equation vs Gradient Descent (Choosing Tools Like an Engineer)","/blog/normal-equation-vs-gradient-descent","blog/normal-equation-vs-gradient-descent",{"title":298,"path":299,"stem":300},"Normalization Is a Deployment Problem - Mean/Sigma and Index Diff","/blog/normalization-is-a-deployment-problem","blog/normalization-is-a-deployment-problem",{"title":302,"path":303,"stem":304},"Observability that Works: Logs, Metrics, Traces, and SLO Thinking","/blog/observability-that-works-logs-metrics-traces-and-slo-thinking","blog/observability-that-works-logs-metrics-traces-and-slo-thinking",{"title":306,"path":307,"stem":308},"Open Weights in Production: evaluation, licensing, and guardrails","/blog/open-weights-in-production-evaluation-licensing-and-guardrails","blog/open-weights-in-production-evaluation-licensing-and-guardrails",{"title":310,"path":311,"stem":312},"OpenClaw: A Viral Agent, a Skills Ecosystem, and the Supply-Chain Reality Check","/blog/openclaw-a-viral-agent-and-the-supply-chain-reality-check","blog/openclaw-a-viral-agent-and-the-supply-chain-reality-check",{"title":314,"path":315,"stem":316},"Optimization Got Real - Momentum, Learning Rates, and Why Plain Gradient Descent Wasn’t Enough","/blog/optimization-got-real-momentumand-learning-rates","blog/optimization-got-real-momentumand-learning-rates",{"title":318,"path":319,"stem":320},"Order Books Are the Battlefield - Matching Engines in Plain English","/blog/order-books-are-the-battlefield","blog/order-books-are-the-battlefield",{"title":322,"path":323,"stem":324},"Performance Engineering End-to-End: From TTFB to Tail Latency","/blog/performance-engineering-end-to-end-from-ttfb-to-tail-latency","blog/performance-engineering-end-to-end-from-ttfb-to-tail-latency",{"title":326,"path":327,"stem":328},"Policy Gradients - Learning Without a Value Crutch","/blog/policy-gradients-learning-without-a-value-crutch","blog/policy-gradients-learning-without-a-value-crutch",{"title":330,"path":331,"stem":332},"Pooling, Hierarchies, and What CNNs Are Really Learning","/blog/pooling-hierarchies-and-cnns","blog/pooling-hierarchies-and-cnns",{"title":334,"path":335,"stem":336},"Pretraining Is Compression: Tokens, Datasets, and Emergent Skill","/blog/pretraining-is-compression-tokens-datasets-and-emergent-skill","blog/pretraining-is-compression-tokens-datasets-and-emergent-skill",{"title":338,"path":339,"stem":340},"Prism and the Architecture of Artifact-Native AI for Science","/blog/prism-and-the-architecture-of-artifact-native-ai-for-science","blog/prism-and-the-architecture-of-artifact-native-ai-for-science",{"title":342,"path":343,"stem":344},"Prompting is Not Programming: Contracts, Schemas, and Failure Budgets","/blog/prompting-is-not-programming-contracts-schemas-failure-budgets","blog/prompting-is-not-programming-contracts-schemas-failure-budgets",{"title":346,"path":347,"stem":348},"Queues, Retries, and Idempotency: Engineering Reality in Async Systems","/blog/queues-retries-and-idempotency-engineering-reality-in-async-systems","blog/queues-retries-and-idempotency-engineering-reality-in-async-systems",{"title":350,"path":351,"stem":352},"RAG Done Right: Knowledge, Grounding, and Evaluation That Isn’t Vibes","/blog/rag-done-right-knowledge-grounding-and-evaluation-that-isnt-vibes","blog/rag-done-right-knowledge-grounding-and-evaluation-that-isnt-vibes",{"title":354,"path":355,"stem":356},"RAG You Can Evaluate: retrieval pipelines, reranking, citations, and truth boundaries","/blog/rag-you-can-evaluate-retrieval-pipelines-reranking-citations-truth-boundaries","blog/rag-you-can-evaluate-retrieval-pipelines-reranking-citations-truth-boundaries",{"title":358,"path":359,"stem":360},"React as an Architecture Tool: Components, Hooks, and the Cost of Re-rendering","/blog/react-as-an-architecture-tool-components-hooks-cost-of-rerendering","blog/react-as-an-architecture-tool-components-hooks-cost-of-rerendering",{"title":362,"path":363,"stem":364},"Real-Time Agents: streaming, barge-in, and session state that doesn’t collapse","/blog/real-time-agents-streaming-barge-in-session-state-that-doesnt-collapse","blog/real-time-agents-streaming-barge-in-session-state-that-doesnt-collapse",{"title":366,"path":367,"stem":368},"Reasoning Budgets: fast/slow paths, verification, and when to “think longer”","/blog/reasoning-budgets-fast-slow-paths-verification-think-longer","blog/reasoning-budgets-fast-slow-paths-verification-think-longer",{"title":370,"path":371,"stem":372},"Reference Architecture v2: the Operable Agent Platform","/blog/reference-architecture-v2-the-operable-agent-platform","blog/reference-architecture-v2-the-operable-agent-platform",{"title":374,"path":375,"stem":376},"Regularization - Overfitting in the Real World (and How to Fight It)","/blog/regularization-overfitting-in-the-real-world","blog/regularization-overfitting-in-the-real-world",{"title":378,"path":379,"stem":380},"Regulation as Architecture: Turning the EU AI Act into Controls and Evidence","/blog/regulation-as-architecture-eu-ai-act-controls-evidence","blog/regulation-as-architecture-eu-ai-act-controls-evidence",{"title":382,"path":383,"stem":384},"RESTful Design That Survives: Resources, Boundaries, and Versioning","/blog/restful-design-that-survives-resources-boundaries-and-versioning","blog/restful-design-that-survives-resources-boundaries-and-versioning",{"title":386,"path":387,"stem":388},"Reward Shaping Without Lying - Penalties, Constraints, and the First Real Fixes","/blog/reward-shaping-without-lying","blog/reward-shaping-without-lying",{"title":390,"path":391,"stem":392},"Rewards, Returns, and Why “Learning” Is an Interface Problem","/blog/rewards-returns-learning-is-an-interface-problem","blog/rewards-returns-learning-is-an-interface-problem",{"title":394,"path":395,"stem":396},"RLHF: Stabilizing Behavior with Preferences (Alignment as Control)","/blog/rlhf-stabilizing-behavior-with-preferences-alignment-as-control","blog/rlhf-stabilizing-behavior-with-preferences-alignment-as-control",{"title":398,"path":399,"stem":400},"Safety Engineering - Kill Switches, Reconciliation, and Failure Recovery","/blog/safety-engineering-kill-switches-reconciliation-failure-recovery","blog/safety-engineering-kill-switches-reconciliation-failure-recovery",{"title":402,"path":403,"stem":404},"Search Becomes an Agent Runtime","/blog/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval","blog/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval",{"title":406,"path":407,"stem":408},"Security for Agent Connectors: least privilege, injection resistance, and safe toolchains","/blog/security-for-agent-connectors-least-privilege-injection-resistance-and-safe-toolchains","blog/security-for-agent-connectors-least-privilege-injection-resistance-and-safe-toolchains",{"title":410,"path":411,"stem":412},"Security for Builders: Threat Modeling and Secure-by-Default Systems","/blog/security-for-builders-threat-modeling-and-secure-by-default-systems","blog/security-for-builders-threat-modeling-and-secure-by-default-systems",{"title":414,"path":415,"stem":416},"Software in the Age of Probabilistic Components","/blog/software-in-the-age-of-probabilistic-components","blog/software-in-the-age-of-probabilistic-components",{"title":418,"path":419,"stem":420},"Sparse Rewards - HER and Learning From What Didn’t Happen","/blog/sparse-rewards-her-and-learning-from-what-didnt-happen","blog/sparse-rewards-her-and-learning-from-what-didnt-happen",{"title":422,"path":423,"stem":424},"Stability is a Feature You Have to Design","/blog/stability-is-a-feature-you-have-to-design","blog/stability-is-a-feature-you-have-to-design",{"title":426,"path":427,"stem":428},"Standards for the Agent Ecosystem: connectors, protocols, and MCP","/blog/standards-for-the-agent-ecosystem-connectors-protocols-and-mcp","blog/standards-for-the-agent-ecosystem-connectors-protocols-and-mcp",{"title":430,"path":431,"stem":432},"Supervised Baselines - First Alpha Models, First Humbling Curves","/blog/supervised-baselines-first-alpha-models","blog/supervised-baselines-first-alpha-models",{"title":434,"path":435,"stem":436},"Exercise 6 - Support Vector Machines (When a Different Model Just Wins)","/blog/support-vector-machines","blog/support-vector-machines",{"title":438,"path":439,"stem":440},"Tabular RL - When Value Iteration Feels Like Cheating","/blog/tabular-rl-when-value-iteration-feels-like-cheating","blog/tabular-rl-when-value-iteration-feels-like-cheating",{"title":442,"path":443,"stem":444},"The 1M-Token Era: how long context changes retrieval economics and system design","/blog/the-1m-token-era-long-context-retrieval-economics-and-system-design","blog/the-1m-token-era-long-context-retrieval-economics-and-system-design",{"title":446,"path":447,"stem":448},"The 503 Lesson - Outages as a Signal, Not Just a Bug","/blog/the-503-lesson-outages-as-signal-not-just-a-bug","blog/the-503-lesson-outages-as-signal-not-just-a-bug",{"title":450,"path":451,"stem":452},"The Collector - Websockets, Clock Drift, and the First Clean Snapshot","/blog/the-collector-websockets-clock-drift-and-the-first-clean-snapshot","blog/the-collector-websockets-clock-drift-and-the-first-clean-snapshot",{"title":454,"path":455,"stem":456},"The Compliance Cliff: prohibited practices and governance controls that actually ship","/blog/the-compliance-cliff-prohibited-practices-and-governance-controls-that-actually-ship","blog/the-compliance-cliff-prohibited-practices-and-governance-controls-that-actually-ship",{"title":458,"path":459,"stem":460},"The Connector Ecosystem: MCP adoption patterns, versioning, and governance","/blog/the-connector-ecosystem-mcp-adoption-patterns-versioning-and-governance","blog/the-connector-ecosystem-mcp-adoption-patterns-versioning-and-governance",{"title":462,"path":463,"stem":464},"The Model Router Era","/blog/the-model-router-era-routing-eval-gates-and-budgets","blog/the-model-router-era-routing-eval-gates-and-budgets",{"title":466,"path":467,"stem":468},"Vanishing Gradients Strike Back - The Pain of Training RNNs","/blog/the-pain-of-training-rnns","blog/the-pain-of-training-rnns",{"title":470,"path":471,"stem":472},"Tool Use and Agents: When the Model Becomes a Workflow Engine","/blog/tool-use-and-agents-when-the-model-becomes-a-workflow-engine","blog/tool-use-and-agents-when-the-model-becomes-a-workflow-engine",{"title":474,"path":475,"stem":476},"Tool Use with Open Models: function calling, sandboxes, and “capability boundaries”","/blog/tool-use-with-open-models-function-calling-sandboxes-capability-boundaries","blog/tool-use-with-open-models-function-calling-sandboxes-capability-boundaries",{"title":478,"path":479,"stem":480},"Transformers: Attention as an Engineering Breakthrough (Not a Math Flex)","/blog/transformers-attention-as-an-engineering-breakthrough","blog/transformers-attention-as-an-engineering-breakthrough",{"title":482,"path":483,"stem":484},"Exercise 7 - Unsupervised Learning (K-means) + PCA (Compression & Visualization)","/blog/unsupervised-learning-and-compression","blog/unsupervised-learning-and-compression",{"title":486,"path":487,"stem":488},"Voice Agents You Can Operate: reliability, caching, latency, and human handoff","/blog/voice-agents-you-can-operate-reliability-caching-latency-human-handoff","blog/voice-agents-you-can-operate-reliability-caching-latency-human-handoff",{"title":490,"path":491,"stem":492},"The Web's \"Compression Algorithm\": Static → Web 2.0 → SPA → SSR/Edge","/blog/webs-compression-algorithm-static-web2-spa-ssr-edge","blog/webs-compression-algorithm-static-web2-spa-ssr-edge",{"title":494,"path":495,"stem":496},"Why Deeper Networks Are Harder to Train Than I Expected","/blog/why-deeper-networks-are-harder-to-train","blog/why-deeper-networks-are-harder-to-train",{"title":498,"path":499,"stem":500},"Why I’m Learning Machine Learning","/blog/why-im-learning-machine-learning","blog/why-im-learning-machine-learning",{"title":502,"path":503,"stem":504},"Why NLP Was Hard: RNN Pain, Vanishing Gradients, and the Limits of “Memory”","/blog/why-nlp-was-hard-rnn-pain-vanishing-gradients-limits-of-memory","blog/why-nlp-was-hard-rnn-pain-vanishing-gradients-limits-of-memory",{"title":506,"path":507,"stem":508},"Why RL Training Is Unstable (A Catalog of Breakage)","/blog/why-rl-training-is-unstable-a-catalog-of-breakage","blog/why-rl-training-is-unstable-a-catalog-of-breakage",false,{"id":511,"title":402,"author":512,"body":516,"date":1941,"description":1942,"extension":1943,"image":1944,"meta":1945,"minRead":1947,"navigation":1948,"path":403,"seo":1949,"sitemap":1950,"stem":404,"__hash__":1953},"blog/blog/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval.md",{"name":513,"avatar":514},"Axel Domingues",{"src":515,"alt":513},"/images/axel-domingues.avif",{"type":517,"value":518,"toc":1909},"minimark",[519,523,526,529,538,541,557,560,571,574,600,603,606,609,612,623,663,666,671,674,677,691,694,703,706,709,729,732,738,740,744,747,750,755,758,788,791,793,797,800,803,820,826,829,849,872,874,878,881,886,889,892,909,912,915,939,942,968,970,974,977,982,1236,1239,1241,1245,1248,1251,1254,1257,1260,1290,1293,1298,1301,1303,1307,1310,1372,1385,1387,1391,1394,1397,1418,1421,1424,1429,1432,1452,1463,1465,1469,1472,1475,1478,1481,1510,1517,1520,1537,1539,1543,1546,1629,1631,1635,1638,1641,1670,1680,1682,1686,1689,1692,1739,1741,1745,1748,1751,1754,1768,1770,1774,1820,1822,1826],[520,521,522],"p",{},"May’s hot topic was not simply “Google added more AI to Search.”",[520,524,525],{},"That story is too small.",[520,527,528],{},"The bigger shift is this:",[530,531,532],"blockquote",{},[520,533,534],{},[535,536,537],"strong",{},"Search is becoming an agent runtime.",[520,539,540],{},"For twenty-five years, Search mostly meant:",[542,543,544,548,551,554],"ul",{},[545,546,547],"li",{},"parse a query",[545,549,550],{},"retrieve documents",[545,552,553],{},"rank links",[545,555,556],{},"let the user decide what to trust and what to do next",[520,558,559],{},"Generative search changed the first half:",[542,561,562,565,568],{},[545,563,564],{},"retrieve sources",[545,566,567],{},"synthesize an answer",[545,569,570],{},"cite or summarize evidence",[520,572,573],{},"But the May 2026 direction pushes further:",[542,575,576,582,588,594],{},[545,577,578,581],{},[535,579,580],{},"AI Mode"," turns search into a conversational, multimodal workspace.",[545,583,584,587],{},[535,585,586],{},"Search agents"," turn queries into background monitors and task runners.",[545,589,590,593],{},[535,591,592],{},"Gemini Spark"," points toward an always-on personal agent that can operate across a user’s digital life.",[545,595,596,599],{},[535,597,598],{},"Generated UI"," turns search results from “links” into task-specific interfaces.",[520,601,602],{},"That is a new architecture.",[520,604,605],{},"Not “better autocomplete.”",[520,607,608],{},"Not “chatbot inside a search page.”",[520,610,611],{},"A runtime where retrieval, synthesis, planning, UI generation, and action share the same surface.",[613,614,615,618],"caution",{},[520,616,617],{},"When Search starts acting, the risk profile changes.",[530,619,620],{},[520,621,622],{},"A bad answer is one failure mode.\nA bad answer that schedules, buys, emails, books, or monitors on your behalf is a different system entirely.",[624,625,626,642,649,656],"card-group",{},[627,628,631],"card",{"icon":629,"title":630},"i-lucide-search","The trend",[520,632,633,634,637,638,641],{},"Search is moving from ",[535,635,636],{},"retrieval interface"," to ",[535,639,640],{},"agentic action surface",".",[627,643,646],{"icon":644,"title":645},"i-lucide-waypoints","The architecture shift",[520,647,648],{},"The pipeline becomes: query → retrieve → synthesize → plan → generate UI → act → monitor.",[627,650,653],{"icon":651,"title":652},"i-lucide-shield-alert","The reliability problem",[520,654,655],{},"If answers become actions, source fidelity, permissions, and auditability stop being optional.",[627,657,660],{"icon":658,"title":659},"i-lucide-anchor","The engineering thesis",[520,661,662],{},"Actionable retrieval needs contracts: evidence packets, action gates, source scoring, and rollbackable workflows.",[664,665],"hr",{},[667,668,670],"h2",{"id":669},"search-in-one-sentence-the-old-contract","Search in one sentence (the old contract)",[520,672,673],{},"Classic Search was a ranking system.",[520,675,676],{},"It returned documents and made the user responsible for:",[542,678,679,682,685,688],{},[545,680,681],{},"reading",[545,683,684],{},"comparing",[545,686,687],{},"judging credibility",[545,689,690],{},"deciding what to do next",[520,692,693],{},"That was imperfect, but it had a clean boundary:",[530,695,696],{},[520,697,698,699,702],{},"Search helped you find information.",[700,701],"br",{},"\nYou performed the action.",[520,704,705],{},"Agentic Search blurs that boundary.",[520,707,708],{},"Now the system may:",[542,710,711,714,717,720,723,726],{},[545,712,713],{},"summarize the web",[545,715,716],{},"choose which sources matter",[545,718,719],{},"decide when to ask follow-up questions",[545,721,722],{},"build a custom interface",[545,724,725],{},"run a background monitor",[545,727,728],{},"and trigger tools or transactions",[520,730,731],{},"That is why this topic belongs in an architecture blog.",[520,733,734,735,641],{},"The product surface changed, but the deeper change is the ",[535,736,737],{},"control flow",[664,739],{},[667,741,743],{"id":742},"what-actionable-retrieval-means","What “actionable retrieval” means",[520,745,746],{},"Retrieval used to end at “here are relevant documents.”",[520,748,749],{},"Actionable retrieval ends at:",[530,751,752],{},[520,753,754],{},"“Here is the answer, here is the evidence, here is the proposed action, and here is the control boundary before anything changes.”",[520,756,757],{},"That adds three new responsibilities to the search stack.",[624,759,760,767,774,781],{},[627,761,764],{"icon":762,"title":763},"i-lucide-file-check","Evidence",[520,765,766],{},"The system must know where claims came from and whether cited sources actually support them.",[627,768,771],{"icon":769,"title":770},"i-lucide-crosshair","Intent",[520,772,773],{},"The system must separate “I want information” from “I want you to do something.”",[627,775,778],{"icon":776,"title":777},"i-lucide-key","Authority",[520,779,780],{},"The system must know which actions it is allowed to take, under whose identity, and with what approval.",[627,782,785],{"icon":783,"title":784},"i-lucide-clock","Memory",[520,786,787],{},"The system must decide what persists: monitors, preferences, tasks, reminders, and user-specific context.",[520,789,790],{},"This is where Search becomes much closer to an agent platform than a web page.",[664,792],{},[667,794,796],{"id":795},"ai-mode-search-becomes-a-workspace","AI Mode: search becomes a workspace",[520,798,799],{},"AI Mode changes the shape of search from “query and links” to “conversation plus workspace.”",[520,801,802],{},"That matters because long, messy queries become normal:",[542,804,805,808,811,814,817],{},[545,806,807],{},"“Compare these options”",[545,809,810],{},"“Use this file”",[545,812,813],{},"“Look at these tabs”",[545,815,816],{},"“Plan this task”",[545,818,819],{},"“Keep checking this for me”",[520,821,822,823,641],{},"The query is no longer a short keyword string.\nIt becomes a ",[535,824,825],{},"task packet",[520,827,828],{},"A task packet can include:",[542,830,831,834,837,840,843,846],{},[545,832,833],{},"natural language intent",[545,835,836],{},"files or images",[545,838,839],{},"browsing context",[545,841,842],{},"user preferences",[545,844,845],{},"location or calendar context",[545,847,848],{},"constraints (“cheap”, “near me”, “family-friendly”, “don’t book yet”)",[850,851,852,855,858],"note",{},[520,853,854],{},"The hard part is not generating a fluent answer.",[520,856,857],{},"The hard part is deciding:",[542,859,860,863,866,869],{},[545,861,862],{},"what evidence is allowed in the context",[545,864,865],{},"what user state is relevant",[545,867,868],{},"what action is being proposed",[545,870,871],{},"and what must stay behind an approval gate",[664,873],{},[667,875,877],{"id":876},"gemini-spark-the-always-on-agent-pattern","Gemini Spark: the always-on agent pattern",[520,879,880],{},"Gemini Spark is interesting because it points to the other side of agentic search:",[520,882,883],{},[535,884,885],{},"background continuity.",[520,887,888],{},"Search traditionally answered now.",[520,890,891],{},"An always-on agent can:",[542,893,894,897,900,903,906],{},[545,895,896],{},"monitor information over time",[545,898,899],{},"notice changes",[545,901,902],{},"summarize deltas",[545,904,905],{},"remind you when something matters",[545,907,908],{},"prepare actions for approval",[520,910,911],{},"This is not “one request.”\nIt is a workflow.",[520,913,914],{},"A Spark-like agent needs a durable loop:",[916,917,918,921,924,927,930,933,936],"ol",{},[545,919,920],{},"define the monitoring goal",[545,922,923],{},"retrieve periodically or subscribe to signals",[545,925,926],{},"compare against prior state",[545,928,929],{},"decide whether anything changed",[545,931,932],{},"notify the user",[545,934,935],{},"optionally propose action",[545,937,938],{},"log what happened",[520,940,941],{},"That looks less like Search and more like a tiny SRE system for your digital life.",[943,944,945,948,951],"warning",{},[520,946,947],{},"Background agents are powerful because they continue after the tab closes.",[520,949,950],{},"That means they need:",[542,952,953,956,959,962,965],{},[545,954,955],{},"ownership",[545,957,958],{},"budgets",[545,960,961],{},"stop conditions",[545,963,964],{},"expiration dates",[545,966,967],{},"and a visible “what is this agent doing?” panel",[664,969],{},[667,971,973],{"id":972},"the-architecture-blueprint-search-as-an-agent-runtime","The architecture blueprint: Search as an agent runtime",[520,975,976],{},"Here is the mental architecture I’d use for agentic search.",[978,979],"img",{"alt":980,"src":981},"Search as an agent runtime: query understanding, retrieval, evidence scoring, synthesis, generated UI, action planner, tool gateway, monitoring loop, telemetry","blog/2026/illustrations/search-agent-runtime-blueprint.avif",[983,984,985,1016,1044,1076,1108,1140,1169,1201],"accordion",{},[986,987,990,993,1010],"accordion-item",{"icon":988,"label":989},"i-lucide-mouse-pointer-click","1) Intent parser",[520,991,992],{},"Classifies the request:",[542,994,995,998,1001,1004,1007],{},[545,996,997],{},"informational (“explain this”)",[545,999,1000],{},"comparative (“compare options”)",[545,1002,1003],{},"transactional (“book / buy / schedule”)",[545,1005,1006],{},"monitoring (“watch this and alert me”)",[545,1008,1009],{},"creative (“generate a plan / draft / UI”)",[520,1011,1012,1015],{},[535,1013,1014],{},"Contract:"," don’t treat every query as permission to act.",[986,1017,1019,1022,1039],{"icon":629,"label":1018},"2) Retrieval planner",[520,1020,1021],{},"Decides what kind of retrieval is needed:",[542,1023,1024,1027,1030,1033,1036],{},[545,1025,1026],{},"web retrieval",[545,1028,1029],{},"local/user-context retrieval",[545,1031,1032],{},"vertical retrieval (shopping, travel, local, code, docs)",[545,1034,1035],{},"freshness-sensitive retrieval",[545,1037,1038],{},"multi-hop retrieval",[520,1040,1041,1043],{},[535,1042,1014],{}," source selection must be inspectable, not magic.",[986,1045,1048,1051,1071],{"icon":1046,"label":1047},"i-lucide-scale","3) Evidence scorer",[520,1049,1050],{},"Scores sources for:",[542,1052,1053,1056,1059,1062,1065,1068],{},[545,1054,1055],{},"authority",[545,1057,1058],{},"freshness",[545,1060,1061],{},"relevance",[545,1063,1064],{},"diversity",[545,1066,1067],{},"conflict",[545,1069,1070],{},"support for specific claims",[520,1072,1073,1075],{},[535,1074,1014],{}," citation is not enough. The cited page must support the claim.",[986,1077,1080,1083,1103],{"icon":1078,"label":1079},"i-lucide-file-text","4) Answer compiler",[520,1081,1082],{},"Builds the response from evidence:",[542,1084,1085,1088,1091,1094,1097,1100],{},[545,1086,1087],{},"summaries",[545,1089,1090],{},"comparisons",[545,1092,1093],{},"tables",[545,1095,1096],{},"caveats",[545,1098,1099],{},"citations",[545,1101,1102],{},"uncertainty markers",[520,1104,1105,1107],{},[535,1106,1014],{}," separate “source says” from “model infers.”",[986,1109,1112,1115,1135],{"icon":1110,"label":1111},"i-lucide-panels-top-left","5) Generated UI layer",[520,1113,1114],{},"Creates task-specific interfaces:",[542,1116,1117,1120,1123,1126,1129,1132],{},[545,1118,1119],{},"comparison cards",[545,1121,1122],{},"booking forms",[545,1124,1125],{},"timelines",[545,1127,1128],{},"checklists",[545,1130,1131],{},"filters",[545,1133,1134],{},"mini-apps",[520,1136,1137,1139],{},[535,1138,1014],{}," generated UI must still call governed APIs, not bypass product controls.",[986,1141,1144,1147,1164],{"icon":1142,"label":1143},"i-lucide-route","6) Action planner",[520,1145,1146],{},"Turns a user goal into proposed steps:",[542,1148,1149,1152,1155,1158,1161],{},[545,1150,1151],{},"call this provider",[545,1153,1154],{},"ask this follow-up",[545,1156,1157],{},"reserve this slot",[545,1159,1160],{},"create this reminder",[545,1162,1163],{},"monitor this source",[520,1165,1166,1168],{},[535,1167,1014],{}," plans are proposals until authority is granted.",[986,1170,1173,1176,1196],{"icon":1171,"label":1172},"i-lucide-lock","7) Tool gateway",[520,1174,1175],{},"Controls side effects:",[542,1177,1178,1181,1184,1187,1190,1193],{},[545,1179,1180],{},"payments",[545,1182,1183],{},"bookings",[545,1185,1186],{},"messages",[545,1188,1189],{},"calendar writes",[545,1191,1192],{},"account changes",[545,1194,1195],{},"subscriptions / monitors",[520,1197,1198,1200],{},[535,1199,1014],{}," the model is not the security boundary. The gateway is.",[986,1202,1205,1208,1231],{"icon":1203,"label":1204},"i-lucide-activity","8) Telemetry + audit log",[520,1206,1207],{},"Records what happened:",[542,1209,1210,1213,1216,1219,1222,1225,1228],{},[545,1211,1212],{},"sources retrieved",[545,1214,1215],{},"claims generated",[545,1217,1218],{},"actions proposed",[545,1220,1221],{},"actions approved",[545,1223,1224],{},"tools called",[545,1226,1227],{},"costs and latency",[545,1229,1230],{},"user corrections",[520,1232,1233,1235],{},[535,1234,1014],{}," if the system acts, it must leave an audit trail.",[520,1237,1238],{},"This is the difference between “AI search feature” and “search runtime.”",[664,1240],{},[667,1242,1244],{"id":1243},"the-hardest-problem-evidence-fidelity","The hardest problem: evidence fidelity",[520,1246,1247],{},"Generative search has one uncomfortable property:",[520,1249,1250],{},"It collapses many sources into one answer.",[520,1252,1253],{},"That creates convenience, but also removes friction.",[520,1255,1256],{},"Users no longer inspect ten links.\nThey read the synthesis.",[520,1258,1259],{},"So the system inherits editorial responsibility.",[624,1261,1262,1269,1276,1283],{},[627,1263,1266],{"icon":1264,"title":1265},"i-lucide-list-filter","Source selection",[520,1267,1268],{},"Which pages were retrieved, ranked, included, ignored, or suppressed?",[627,1270,1273],{"icon":1271,"title":1272},"i-lucide-badge-check","Claim support",[520,1274,1275],{},"Does each important claim actually follow from the cited source?",[627,1277,1280],{"icon":1278,"title":1279},"i-lucide-git-compare","Conflict handling",[520,1281,1282],{},"When sources disagree, does the answer expose disagreement or average it away?",[627,1284,1287],{"icon":1285,"title":1286},"i-lucide-newspaper","Publisher impact",[520,1288,1289],{},"If answers replace clicks, source ecosystems and incentives change.",[520,1291,1292],{},"A useful internal invariant:",[530,1294,1295],{},[520,1296,1297],{},"A cited answer should be decomposable into claims, and each high-risk claim should map to supporting evidence.",[520,1299,1300],{},"This is not academic neatness.\nIt is how you debug hallucination in a search product.",[664,1302],{},[667,1304,1306],{"id":1305},"action-gates-the-line-between-answer-and-execution","Action gates: the line between answer and execution",[520,1308,1309],{},"Agentic Search must distinguish four levels of authority.",[1311,1312,1314,1319,1322,1325,1329,1332,1335,1339,1342,1345,1362,1366,1369],"steps",{"level":1313},"3",[1315,1316,1318],"h3",{"id":1317},"level-1-inform","Level 1 — Inform",[520,1320,1321],{},"The system can answer, summarize, compare, and cite.",[520,1323,1324],{},"No side effects.",[1315,1326,1328],{"id":1327},"level-2-prepare","Level 2 — Prepare",[520,1330,1331],{},"The system can fill forms, draft messages, create plans, and stage actions.",[520,1333,1334],{},"Still no side effects.",[1315,1336,1338],{"id":1337},"level-3-ask","Level 3 — Ask",[520,1340,1341],{},"The system can request explicit approval for a specific action.",[520,1343,1344],{},"The approval must show:",[542,1346,1347,1350,1353,1356,1359],{},[545,1348,1349],{},"target",[545,1351,1352],{},"cost",[545,1354,1355],{},"recipient / vendor",[545,1357,1358],{},"data shared",[545,1360,1361],{},"rollback options",[1315,1363,1365],{"id":1364},"level-4-act","Level 4 — Act",[520,1367,1368],{},"The system performs the action through a governed tool gateway.",[520,1370,1371],{},"Every action gets logged.\nIrreversible actions require stronger gates.",[943,1373,1374,1377,1382],{},[520,1375,1376],{},"The dangerous product shortcut is collapsing Level 2 and Level 4:",[530,1378,1379],{},[520,1380,1381],{},"“I prepared this” becomes “I did this.”",[520,1383,1384],{},"That is how helpful agents become incident generators.",[664,1386],{},[667,1388,1390],{"id":1389},"generated-ui-useful-but-not-a-permission-system","Generated UI: useful, but not a permission system",[520,1392,1393],{},"Generated UI is one of the most interesting parts of agentic search.",[520,1395,1396],{},"Instead of returning a static answer, the system can generate:",[542,1398,1399,1402,1404,1406,1409,1412,1415],{},[545,1400,1401],{},"comparison tools",[545,1403,1131],{},[545,1405,1125],{},[545,1407,1408],{},"calculators",[545,1410,1411],{},"travel planners",[545,1413,1414],{},"shopping flows",[545,1416,1417],{},"dashboards",[520,1419,1420],{},"That is powerful because the UI can fit the task.",[520,1422,1423],{},"But generated UI also creates a governance problem:",[530,1425,1426],{},[520,1427,1428],{},"Who decides what this UI is allowed to do?",[520,1430,1431],{},"A generated booking interface must still respect:",[542,1433,1434,1437,1440,1443,1446,1449],{},[545,1435,1436],{},"consent",[545,1438,1439],{},"payment rules",[545,1441,1442],{},"cancellation policies",[545,1444,1445],{},"data sharing boundaries",[545,1447,1448],{},"accessibility",[545,1450,1451],{},"auditability",[1453,1454,1455,1458],"tip",{},[520,1456,1457],{},"Generated UI should be treated like a view over governed capabilities.",[530,1459,1460],{},[520,1461,1462],{},"The UI may be generated.\nThe permissions must not be.",[664,1464],{},[667,1466,1468],{"id":1467},"background-agents-monitors-need-budgets-and-expiration","Background agents: monitors need budgets and expiration",[520,1470,1471],{},"A search agent that watches the web for you is extremely useful.",[520,1473,1474],{},"It is also easy to forget.",[520,1476,1477],{},"That makes lifecycle management non-negotiable.",[520,1479,1480],{},"Every monitor should have:",[542,1482,1483,1486,1489,1492,1495,1498,1501,1504,1507],{},[545,1484,1485],{},"owner",[545,1487,1488],{},"purpose",[545,1490,1491],{},"sources / scope",[545,1493,1494],{},"frequency",[545,1496,1497],{},"budget",[545,1499,1500],{},"expiration date",[545,1502,1503],{},"notification channel",[545,1505,1506],{},"stop button",[545,1508,1509],{},"audit history",[627,1511,1514],{"icon":1512,"title":1513},"i-lucide-clock-3","Monitor contract",[520,1515,1516],{},"A background search agent should be visible, bounded, revocable, and explainable.",[520,1518,1519],{},"Without that, you get zombie agents:",[542,1521,1522,1525,1528,1531,1534],{},[545,1523,1524],{},"still searching",[545,1526,1527],{},"still spending",[545,1529,1530],{},"still notifying",[545,1532,1533],{},"still holding permissions",[545,1535,1536],{},"long after the user forgot why they existed",[664,1538],{},[667,1540,1542],{"id":1541},"failure-modes-i-expect-in-agentic-search","Failure modes I expect in agentic search",[520,1544,1545],{},"This is where the engineering discipline shows up.",[983,1547,1548,1564,1577,1590,1603,1616],{},[986,1549,1552,1558],{"icon":1550,"label":1551},"i-lucide-circle-help","Failure: unsupported synthesis",[520,1553,1554,1557],{},[535,1555,1556],{},"Symptom:"," answer cites sources, but the specific claim is not supported by those sources.",[520,1559,1560,1563],{},[535,1561,1562],{},"Fix:"," claim-level evidence checks for high-risk answers, plus source-support evals.",[986,1565,1567,1572],{"icon":1550,"label":1566},"Failure: source monoculture",[520,1568,1569,1571],{},[535,1570,1556],{}," answer appears objective, but mostly comes from one source type or one ecosystem.",[520,1573,1574,1576],{},[535,1575,1562],{}," source diversity scoring and explicit conflict surfacing.",[986,1578,1580,1585],{"icon":1550,"label":1579},"Failure: action overreach",[520,1581,1582,1584],{},[535,1583,1556],{}," the system performs a task when the user only asked for information.",[520,1586,1587,1589],{},[535,1588,1562],{}," intent classification + authority levels + explicit approval for side effects.",[986,1591,1593,1598],{"icon":1550,"label":1592},"Failure: personalization leak",[520,1594,1595,1597],{},[535,1596,1556],{}," private context shapes an answer or action in a way the user didn’t expect.",[520,1599,1600,1602],{},[535,1601,1562],{}," context disclosure (“using your calendar/preferences”), scoped personalization, and opt-out controls.",[986,1604,1606,1611],{"icon":1550,"label":1605},"Failure: zombie monitors",[520,1607,1608,1610],{},[535,1609,1556],{}," background agents continue running after the original need is gone.",[520,1612,1613,1615],{},[535,1614,1562],{}," expiration dates, visible agent inventory, and regular “still needed?” confirmations.",[986,1617,1619,1624],{"icon":1550,"label":1618},"Failure: generated UI bypasses governance",[520,1620,1621,1623],{},[535,1622,1556],{}," a custom UI exposes actions that should require stricter gates.",[520,1625,1626,1628],{},[535,1627,1562],{}," generated UI calls only through a permissioned tool gateway.",[664,1630],{},[667,1632,1634],{"id":1633},"what-to-measure","What to measure",[520,1636,1637],{},"Agentic Search needs dashboards beyond click-through rate.",[520,1639,1640],{},"A minimal runtime dashboard should include:",[624,1642,1643,1650,1656,1663],{},[627,1644,1647],{"icon":1645,"title":1646},"i-lucide-search-check","Retrieval quality",[520,1648,1649],{},"Source diversity, freshness, authority, and query-source alignment.",[627,1651,1653],{"icon":762,"title":1652},"Claim fidelity",[520,1654,1655],{},"Unsupported-claim rate, citation mismatch rate, and conflict handling quality.",[627,1657,1660],{"icon":1658,"title":1659},"i-lucide-shield-check","Action safety",[520,1661,1662],{},"Approval rate, denied actions, risky tool calls, and rollback frequency.",[627,1664,1667],{"icon":1665,"title":1666},"i-lucide-refresh-cw","Agent lifecycle",[520,1668,1669],{},"Active monitors, expired agents, budget usage, and notification usefulness.",[850,1671,1672,1675],{},[520,1673,1674],{},"The old search metric was “did the user click?”",[530,1676,1677],{},[520,1678,1679],{},"The agentic search metric is closer to:\nDid the system help the user complete the right task, with the right evidence, under the right authority?",[664,1681],{},[667,1683,1685],{"id":1684},"if-i-were-designing-this-system-my-minimum-viable-contract","If I were designing this system: my minimum viable contract",[520,1687,1688],{},"I would not start with “make Search more intelligent.”",[520,1690,1691],{},"I would start with contracts.",[1311,1693,1694,1698,1701,1705,1708,1712,1715,1719,1722,1726,1729,1733,1736],{"level":1313},[1315,1695,1697],{"id":1696},"separate-answer-mode-from-action-mode","Separate answer mode from action mode",[520,1699,1700],{},"A query must be classified before the system can act.\nThe default should be informational.",[1315,1702,1704],{"id":1703},"emit-evidence-packets","Emit evidence packets",[520,1706,1707],{},"Every synthesized answer should include source IDs, claim mappings, freshness, and confidence metadata.",[1315,1709,1711],{"id":1710},"route-all-side-effects-through-a-tool-gateway","Route all side effects through a tool gateway",[520,1713,1714],{},"Bookings, purchases, messages, calendar changes, and subscriptions must never be raw model actions.",[1315,1716,1718],{"id":1717},"require-explicit-approval-for-irreversible-actions","Require explicit approval for irreversible actions",[520,1720,1721],{},"The user sees what will happen before it happens.",[1315,1723,1725],{"id":1724},"add-lifecycle-management-for-background-agents","Add lifecycle management for background agents",[520,1727,1728],{},"Every monitor has owner, scope, budget, expiry, and kill switch.",[1315,1730,1732],{"id":1731},"log-the-whole-path","Log the whole path",[520,1734,1735],{},"Query → sources → answer → UI → proposed action → approval → tool call.",[520,1737,1738],{},"If you can’t reconstruct it, you can’t operate it.",[664,1740],{},[667,1742,1744],{"id":1743},"may-takeaway","May takeaway",[520,1746,1747],{},"Search used to be an index.",[520,1749,1750],{},"Generative Search made it an answer engine.",[520,1752,1753],{},"Agentic Search turns it into a runtime.",[627,1755,1756,1759],{"icon":658,"title":1744},[520,1757,1758],{},"When Search starts acting, retrieval quality is only the first problem.",[530,1760,1761],{},[520,1762,1763,1764,1767],{},"The real architecture is ",[535,1765,1766],{},"actionable retrieval",":\nevidence fidelity, intent boundaries, generated UI, tool gateways, background monitors, and auditability.",[664,1769],{},[667,1771,1773],{"id":1772},"resources","Resources",[624,1775,1776,1785,1792,1799,1806,1813],{},[627,1777,1782],{"icon":1778,"title":1779,"target":1780,"to":1781},"i-simple-icons-google","Google — A new era for AI Search","_blank","https://blog.google/products-and-platforms/products/search/search-io-2026/",[520,1783,1784],{},"Google’s May 2026 framing of AI Search: advanced model capabilities, search agents, agentic coding, and a new AI-powered Search box.",[627,1786,1789],{"icon":1778,"title":1787,"target":1780,"to":1788},"Google — The Gemini app becomes more agentic","https://blog.google/innovation-and-ai/products/gemini-app/next-evolution-gemini-app/",[520,1790,1791],{},"The Gemini Spark announcement: a 24/7 personal AI agent designed to manage tasks under user direction.",[627,1793,1796],{"icon":1285,"title":1794,"target":1780,"to":1795},"The Verge — Google Search AI update","https://www.theverge.com/tech/932970/google-search-ai-update-io-2026",[520,1797,1798],{},"Useful product-level coverage of AI Mode, agentic search capabilities, file/context attachments, and generated UI.",[627,1800,1803],{"icon":1078,"title":1801,"target":1780,"to":1802},"Measuring Google AI Overviews","https://arxiv.org/abs/2605.14021",[520,1804,1805],{},"A May 2026 measurement study on activation, source quality, claim fidelity, and publisher impact in AI Overviews.",[627,1807,1810],{"icon":1078,"title":1808,"target":1780,"to":1809},"How Generative AI Disrupts Search","https://arxiv.org/abs/2604.27790",[520,1811,1812],{},"An empirical study comparing traditional Google Search, AI Overviews, and Gemini; useful for thinking about source selection and robustness.",[627,1814,1817],{"icon":1078,"title":1815,"target":1780,"to":1816},"Answer Bubbles","https://arxiv.org/abs/2603.16138",[520,1818,1819],{},"A useful framing for source-selection bias, source-summary fidelity, and different information realities in AI-mediated search.",[664,1821],{},[667,1823,1825],{"id":1824},"faq","FAQ",[983,1827,1828,1863,1875,1886],{},[986,1829,1831,1834,1837,1840,1860],{"icon":1550,"label":1830},"Is agentic search just RAG with a nicer UI?",[520,1832,1833],{},"No.",[520,1835,1836],{},"RAG retrieves evidence for generation.",[520,1838,1839],{},"Agentic search adds:",[542,1841,1842,1845,1848,1851,1854,1857],{},[545,1843,1844],{},"intent classification",[545,1846,1847],{},"generated UI",[545,1849,1850],{},"background monitoring",[545,1852,1853],{},"tool calls",[545,1855,1856],{},"approvals",[545,1858,1859],{},"and lifecycle management",[520,1861,1862],{},"That makes it closer to an agent platform than a retrieval pattern.",[986,1864,1866,1869,1872],{"icon":1550,"label":1865},"What is the biggest new risk?",[520,1867,1868],{},"Action overreach.",[520,1870,1871],{},"A wrong answer is bad.\nA wrong answer that triggers a booking, purchase, notification, or account change is worse.",[520,1873,1874],{},"That’s why action gates and tool gateways matter.",[986,1876,1878,1880,1883],{"icon":1550,"label":1877},"Does citation solve the trust problem?",[520,1879,1833],{},[520,1881,1882],{},"Citation is necessary but not sufficient.",[520,1884,1885],{},"The important question is whether the cited source actually supports the specific claim.\nThat requires claim-level checking, especially for high-risk topics.",[986,1887,1889,1892],{"icon":1550,"label":1888},"What should teams copy from this trend?",[520,1890,1891],{},"Copy the architecture, not the hype:",[542,1893,1894,1897,1900,1903,1906],{},[545,1895,1896],{},"evidence packets",[545,1898,1899],{},"generated UI over governed tools",[545,1901,1902],{},"explicit action authority levels",[545,1904,1905],{},"background agent lifecycle controls",[545,1907,1908],{},"telemetry for retrieval, claims, and actions",{"title":1910,"searchDepth":1911,"depth":1911,"links":1912},"",2,[1913,1914,1915,1916,1917,1918,1919,1926,1927,1928,1929,1930,1938,1939,1940],{"id":669,"depth":1911,"text":670},{"id":742,"depth":1911,"text":743},{"id":795,"depth":1911,"text":796},{"id":876,"depth":1911,"text":877},{"id":972,"depth":1911,"text":973},{"id":1243,"depth":1911,"text":1244},{"id":1305,"depth":1911,"text":1306,"children":1920},[1921,1923,1924,1925],{"id":1317,"depth":1922,"text":1318},3,{"id":1327,"depth":1922,"text":1328},{"id":1337,"depth":1922,"text":1338},{"id":1364,"depth":1922,"text":1365},{"id":1389,"depth":1911,"text":1390},{"id":1467,"depth":1911,"text":1468},{"id":1541,"depth":1911,"text":1542},{"id":1633,"depth":1911,"text":1634},{"id":1684,"depth":1911,"text":1685,"children":1931},[1932,1933,1934,1935,1936,1937],{"id":1696,"depth":1922,"text":1697},{"id":1703,"depth":1922,"text":1704},{"id":1710,"depth":1922,"text":1711},{"id":1717,"depth":1922,"text":1718},{"id":1724,"depth":1922,"text":1725},{"id":1731,"depth":1922,"text":1732},{"id":1743,"depth":1911,"text":1744},{"id":1772,"depth":1911,"text":1773},{"id":1824,"depth":1911,"text":1825},"2026-05-31T00:00:00.000Z","Google’s Gemini Spark and AI Mode point to a bigger shift: Search is no longer just retrieval plus ranking. It is becoming a runtime for synthesis, generated UI, monitoring agents, and action. This post explains the architecture of actionable retrieval — and the reliability contracts needed when search starts doing things.","md","blog/2026/search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval.avif",{"slug":1946},"search-becomes-an-agent-runtime-gemini-spark-ai-mode-and-actionable-retrieval",17,true,{"title":402,"description":1942},{"loc":403,"images":1951},[1952],{"loc":981},"N3QTlwsjX15_G7xzgp6VEqytmFJUQj8qiyQxUZtRph0",[1955,1956],null,{"title":462,"path":463,"stem":464,"description":1957,"children":-1},"Weekly frontier releases turned “pick a model” into an operational anti-pattern. In April 2026, routing became the real product: choose models per request, enforce eval gates, and budget cost/latency/security like an SRE system.",1781414718902]