[{"data":1,"prerenderedAt":3562},["ShallowReactive",2],{"site-nav-content":3,"blog:/blog/what-is-a-nimbus-loop":179,"blog-index-copy":1192,"blog:/blog/what-is-a-nimbus-loop:surround":1213,"hiring-banner-content":3531,"site-cta-content":3543},{"header":4,"productNav":9,"nav":42,"footer":61,"askAI":132,"id":163,"title":164,"archived":165,"authors":166,"badge":166,"body":167,"date":166,"definedTerm":166,"department":166,"description":171,"extension":174,"eyebrow":166,"faqHeader":166,"faqs":166,"footerBand":166,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":175,"relatedHeading":166,"seo":176,"series":166,"sitemap":165,"status":166,"stem":177,"subhead":166,"tags":166,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":178},{"productLabel":5,"loginLabel":6,"contactLabel":7,"contactSalesLabel":8},"Product","Log in","Contact","Get started for free",[10,14,18,22,26,30,34,38],{"label":11,"to":12,"description":13},"Overview","/overview","Seven layers. One closed loop.",{"label":15,"to":16,"description":17},"Conflux","/product/conflux","Where your team, workstreams, and agents meet.",{"label":19,"to":20,"description":21},"Agent Teams","/product/agent-teams","Specialist teams - governed from day one.",{"label":23,"to":24,"description":25},"Lifecycle Graph","/product/lifecycle-graph","Intelligence that compounds across every interaction.",{"label":27,"to":28,"description":29},"Company Wiki","/product/wiki","Playbooks and policies where expertise stays.",{"label":31,"to":32,"description":33},"Workstreams","/product/workstreams","From brief to signed-off deliverable on one canvas.",{"label":35,"to":36,"description":37},"Perception Console","/product/perception","Ask your whole business in plain English.",{"label":39,"to":40,"description":41},"Governance","/product/governance","Frontier AI you can actually sign off on.",[43,46,49,52,55,58],{"label":44,"to":45},"Models","/models",{"label":47,"to":48},"Pricing","/pricing",{"label":50,"to":51},"Integrations","/integrations",{"label":53,"to":54},"Security","/security",{"label":56,"to":57},"Partners","/partners",{"label":59,"to":60},"Insights","/blog",{"productHeading":5,"companyHeading":62,"resourcesHeading":63,"legalHeading":64,"docsLabel":65,"docsUrl":66,"statementLines":67,"copyright":70,"companyLinks":71,"resourcesLinks":86,"legalLinks":102,"socialLinks":109,"bottomLinks":119},"Company","Resources","Legal","Docs","https://docs.gonimbus.ai",[68,69],"Stop training someone else's model.","Control your AI.","© 2026 Nimbus Intelligence, Inc. All rights reserved.",[72,73,74,75,76,78,81,84],{"label":47,"to":48},{"label":50,"to":51},{"label":53,"to":54},{"label":59,"to":60},{"label":77,"to":57},"Partner Program",{"label":79,"to":80},"Careers","/careers",{"label":82,"to":83},"System status","/status",{"label":7,"to":85},"/contact",[87,90,93,96,99],{"label":88,"to":89},"Glossary","/glossary",{"label":91,"to":92},"Compare","/compare",{"label":94,"to":95},"Evaluate","/evaluate",{"label":97,"to":98},"Problems","/problems",{"label":100,"to":101},"Use cases","/use-cases",[103,106],{"label":104,"to":105},"Terms of Service","/terms",{"label":107,"to":108},"Privacy Policy","/privacy",[110,113,116],{"label":111,"href":112},"LinkedIn","https://www.linkedin.com/company/gonimbusai/",{"label":114,"href":115},"X","https://x.com/gonimbusai",{"label":117,"href":118},"Instagram","https://www.instagram.com/gonimbus_ai/",[120,122,124,127,128],{"label":121,"to":105},"Terms",{"label":123,"to":108},"Privacy",{"label":125,"to":126},"Compliance","/compliance",{"label":82,"to":83},{"label":129,"to":130,"external":131},"LLMs.txt","/llms.txt",true,{"text":133,"prompt":134},"Ask AI about Nimbus",{"I'm researching enterprise intelligence platforms and want to know how Nimbus combines perception, collaboration, and autonomous agents to drive strategic decision-making":135,"platforms":137},{" Summarize the highlights from Nimbus's website":136},"https://gonimbus.ai",[138,143,148,153,158],{"name":139,"label":140,"icon":141,"hrefPrefix":142},"chatgpt","ChatGPT","simple-icons:openai","https://chatgpt.com/?prompt=",{"name":144,"label":145,"icon":146,"hrefPrefix":147},"perplexity","Perplexity","mdi:magnify","https://www.perplexity.ai/search/new?q=",{"name":149,"label":150,"icon":151,"hrefPrefix":152},"grok","Grok","simple-icons:x","https://x.com/i/grok?text=",{"name":154,"label":155,"icon":156,"hrefPrefix":157},"claude","Claude","simple-icons:anthropic","https://claude.ai/new?q=",{"name":159,"label":160,"icon":161,"hrefPrefix":162},"google-ai","Google AI","simple-icons:google","https://www.google.com/search?udm=50&aep=11&q=","content/shared/nav.md","Site navigation",false,null,{"type":168,"value":169,"toc":170},"minimark",[],{"title":171,"searchDepth":172,"depth":172,"links":173},"",2,[],"md","/shared/nav",{"title":164,"description":171},"shared/nav","1dD7ahDRl0SQ4hz53-kKo0tEFrGaLuaztZ3PPfp6a9k",{"id":180,"title":181,"archived":165,"authors":182,"badge":185,"body":187,"date":1164,"definedTerm":1165,"department":166,"description":1166,"extension":174,"eyebrow":166,"faqHeader":1167,"faqs":1170,"footerBand":166,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":1183,"relatedHeading":166,"seo":1184,"series":1185,"sitemap":131,"status":166,"stem":1186,"subhead":166,"tags":1187,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":1191},"content/blog/what-is-a-nimbus-loop.md","What is a Nimbus Loop",[183],{"name":184,"to":136},"Nimbus Research",{"label":186},"Explainer",{"type":168,"value":188,"toc":1148},[189,198,208,211,246,258,263,266,276,282,288,299,311,369,380,392,396,450,453,457,463,472,475,486,498,506,510,517,520,540,546,549,553,562,565,591,594,605,613,617,623,635,647,653,677,680,684,687,692,709,714,732,748,756,763,767,773,784,790,799,807,813,817,852,863,872,876,882,888,894,900,908,918,927,930,934,937,988,995,998,1002,1012,1026,1046,1050,1077,1081,1144],[190,191,192,193,197],"p",{},"A ",[194,195,196],"strong",{},"standing order"," for enterprise AI is a job that already exists before anyone starts a run: a trigger admits work, a compiled recipe executes, and a run record shows outputs and skips. Nobody re-describes the job in a chat thread to make Monday happen.",[190,199,200,207],{},[201,202,206],"a",{"href":203,"rel":204},"https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai",[205],"nofollow","McKinsey’s State of AI"," shows organisations using models widely while leaving recurring work in chat and memory. Adoption without redesign means the same exception list is still a ritual: someone remembers the filters, someone else remembers the sheet, and audit asks a person rather than opening a record.",[190,209,210],{},"Disambiguate before you build or buy:",[212,213,214,226,236],"ul",{},[215,216,217,220,221,225],"li",{},[194,218,219],{},"Eval loop"," — a sensor that grades a run. Did the executed write match the signed payload? See ",[201,222,224],{"href":223},"eval-loops-for-enterprise-agent-harnesses","eval loops for enterprise agent harnesses",".",[215,227,228,231,232,235],{},[194,229,230],{},"Standing-order loop"," — this page. A job that ",[194,233,234],{},"admits"," a run when a trigger fires.",[215,237,238,241,242,225],{},[194,239,240],{},"Agentic workflow"," — an interactive path that still reasons when the route is not fully known. See ",[201,243,245],{"href":244},"what-is-an-agentic-workflow","what is an agentic workflow",[190,247,248,252,253,257],{},[201,249,251],{"href":250},"what-is-loop-engineering","Loop engineering"," is the discipline behind the recipe: compile the known path, detect change, record skips. A standing-order loop is how that discipline shows up as an object operators can own — on a ",[201,254,256],{"href":255},"what-is-an-ai-workstream","workstream",", with connectors, a roster, and a finish line.",[259,260,262],"h2",{"id":261},"what-a-standing-order-loop-is","What a standing-order loop is",[190,264,265],{},"Four parts, always visible:",[190,267,268,271,272,225],{},[194,269,270],{},"1. Trigger."," What starts a run. A schedule (every Monday 06:00), a file landing in a folder, a threshold crossed, or a deliberate manual start from a form. See ",[201,273,275],{"href":274},"six-things-that-start-a-loop","six things that start a loop",[190,277,278,281],{},[194,279,280],{},"2. Compiled recipe."," The fixed sequence for this job on this workstream: which connectors to read, which rules to apply, what to produce, whom to notify. Not a system prompt. Not “use your judgement.” The same recipe every time until you version it.",[190,283,284,287],{},[194,285,286],{},"3. Run page."," One URL per execution. Inputs observed, steps taken, outputs attached, skips listed with reasons, actions proposed or completed. This is what audit walks — not a transcript of vibes.",[190,289,290,293,294,298],{},[194,291,292],{},"4. Team notified."," The roster on the workstream gets the outcome. Success, partial success with skips, or hard stop. ",[201,295,297],{"href":296},"what-is-collaborative-ai","Collaborative AI"," means the right people see the same run page, not a forwarded screenshot.",[190,300,301,302,305,306,310],{},"A standing-order loop is ",[194,303,304],{},"not"," an agent you chat with. On the normal path it does not invoke a model. See ",[201,307,309],{"href":308},"a-loop-is-not-an-agent","a loop is not an agent",". When the path is unknown, the loop escalates — to a person on the roster, or optionally to an agentic workflow you have explicitly attached for that exception class.",[312,313,317],"pre",{"className":314,"code":315,"language":316,"meta":171,"style":171},"language-mermaid shiki shiki-themes github-light github-dark","flowchart LR\n  triggerFires[\"Trigger fires\"] --> admitRun[\"Standing order admits run\"]\n  admitRun --> compiledRecipe[\"Compiled recipe\"]\n  compiledRecipe --> outputsSkips[\"Outputs and skips\"]\n  compiledRecipe --> signedActions[\"Actions if signed\"]\n  compiledRecipe --> escalateUnknown[\"Escalate if unknown\"]\n  outputsSkips --> teamNotified[\"Team notified\"]\n  signedActions --> teamNotified\n","mermaid",[318,319,320,328,333,339,345,351,357,363],"code",{"__ignoreMap":171},[321,322,325],"span",{"class":323,"line":324},"line",1,[321,326,327],{},"flowchart LR\n",[321,329,330],{"class":323,"line":172},[321,331,332],{},"  triggerFires[\"Trigger fires\"] --> admitRun[\"Standing order admits run\"]\n",[321,334,336],{"class":323,"line":335},3,[321,337,338],{},"  admitRun --> compiledRecipe[\"Compiled recipe\"]\n",[321,340,342],{"class":323,"line":341},4,[321,343,344],{},"  compiledRecipe --> outputsSkips[\"Outputs and skips\"]\n",[321,346,348],{"class":323,"line":347},5,[321,349,350],{},"  compiledRecipe --> signedActions[\"Actions if signed\"]\n",[321,352,354],{"class":323,"line":353},6,[321,355,356],{},"  compiledRecipe --> escalateUnknown[\"Escalate if unknown\"]\n",[321,358,360],{"class":323,"line":359},7,[321,361,362],{},"  outputsSkips --> teamNotified[\"Team notified\"]\n",[321,364,366],{"class":323,"line":365},8,[321,367,368],{},"  signedActions --> teamNotified\n",[190,370,371,376,377,379],{},[201,372,375],{"href":373,"rel":374},"https://docs.langchain.com/oss/python/langchain/agents",[205],"LangChain"," defines Agent = Model + Harness. A standing order is intentionally ",[194,378,304],{}," that object on the happy path. It is closer to a scheduled pipeline with operator UX: a form to configure, a run page to inspect, a roster to notify.",[190,381,382,383,387,388,391],{},"Compare ",[201,384,386],{"href":385},"loop-vs-workflow-vs-agent","loop vs workflow vs agent",": workflow is the abstract sequence; a standing-order loop is the ",[194,389,390],{},"deployed"," sequence on a named job with connectors and roster; an agent is the reasoning actor for unknown branches.",[259,393,395],{"id":394},"words-youll-hear","Words you’ll hear",[212,397,398,404,410,416,422,428,438,444],{},[215,399,400,403],{},[194,401,402],{},"Standing order."," The job waits. It does not need to be re-briefed.",[215,405,406,409],{},[194,407,408],{},"Trigger."," Schedule, arrival, threshold, or manual start. Deduplicate so unchanged inputs do not page finance.",[215,411,412,415],{},[194,413,414],{},"Recipe version."," The compiled steps as of this run. If only a prompt versions, you do not have a recipe.",[215,417,418,421],{},[194,419,420],{},"Skip."," Recorded halt. Missing file, ambiguous row, stale schema.",[215,423,424,427],{},[194,425,426],{},"Output."," Artefact on the run page. Read-only connectors suffice.",[215,429,430,433,434,225],{},[194,431,432],{},"Action."," Write to a live system. Requires ",[201,435,437],{"href":436},"what-is-write-back-governance","write-back governance",[215,439,440,443],{},[194,441,442],{},"Roster roles."," Owner, signer, subscriber, exception worker — not “whoever is online.”",[215,445,446,449],{},[194,447,448],{},"Quiet success."," Ran, nothing to write, record still exists. Month-end with zero exceptions is success, not a missing email.",[190,451,452],{},"If a vendor cannot show these nouns as objects — not as slides — you are looking at a copilot with a cron job.",[259,454,456],{"id":455},"outputs-vs-actions","Outputs vs actions",[190,458,459,462],{},[194,460,461],{},"Outputs"," are artefacts: CSV, table, PDF draft, exception list, email body for review. They land on the run page and in notifications. Read-only connectors suffice.",[190,464,465,468,469,471],{},[194,466,467],{},"Actions"," are writes to live systems: CRM stage change, ticket update, approved journal. They follow the same rules as any other write — quoted payload, named signer, ",[201,470,437],{"href":436},". A loop does not silently become a write tool because the schedule fired.",[190,473,474],{},"Good defaults:",[212,476,477,480,483],{},[215,478,479],{},"Month one: outputs only. Prove the recipe matches manual work.",[215,481,482],{},"Month two: one action class with a named signer and a stored rejection test.",[215,484,485],{},"Never: bulk writes before anyone has rejected a payload on this workstream.",[190,487,488,492,493,497],{},[201,489,491],{"href":490},"what-is-harness-engineering","Harness engineering"," covers sensors around model steps. Standing-order loops inherit platform gates for actions without turning the whole job into an agent harness. ",[201,494,496],{"href":495},"loop-engineering-vs-harness-engineering","Loop engineering vs harness engineering"," is the split.",[190,499,500,505],{},[201,501,504],{"href":502,"rel":503},"https://www.anthropic.com/engineering/building-effective-agents",[205],"Anthropic’s guidance on building effective agents"," advises simple pipelines where a fixed sequence will do. Outputs-first is that advice in operations clothing: prove the list before you post the journal.",[259,507,509],{"id":508},"wizard-not-chat-ritual","Wizard, not chat ritual",[190,511,512,513,516],{},"Operators configure a standing order from a ",[194,514,515],{},"form",": name the job, pick the trigger, attach sources, define outputs, choose who gets notified. Starting a run is an explicit start or waiting for the schedule — not typing “please do the usual” into Slack.",[190,518,519],{},"Why this matters:",[212,521,522,528,534],{},[215,523,524,527],{},[194,525,526],{},"Chat rituals depend on memory."," The usual drifts. New hires cannot start the job.",[215,529,530,533],{},[194,531,532],{},"Forms compile intent."," Fields become recipe parameters. Parameters version.",[215,535,536,539],{},[194,537,538],{},"Audit needs objects."," A standing order with version 4 is evidence. A thread is not.",[190,541,542,545],{},[201,543,206],{"href":203,"rel":544},[205]," reports broad use and narrow redesign. Replacing a chat ritual with a form on a scoped workstream is redesign you can measure: time to first output, skip rate, diff versus manual baseline.",[190,547,548],{},"Discovery still happens in conversation. The first time you figure out the filters, chat is fine. The tenth time, chat is a tax. Compile after the second successful manual run, not after the twentieth apology.",[259,550,552],{"id":551},"where-a-standing-order-loop-lives","Where a standing-order loop lives",[190,554,555,556,558,559,225],{},"On a ",[194,557,256],{}," — the shared workspace for one outcome: brief, connectors, people, budget, finish line. See ",[201,560,561],{"href":255},"what is an AI workstream",[190,563,564],{},"The loop inherits:",[212,566,567,573,579,585],{},[215,568,569,572],{},[194,570,571],{},"Least-privilege connectors"," scoped to this job",[215,574,575,578],{},[194,576,577],{},"Roster"," who may view, sign, or receive skips",[215,580,581,584],{},[194,582,583],{},"Budget"," if a later step adds a model for exceptions",[215,586,587,590],{},[194,588,589],{},"Wiki sections"," the recipe may load as feed-forward context",[190,592,593],{},"Standing orders stack on the same workstream. “Weekly exceptions” and “month-end accrual list” can coexist with separate triggers and recipes. They share connectors and governance without sharing a Slack channel.",[190,595,596,600,601,604],{},[201,597,599],{"href":598},"four-pillars-of-an-enterprise-ai-platform","Four pillars of an enterprise AI platform"," — workstream, governance, graph, teams — describe the platform a loop plugs into. The loop is not a fourth pillar; it is how unattended work runs ",[194,602,603],{},"inside"," the workstream.",[190,606,607,612],{},[201,608,611],{"href":609,"rel":610},"https://www.thoughtworks.com/insights/articles/operating-system-enterprise-ai",[205],"Thoughtworks on the enterprise AI operating system"," stresses organisational ownership. A standing order without an owner on the workstream is automation theatre: the recipe will rot, skip rates will climb, and people will return to the thread they trust.",[259,614,616],{"id":615},"why-you-should-care","Why you should care",[190,618,619,622],{},[194,620,621],{},"Reliability."," The job runs when the trigger fires, even if the usual operator is on leave.",[190,624,625,628,629,634],{},[194,626,627],{},"Evidence."," Auditors and partners open the run page. ",[201,630,633],{"href":631,"rel":632},"https://www.nist.gov/itl/ai-risk-management-framework",[205],"NIST AI RMF"," Measure functions assume you can observe what ran. Skips are observations, not embarrassments.",[190,636,637,640,641,646],{},[194,638,639],{},"Cost."," No tokens on the happy path. ",[201,642,645],{"href":643,"rel":644},"https://aiindex.stanford.edu/",[205],"Stanford HAI’s AI Index"," tracks rising capability and cost. Compiled loops avoid paying for reinterpretation every Monday.",[190,648,649,652],{},[194,650,651],{},"Safety."," Unknown paths escalate. A standing order that guesses is an unharnessed agent wearing a schedule.",[190,654,655,658,659,664,665,670,671,676],{},[194,656,657],{},"Regulatory fit."," ",[201,660,663],{"href":661,"rel":662},"https://www.iso.org/standard/42001",[205],"ISO/IEC 42001"," wants named actors and operational controls. A loop on a roster satisfies the instinct better than a shared login. ",[201,666,669],{"href":667,"rel":668},"https://gdpr.eu/",[205],"GDPR"," purpose limitation maps to workstream scope. The ",[201,672,675],{"href":673,"rel":674},"https://artificialintelligenceact.eu/",[205],"EU AI Act"," documentation expectations map to run pages and versioned recipes.",[190,678,679],{},"It affects you if the same artefact is due every week, if two people already follow a checklist, and if last quarter’s audit asked “what ran on the 12th” and the answer was a search through chat.",[259,681,683],{"id":682},"a-worked-example-month-end-accrual-list","A worked example: month-end accrual list",[190,685,686],{},"Finance runs the same accrual exception pass every close: read ERP open items, read the controller’s mapping tab, flag mismatches, send the controller a list — no posting.",[190,688,689],{},[194,690,691],{},"Configure once.",[212,693,694,697,700,703,706],{},[215,695,696],{},"Workstream: “Month-end accrual exceptions — Entity UK”",[215,698,699],{},"Trigger: manual start during the close window, plus optional schedule on close day 3",[215,701,702],{},"Recipe: read ERP (read-only), read mapping sheet, apply rules from wiki section “UK accrual mapping v3”",[215,704,705],{},"Output: exception table on the run page, plus notification to the controller roster role",[215,707,708],{},"Skips: missing mapping row → queue to FP&A; ERP timeout → hard stop with reason",[190,710,711],{},[194,712,713],{},"Each close (unattended).",[212,715,716,719,722,729],{},[215,717,718],{},"Controller starts the run or the schedule fires",[215,720,721],{},"Run page shows 142 rows scanned, 7 exceptions, 2 skips (ambiguous business unit on rows 88 and 91)",[215,723,724,725,728],{},"Controller works skips in ",[201,726,727],{"href":296},"collaborative AI"," on the same workstream — not in a side message",[215,730,731],{},"No model on the happy path; no journal posts without a signed action later",[190,733,734,735,738,739,742,743,747],{},"If row 88 needs judgement beyond rules, assign to a human. Optionally attach an ",[201,736,737],{"href":244},"agentic workflow"," for ",[194,740,741],{},"that queue only"," after the compiled path proves stable. ",[201,744,746],{"href":745},"agents-should-be-disposable","Agents should be disposable","; the standing order remains.",[190,749,750,755],{},[201,751,754],{"href":752,"rel":753},"https://www.govinfo.gov/content/pkg/PLAW-107publ204/html/PLAW-107publ204.htm",[205],"Sarbanes-Oxley"," does not mention loops. It asks whether an independent person can reconstruct how a number became the number. A run page with inputs, rules version, and skips is reconstruction-friendly.",[190,757,758,759,762],{},"Walk a second close. Recipe version is still v3. The mapping tab gained a new entity code. The loop skips those rows instead of inventing a mapping. FP&A updates the wiki, the owner versions the recipe to v4, and close day 3 runs clean. That update is ",[201,760,761],{"href":250},"loop engineering"," — not a prompt tweak in a private workspace.",[259,764,766],{"id":765},"standing-orders-vs-things-you-already-have","Standing orders vs things you already have",[190,768,769,772],{},[194,770,771],{},"Cron plus script."," Fine for engineers. Standing orders add roster, notifications, skip UX, and workstream scope for operators who will never open a repository.",[190,774,775,778,779,783],{},[194,776,777],{},"RPA."," Screen replay breaks when the interface changes. See ",[201,780,782],{"href":781},"loop-vs-rpa","loop vs RPA",". Prefer API reads and explicit skips.",[190,785,786,789],{},[194,787,788],{},"Personal automation wiring."," Good for individual productivity. Weak on named signers, skip queues, and audit export for regulated teams.",[190,791,792,795,796,798],{},[194,793,794],{},"Agent in a channel."," Re-describes the job every time. See ",[201,797,309],{"href":308},". Cost and drift scale with repetition.",[190,800,801,804,805,225],{},[194,802,803],{},"Eval harness only."," Grades agent runs. Does not replace a standing order that starts them. See ",[201,806,224],{"href":223},[190,808,809,812],{},[194,810,811],{},"Shared spreadsheet plus calendar invite."," Common, and honest. It is also how the invite survives and the rules do not. Compile the rules; keep the calendar as a trigger if you must.",[259,814,816],{"id":815},"human-roles-on-the-loop","Human roles on the loop",[212,818,819,825,835,841],{},[215,820,821,824],{},[194,822,823],{},"Owner."," Maintains recipe and wiki references. Reviews skip trends monthly.",[215,826,827,830,831,225],{},[194,828,829],{},"Signer."," Approves action classes. Same as ",[201,832,834],{"href":833},"governance-as-a-multiplayer-primitive","governance as a multiplayer primitive",[215,836,837,840],{},[194,838,839],{},"Subscriber."," Gets notified. May not sign.",[215,842,843,846,847,851],{},[194,844,845],{},"Exception worker."," Works the skip queue. May use ",[201,848,850],{"href":849},"what-is-human-in-the-loop-ai","human-in-the-loop"," for judgement calls.",[190,853,854,858,859,862],{},[201,855,857],{"href":856},"multiplayer-ai-and-multi-agent-ai","Multiplayer AI"," is several people in the room at once. A standing order is several people ",[194,860,861],{},"aligned on the same run page"," asynchronously — often more realistic for finance and operations.",[190,864,865,866,871],{},"Research on hybrid human–AI teams (",[201,867,870],{"href":868,"rel":869},"https://www.nature.com/articles/s41562-022-01358-0",[205],"Yang et al., Nature Human Behaviour, 2022",") shows clear role separation improves outcomes. Loops encode machine steps versus human steps explicitly. If everyone is “a user,” you have not assigned override.",[259,873,875],{"id":874},"what-goes-wrong","What goes wrong",[190,877,878,881],{},[194,879,880],{},"Scheduled prompt."," “Run this chat task every hour.” That is a scheduled agent call. No compiled recipe version. No skip semantics. No diff against last week’s baseline.",[190,883,884,887],{},[194,885,886],{},"Silent defaults."," Missing values filled, categories invented, emails sent without a skip. Overnight work that “helped” is how wrong rows become official.",[190,889,890,893],{},[194,891,892],{},"Outputs and actions collapsed."," The schedule posts because posting was easier to demo than a table. Prove the artefact first.",[190,895,896,899],{},[194,897,898],{},"Ownerless workstream."," Connectors exist; nobody reviews skips. The recipe ages in place.",[190,901,902,905,906,225],{},[194,903,904],{},"Eval as the loop."," A grading harness without a standing order still starts from Slack. See ",[201,907,224],{"href":223},[190,909,910,913,914,917],{},[194,911,912],{},"God workspace."," One workspace for every job destroys purpose limitation. Scope the workstream to the finish line. ",[201,915,669],{"href":667,"rel":916},[205]," cares about purpose; so should you.",[190,919,920,923,924,926],{},[194,921,922],{},"Exception class as hidden agent."," “If skip, ask the model” injected into the compiled path without a harness. Attach an ",[201,925,737],{"href":244}," explicitly, or keep the human queue.",[190,928,929],{},"Failure looks like a forwarded screenshot and a disagreement about which filters ran. Success looks like a run page two people can open without asking who started it.",[259,931,933],{"id":932},"how-to-start-this-quarter","How to start this quarter",[190,935,936],{},"One standing order. One workstream. Outputs only for four weeks.",[938,939,940,946,954,960,966,972,978],"ol",{},[215,941,942,945],{},[194,943,944],{},"Pick a job"," with a written checklist already used by two people.",[215,947,948,951,952,225],{},[194,949,950],{},"Open a workstream"," with read-only connectors and the real roster. See ",[201,953,561],{"href":255},[215,955,956,959],{},[194,957,958],{},"Configure the standing order"," from a form: trigger, sources, output format, notify list.",[215,961,962,965],{},[194,963,964],{},"Run twice manually"," alongside the legacy process. Diff outputs.",[215,967,968,971],{},[194,969,970],{},"Add skip rules"," for every difference that required a side message last month.",[215,973,974,977],{},[194,975,976],{},"Enable the schedule"," only after skip rate is stable.",[215,979,980,982,983,987],{},[194,981,94],{}," with ",[201,984,986],{"href":985},"how-to-evaluate-loop-engineering","how to evaluate loop engineering"," before adding actions.",[190,989,990,994],{},[201,991,993],{"href":992},"how-to-evaluate-collaborative-ai","How to evaluate collaborative AI"," applies when the loop’s output becomes a shared artefact people sign — forecast pack, pipeline commit, accrual list.",[190,996,997],{},"If step 4 fails, you have not compiled the path yet. Write the steps again. Do not add a model to paper over a fuzzy recipe.",[259,999,1001],{"id":1000},"how-this-shows-up-in-nimbus","How this shows up in Nimbus",[190,1003,1004,1005,1008,1009,1011],{},"Nimbus names this object a ",[194,1006,1007],{},"Loop",". A Loop is a standing order on a ",[201,1010,256],{"href":255},": trigger, compiled recipe, run page, roster notified. Operators configure it from a wizard — not by re-briefing a chat thread — and each execution is inspectable.",[190,1013,1014,1015,1018,1019,1021,1022,1025],{},"The Loop inherits that workstream’s connectors, wiki context, budget, and ",[201,1016,1017],{"href":436},"write-back"," gates. Model steps are not implied. If you later attach an ",[201,1020,737],{"href":244}," to an exception class, ",[201,1023,1024],{"href":490},"harness engineering"," applies to that branch only.",[190,1027,1028,1029,1032,1033,1035,1036,1038,1039,1042,1043,225],{},"See ",[201,1030,1031],{"href":250},"what is loop engineering",", ",[201,1034,275],{"href":274},", and ",[201,1037,309],{"href":308},". Product surfaces: ",[201,1040,1041],{"href":32},"workstreams"," and ",[201,1044,1045],{"href":40},"governance",[259,1047,1049],{"id":1048},"related-reading","Related reading",[212,1051,1052,1057,1062,1067,1072],{},[215,1053,1054],{},[201,1055,1056],{"href":250},"What is loop engineering",[215,1058,1059],{},[201,1060,1061],{"href":274},"Six things that start a loop",[215,1063,1064],{},[201,1065,1066],{"href":385},"Loop vs workflow vs agent",[215,1068,1069],{},[201,1070,1071],{"href":490},"What is harness engineering",[215,1073,1074],{},[201,1075,1076],{"href":436},"What is write-back governance",[259,1078,1080],{"id":1079},"sources","Sources",[212,1082,1083,1089,1095,1101,1106,1111,1117,1123,1128,1134,1139],{},[215,1084,1085],{},[201,1086,1088],{"href":203,"rel":1087},[205],"McKinsey, The state of AI in 2025",[215,1090,1091],{},[201,1092,1094],{"href":373,"rel":1093},[205],"LangChain, Agents",[215,1096,1097],{},[201,1098,1100],{"href":609,"rel":1099},[205],"Thoughtworks, The operating system for enterprise AI",[215,1102,1103],{},[201,1104,633],{"href":631,"rel":1105},[205],[215,1107,1108],{},[201,1109,663],{"href":661,"rel":1110},[205],[215,1112,1113],{},[201,1114,1116],{"href":643,"rel":1115},[205],"Stanford HAI, AI Index",[215,1118,1119],{},[201,1120,1122],{"href":502,"rel":1121},[205],"Anthropic, Building effective agents",[215,1124,1125],{},[201,1126,870],{"href":868,"rel":1127},[205],[215,1129,1130],{},[201,1131,1133],{"href":752,"rel":1132},[205],"Sarbanes-Oxley Act of 2002",[215,1135,1136],{},[201,1137,675],{"href":673,"rel":1138},[205],[215,1140,1141],{},[201,1142,669],{"href":667,"rel":1143},[205],[1145,1146,1147],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":171,"searchDepth":172,"depth":172,"links":1149},[1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163],{"id":261,"depth":172,"text":262},{"id":394,"depth":172,"text":395},{"id":455,"depth":172,"text":456},{"id":508,"depth":172,"text":509},{"id":551,"depth":172,"text":552},{"id":615,"depth":172,"text":616},{"id":682,"depth":172,"text":683},{"id":765,"depth":172,"text":766},{"id":815,"depth":172,"text":816},{"id":874,"depth":172,"text":875},{"id":932,"depth":172,"text":933},{"id":1000,"depth":172,"text":1001},{"id":1048,"depth":172,"text":1049},{"id":1079,"depth":172,"text":1080},"2026-09-12","Nimbus Loop","A Nimbus Loop is a standing order on a workstream — trigger, compiled recipe, and run page — that produces outputs or signed actions and notifies the team without a chat ritual.",{"eyebrow":1168,"title":1169},"Common questions","Standing orders, not chat",[1171,1174,1177,1180],{"question":1172,"answer":1173},"Is a Nimbus Loop the same as an eval loop?","No. An eval loop grades a run after it happens — tests, schemas, read-backs, signer checks. A standing-order loop is the job that admits the run when a trigger fires and then executes a compiled recipe. You need the sensor when you write to a live system or when a model step must be independently verified. You need the standing order when the same job should exist before anyone types. Refuse to treat a passing score as proof that Monday's job started, or a schedule as proof that the output was correct. See eval loops for enterprise agent harnesses.",{"question":1175,"answer":1176},"Do I start a Nimbus Loop from chat?","No. You start from a form with known fields — schedule, sources, outputs, roster — on a workstream. Chat is the right surface for novel work; a standing order is for work you have already compiled. If the only way to start the job is to re-describe it in natural language, you do not have a loop yet. Use chat to discover the path once. Then write the path as steps, attach a trigger, and stop asking the model to remember. Refuse a product that treats an open thread as the compiler for recurring operations.",{"question":1178,"answer":1179},"Can a Nimbus Loop write to live systems?","It can, when the recipe includes an action class and a named signer on the workstream. The default posture is outputs first: a table, a list, a draft that humans can diff against last month. Writes follow the same governance as any other proposed change — quoted payload, named identity, fail-closed if nobody signed. Use actions only after the compiled path matches the manual baseline. Refuse bulk writes in week one, and refuse a schedule that becomes a write tool merely because the clock fired. See what is write-back governance.",{"question":1181,"answer":1182},"What happens when the path is unknown?","The standing order skips with a reason and notifies the roster. A person decides next — or, later, an explicit agentic workflow on that exception class only. Guessing is how operational debt compounds overnight: ambiguous input, silent default, wrong row updated, inbox quiet until finance opens the file. Use skips as first-class outcomes, not embarrassments. Review skip rates on a cadence; a rising count means the recipe or the world changed. Refuse silent best-effort fills inside the compiled path. See a loop is not an agent.","/blog/what-is-a-nimbus-loop",{"title":181,"description":1166},"loops","blog/what-is-a-nimbus-loop",[1185,1188,1041,1189,1190],"explainer","operations","enterprise-ai","V4e7fgv5U4MIlLDkIuX8TsC-hKbkI-PPfCfOXE4L91o",{"hero":1193,"id":1195,"title":1196,"archived":165,"authors":166,"badge":166,"body":1197,"date":166,"definedTerm":166,"department":166,"description":1201,"extension":174,"eyebrow":1202,"faqHeader":166,"faqs":166,"footerBand":1203,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":60,"relatedHeading":1209,"seo":1210,"series":166,"sitemap":131,"status":166,"stem":1211,"subhead":166,"tags":166,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":1212},{"filename":1194},"u2221455217_Flat_design_of_a_futuristic_minimalist_landscape__5d589295-cdea-4ea9-a262-be766881accf_1.png","content/blog/index.md","Exploring the future of intelligence.",{"type":168,"value":1198,"toc":1199},[],{"title":171,"searchDepth":172,"depth":172,"links":1200},[],"Deep dives into pre-cognitive intelligence, sentient enterprises, and the evolving landscape of AI-driven business transformation.","Latest Research",{"headline":1204,"description":1205,"primaryLabel":1206,"primaryTo":1207,"secondaryLabel":1208,"secondaryTo":12},"Stay at the frontier.","Subscribe for product updates and new insights.","Subscribe","/newsletter","Explore the platform","More research",{"title":1196,"description":1201},"blog/index","BFSWGYO9bcTlaulivKYWyg08_DJHsdGg3OC6g_CG1Hw",[1214,2019],{"id":1215,"title":1216,"archived":165,"authors":1217,"badge":1219,"body":1220,"date":1164,"definedTerm":761,"department":166,"description":2000,"extension":174,"eyebrow":166,"faqHeader":2001,"faqs":2003,"footerBand":166,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":2013,"relatedHeading":166,"seo":2014,"series":1188,"sitemap":131,"status":166,"stem":2015,"subhead":166,"tags":2016,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":2018},"content/blog/what-is-loop-engineering.md","What is Loop Engineering",[1218],{"name":184,"to":136},{"label":186},{"type":168,"value":1221,"toc":1986},[1222,1227,1233,1236,1261,1278,1281,1292,1298,1312,1328,1348,1387,1398,1400,1448,1451,1453,1456,1462,1468,1479,1482,1507,1513,1520,1526,1530,1541,1549,1557,1565,1574,1577,1581,1587,1593,1601,1607,1618,1624,1632,1635,1639,1642,1648,1653,1658,1668,1683,1689,1696,1699,1701,1707,1713,1719,1727,1736,1742,1750,1758,1761,1765,1768,1774,1784,1794,1797,1799,1806,1855,1861,1864,1866,1878,1886,1899,1901,1925,1927,1984],[190,1223,1224,1226],{},[194,1225,251],{}," is the discipline of compiling the known path for unattended work, detecting when reality diverges from that path, and recording every skip — so the same job can be replayed without a model guessing on the happy path.",[190,1228,1229,1232],{},[201,1230,206],{"href":203,"rel":1231},[205]," keeps finding the same pattern: adoption is widespread, and operational redesign is not. Most organisations use a model somewhere. Few have redesigned how recurring work runs when nobody is watching. Loop engineering is that redesign for the boring path — the job that already has a checklist, a spreadsheet, and a named owner, but still lives in chat and memory.",[190,1234,1235],{},"Three nouns get conflated in every vendor conversation. Separate them before you compile anything:",[212,1237,1238,1245,1254],{},[215,1239,1240,1242,1243,225],{},[194,1241,219],{}," — a sensor that grades a run after the fact. Did the write match the signed payload? Did the test pass? See ",[201,1244,224],{"href":223},[215,1246,1247,1249,1250,225],{},[194,1248,230],{}," — a job that already exists before a run starts. A trigger admits the run; the known steps execute; a run record shows outputs and skips. See ",[201,1251,1253],{"href":1252},"what-is-a-nimbus-loop","what is a standing-order loop",[215,1255,1256,1258,1259,225],{},[194,1257,240],{}," — an interactive path that still reasons step by step when the route is not fully known. See ",[201,1260,245],{"href":244},[190,1262,1263,1264,1267,1268,1270,1271,1274,1275,225],{},"Loop engineering is none of those objects. It is the craft of making the ",[194,1265,1266],{},"known"," path explicit, cheap, and auditable. ",[201,1269,491],{"href":490}," is the parallel craft for the ",[194,1272,1273],{},"model"," path: tools, hooks, and sensors around non-deterministic steps. You need both. They solve different failure modes. Compare ",[201,1276,1277],{"href":495},"loop engineering vs harness engineering",[259,1279,1280],{"id":250},"What is loop engineering?",[190,1282,1283,1284,1287,1288,1291],{},"Loop engineering treats recurring operational work as something you ",[194,1285,1286],{},"compile",", not something you ",[194,1289,1290],{},"re-describe"," every time.",[190,1293,1294,1297],{},[194,1295,1296],{},"Compile the known path."," Take the job that already has a finish line — nightly pipeline hygiene, weekly exception report, month-end accrual list — and turn it into a fixed sequence: read these sources, apply these rules, produce these outputs, notify these people. Those are the known steps. It should not depend on someone typing “please do the usual” into a chat box.",[190,1299,1300,1303,1304,1307,1308,1311],{},[194,1301,1302],{},"Detect change."," Reality moves. A new field appears in the CRM. A vendor changes an export format. A policy adds a threshold. Loop engineering includes sensors that notice divergence before the output lands in the wrong inbox. That is adjacent to an ",[201,1305,1306],{"href":223},"eval loop",", but the emphasis is earlier: catch drift in the ",[194,1309,1310],{},"inputs and rules",", not only grade the final artefact.",[190,1313,1314,1317,1318,1032,1321,1035,1324,1327],{},[194,1315,1316],{},"Record skips."," When the path cannot proceed — missing file, ambiguous row, policy exception — the loop must ",[194,1319,1320],{},"stop",[194,1322,1323],{},"say why",[194,1325,1326],{},"leave a record",". Skips are data. A skip count trending up is how you know the compiled path is stale. Silently “doing your best” overnight is not loop engineering. That is hope.",[190,1329,1330,1333,1334,1337,1338,1340,1341,1345,1346,225],{},[201,1331,375],{"href":373,"rel":1332},[205]," defines Agent = Model + Harness. Loop engineering lives ",[194,1335,1336],{},"outside"," that equation on the happy path: no model invocation when the path is known. When the path is unknown, you escalate — to a person, or to an ",[201,1339,737],{"href":244}," inside a proper ",[201,1342,1344],{"href":1343},"what-is-an-enterprise-agent-harness","enterprise agent harness",". See ",[201,1347,309],{"href":308},[312,1349,1351],{"className":314,"code":1350,"language":316,"meta":171,"style":171},"flowchart LR\n  compile[\"Write the known steps\"] --> wait[\"Wait for a trigger\"]\n  wait --> check{\"Does the world match?\"}\n  check -->|yes| run[\"Run the known steps\"]\n  check -->|no| skip[\"Skip and say why\"]\n  run --> record[\"Leave a run record\"]\n  skip --> record\n",[318,1352,1353,1357,1362,1367,1372,1377,1382],{"__ignoreMap":171},[321,1354,1355],{"class":323,"line":324},[321,1356,327],{},[321,1358,1359],{"class":323,"line":172},[321,1360,1361],{},"  compile[\"Write the known steps\"] --> wait[\"Wait for a trigger\"]\n",[321,1363,1364],{"class":323,"line":335},[321,1365,1366],{},"  wait --> check{\"Does the world match?\"}\n",[321,1368,1369],{"class":323,"line":341},[321,1370,1371],{},"  check -->|yes| run[\"Run the known steps\"]\n",[321,1373,1374],{"class":323,"line":347},[321,1375,1376],{},"  check -->|no| skip[\"Skip and say why\"]\n",[321,1378,1379],{"class":323,"line":353},[321,1380,1381],{},"  run --> record[\"Leave a run record\"]\n",[321,1383,1384],{"class":323,"line":359},[321,1385,1386],{},"  skip --> record\n",[190,1388,1389,1393,1394,1397],{},[201,1390,1392],{"href":609,"rel":1391},[205],"Thoughtworks’ operating system for enterprise AI"," splits harness layers from organisational ownership. Loop engineering is the operator layer for ",[194,1395,1396],{},"unattended"," work: who owns the known steps, who gets paged on skips, how exceptions re-enter the human queue. It is not layer 1 (pick a model). It is whether Tuesday’s job is the same object as Thursday’s.",[259,1399,395],{"id":394},[212,1401,1402,1408,1415,1420,1428,1434,1442],{},[215,1403,1404,1407],{},[194,1405,1406],{},"Known path."," The fixed steps for a job you already know how to do. Not a prompt. Not “figure it out.” A sequence you can replay.",[215,1409,1410,1412,1413,225],{},[194,1411,408],{}," What admits a run: schedule, file arrival, threshold, or a deliberate manual start. See ",[201,1414,275],{"href":274},[215,1416,1417,1419],{},[194,1418,420],{}," A deliberate halt when the path cannot proceed safely. Recorded, not hidden.",[215,1421,1422,1424,1425,1427],{},[194,1423,402],{}," A loop that waits for its trigger on a ",[201,1426,256],{"href":255},". The job exists before the run starts.",[215,1429,1430,1433],{},[194,1431,1432],{},"Run page."," One record per execution: inputs observed, steps taken, outputs attached, skips listed with reasons.",[215,1435,1436,1439,1440,225],{},[194,1437,1438],{},"Outputs vs actions."," Outputs are artefacts (report, list, draft). Actions are writes to live systems. Loop engineering defaults to outputs first; actions need ",[201,1441,437],{"href":436},[215,1443,1444,1447],{},[194,1445,1446],{},"Wizard, not chat ritual."," Operators start from a form with known fields, not an open-ended thread.",[190,1449,1450],{},"If a vendor uses “loop” for an eval sensor, a cron plus a prompt, or a multi-agent graph, ask which of the nouns above they actually mean. Vocabulary drift is how programmes buy the wrong control.",[259,1452,616],{"id":615},[190,1454,1455],{},"If recurring work still lives in direct messages and memory, you pay three taxes every quarter.",[190,1457,1458,1461],{},[194,1459,1460],{},"The reinterpretation tax."," Someone re-explains the job in Slack. Someone else runs a slightly different version. Audit asks what ran last month and the answer is a person’s name.",[190,1463,1464,1467],{},[194,1465,1466],{},"The overnight tax."," On-call gets paged. The only documentation is a clever prompt. The model guesses at ambiguous rows because nobody defined a skip.",[190,1469,1470,1473,1474,1478],{},[194,1471,1472],{},"The attribution tax."," Spend and outcomes cannot be tied to a named job. ",[201,1475,1477],{"href":203,"rel":1476},[205],"McKinsey"," shows usage without operational redesign; loop engineering is redesign for work that should not need a meeting to start.",[190,1480,1481],{},"It affects you if:",[212,1483,1484,1487,1490,1501],{},[215,1485,1486],{},"the same report runs every week but only one person knows the steps",[215,1488,1489],{},"exceptions are handled in side threads with no record",[215,1491,1492,1493,1496,1497,1500],{},"auditors ask for evidence of ",[194,1494,1495],{},"what"," ran, not ",[194,1498,1499],{},"what was said"," in chat",[215,1502,1503,1504,1506],{},"you want ",[201,1505,727],{"href":296}," on outcomes, not personal copilots on fragments",[190,1508,1509,1512],{},[201,1510,645],{"href":643,"rel":1511},[205]," tracks capability and deployment. Capability rises faster than operational maturity. Loop engineering is maturity for the path you already know.",[190,1514,1515,1519],{},[201,1516,1518],{"href":631,"rel":1517},[205],"NIST’s AI RMF"," Measure and Manage steps assume you can observe behaviour and change controls. A compiled loop with skip logs is observable. A chat thread is not.",[190,1521,1522,1525],{},[201,1523,663],{"href":661,"rel":1524},[205]," asks for documented operational controls and named actors. A standing order on a workstream with a roster beats a shared login to a consumer model.",[259,1527,1529],{"id":1528},"loop-engineering-vs-adjacent-crafts","Loop engineering vs adjacent crafts",[190,1531,1532,1535,1536,1042,1538,225],{},[194,1533,1534],{},"Harness engineering."," Runtime around the model: tools, hooks, eval sensors. Necessary when the step requires judgement or generation. See ",[201,1537,1277],{"href":495},[201,1539,1540],{"href":490},"what is harness engineering",[190,1542,1543,1546,1547,225],{},[194,1544,1545],{},"Eval loops."," Grade a run. Essential on write paths and agent steps. Not the same as admitting the run. See ",[201,1548,986],{"href":985},[190,1550,1551,1554,1555,225],{},[194,1552,1553],{},"Workflow automation (RPA)."," Brittle screen replay. Loop engineering prefers API reads, explicit rules, and recorded skips over pretending the interface never changed. See ",[201,1556,782],{"href":781},[190,1558,1559,1562,1563,225],{},[194,1560,1561],{},"Agentic workflow."," Reasoning path when the route is not fully known. Loop engineering handles the known segment; agentic workflow handles exploration. See ",[201,1564,386],{"href":385},[190,1566,1567,1570,1571,1573],{},[194,1568,1569],{},"Chat ops."," Fast for novel problems. Expensive and un-auditable for recurring ones. ",[201,1572,857],{"href":856}," in a shared room is for collaboration; a loop is for repetition.",[190,1575,1576],{},"The test is simple. If a new hire can follow numbered steps and produce the same artefact, compile it. If the next step depends on reading the case, harness it. If you cannot tell which you are doing, you will agent-wrap a checklist and call it innovation.",[259,1578,1580],{"id":1579},"how-to-do-it","How to do it",[190,1582,1583,1586],{},[194,1584,1585],{},"1. Name one recurring job with a finish line."," Not “AI for finance.” “Weekly pipeline exception list for EMEA” is a job.",[190,1588,1589,1592],{},[194,1590,1591],{},"2. Write the path as steps a new hire could follow."," If the path cannot be written, it is not ready to compile. It is still tribal knowledge.",[190,1594,1595,1598,1599,225],{},[194,1596,1597],{},"3. Separate outputs from actions."," Default to read-only connectors and artefact outputs. Promote to signed writes only with ",[201,1600,834],{"href":833},[190,1602,1603,1606],{},[194,1604,1605],{},"4. Define skips explicitly."," Missing source file → skip with reason. Ambiguous owner on row 47 → skip, assign to queue. Never “best effort fill.”",[190,1608,1609,1612,1613,1042,1615,225],{},[194,1610,1611],{},"5. Attach the loop to a workstream."," Brief, connectors, roster, budget. See ",[201,1614,561],{"href":255},[201,1616,1617],{"href":598},"four pillars of an enterprise AI platform",[190,1619,1620,1623],{},[194,1621,1622],{},"6. Review skip rates on a cadence."," Skips are product feedback. A rising skip count means the steps or the world changed.",[190,1625,1626,658,1629,1631],{},[194,1627,1628],{},"7. Keep agents off the happy path.",[201,1630,746],{"href":745}," for exploration. The compiled loop should survive model churn.",[190,1633,1634],{},"A useful intermediate artefact is a one-page write-up of the known path: trigger, sources, rules, outputs, skip classes, named owner, named exception queue. If you cannot fill that page, you are not compiling — you are hoping a prompt will remember.",[259,1636,1638],{"id":1637},"a-worked-example-weekly-pipeline-exceptions","A worked example: weekly pipeline exceptions",[190,1640,1641],{},"Revenue operations runs the same exception pass every Monday: pull CRM opportunities in stale stages, join the account executive’s sheet, flag conflicts, send finance a list. Today it lives in one person’s notebook and a Slack reminder.",[190,1643,1644,1647],{},[194,1645,1646],{},"Compile."," Step one: read CRM with agreed filters. Step two: read the sheet from the shared drive path. Step three: apply conflict rules documented in the wiki. Step four: produce a table artefact. Step five: notify finance and the regional lead on the workstream roster.",[190,1649,1650,1652],{},[194,1651,1302],{}," If the sheet tab name changes, skip — do not guess. If CRM adds a required field, the sensor fires before rows silently drop.",[190,1654,1655,1657],{},[194,1656,1316],{}," Row with two owners → skip row, add to human queue. Missing sheet → skip run, page on-call. Every skip appears on the run page.",[190,1659,1660,1661,1664,1665,1667],{},"No model on the happy path. If a row needs judgement (“is this deal actually committed?”), the loop ",[194,1662,1663],{},"escalates"," to a person on the roster — or to an ",[201,1666,737],{"href":244}," if you later choose to add one for that class only. The default remains: do not guess.",[190,1669,1670,1671,1673,1674,1042,1678,1682],{},"This is ",[201,1672,727],{"href":296}," for revenue operations without turning Monday into a chat ritual. Compare ",[201,1675,1677],{"href":1676},"loops-for-revenue-operations","loops for revenue operations",[201,1679,1681],{"href":1680},"collaborative-ai-for-finance-and-planning","collaborative AI for finance and planning"," when the artefact is a forecast pack.",[190,1684,1685,1688],{},[201,1686,504],{"href":502,"rel":1687},[205]," warns against agentic complexity where a fixed pipeline suffices. Loop engineering is the operational form of that advice: use the simplest architecture that completes the job.",[190,1690,1691,1692,1695],{},"Research on human–AI teams (",[201,1693,870],{"href":868,"rel":1694},[205],") shows performance gains when roles are clear and humans retain override. Loops encode that split: machine for the known path, human for the exception queue.",[190,1697,1698],{},"Walk the same Monday after compile. The trigger fires at 06:00. The loop reads 1,842 opportunities and 31 sheet rows. It emits 14 exceptions and 3 skips (two dual-owned rows, one missing close date). Finance opens the run page, not a forwarded screenshot. The dual-owned rows sit in a queue with a reason. Nobody re-typed “please do the usual.” That is the job, compiled.",[259,1700,875],{"id":874},[190,1702,1703,1706],{},[194,1704,1705],{},"Compiling a wish."," “AI for close” is not a known path. If you cannot name the sources and the finish line, you are still in discovery. Run the job manually twice and write what you actually did.",[190,1708,1709,1712],{},[194,1710,1711],{},"Best-effort fills."," A missing owner becomes “unassigned” or a guessed name. That is an agent decision without a harness. It violates the skip rule and teaches operators that silence means success.",[190,1714,1715,1718],{},[194,1716,1717],{},"Chat as the compiler."," A long system prompt is not a version of the known path. Prompts drift. New hires cannot start the job from a prompt they have never seen.",[190,1720,1721,1724,1725,225],{},[194,1722,1723],{},"Eval as admission."," A sensor that grades runs does not start them. You still need a standing order. See ",[201,1726,224],{"href":223},[190,1728,1729,1732,1733,225],{},[194,1730,1731],{},"Actions before outputs."," Writing to CRM in week one hides a bad path inside live records. Prove the table against the manual baseline first. Then quote a write. See ",[201,1734,1735],{"href":436},"what is write-back governance",[190,1737,1738,1741],{},[194,1739,1740],{},"Ownerless paths."," If nobody reviews skip trends, the compiled path rots. The world changes; the steps do not; skip rates climb; people go back to Slack.",[190,1743,1744,1747,1748,225],{},[194,1745,1746],{},"Agent-wrapping the checklist."," Every Monday a model re-reads instructions and re-derives spreadsheet logic. Cost scales with repetition. Drift scales with temperature. Audit sees a transcript, not which version of the steps ran. See ",[201,1749,309],{"href":308},[190,1751,1752,1755,1756,225],{},[194,1753,1754],{},"RPA theatre."," Replaying clicks looks like a compiled path until the interface changes. Prefer APIs and explicit skips. See ",[201,1757,782],{"href":781},[190,1759,1760],{},"Failure looks like a green check and a wrong list. Success looks like a skip with a reason and a human on the roster.",[259,1762,1764],{"id":1763},"governance-and-regulation-plain-english","Governance and regulation (plain English)",[190,1766,1767],{},"Loop engineering supports controls auditors already ask for, without requiring you to become a lawyer.",[190,1769,1770,1773],{},[201,1771,754],{"href":752,"rel":1772},[205]," cares about trails for financial reporting. A compiled loop that produces a signed exception list — with skips recorded — is easier to walk than “the model said it looked fine.”",[190,1775,1776,1777,1042,1780,1783],{},"The ",[201,1778,675],{"href":673,"rel":1779},[205],[201,1781,669],{"href":667,"rel":1782},[205]," stress purpose limitation and documentation. A standing order on a scoped workstream states purpose (this job), data (these connectors), and actors (this roster). A god workspace does not.",[190,1785,1786,1789,1790,1793],{},[201,1787,1788],{"href":849},"Human-in-the-loop"," remains mandatory for writes and for judgement calls. Loop engineering makes the ",[194,1791,1792],{},"automatic"," segment automatic; it does not remove named signers from actions.",[190,1795,1796],{},"Regulators rarely use the phrase “loop engineering.” They ask operational questions: who decided, what ran, can you replay it. A compiled path with a run page answers those questions for unattended segments. A chat log answers them poorly.",[259,1798,933],{"id":932},[190,1800,1801,1802,1805],{},"Pick ",[194,1803,1804],{},"one"," recurring job. Not three. One.",[938,1807,1808,1814,1822,1828,1834,1840,1846],{},[215,1809,1810,1813],{},[194,1811,1812],{},"Document the path"," as numbered steps. If step three is “ask the person who always knows,” stop — that step is a skip queue, not a step.",[215,1815,1816,1819,1820,225],{},[194,1817,1818],{},"Create a workstream"," with the brief, read-only connectors, and the roster who cares about the output. See ",[201,1821,561],{"href":255},[215,1823,1824,1827],{},[194,1825,1826],{},"Implement outputs only"," for the first four weeks. No CRM writes. No journals.",[215,1829,1830,1833],{},[194,1831,1832],{},"Run on schedule"," twice alongside the legacy process. Diff the artefacts, not the vibes.",[215,1835,1836,1839],{},[194,1837,1838],{},"Add one skip rule"," you wish you had last month. Missing file, ambiguous row, stale tab name.",[215,1841,1842,1845],{},[194,1843,1844],{},"Review skip count"," in the fifth week. Update the steps or the wiki — that is loop engineering, not prompt tuning.",[215,1847,1848,1851,1852,1854],{},[194,1849,1850],{},"Decide whether any exception class"," deserves an ",[201,1853,737],{"href":244},". Most will not, yet.",[190,1856,1857,1860],{},[201,1858,1859],{"href":985},"How to evaluate loop engineering"," is the buying sheet: can you compile, detect, skip, and replay without opening chat?",[190,1862,1863],{},"Score any product the way you score an operations tool: same job, same output, recorded skips, named humans on exceptions. If the demo starts in a chat box, you are scoring a copilot.",[259,1865,1001],{"id":1000},[190,1867,1868,1869,1871,1872,1874,1875,1877],{},"The platform names a compiled standing order a ",[194,1870,1007],{},". It lives on a ",[201,1873,256],{"href":255},": brief, connectors, roster, and ",[201,1876,1045],{"href":436},". Operators configure the trigger and the known steps from a wizard; each execution gets a run page with outputs and skips.",[190,1879,1880,1881,1883,1884,225],{},"Loop engineering is the practice around that object — compiling the path, defining skip classes, reviewing skip rates — not a button labelled engineering. Writes still follow ",[201,1882,437],{"href":436},". Model steps, if you attach any, sit under ",[201,1885,1024],{"href":490},[190,1887,1028,1888,1032,1891,1035,1893,1038,1895,1042,1897,225],{},[201,1889,1890],{"href":1252},"what is a Nimbus Loop",[201,1892,1277],{"href":495},[201,1894,309],{"href":308},[201,1896,1041],{"href":32},[201,1898,1045],{"href":40},[259,1900,1049],{"id":1048},[212,1902,1903,1907,1911,1916,1920],{},[215,1904,1905],{},[201,1906,181],{"href":1252},[215,1908,1909],{},[201,1910,496],{"href":495},[215,1912,1913],{},[201,1914,1915],{"href":308},"A loop is not an agent",[215,1917,1918],{},[201,1919,1071],{"href":490},[215,1921,1922],{},[201,1923,1924],{"href":255},"What is an AI workstream",[259,1926,1080],{"id":1079},[212,1928,1929,1934,1939,1944,1949,1954,1959,1964,1969,1974,1979],{},[215,1930,1931],{},[201,1932,1088],{"href":203,"rel":1933},[205],[215,1935,1936],{},[201,1937,1094],{"href":373,"rel":1938},[205],[215,1940,1941],{},[201,1942,1100],{"href":609,"rel":1943},[205],[215,1945,1946],{},[201,1947,633],{"href":631,"rel":1948},[205],[215,1950,1951],{},[201,1952,663],{"href":661,"rel":1953},[205],[215,1955,1956],{},[201,1957,1116],{"href":643,"rel":1958},[205],[215,1960,1961],{},[201,1962,1122],{"href":502,"rel":1963},[205],[215,1965,1966],{},[201,1967,870],{"href":868,"rel":1968},[205],[215,1970,1971],{},[201,1972,1133],{"href":752,"rel":1973},[205],[215,1975,1976],{},[201,1977,675],{"href":673,"rel":1978},[205],[215,1980,1981],{},[201,1982,669],{"href":667,"rel":1983},[205],[1145,1985,1147],{},{"title":171,"searchDepth":172,"depth":172,"links":1987},[1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999],{"id":250,"depth":172,"text":1280},{"id":394,"depth":172,"text":395},{"id":615,"depth":172,"text":616},{"id":1528,"depth":172,"text":1529},{"id":1579,"depth":172,"text":1580},{"id":1637,"depth":172,"text":1638},{"id":874,"depth":172,"text":875},{"id":1763,"depth":172,"text":1764},{"id":932,"depth":172,"text":933},{"id":1000,"depth":172,"text":1001},{"id":1048,"depth":172,"text":1049},{"id":1079,"depth":172,"text":1080},"Loop engineering is the discipline of compiling the known path for unattended work, detecting when reality diverges, and recording skips — not the runtime around a model, and not an eval sensor.",{"eyebrow":1168,"title":2002},"Loops, harnesses, and sensors",[2004,2007,2010],{"question":2005,"answer":2006},"Is loop engineering the same as harness engineering?","No. Harness engineering designs the runtime around a model — which tools it may call, which hooks refuse a bad action, and which sensors grade the claim after the fact. Loop engineering compiles the known path for work that should not need a model on the happy path, and records when that path cannot proceed. Use harness engineering when a step requires generation or judgement. Use loop engineering when the steps are already known and the risk is silent drift rather than a clever prompt. Start with the compiled path if a checklist already exists. Refuse to treat hooks and eval sensors as a substitute for numbered steps you can replay without tokens.",{"question":2008,"answer":2009},"Is an eval loop the same as a Nimbus Loop?","No. An eval loop is a sensor that grades a run after the fact — tests, schemas, read-backs, signer checks. A standing-order loop admits a run when a trigger fires and then executes the known steps. Confusing the two is how programmes buy a grading harness and still start Monday's job from Slack. Use an eval loop on writes and on any model step that needs independent verification. Use a standing order when the job should exist before anyone types. Refuse to treat a score as proof that the same job ran, or a trigger as proof that the output was correct. See eval loops for enterprise agent harnesses and what is a Nimbus Loop.",{"question":2011,"answer":2012},"Do we still need agents if we have loop engineering?","Yes, for the unknown path. Loop engineering makes the known path cheap and unattended: read, rule, output, notify. When a row is ambiguous or a source is missing, the compiled path should skip — not invent. Agents and agentic workflows exist for exploration and judgement when the route is not fully known. Attach them only to an explicit exception class, inside a harness with stops and sensors. Refuse to put a model on the happy path of a job that already has a checklist, and refuse to leave exceptions as silent best-effort fills overnight.","/blog/what-is-loop-engineering",{"title":1216,"description":2000},"blog/what-is-loop-engineering",[1188,2017,1185,1190,1189],"loop-engineering","qhxKV2_rt_cAEzSvf-oskijE-yUyn8jE5GsfZpSXdmM",{"id":2020,"title":2021,"archived":165,"authors":2022,"badge":2024,"body":2025,"date":3509,"definedTerm":3510,"department":166,"description":3511,"extension":174,"eyebrow":166,"faqHeader":3512,"faqs":3514,"footerBand":166,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":3524,"relatedHeading":166,"seo":3525,"series":1188,"sitemap":131,"status":166,"stem":3526,"subhead":166,"tags":3527,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":3530},"content/blog/what-is-agentic-mapreduce.md","What is Agentic MapReduce",[2023],{"name":184,"to":136},{"label":186},{"type":168,"value":2026,"toc":3495},[2027,2037,2060,2081,2085,2088,2104,2138,2141,2155,2169,2204,2281,2288,2290,2369,2377,2379,2382,2385,2391,2393,2410,2416,2431,2435,2438,2488,2494,2503,2601,2608,2614,2658,2661,2672,2676,2683,2688,2800,2806,2868,2875,2896,2903,2910,2914,2917,2927,2936,2946,2952,2956,3060,3071,3086,3088,3094,3100,3106,3120,3132,3138,3144,3150,3157,3161,3169,3175,3187,3192,3194,3229,3232,3251,3259,3269,3272,3332,3335,3358,3360,3399,3401,3493],[190,2028,2029,2032,2033,2036],{},[194,2030,2031],{},"Agentic MapReduce"," is a way to run ",[194,2034,2035],{},"wide search"," — many entities, many fields, one structured table — without asking a single agent to remember the whole job in a chat log. A manager writes an explicit plan, search agents fill batches in parallel, and a reduce step merges a schema-consistent result. Memory of what worked last time shapes the next plan.",[190,2038,2039,2040,1032,2045,2049,2050,2053,2054,2059],{},"That is the claim in ",[201,2041,2044],{"href":2042,"rel":2043},"https://arxiv.org/abs/2602.01331",[205],"Chen, Zhang, Chang, Guo, and Zhou (2026)",[2046,2047,2048],"em",{},"A-MapReduce: Executing Wide Search via Agentic MapReduce"," (arXiv:2602.01331). The paper names the framework ",[194,2051,2052],{},"A-MapReduce",". The pattern it isolates is older than the acronym: ",[201,2055,2058],{"href":2056,"rel":2057},"https://research.google/pubs/mapreduce-simplified-data-processing-on-large-clusters/",[205],"Dean and Ghemawat’s MapReduce"," (2008) already split work into map and reduce so a cluster could finish a job that did not fit in one process. Agentic MapReduce applies the same instinct to language-model agents. The map units are retrieval tasks. The reduce is a table that still matches the requested columns.",[190,2061,2062,2065,2066,2069,2070,2073,2074,2076,2077,2080],{},[201,2063,375],{"href":373,"rel":2064},[205]," writes ",[194,2067,2068],{},"Agent = Model + Harness",". Agentic MapReduce is a harness ",[2046,2071,2072],{},"shape"," for breadth: how the loop is scheduled, not which weights sit inside it. It is not ",[201,2075,761],{"href":250}," (compile the known path and skip). It is not deep research (one thread, more hops). It is the missing third: ",[194,2078,2079],{},"horizontal"," coverage when the interesting failure is a missing row, not a shallow answer.",[259,2082,2084],{"id":2083},"what-is-agentic-mapreduce","What is agentic MapReduce?",[190,2086,2087],{},"Start from the job, not the slogan.",[190,2089,192,2090,2093,2094,2097,2098,2103],{},[194,2091,2092],{},"wide-search"," query is a natural-language request plus a ",[194,2095,2096],{},"schema",": the columns the table must have. The system must (i) discover the relevant entities (rows) and (ii) ground each requested attribute (cells). ",[201,2099,2102],{"href":2100,"rel":2101},"https://arxiv.org/html/2602.01331v1",[205],"Chen et al. (2026)"," write this as a query plus schema, and an output table with N entities and K fields. Neither N nor the cell values are handed over in advance. That is why a fluent paragraph is the wrong artefact. The finish line is a table you can diff.",[190,2105,2106,2107,2110,2111,2116,2117,2121,2122,2127,2128,2133,2134,2137],{},"Most multi-agent systems still execute ",[194,2108,2109],{},"vertically",". They extend reasoning depth: more dialogue, more tool hops, more of the ",[201,2112,2115],{"href":2113,"rel":2114},"https://arxiv.org/abs/2210.03629",[205],"ReAct"," loop on a single thread. That shape won ",[201,2118,2120],{"href":502,"rel":2119},[205],"deep research"," benchmarks — GAIA, BrowseComp, long-horizon browsing — where the next fact depends on the last. ",[201,2123,2126],{"href":2124,"rel":2125},"https://arxiv.org/abs/2508.07999",[205],"WideSearch"," (Wong et al., 2025) and ",[201,2129,2132],{"href":2130,"rel":2131},"https://arxiv.org/abs/2510.20168",[205],"DeepWideSearch"," (Lan et al., 2025) isolate a different regime: ",[194,2135,2136],{},"breadth",". Hundreds of weakly coupled lookups. Coverage and aggregation beat another recursive hop.",[190,2139,2140],{},"The paper’s two execution failures are operational, not poetic:",[938,2142,2143,2149],{},[215,2144,2145,2148],{},[194,2146,2147],{},"Implicit target lists."," Plans live in dialogue history. Over a long horizon the agent drops rows, repeats retrievals, or fills the wrong entity. There is no persistent task object.",[215,2150,2151,2154],{},[194,2152,2153],{},"No reuse."," Every query re-plans from scratch. Similar jobs do not share batching or templating. You pay the same tax twice.",[190,2156,2157,2158,2161,2162,1035,2165,2168],{},"Agentic MapReduce answers both. It maps the query to an explicit ",[194,2159,2160],{},"MapReduce decision",", decomposes it into atomic retrieval tasks, runs those tasks in ",[194,2163,2164],{},"parallel batches",[194,2166,2167],{},"reduces"," partial tables into one schema-checked output. A repair round patches holes. Experiential memory stores traces and distilled hints so the next similar query samples a better decision.",[312,2170,2172],{"className":314,"code":2171,"language":316,"meta":171,"style":171},"flowchart TB\n  query[\"Wide-search query plus schema\"] --> vertical{\"Execution shape?\"}\n  vertical -->|deep| deep[\"One thread, more hops\"]\n  vertical -->|wide| wide[\"Many weakly coupled lookups\"]\n  deep --> prose[\"Narrative answer\"]\n  wide --> table[\"Schema-consistent table\"]\n",[318,2173,2174,2179,2184,2189,2194,2199],{"__ignoreMap":171},[321,2175,2176],{"class":323,"line":324},[321,2177,2178],{},"flowchart TB\n",[321,2180,2181],{"class":323,"line":172},[321,2182,2183],{},"  query[\"Wide-search query plus schema\"] --> vertical{\"Execution shape?\"}\n",[321,2185,2186],{"class":323,"line":335},[321,2187,2188],{},"  vertical -->|deep| deep[\"One thread, more hops\"]\n",[321,2190,2191],{"class":323,"line":341},[321,2192,2193],{},"  vertical -->|wide| wide[\"Many weakly coupled lookups\"]\n",[321,2195,2196],{"class":323,"line":347},[321,2197,2198],{},"  deep --> prose[\"Narrative answer\"]\n",[321,2200,2201],{"class":323,"line":353},[321,2202,2203],{},"  wide --> table[\"Schema-consistent table\"]\n",[2205,2206,2207,2222],"table",{},[2208,2209,2210],"thead",{},[2211,2212,2213,2216,2219],"tr",{},[2214,2215],"th",{},[2214,2217,2218],{},"Deep search",[2214,2220,2221],{},"Wide search",[2223,2224,2225,2237,2248,2259,2270],"tbody",{},[2211,2226,2227,2231,2234],{},[2228,2229,2230],"td",{},"Shape",[2228,2232,2233],{},"Vertical: recurse on one thread",[2228,2235,2236],{},"Horizontal: cover many targets",[2211,2238,2239,2242,2245],{},[2228,2240,2241],{},"Typical failure",[2228,2243,2244],{},"Shallow or wrong chain",[2228,2246,2247],{},"Missing rows, redundant calls, misaligned entities",[2211,2249,2250,2253,2256],{},[2228,2251,2252],{},"Artefact",[2228,2254,2255],{},"Narrative, citation trail",[2228,2257,2258],{},"Table with a schema",[2211,2260,2261,2264,2267],{},[2228,2262,2263],{},"Default runtime",[2228,2265,2266],{},"Sequential ReAct / deep-research agent",[2228,2268,2269],{},"Batched parallel map, then reduce",[2211,2271,2272,2275,2278],{},[2228,2273,2274],{},"When to use",[2228,2276,2277],{},"The next fact depends on the last",[2228,2279,2280],{},"The cells are weakly coupled",[190,2282,2283,2284,2287],{},"If your Monday job is “walk this deal and write the memo,” you are in deep search (or a ",[201,2285,2286],{"href":250},"compiled loop"," if the path is already known). If your Monday job is “fill this competitive matrix for 80 accounts,” you are in wide search. Agentic MapReduce is a guide for the second job.",[259,2289,395],{"id":394},[212,2291,2292,2302,2308,2314,2320,2326,2332,2338,2344,2350,2359],{},[215,2293,2294,2297,2298,225],{},[194,2295,2296],{},"Wide search."," Breadth-first retrieval over a large target set. Coverage and aggregation matter more than another reasoning hop. See ",[201,2299,2301],{"href":2124,"rel":2300},[205],"Wong et al., WideSearch",[215,2303,2304,2307],{},[194,2305,2306],{},"Deep search / deep research."," Vertical, long-horizon seeking. Strong on GAIA-class tasks. Weak as a scheduler for tables.",[215,2309,2310,2313],{},[194,2311,2312],{},"MapReduce decision."," In A-MapReduce, a triple: task matrix M, query template P, batching strategy B. The plan you can inspect, not a paragraph in a transcript.",[215,2315,2316,2319],{},[194,2317,2318],{},"Task matrix."," Rows are target entities; some attributes may already be known. This is the persistent coverage object dialogue history is not.",[215,2321,2322,2325],{},[194,2323,2324],{},"Template."," A fillable query string aligned to matrix columns. Each row becomes an atomic retrieval task.",[215,2327,2328,2331],{},[194,2329,2330],{},"Batching."," How atoms are grouped for parallel search agents: per-atom, attribute-wise, or adaptive. The manager picks; it is not a constant in config.",[215,2333,2334,2337],{},[194,2335,2336],{},"Manager agent."," Samples the decision, assigns batches, reduces partial tables, triggers repair.",[215,2339,2340,2343],{},[194,2341,2342],{},"Search agent."," Executes one batch. Independent of sibling batches.",[215,2345,2346,2349],{},[194,2347,2348],{},"Reduce."," Merge partial tables and validate against the schema. Incomplete → delta-patch / repair decision.",[215,2351,2352,2355,2356,225],{},[194,2353,2354],{},"Experiential memory."," Records of (query, decision, trace, utility) plus distilled hints. Not a vector store of PDFs. A memory of ",[2046,2357,2358],{},"how the job was scheduled",[215,2360,2361,2364,2365,2368],{},[194,2362,2363],{},"Utility."," Quality minus cost and delay. The paper updates memory on quality for reproducibility; it still ",[2046,2366,2367],{},"reports"," cost and runtime.",[190,2370,2371,2372,2376],{},"If a vendor says “we do MapReduce” and cannot show the matrix, the batch cut, and the schema check, they have a slide. ",[201,2373,2375],{"href":502,"rel":2374},[205],"Anthropic’s note on building effective agents"," is blunt about this class of problem: encode the job and decide what done means. Agentic MapReduce is one encoding for “done = this table, these columns, these rows covered.”",[259,2378,616],{"id":615},[190,2380,2381],{},"Operators already live in wide-search jobs and pretend they are chat.",[190,2383,2384],{},"Competitive intelligence wants a grid, not a essay. Procurement wants every vendor’s certification, region, and renewal date in one sheet. Revenue operations wants stale-stage opportunities joined to owners. Compliance wants a control mapped across entities. The artefact is tabular. The current method is a heroic analyst, a brittle RPA click-path, or a single agent that starts strong and forgets row 47.",[190,2386,2387,2390],{},[201,2388,206],{"href":203,"rel":2389},[205]," keeps showing usage without operational redesign. A sequential agent on a wide job is usage. A MapReduce-shaped run with a table you can replay is redesign.",[190,2392,1481],{},[212,2394,2395,2401,2404,2407],{},[215,2396,2397,2398,2400],{},"the finish line is a ",[194,2399,2096],{},", not a memo",[215,2402,2403],{},"missing a row is worse than a slightly clumsy sentence",[215,2405,2406],{},"wall-clock time matters because the grid is large",[215,2408,2409],{},"you already noticed that “just use a smarter model” still drops entities once the context window fills with year-by-year crawl",[190,2411,2412,2415],{},[201,2413,1518],{"href":631,"rel":2414},[205]," Measure and Manage steps assume you can observe behaviour. A task matrix and a reduce log are observable. A 40-step tool trace that never named the entity set is not.",[190,2417,2418,2419,2422,2423,2426,2427,2430],{},"Cost is not a side quest. Chen et al. report ",[194,2420,2421],{},"up to 47.5% lower API cost"," versus representative multi-agent baselines and ",[194,2424,2425],{},"45.8% lower running time",", with Item-F1 gains in the ",[194,2428,2429],{},"5–17%"," range depending on the comparison and backbone. Experiential memory is part of that: the non-evolving variant (A-MapReduce*) is slower and weaker. You are not buying poetry. You are buying coverage per dollar and a plan that improves when the same *shape* of query returns.",[259,2432,2434],{"id":2433},"how-it-works","How it works",[190,2436,2437],{},"Chen et al. treat the multi-agent system as sampling a high-level decision from a query-conditioned distribution. For A-MapReduce that decision is explicit:",[2205,2439,2440,2453],{},[2208,2441,2442],{},[2211,2443,2444,2447,2450],{},[2214,2445,2446],{},"Part",[2214,2448,2449],{},"Name",[2214,2451,2452],{},"What it controls",[2223,2454,2455,2466,2477],{},[2211,2456,2457,2460,2463],{},[2228,2458,2459],{},"M",[2228,2461,2462],{},"Task matrix",[2228,2464,2465],{},"Which entities (rows) and known attributes",[2211,2467,2468,2471,2474],{},[2228,2469,2470],{},"P",[2228,2472,2473],{},"Template",[2228,2475,2476],{},"How each row becomes a retrieval task",[2211,2478,2479,2482,2485],{},[2228,2480,2481],{},"B",[2228,2483,2484],{},"Batching",[2228,2486,2487],{},"How tasks are grouped for parallel search agents",[190,2489,2490,2493],{},[194,2491,2492],{},"Map."," A short sequential pass discovers an implicit entity set and observations. The manager then samples the triple (M, P, B). Filling the template with each matrix row yields atomic tasks. Batching partitions those tasks. Each batch goes to an independent search agent.",[190,2495,2496,2498,2499,2502],{},[194,2497,2348],{}," Partial tables are unioned. The manager checks the schema. If completeness fails, it resamples a ",[194,2500,2501],{},"repair"," decision and merges a delta patch — Algorithm 1 in the paper, not a hope that the next token will remember.",[312,2504,2506],{"className":314,"code":2505,"language":316,"meta":171,"style":171},"flowchart LR\n  q[\"Query plus schema\"] --> seq[\"Lightweight sequential discovery\"]\n  seq --> mem[\"Retrieve experiential prior\"]\n  mem --> theta[\"Sample MapReduce decision\"]\n  theta --> matrix[\"Task matrix plus template\"]\n  matrix --> batches[\"Partition into batches\"]\n  batches --> a1[\"Search agent 1\"]\n  batches --> a2[\"Search agent 2\"]\n  batches --> a3[\"Search agent k\"]\n  a1 --> reduce[\"Reduce and schema check\"]\n  a2 --> reduce\n  a3 --> reduce\n  reduce --> ok{\"Complete?\"}\n  ok -->|yes| table[\"Unified table\"]\n  ok -->|no| repair[\"Repair round\"]\n  repair --> reduce\n  table --> update[\"Write record and hints\"]\n",[318,2507,2508,2512,2517,2522,2527,2532,2537,2542,2547,2553,2559,2565,2571,2577,2583,2589,2595],{"__ignoreMap":171},[321,2509,2510],{"class":323,"line":324},[321,2511,327],{},[321,2513,2514],{"class":323,"line":172},[321,2515,2516],{},"  q[\"Query plus schema\"] --> seq[\"Lightweight sequential discovery\"]\n",[321,2518,2519],{"class":323,"line":335},[321,2520,2521],{},"  seq --> mem[\"Retrieve experiential prior\"]\n",[321,2523,2524],{"class":323,"line":341},[321,2525,2526],{},"  mem --> theta[\"Sample MapReduce decision\"]\n",[321,2528,2529],{"class":323,"line":347},[321,2530,2531],{},"  theta --> matrix[\"Task matrix plus template\"]\n",[321,2533,2534],{"class":323,"line":353},[321,2535,2536],{},"  matrix --> batches[\"Partition into batches\"]\n",[321,2538,2539],{"class":323,"line":359},[321,2540,2541],{},"  batches --> a1[\"Search agent 1\"]\n",[321,2543,2544],{"class":323,"line":365},[321,2545,2546],{},"  batches --> a2[\"Search agent 2\"]\n",[321,2548,2550],{"class":323,"line":2549},9,[321,2551,2552],{},"  batches --> a3[\"Search agent k\"]\n",[321,2554,2556],{"class":323,"line":2555},10,[321,2557,2558],{},"  a1 --> reduce[\"Reduce and schema check\"]\n",[321,2560,2562],{"class":323,"line":2561},11,[321,2563,2564],{},"  a2 --> reduce\n",[321,2566,2568],{"class":323,"line":2567},12,[321,2569,2570],{},"  a3 --> reduce\n",[321,2572,2574],{"class":323,"line":2573},13,[321,2575,2576],{},"  reduce --> ok{\"Complete?\"}\n",[321,2578,2580],{"class":323,"line":2579},14,[321,2581,2582],{},"  ok -->|yes| table[\"Unified table\"]\n",[321,2584,2586],{"class":323,"line":2585},15,[321,2587,2588],{},"  ok -->|no| repair[\"Repair round\"]\n",[321,2590,2592],{"class":323,"line":2591},16,[321,2593,2594],{},"  repair --> reduce\n",[321,2596,2598],{"class":323,"line":2597},17,[321,2599,2600],{},"  table --> update[\"Write record and hints\"]\n",[190,2602,2603,2604,2607],{},"This is isomorphic to classical MapReduce in the sense the paper draws in Figure 1: one operator correspondence, not a Hadoop cluster. The important engineering property is the same. ",[194,2605,2606],{},"State lives outside the worker."," The matrix holds coverage. The reduce holds the contract. Search agents can fail or run in parallel without being the system of record for the job.",[190,2609,2610,2613],{},[194,2611,2612],{},"Experience."," After the run, the framework stores a record of the query, the decision, the trace, and a utility score, then updates a hint pool. Hints carry an online score and provenance (which past tasks support them). At plan time the manager retrieves similar high- and low-utility exemplars and a small set of hints (the paper peaks at the top three; more hints add noise). Distillation later clusters records so hints stay structural (“batch by attribute on this query family”) instead of task-specific gossip.",[312,2615,2617],{"className":314,"code":2616,"language":316,"meta":171,"style":171},"flowchart TB\n  prior[\"Experiential prior: hints plus exemplars\"] --> sample[\"Sample decision\"]\n  sample --> run[\"Map, parallel search, reduce\"]\n  run --> util[\"Quality, cost, delay\"]\n  util --> store[\"Append record\"]\n  store --> hints[\"Credit hints; prune weak ones\"]\n  hints --> distill[\"Distill cluster-level hints\"]\n  distill --> prior\n",[318,2618,2619,2623,2628,2633,2638,2643,2648,2653],{"__ignoreMap":171},[321,2620,2621],{"class":323,"line":324},[321,2622,2178],{},[321,2624,2625],{"class":323,"line":172},[321,2626,2627],{},"  prior[\"Experiential prior: hints plus exemplars\"] --> sample[\"Sample decision\"]\n",[321,2629,2630],{"class":323,"line":335},[321,2631,2632],{},"  sample --> run[\"Map, parallel search, reduce\"]\n",[321,2634,2635],{"class":323,"line":341},[321,2636,2637],{},"  run --> util[\"Quality, cost, delay\"]\n",[321,2639,2640],{"class":323,"line":347},[321,2641,2642],{},"  util --> store[\"Append record\"]\n",[321,2644,2645],{"class":323,"line":353},[321,2646,2647],{},"  store --> hints[\"Credit hints; prune weak ones\"]\n",[321,2649,2650],{"class":323,"line":359},[321,2651,2652],{},"  hints --> distill[\"Distill cluster-level hints\"]\n",[321,2654,2655],{"class":323,"line":365},[321,2656,2657],{},"  distill --> prior\n",[190,2659,2660],{},"Ablations in the paper are the buying sheet in miniature. Drop memory: largest quality drop and cost nearly doubles ($0.60 → $1.05 on their reported slice). Drop the matrix and template: Row F1 collapses and cost rises — you are back to implicit targets. Drop adaptive batching: the largest Row/Item F1 hits. Exemplars and hints each help; they are not duplicates.",[190,2662,2663,2664,2667,2668,2671],{},"A case study in the paper is the operator story in one figure. A general multi-agent system retrieves year by year; intermediate evidence is overwritten; the table breaks. A-MapReduce externalises the objective as a schema-driven matrix. Without memory it can still recover most cells (Item F1 0.76) with fine-grained batching — ",[194,2665,2666],{},"60 sub-agents",", expensive. With memory it switches batching strategy: ",[194,2669,2670],{},"6 sub-agents",", lower cost, better structure (Item F1 0.79, Row F1 0.58). That is harness engineering for breadth: the model did not suddenly get smarter. The schedule did.",[259,2673,2675],{"id":2674},"what-the-research-found","What the research found",[190,2677,2678,2679,2682],{},"Numbers below are from ",[201,2680,2102],{"href":2100,"rel":2681},[205],", Tables 1–4, under their evaluation protocol (Avg@4 unless noted). They instantiate A-MapReduce with GPT-5-mini as the default backbone and compare against single agents, end-to-end systems, and open-source agent frameworks (Smolagents, OWL, WebSailor, Flash-Searcher) on stronger models in several rows. Read the paper for full grids; this is the operator extract.",[190,2684,2685,2687],{},[194,2686,2126],{}," (Wong et al., 2025) — Item F1 / Row F1 / success, Avg@4:",[2205,2689,2690,2706],{},[2208,2691,2692],{},[2211,2693,2694,2697,2700,2703],{},[2214,2695,2696],{},"System",[2214,2698,2699],{},"Item F1",[2214,2701,2702],{},"Row F1",[2214,2704,2705],{},"Success rate",[2223,2707,2708,2722,2736,2750,2764,2778],{},[2211,2709,2710,2713,2716,2719],{},[2228,2711,2712],{},"Claude Sonnet 4 (single, thinking)",[2228,2714,2715],{},"57.89",[2228,2717,2718],{},"31.69",[2228,2720,2721],{},"2.25",[2211,2723,2724,2727,2730,2733],{},[2228,2725,2726],{},"Gemini 2.5 Pro (end-to-end)",[2228,2728,2729],{},"59.05",[2228,2731,2732],{},"36.63",[2228,2734,2735],{},"4.25",[2211,2737,2738,2741,2744,2747],{},[2228,2739,2740],{},"MAS + Claude Sonnet 4",[2228,2742,2743],{},"62.17",[2228,2745,2746],{},"38.49",[2228,2748,2749],{},"3.62",[2211,2751,2752,2755,2758,2761],{},[2228,2753,2754],{},"Smolagents (GPT-5-mini)",[2228,2756,2757],{},"51.31",[2228,2759,2760],{},"23.04",[2228,2762,2763],{},"4.00",[2211,2765,2766,2769,2772,2775],{},[2228,2767,2768],{},"Flash-Searcher (GPT-5-mini)",[2228,2770,2771],{},"54.99",[2228,2773,2774],{},"34.42",[2228,2776,2777],{},"6.40",[2211,2779,2780,2785,2790,2795],{},[2228,2781,2782],{},[194,2783,2784],{},"A-MapReduce (GPT-5-mini)",[2228,2786,2787],{},[194,2788,2789],{},"67.81",[2228,2791,2792],{},[194,2793,2794],{},"45.23",[2228,2796,2797],{},[194,2798,2799],{},"7.50",[190,2801,2802,2805],{},[194,2803,2804],{},"Runtime on WideSearch"," (per-task delay):",[2205,2807,2808,2820],{},[2208,2809,2810],{},[2211,2811,2812,2815,2817],{},[2214,2813,2814],{},"Method",[2214,2816,2699],{},[2214,2818,2819],{},"Delay (s)",[2223,2821,2822,2832,2842,2853],{},[2211,2823,2824,2827,2829],{},[2228,2825,2826],{},"Smolagents",[2228,2828,2757],{},[2228,2830,2831],{},"2617.7",[2211,2833,2834,2837,2839],{},[2228,2835,2836],{},"Flash-Searcher",[2228,2838,2771],{},[2228,2840,2841],{},"1204.7",[2211,2843,2844,2847,2850],{},[2228,2845,2846],{},"A-MapReduce* (no evolution)",[2228,2848,2849],{},"64.64",[2228,2851,2852],{},"1460.8",[2211,2854,2855,2859,2863],{},[2228,2856,2857],{},[194,2858,2052],{},[2228,2860,2861],{},[194,2862,2789],{},[2228,2864,2865],{},[194,2866,2867],{},"953.7",[190,2869,2870,2871,2874],{},"A-MapReduce* already beats sequential frameworks on quality; memory then cuts delay another ",[194,2872,2873],{},"34.7%"," versus that variant. Evolution is not decoration.",[190,2876,2877,2879,2880,2883,2884,2887,2888,2891,2892,2895],{},[194,2878,2132],{}," (Lan et al., 2025) is harder. Most frameworks sit near 0–2% success. A-MapReduce reports ",[194,2881,2882],{},"4.43%"," Avg@4 success, ",[194,2885,2886],{},"42.11"," Item F1, ",[194,2889,2890],{},"26.44"," Row F1, ",[194,2893,2894],{},"79.09"," core-entity accuracy — against Flash-Searcher at 34.97 Item F1 and WebSailor (Claude Sonnet 4) at 32.90. Absolute Item-F1 lifts versus open-source multi-agent frameworks sit in the mid-teens on average in the authors’ summary. They also report gains on constructed “agentic-wide” slices of xBench-DeepSearch, WebWalkerQA, and TaskCraft.",[190,2897,2898,2899,2902],{},"Backbone swap (DeepSeek-v3.2, GLM-4.6) moved metrics within about ",[194,2900,2901],{},"4%",". That is the harness claim again: the schedule is doing work the weights cannot.",[190,2904,2905,2906,2909],{},"Treat lab numbers as lab numbers. WideSearch and DeepWideSearch are public web-seeking tables, not your CRM. The transferable result is the ",[194,2907,2908],{},"failure mode they measure",": sequential agents lose the entity set; explicit map/reduce plus memory keep it.",[259,2911,2913],{"id":2912},"a-worked-example-a-competitive-matrix","A worked example: a competitive matrix",[190,2915,2916],{},"Imagine a revenue-operations workstream: “Every account in the EMEA mid-market list — current vendor, contract end, champion, last QBR date — one sheet by Monday.”",[190,2918,2919,2920,2922,2923,2926],{},"Today that is a person, a pile of tabs, and a model that starts listing 2021 then 2022 then loses 2024. A vertical agent is the wrong shape. A ",[201,2921,2286],{"href":1252}," is the right shape ",[194,2924,2925],{},"if"," the account list and the field map are already known and the sources are APIs you trust. If the entity set is still being discovered, or half the cells live on the public web, you are in wide search.",[190,2928,2929,2932,2933,2935],{},[194,2930,2931],{},"Agentic MapReduce on that job."," The schema is the four columns. Discovery fills the task matrix with account names you already have. The template is “for account {name}, find {vendor, end date, champion, last QBR} from allowed sources.” Batching might start per-account and, after a few similar runs, switch to attribute-wise because the paper’s memory would learn that pattern. Search agents fill batches. Reduce checks every column. Missing champion on row 12 is a repair, not a confident blank. The artefact is the table on the ",[201,2934,256],{"href":255},", not a chat.",[190,2937,2938,2939,2941,2942,2945],{},"Writes to Salesforce stay behind ",[201,2940,437],{"href":436},". Agentic MapReduce in the research paper is ",[194,2943,2944],{},"retrieval and aggregation",". Promoting a cell to a CRM field is a different stop: quote, named signer, ledger. Do not confuse a good table with an authorised write.",[190,2947,2948,2951],{},[201,2949,1392],{"href":609,"rel":2950},[205]," separates harness layers from ownership. Someone owns the schema. Someone reviews skip-like holes after reduce. Someone is on the hook when a vendor name is wrong. MapReduce does not remove that roster. It makes the holes visible.",[259,2953,2955],{"id":2954},"agentic-mapreduce-vs-adjacent-crafts","Agentic MapReduce vs adjacent crafts",[2205,2957,2958,2971],{},[2208,2959,2960],{},[2211,2961,2962,2965,2968],{},[2214,2963,2964],{},"Pattern",[2214,2966,2967],{},"What it is for",[2214,2969,2970],{},"What it is not",[2223,2972,2973,2985,2997,3011,3022,3033,3046],{},[2211,2974,2975,2979,2982],{},[2228,2976,2977],{},[201,2978,251],{"href":250},[2228,2980,2981],{},"Known path: compile, skip, replay",[2228,2983,2984],{},"Discovering a large unknown entity set",[2211,2986,2987,2991,2994],{},[2228,2988,2989],{},[201,2990,240],{"href":244},[2228,2992,2993],{},"Designed sequence with business stops",[2228,2995,2996],{},"A scheduler for hundreds of weakly coupled lookups",[2211,2998,2999,3005,3008],{},[2228,3000,3001],{},[201,3002,3004],{"href":3003},"what-is-multi-agent-ai","Multi-agent AI",[2228,3006,3007],{},"Roles, duties, arbitration",[2228,3009,3010],{},"Automatically a MapReduce plan",[2211,3012,3013,3016,3019],{},[2228,3014,3015],{},"Deep-research agent",[2228,3017,3018],{},"Vertical hops",[2228,3020,3021],{},"Coverage of a table",[2211,3023,3024,3027,3030],{},[2228,3025,3026],{},"Classical MapReduce",[2228,3028,3029],{},"Cluster data processing",[2228,3031,3032],{},"Language-model retrieval",[2211,3034,3035,3040,3043],{},[2228,3036,3037],{},[201,3038,3039],{"href":781},"RPA",[2228,3041,3042],{},"Screen replay",[2228,3044,3045],{},"Schema-checked parallel retrieval",[2211,3047,3048,3054,3057],{},[2228,3049,3050],{},[201,3051,3053],{"href":3052},"what-is-enterprise-rag","Enterprise RAG",[2228,3055,3056],{},"Retrieve then generate over a corpus",[2228,3058,3059],{},"Parallel target coverage with a reduce contract",[190,3061,3062,3063,3066,3067,3070],{},"The test is simple. If a new hire can follow numbered steps on ",[194,3064,3065],{},"fixed"," sources, compile a loop. If the next fact depends on the last, harness a deep-research step. If the job is ",[194,3068,3069],{},"N entities × K fields"," and N is large, MapReduce the retrieval. If you cannot tell which, you will agent-wrap a checklist or chat-wrap a grid.",[190,3072,3073,3077,3078,3081,3082,3085],{},[201,3074,2836],{"href":3075,"rel":3076},"https://arxiv.org/abs/2509.25301",[205]," (Qin et al., 2025) is the closest open-source cousin in the paper’s tables: DAG-based parallel web agents. A-MapReduce’s extra claim is the ",[194,3079,3080],{},"explicit decision triple"," plus ",[194,3083,3084],{},"experiential evolution",", not parallelism alone. Parallelism without a matrix is still a race with an implicit list.",[259,3087,875],{"id":874},[190,3089,3090,3093],{},[194,3091,3092],{},"Vertical theatre."," You buy a deep-research agent and point it at a 200-row matrix. It writes a beautiful first page and silently drops the long tail. Success looks like prose. Failure looks like a missing competitor.",[190,3095,3096,3099],{},[194,3097,3098],{},"Matrix as prompt."," A system prompt that says “cover every entity” is not a task matrix. If you cannot dump the current entity list and completion mask, you do not have persistent coverage.",[190,3101,3102,3105],{},[194,3103,3104],{},"Reduce as “summarise.”"," Concatenating batch essays is not a schema check. Cell-level Item F1 and row-level alignment exist because summaries hide holes.",[190,3107,3108,3111,3112,3115,3116,3119],{},[194,3109,3110],{},"Memory as RAG."," Dumping last week’s PDF into a vector index is not experiential memory. Chen et al. store ",[194,3113,3114],{},"decisions and utilities",", then distill ",[194,3117,3118],{},"scheduling hints",". Wrong memory type, wrong reuse.",[190,3121,3122,3125,3126,3131],{},[194,3123,3124],{},"Unbounded search agents."," Parallelism with a shared production token is a confused deputy at scale. ",[201,3127,3130],{"href":3128,"rel":3129},"https://genai.owasp.org/llm-top-10/",[205],"OWASP’s Top 10 for LLM applications"," still applies: excessive agency is a design failure. Scope tools per batch; keep writes fail-closed.",[190,3133,3134,3137],{},[194,3135,3136],{},"Repair as infinite loop."," A repair round is a budgeted delta. Without a stop you have sequential search again, only more expensive.",[190,3139,3140,3143],{},[194,3141,3142],{},"Lab-to-CRM leap."," WideSearch is web tables. Your systems of record need connectors, identity, and a signer. The pattern transfers. The demo dataset does not.",[190,3145,3146,3149],{},[194,3147,3148],{},"Ownerless schema."," If nobody reviews holes after reduce, the matrix rots the same way a compiled loop rots when skip rates are ignored.",[190,3151,3152,3153,3156],{},"Failure looks like a green run and an incomplete grid. Success looks like a hole with a reason and a human on the roster — the same ethic as a ",[201,3154,3155],{"href":250},"skip"," on the known path.",[259,3158,3160],{"id":3159},"governance-plain-english","Governance (plain English)",[190,3162,3163,3164,3168],{},"Agentic MapReduce does not replace ",[201,3165,3167],{"href":3166},"what-is-ai-governance","AI governance",". It gives Measure something to measure.",[190,3170,3171,3174],{},[201,3172,663],{"href":661,"rel":3173},[205]," wants documented operational controls. A MapReduce decision you can serialise — matrix, template, batching, repair count — is a control object. A swarm transcript is not.",[190,3176,1776,3177,1042,3180,3183,3184,3186],{},[201,3178,675],{"href":673,"rel":3179},[205],[201,3181,669],{"href":667,"rel":3182},[205]," care about purpose and data minimisation. A schema on a ",[201,3185,256],{"href":255}," states purpose (this table), sources (these connectors or these allowed web tools), and actors (this roster). A god agent with every plugin does not.",[190,3188,3189,3191],{},[201,3190,1788],{"href":849}," still sits on writes and on judgement cells. Reduce can flag a hole; it should not invent a champion to keep Item F1 pretty. The paper’s own impact statement asks for source verification and oversight. That is not a disclaimer at the end of a blog post. It is the product rule: retrieval ≠ commitment.",[259,3193,1001],{"id":1000},[190,3195,3196,3197,3200,3201,3206,3207,3210,3211,3214,3215,3217,3218,3221,3222,3224,3225,3228],{},"Agentic MapReduce is a ",[194,3198,3199],{},"scheduling pattern",". Nimbus is a ",[194,3202,3203],{},[201,3204,3205],{"href":1343},"general enterprise harness"," — the outer runtime operators hire so a model can work on company jobs: a ",[201,3208,3209],{"href":28},"wiki"," that actually loads, scoped connectors, ",[201,3212,3213],{"href":20},"agent teams",", a ",[201,3216,256],{"href":32}," that isolates the job, ",[201,3219,3220],{"href":40},"write-back gates",", and a ",[201,3223,23],{"href":24}," you can query after the people change. Buyers also say ",[194,3226,3227],{},"business AI harness",". Same object. Not a coding harness. Not a chat with every production login.",[190,3230,3231],{},"The research paper’s manager, search agents, reduce, and experiential memory do not need a button labelled A-MapReduce. They need that outer harness, or they recreate the two failures Chen et al. measured: an implicit entity list in a transcript, and a plan that is thrown away every Monday.",[190,3233,3234,3237,3238,3240,3241,3243,3244,3246,3247,3250],{},[194,3235,3236],{},"Where the pattern sits."," The workstream is the job folder: brief, schema, roster, budget, stop. That is the MapReduce decision you can inspect. Agent teams are the search workers — specialists with a connector contract, not one Salesforce key cloned for every batch. Conflux is where the table lands as an artefact, not a bubble. Repair is a hole list on the roster: skip-class cousins, assigned, visible. Experiential memory is the wiki revision plus the graph: which schedule worked for this ",[2046,3239,2072],{}," of job should survive a model swap. ",[201,3242,491],{"href":490}," still wraps every model step. ",[201,3245,251],{"href":250}," still owns the happy path once the entity set and rules are known — do not MapReduce a VLOOKUP forever. ",[201,3248,3249],{"href":436},"Write-back governance"," still owns the moment a cell becomes a CRM field. Perception orients; it does not silently write. Routing picks model class per step so a compact extract does not pay frontier prices.",[190,3252,3253,3254,3258],{},"That mapping is how Nimbus productises the outer harness for operators. Score it the same way you would score AIP or Agentforce: can an unsigned payload be refused, can you replay who signed, can two departments share one job object. ",[201,3255,3257],{"href":3256},"how-to-evaluate-an-agent-harness","How to evaluate an agent harness"," is the sheet.",[190,3260,3261,3264,3265,3268],{},[194,3262,3263],{},"What that does for a business."," Wide-search work is already on the operating calendar. It just lives in heroics: a competitive matrix rebuilt in slides, a vendor landscape in someone’s downloads folder, a control mapped across entities in a spreadsheet that forks at 17:40. Sequential agents make that worse — they write a fluent first page and drop the long tail, then someone pastes the remainder into Salesforce. A general enterprise harness lets the company run the ",[2046,3266,3267],{},"grid"," as a job: coverage you can diff, holes you can assign, writes that wait for a named signer.",[190,3270,3271],{},"The impact is operational, not a model score.",[212,3273,3274,3291,3302,3312,3323],{},[215,3275,3276,658,3279,3282,3283,3286,3287,3290],{},[194,3277,3278],{},"From usage to a finish line.",[201,3280,1477],{"href":203,"rel":3281},[205]," keeps separating organisations that ",[2046,3284,3285],{},"use"," AI from those that ",[2046,3288,3289],{},"redesign"," work. Copilots produce usage. An enterprise harness produces a table on a workstream that Monday’s roster can reopen. That is how RevOps, procurement, and compliance stop paying the reinterpretation tax every quarter.",[215,3292,3293,3296,3297,3301],{},[194,3294,3295],{},"Coverage at a cost the CFO can see."," Chen et al. show parallel map plus memory beating sequential multi-agent systems on wall-clock and API spend. In the company, that is fewer overnight crawls, fewer duplicate tool calls, and ",[201,3298,3300],{"href":3299},"what-is-model-routing","model routing"," so batch extract does not sit on the flagship. NTUs attach to the workstream, not to a personal chat that finance cannot attribute.",[215,3303,3304,3307,3308,225],{},[194,3305,3306],{},"Memory that stays in-house."," Experiential hints in the paper are scheduling knowledge: how to batch this family of queries. On Nimbus that knowledge compounds in the wiki and the graph instead of leaking through consumer tools. The next similar competitive set does not re-plan from Slack. Institutional knowledge becomes an asset, not a side-effect of someone else’s model. See ",[201,3309,3311],{"href":3310},"what-is-institutional-memory-in-enterprise-ai","institutional memory",[215,3313,3314,3317,3318,3322],{},[194,3315,3316],{},"Duty of care on the live system."," A complete grid is still only retrieval. Promoting a cell to CRM, ERP, or a contract is a quoted write. Fail-closed gates are how you get scale without ",[201,3319,3321],{"href":3320},"what-is-shadow-ai","shadow AI"," in the system of record — the Air Canada class of failure, only with money attached. Boards get a ledger; operators get a refuse they can demonstrate in a proof of value.",[215,3324,3325,3328,3329,3331],{},[194,3326,3327],{},"Departments on one object."," Legal, finance, and go-to-market already hand work between each other. Multi-agent MapReduce without a workstream is still screenshots. With a roster, a guest 3PL or a regional lead sees the same table; shift change is a reopen, not a new thread. That is ",[201,3330,727],{"href":296},", not a shared login.",[190,3333,3334],{},"What failure looks like without the harness: every analyst clones a GPT with the same key; the competitive set exists only as a deck; the only eval is “the demo was impressive”; a missing row becomes a guessed champion; the ledger is Slack. What success looks like: one workstream, a schema, batched specialists under grants, a hole list, a signed write or a recorded refuse, a graph entry the auditor can export. Nimbus is built so that path is a product week rather than a services year. Verify it with the refuse.",[190,3336,3337,3338,3343,3344,3347,3348,1032,3350,1032,3352,1032,3354,1032,3356,225],{},"The paper’s implementation is public: ",[201,3339,3342],{"href":3340,"rel":3341},"https://github.com/mingju-c/AMapReduce",[205],"github.com/mingju-c/AMapReduce",". Use it to understand the schedule. Use the ",[201,3345,3346],{"href":1343},"enterprise harness"," to run the job inside the company. Product surfaces: ",[201,3349,1041],{"href":32},[201,3351,3213],{"href":20},[201,3353,1045],{"href":40},[201,3355,3209],{"href":28},[201,3357,23],{"href":24},[259,3359,1049],{"id":1048},[212,3361,3362,3367,3372,3378,3382,3386,3391,3395],{},[215,3363,3364],{},[201,3365,3366],{"href":1343},"What is an enterprise agent harness",[215,3368,3369],{},[201,3370,3371],{"href":3003},"What is multi-agent AI",[215,3373,3374],{},[201,3375,3377],{"href":3376},"what-is-an-agent-harness","What is an agent harness",[215,3379,3380],{},[201,3381,1071],{"href":490},[215,3383,3384],{},[201,3385,1056],{"href":250},[215,3387,3388],{},[201,3389,3390],{"href":244},"What is an agentic workflow",[215,3392,3393],{},[201,3394,1924],{"href":255},[215,3396,3397],{},[201,3398,1076],{"href":436},[259,3400,1080],{"id":1079},[212,3402,3403,3409,3415,3421,3427,3433,3439,3445,3451,3456,3461,3467,3472,3477,3483,3488],{},[215,3404,3405],{},[201,3406,3408],{"href":2042,"rel":3407},[205],"Chen, Zhang, Chang, Guo, and Zhou, A-MapReduce: Executing Wide Search via Agentic MapReduce (arXiv:2602.01331, 2026)",[215,3410,3411],{},[201,3412,3414],{"href":2100,"rel":3413},[205],"Chen et al., HTML version",[215,3416,3417],{},[201,3418,3420],{"href":3340,"rel":3419},[205],"A-MapReduce source code",[215,3422,3423],{},[201,3424,3426],{"href":2056,"rel":3425},[205],"Dean and Ghemawat, MapReduce (Communications of the ACM, 2008)",[215,3428,3429],{},[201,3430,3432],{"href":2124,"rel":3431},[205],"Wong et al., WideSearch (arXiv:2508.07999, 2025)",[215,3434,3435],{},[201,3436,3438],{"href":2130,"rel":3437},[205],"Lan et al., DeepWideSearch (arXiv:2510.20168, 2025)",[215,3440,3441],{},[201,3442,3444],{"href":2113,"rel":3443},[205],"Yao et al., ReAct (ICLR 2023)",[215,3446,3447],{},[201,3448,3450],{"href":3075,"rel":3449},[205],"Qin et al., Flash-Searcher (arXiv:2509.25301, 2025)",[215,3452,3453],{},[201,3454,1122],{"href":502,"rel":3455},[205],[215,3457,3458],{},[201,3459,1094],{"href":373,"rel":3460},[205],[215,3462,3463],{},[201,3464,3466],{"href":203,"rel":3465},[205],"McKinsey, The state of AI",[215,3468,3469],{},[201,3470,633],{"href":631,"rel":3471},[205],[215,3473,3474],{},[201,3475,663],{"href":661,"rel":3476},[205],[215,3478,3479],{},[201,3480,3482],{"href":3128,"rel":3481},[205],"OWASP Top 10 for LLM applications",[215,3484,3485],{},[201,3486,675],{"href":673,"rel":3487},[205],[215,3489,3490],{},[201,3491,669],{"href":667,"rel":3492},[205],[1145,3494,1147],{},{"title":171,"searchDepth":172,"depth":172,"links":3496},[3497,3498,3499,3500,3501,3502,3503,3504,3505,3506,3507,3508],{"id":2083,"depth":172,"text":2084},{"id":394,"depth":172,"text":395},{"id":615,"depth":172,"text":616},{"id":2433,"depth":172,"text":2434},{"id":2674,"depth":172,"text":2675},{"id":2912,"depth":172,"text":2913},{"id":2954,"depth":172,"text":2955},{"id":874,"depth":172,"text":875},{"id":3159,"depth":172,"text":3160},{"id":1000,"depth":172,"text":1001},{"id":1048,"depth":172,"text":1049},{"id":1079,"depth":172,"text":1080},"2026-09-13","agentic MapReduce","Agentic MapReduce turns wide, many-entity retrieval into a MapReduce job: a manager splits the table, search agents fill batches in parallel, and a reduce step merges one schema-consistent result — with memory so the next similar query does not re-plan from scratch.",{"eyebrow":1168,"title":3513},"MapReduce, agents, and compiled loops",[3515,3518,3521],{"question":3516,"answer":3517},"Is agentic MapReduce the same as Hadoop MapReduce?","No. Dean and Ghemawat’s MapReduce (2008) is a data-processing runtime for clusters: map a function over records, shuffle, reduce. Agentic MapReduce borrows the shape — split, run in parallel, merge — but the workers are LLM agents filling a schema, not mappers over HDFS blocks. Use the original paper for distributed files. Use agentic MapReduce when the units of work are retrieval tasks that need language, tools, and a table at the end. Refuse a vendor who says MapReduce and means a sequential chat with a nicer diagram.",{"question":3519,"answer":3520},"Is agentic MapReduce just multi-agent AI?","Multi-agent AI is the cast: more than one specialist, shared state, a stop. Agentic MapReduce is a specific execution pattern for breadth — an explicit task matrix, batched parallel search, and a reduce into one schema. You can have multi-agent systems that never MapReduce (they recurse down one thread). You can MapReduce without a zoo of named personas. Use multi-agent language for roles and duties. Use agentic MapReduce when the job is many weakly coupled lookups that must land in one table. See what is multi-agent AI.",{"question":3522,"answer":3523},"When should we compile a loop instead of running agentic MapReduce?","Compile a loop when the path is already known: read these sources, apply these rules, emit this artefact, skip when the world does not match. Use agentic MapReduce when the entity set is large and not fully known in advance — competitive sets, vendor landscapes, exception inventories — and you would otherwise drown a single agent in a long horizon. Refuse to pay tokens to re-derive VLOOKUP logic every Monday, and refuse to send one agent down a year-by-year crawl when the job is a table of N rows. See loop engineering and a loop is not an agent.","/blog/what-is-agentic-mapreduce",{"title":2021,"description":3511},"blog/what-is-agentic-mapreduce",[1188,3528,3529,2092,1190],"agentic-mapreduce","multi-agent","f_v0ixTbKmEBTjw6Gm3X7fUc2OYlH85R126kzl0znvo",{"enabled":165,"message":3532,"linkLabel":79,"linkHref":80,"id":3533,"title":3534,"archived":165,"authors":166,"badge":166,"body":3535,"date":166,"definedTerm":166,"department":166,"description":171,"extension":174,"eyebrow":166,"faqHeader":166,"faqs":166,"footerBand":166,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":3539,"relatedHeading":166,"seo":3540,"series":166,"sitemap":165,"status":166,"stem":3541,"subhead":166,"tags":166,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":3542},"We're hiring! Join the team building the Sentient Enterprise.","content/shared/hiring.md","Hiring banner",{"type":168,"value":3536,"toc":3537},[],{"title":171,"searchDepth":172,"depth":172,"links":3538},[],"/shared/hiring",{"title":3534,"description":171},"shared/hiring","1zs3boivKda1e-b-hAyuNcmZSKjZUAXmecnwHVgcHzk",{"fold":3544,"id":3548,"title":3549,"archived":165,"authors":166,"badge":166,"body":3550,"date":166,"definedTerm":166,"department":166,"description":171,"extension":174,"eyebrow":166,"faqHeader":166,"faqs":166,"footerBand":3554,"headline":166,"image":166,"industry":166,"jobType":166,"listed":131,"location":166,"navigation":131,"openRoles":166,"pageLayout":166,"path":3558,"relatedHeading":166,"seo":3559,"series":166,"sitemap":165,"status":166,"stem":3560,"subhead":166,"tags":166,"video":166,"whyJoin":166,"workplaceType":166,"__hash__":3561},{"headline":3545,"description":3546,"primaryLabel":8,"primaryTo":3547,"secondaryLabel":1208,"secondaryTo":12},"Run frontier AI your business actually owns.","Governed agent swarms, 2,000+ integrations, and a knowledge graph that stays inside your walls. Start on Free.","/signup?plan=free","content/shared/cta.md","Site CTAs",{"type":168,"value":3551,"toc":3552},[],{"title":171,"searchDepth":172,"depth":172,"links":3553},[],{"headline":3555,"description":3556,"primaryLabel":8,"primaryTo":3547,"secondaryLabel":3557,"secondaryTo":85},"See what governed AI looks like on your stack.","Connect your tools, run a workstream, and keep every decision on your ledger. Start on Free.","Talk to our team","/shared/cta",{"title":3549,"description":171},"shared/cta","PS2VPJsszmUpMBZT6nEp8cWXCdeiN6zDRl-p8d0uY2k",1789797891634]