[{"data":1,"prerenderedAt":2152},["ShallowReactive",2],{"site-nav-content":3,"blog:\u002Fblog\u002Fwhat-is-an-enterprise-agent-harness":177,"blog-index-copy":874,"blog:\u002Fblog\u002Fwhat-is-an-enterprise-agent-harness:surround":895,"hiring-banner-content":2121,"site-cta-content":2133},{"header":4,"productNav":9,"nav":42,"footer":61,"askAI":132,"id":161,"title":162,"archived":163,"authors":164,"badge":164,"body":165,"date":164,"definedTerm":164,"department":164,"description":169,"extension":172,"eyebrow":164,"faqHeader":164,"faqs":164,"footerBand":164,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":173,"relatedHeading":164,"seo":174,"series":164,"sitemap":163,"status":164,"stem":175,"subhead":164,"tags":164,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":176},{"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","\u002Foverview","Seven layers. One closed loop.",{"label":15,"to":16,"description":17},"Conflux","\u002Fproduct\u002Fconflux","Where your team, workstreams, and agents meet.",{"label":19,"to":20,"description":21},"Agent Teams","\u002Fproduct\u002Fagent-teams","Specialist teams - governed from day one.",{"label":23,"to":24,"description":25},"Lifecycle Graph","\u002Fproduct\u002Flifecycle-graph","Intelligence that compounds across every interaction.",{"label":27,"to":28,"description":29},"Company Wiki","\u002Fproduct\u002Fwiki","Playbooks and policies where expertise stays.",{"label":31,"to":32,"description":33},"Workstreams","\u002Fproduct\u002Fworkstreams","From brief to signed-off deliverable on one canvas.",{"label":35,"to":36,"description":37},"Perception Console","\u002Fproduct\u002Fperception","Ask your whole business in plain English.",{"label":39,"to":40,"description":41},"Governance","\u002Fproduct\u002Fgovernance","Frontier AI you can actually sign off on.",[43,46,49,52,55,58],{"label":44,"to":45},"Models","\u002Fmodels",{"label":47,"to":48},"Pricing","\u002Fpricing",{"label":50,"to":51},"Integrations","\u002Fintegrations",{"label":53,"to":54},"Security","\u002Fsecurity",{"label":56,"to":57},"Partners","\u002Fpartners",{"label":59,"to":60},"Insights","\u002Fblog",{"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:\u002F\u002Fdocs.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","\u002Fcareers",{"label":82,"to":83},"System status","\u002Fstatus",{"label":7,"to":85},"\u002Fcontact",[87,90,93,96,99],{"label":88,"to":89},"Glossary","\u002Fglossary",{"label":91,"to":92},"Compare","\u002Fcompare",{"label":94,"to":95},"Evaluate","\u002Fevaluate",{"label":97,"to":98},"Problems","\u002Fproblems",{"label":100,"to":101},"Use cases","\u002Fuse-cases",[103,106],{"label":104,"to":105},"Terms of Service","\u002Fterms",{"label":107,"to":108},"Privacy Policy","\u002Fprivacy",[110,113,116],{"label":111,"href":112},"LinkedIn","https:\u002F\u002Fwww.linkedin.com\u002Fcompany\u002Fgonimbusai\u002F",{"label":114,"href":115},"X","https:\u002F\u002Fx.com\u002Fgonimbusai",{"label":117,"href":118},"Instagram","https:\u002F\u002Fwww.instagram.com\u002Fgonimbus_ai\u002F",[120,122,124,127,128],{"label":121,"to":105},"Terms",{"label":123,"to":108},"Privacy",{"label":125,"to":126},"Compliance","\u002Fcompliance",{"label":82,"to":83},{"label":129,"to":130,"external":131},"LLMs.txt","\u002Fllms.txt",true,{"text":133,"prompt":134,"platforms":135},"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. Summarize the highlights from Nimbus's website: https:\u002F\u002Fgonimbus.ai",[136,141,146,151,156],{"name":137,"label":138,"icon":139,"hrefPrefix":140},"chatgpt","ChatGPT","simple-icons:openai","https:\u002F\u002Fchatgpt.com\u002F?prompt=",{"name":142,"label":143,"icon":144,"hrefPrefix":145},"perplexity","Perplexity","mdi:magnify","https:\u002F\u002Fwww.perplexity.ai\u002Fsearch\u002Fnew?q=",{"name":147,"label":148,"icon":149,"hrefPrefix":150},"grok","Grok","simple-icons:x","https:\u002F\u002Fx.com\u002Fi\u002Fgrok?text=",{"name":152,"label":153,"icon":154,"hrefPrefix":155},"claude","Claude","simple-icons:anthropic","https:\u002F\u002Fclaude.ai\u002Fnew?q=",{"name":157,"label":158,"icon":159,"hrefPrefix":160},"google-ai","Google AI","simple-icons:google","https:\u002F\u002Fwww.google.com\u002Fsearch?udm=50&aep=11&q=","content\u002Fshared\u002Fnav.md","Site navigation",false,null,{"type":166,"value":167,"toc":168},"minimark",[],{"title":169,"searchDepth":170,"depth":170,"links":171},"",2,[],"md","\u002Fshared\u002Fnav",{"title":162,"description":169},"shared\u002Fnav","Q7sDe7TuGEwhwUMamyeOxjvGlsUaF3Iay9VTW0KaE_U",{"id":178,"title":179,"archived":163,"authors":180,"badge":184,"body":186,"date":851,"definedTerm":164,"department":164,"description":852,"extension":172,"eyebrow":164,"faqHeader":853,"faqs":856,"footerBand":164,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":866,"relatedHeading":164,"seo":867,"series":868,"sitemap":131,"status":164,"stem":869,"subhead":164,"tags":870,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":873},"content\u002Fblog\u002Fwhat-is-an-enterprise-agent-harness.md","What is an Enterprise Agent Harness",[181],{"name":182,"to":183},"Nimbus Research","https:\u002F\u002Fgonimbus.ai",{"label":185},"Explainer",{"type":166,"value":187,"toc":831},[188,205,219,236,241,313,341,345,366,369,386,409,426,430,438,457,477,486,501,509,518,529,535,539,544,551,562,565,577,581,592,599,602,605,616,620,623,629,638,641,645,662,670,674,679,682,686,689,693,696,700,707,711,718,722,735,739,747,751],[189,190,191,192,196,197,200,201,204],"p",{},"An ",[193,194,195],"strong",{},"enterprise agent harness"," is the outer runtime that lets a model work on company jobs: policy it actually loads, connectors with least privilege, a loop that can stop for a named signer, and a record you can query after the people change. Buyers also ask for a ",[193,198,199],{},"business AI harness"," or a ",[193,202,203],{},"general enterprise harness",". Those phrases name the same object: a runtime for operators and systems of record, not a coding harness and not a chat with every production login.",[189,206,207,208,213,214,218],{},"It is still ",[209,210,212],"a",{"href":211},"https:\u002F\u002Fdocs.langchain.com\u002Foss\u002Fpython\u002Flangchain\u002Fagents","Agent = Model + Harness",". The workspace is not a git root. The sensor is not only pytest. The stop is not only max steps. ",[209,215,217],{"href":216},"https:\u002F\u002Fwww.thoughtworks.com\u002Finsights\u002Farticles\u002Foperating-system-enterprise-ai","Thoughtworks"," calls the missing piece an organisational harness: identity, ownership, economics, and learning around whatever builder harnesses (Claude Code, Cursor, LangChain graphs) teams already bought. An enterprise agent harness is that layer made operable — whether you assemble it or hire it.",[189,220,221,225,226,230,231,235],{},[209,222,224],{"href":223},"\u002Fblog\u002Finner-vs-outer-agent-harness\u002F","Inner vs outer"," is the cut. This page is the outer object in full. An ",[209,227,229],{"href":228},"\u002Fblog\u002Fwhat-is-an-enterprise-ai-operating-system\u002F","enterprise AI operating system"," is the product category that usually ships it: wiki, ",[209,232,234],{"href":233},"\u002Fblog\u002Fwhat-is-an-ai-workstream\u002F","workstreams",", teams, gates, ledger. You can have OS-class products (Nimbus, Palantir AIP, Salesforce Agentforce) and still fail the harness test if writes are a boolean on an API key. You can assemble an enterprise harness in LangGraph and pass the test. The noun is the runtime properties, not the logo.",[237,238,240],"h2",{"id":239},"words-youll-hear","Words you’ll hear",[242,243,244,255,261,267,277,283,293,303],"ul",{},[245,246,247,250,251,254],"li",{},[193,248,249],{},"Outer harness."," Company workspace. See ",[209,252,253],{"href":223},"inner vs outer",".",[245,256,257,260],{},[193,258,259],{},"Organizational harness."," Thoughtworks’ fourth layer after model, builder harness, and user harness. Governance architecture, not another markdown file.",[245,262,263,266],{},[193,264,265],{},"Workstream."," Isolation domain: roster, connectors, budget, finish line. The job folder. Not a chat title.",[245,268,269,272,273,254],{},[193,270,271],{},"Write quoting."," The human sees the change in the language of the live system before sign-off. ",[209,274,276],{"href":275},"\u002Fblog\u002Fwhat-is-write-back-governance\u002F","Write-back governance",[245,278,279,282],{},[193,280,281],{},"Fail-closed."," Missing approval, detached grant, or down interceptor means nothing mutates. Fail-open is a faster incident.",[245,284,285,288,289,254],{},[193,286,287],{},"Ledger \u002F Lifecycle Graph."," AI operations events: brief, agents, policy version, signer, payload. Distinct from the warehouse’s business events. See ",[209,290,292],{"href":291},"\u002Fblog\u002Fwhat-is-a-lifecycle-graph\u002F","What is a lifecycle graph",[245,294,295,298,299,254],{},[193,296,297],{},"SWE-bench \u002F Terminal-Bench."," Inner evals. Useful for engineering vendors. Not a SOX control. ",[209,300,302],{"href":301},"\u002Fblog\u002Feval-loops-for-enterprise-agent-harnesses\u002F","Eval loops",[245,304,305,308,309,254],{},[193,306,307],{},"Forward-deployed programme."," Vendor engineers for months. AIP at scale. Capability can be real. Time-to-value is staffing. ",[209,310,312],{"href":311},"\u002Fevaluate\u002F","Self-service vs forward-deployed",[189,314,315,316,320,321,320,324,320,328,320,332,320,336,340],{},"Nimbus is one self-service enterprise harness: ",[209,317,319],{"href":318},"\u002Fproduct\u002Fwiki\u002F","wiki",", ",[209,322,234],{"href":323},"\u002Fproduct\u002Fworkstreams\u002F",[209,325,327],{"href":326},"\u002Fproduct\u002Fagent-teams\u002F","agent teams",[209,329,331],{"href":330},"\u002Fproduct\u002Fgovernance\u002F","governance",[209,333,335],{"href":334},"\u002Fproduct\u002Flifecycle-graph\u002F","graph",[209,337,339],{"href":338},"\u002Fmodels\u002F","routing",". Score it as an example of the shape, next to AIP and Agentforce, not as the definition of the category.",[237,342,344],{"id":343},"why-you-should-care","Why you should care",[189,346,347,351,352,356,357,360,361,365],{},[209,348,350],{"href":349},"https:\u002F\u002Fwww.mckinsey.com\u002Fcapabilities\u002Fquantumblack\u002Four-insights\u002Fthe-state-of-ai","McKinsey’s 2025 State of AI"," keeps separating ",[353,354,355],"em",{},"use"," from ",[353,358,359],{},"scale",". Copilots and coding harnesses can produce the first. Enterprise harnesses are how writes to systems of record become the second without becoming ",[209,362,364],{"href":363},"\u002Fblog\u002Fwhat-is-shadow-ai\u002F","shadow AI"," in the CRM.",[189,367,368],{},"It affects you if:",[242,370,371,374,377,380,383],{},[245,372,373],{},"RevOps, Legal, and Finance must share a job, not a Slack channel of screenshots",[245,375,376],{},"Salesforce or NetSuite can change because a model proposed it",[245,378,379],{},"last quarter’s pricing chat is unrecoverable",[245,381,382],{},"security cannot list the AI actors that may write",[245,384,385],{},"the vendor demo is a SWE-bench plot and a “we have MCP”",[189,387,388,389,393,394,398,399,403,404,408],{},"In 2024 Air Canada was held to a chatbot’s invented policy (",[209,390,392],{"href":391},"https:\u002F\u002Fwww.cbc.ca\u002Fnews\u002Fcanada\u002Fbritish-columbia\u002Fair-canada-chatbot-lawsuit-1.7116416","CBC","). That is an outer-harness failure: a commitment left the building without a quote or a signer. ",[209,395,397],{"href":396},"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2016\u002F679\u002Foj","GDPR"," constrains personal data in payloads. ",[209,400,402],{"href":401},"https:\u002F\u002Fwww.sec.gov\u002Fabout\u002Flaws.shtml","Sarbanes–Oxley"," constrains who may change revenue truth. ",[209,405,407],{"href":406},"https:\u002F\u002Feur-lex.europa.eu\u002Feli\u002Freg\u002F2024\u002F1689\u002Foj","EU AI Act"," Article 14 wants people who can interpret, interrupt, and leave a record. A coding-agent hook that formats Python does not satisfy those.",[189,410,411,415,416,420,421,425],{},[209,412,414],{"href":413},"https:\u002F\u002Fwww.nist.gov\u002Fitl\u002Fai-risk-management-framework","NIST AI RMF"," and ",[209,417,419],{"href":418},"https:\u002F\u002Fwww.iso.org\u002Fstandard\u002F42001","ISO\u002FIEC 42001"," assume operational controls, not a slide titled governance. ",[209,422,424],{"href":423},"https:\u002F\u002Foecd.ai\u002Fen\u002Fai-principles","OECD AI Principles"," are a board checklist. They do not implement a gate. The harness does.",[237,427,429],{"id":428},"what-enterprise-adds-to-a-harness","What “enterprise” adds to a harness",[189,431,432,433,437],{},"Start from ",[209,434,436],{"href":435},"\u002Fblog\u002Fwhat-is-an-agent-harness\u002F","what a harness contains"," — loop, tools, memory, permissions, feedback, orchestration — and raise the bar.",[189,439,440,443,444,448,449,452,453,456],{},[193,441,442],{},"Policy that loads."," Inner harnesses inject ",[445,446,447],"code",{},"AGENTS.md",". Enterprise harnesses inject asserted company policy for ",[353,450,451],{},"this"," job, versioned. A Drive dump is not policy. A ",[209,454,319],{"href":455},"\u002Fblog\u002Fwhat-is-a-company-wiki-for-ai-agents\u002F"," that agents cite, with the revision on the run, is. If Legal’s discount cap lives only in a PDF nobody attached, the model will invent a number. That is not hallucination as a personality. That is a missing guide.",[189,458,459,462,463,467,468,472,473,254],{},[193,460,461],{},"Connectors as grants, not a toolbox."," Default read. Write is a separate plane. Least privilege is a workstream property. ",[209,464,466],{"href":465},"\u002Fintegrations\u002F","Connector architecture",". MCP may be the plug; it must inherit the grant. ",[209,469,471],{"href":470},"\u002Fblog\u002Fwhat-is-model-context-protocol\u002F","What is Model Context Protocol",". A Finance team assigned to a GTM-only stream still must not reach ERP “because it is Finance.” ",[209,474,476],{"href":475},"\u002Fblog\u002Fwhat-is-multi-agent-ai\u002F","What is multi-agent AI",[189,478,479,482,483,485],{},[193,480,481],{},"A hiring object for operators."," Not a folder of personal GPTs. A mandate, required systems, approval triggers — ",[209,484,327],{"href":475}," as a roster. Nimbus ships functional teams on that roster; AIP and Agentforce have their own packaging. The test is: can an operator inspect the mandate and the required systems before assign.",[189,487,488,491,492,496,497,500],{},[193,489,490],{},"Human wait as a step."," ",[209,493,495],{"href":494},"\u002Fblog\u002Fwhat-is-human-in-the-loop-ai\u002F","HITL"," is not a kill switch in a dashboard. It is quoted payload, named role, fail-closed adapter. ",[209,498,499],{"href":494},"HITL approval architecture",". Soft \u002F Hard \u002F Critical matched to blast radius. A six-month zero-reject rate on CRM writes is a finding.",[189,502,503,506,507,254],{},[193,504,505],{},"A ledger of AI operations."," Who briefed, which team, which wiki revision, who signed, what executed. Exportable without the vendor in the room. The warehouse is not this ledger. ",[209,508,292],{"href":291},[189,510,511,514,515,254],{},[193,512,513],{},"Evals that match the job."," Did the executed write match the signed quote. Can you replay. Inner leaderboards are a vendor quality signal for coding. They are not the enterprise eval. See ",[209,516,517],{"href":301},"eval loops",[189,519,520,523,524,528],{},[193,521,522],{},"Economics of the loop."," Routing compact extract vs frontier judgement. Spend quotes. Seat pricing that includes unlimited flagship is an unengineered cost harness. ",[209,525,527],{"href":526},"\u002Fblog\u002Fwhat-is-model-routing\u002F","Model routing",". Nimbus quotes each run; copilots meter seats. Different jobs.",[189,530,531,534],{},[193,532,533],{},"Self-service vs programme."," If every new connector is a six-month SOW, you have bought a deployment, not a harness operators can tighten. That can still be the right buy for Ontology-scale complexity. It is the wrong buy for a standard Salesforce write this quarter.",[237,536,538],{"id":537},"what-it-is-not","What it is not",[189,540,541,542,254],{},"A coding harness with SSO. ",[209,543,224],{"href":223},[189,545,546,547,254],{},"A copilot with an admin console. ",[209,548,550],{"href":549},"\u002Fblog\u002Fcollaborative-ai-and-personal-assistants\u002F","Copilot vs work OS",[189,552,553,554,557,558,254],{},"A framework. LangGraph can ",[353,555,556],{},"host"," an enterprise harness if you build grants, quotes, and a ledger. Out of the box it hosts a graph. ",[209,559,561],{"href":560},"\u002Fblog\u002Fagent-harness-vs-agent-framework\u002F","Harness vs framework",[189,563,564],{},"“We integrate with Salesforce.” Integration is a slide. A scoped connector plus a blocked unsigned write is a harness.",[189,566,567,568,415,572,576],{},"SWE-bench-first marketing. ",[209,569,571],{"href":570},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents","Anthropic",[209,573,575],{"href":574},"https:\u002F\u002Fwww.langchain.com\u002Fblog\u002Fthe-anatomy-of-an-agent-harness","LangChain"," are writing about coding and general agents. Steal the discipline (stops, artifacts, sensors). Do not steal the benchmark as your control framework.",[237,578,580],{"id":579},"thoughtworks-organisational-harness-in-operator-language","Thoughtworks’ organisational harness, in operator language",[189,582,583,584,587,588,591],{},"The ",[209,585,586],{"href":216},"Thoughtworks OS essay"," (10 July 2026) argues that most AI programmes fail because the organisation never built the operating system around the model: accountability, ownership, measurement, learning. They name four layers. An enterprise agent harness, as this article uses the term, is layers 3–4 made runnable for ",[353,589,590],{},"company jobs"," — not only for coding-agent users.",[189,593,594,595,598],{},"Delegation failures are the tell. The model was fine. The platform ran. Practitioner guides existed. The agent did what it was ",[353,596,597],{},"allowed"," to do. The company still took harm. Layer 4 questions: who approved that autonomy, who owns the policy, what was the escalation, how do we prevent the same miss on another team. Layers 1–3 cannot answer those. A chat product cannot either.",[189,600,601],{},"Thoughtworks’ control matrix is worth stealing even if you never hire them. Use deterministic controls where the boundary is knowable: allowed actions, residency, spend ceilings, blast-radius limits. Use probabilistic controls only where judgement is required. Pair every guide with a sensor. Temporal constraints — consistency across a multi-step workflow, not a single dropdown — are the ones they say teams miss most. A scheduling agent that is locally plausible on each step and globally inconsistent is not a “hallucination.” It is a missing temporal sensor.",[189,603,604],{},"Their public examples (Parloa’s repo-resident rules\u002Fskills\u002Fcommands; Morgan Stanley’s tiered autonomy on CVE triage) are coding-adjacent. Translate them: discount policy as a versioned wiki skill; “what delegation tier does this CRM write require?” instead of “do we trust the agent.” Nimbus’s Soft \u002F Hard \u002F Critical is that tiering in product form. AIP will have a different packaging. The architectural claim is the same.",[189,606,607,415,611,615],{},[209,608,610],{"href":609},"https:\u002F\u002Fwww.databricks.com\u002Fblog\u002Fai-harness","Databricks",[209,612,614],{"href":613},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgent_harness","Wikipedia"," describe the runtime. Thoughtworks describe why a runtime without ownership still fails at scale. You need both descriptions when you buy.",[237,617,619],{"id":618},"what-good-looks-like-on-a-live-job","What “good” looks like on a live job",[189,621,622],{},"A renewal write: workstream isolation; Salesforce attached read-only until write is enabled; wiki revision with the cap cited on the run; team cannot start if Legal’s connector requirement is missing; model proposes a quote; Hard gate; reject leaves Stage unchanged; export shows signer without a vendor screen-share. That is an enterprise harness. A demo that only answers “what should we do about Acme” is a copilot with a logo.",[189,624,625,626,254],{},"Spend an hour asking where each Thoughtworks layer lives in the vendor’s product. If layer 4 is “our professional services team,” you are buying a programme. That can be the right buy. Name it. ",[209,627,628],{"href":311},"Self-service vs FDE",[189,630,631,632,634,635,637],{},"Operators already know the human version of this harness. Maker-checker on journals. Segregation of duties on payments. Change-advisory on production. The enterprise agent harness is those instincts encoded so a model cannot talk through them. ",[209,633,402],{"href":401}," did not wait for LLMs; it waited for a named signer. ",[209,636,397],{"href":396}," did not wait for MCP; it waits for purpose limitation on the payload. If your AI programme cannot point to the interceptor that enforces those, you have a chatbot with a risk register.",[189,639,640],{},"What failure looks like in the first ninety days: every department clones a GPT with the same Salesforce key; Legal’s cap lives in a slide; the only eval is “the demo was impressive”; coding-agent MCP is pointed at production “just for a spike”; the ledger is Slack. What success looks like: one roster of teams, workstream isolation, default read, a Hard refuse on the first PoV, a wiki revision on the graph, inner harnesses still compiling in repos. Nimbus is built to make the success path a product week rather than a services year. Verify that claim with the refuse. AIP may be the right path when Ontology-scale complexity is real — then the harness is a programme, and you should staff it as one.",[237,642,644],{"id":643},"how-this-shows-up-in-nimbus","How this shows up in Nimbus",[189,646,647,648,651,652,655,656,658,659,661],{},"Nimbus’s outer loop is: brief a ",[209,649,650],{"href":323},"workstream"," → assign a ",[209,653,654],{"href":326},"team"," whose connector contract is satisfied → retrieve under scope → draft on the canvas (Conflux) → quote writes → ",[209,657,331],{"href":330}," pause → execute the signed payload → commit to the ",[209,660,23],{"href":334},". Perception orients; it does not silently write. Routing picks model class per step.",[189,663,664,665,669],{},"That mapping is how we productised harness engineering for operators. It is not a claim that AIP or Agentforce are “not harnesses.” They are different time and scope. ",[209,666,668],{"href":667},"\u002Fblog\u002Fhow-to-evaluate-an-agent-harness\u002F","How to evaluate an agent harness"," is the scoring sheet for that runtime.",[237,671,673],{"id":672},"questions-people-actually-ask","Questions people actually ask",[675,676,678],"h3",{"id":677},"do-we-need-this-if-we-already-have-claude-code","Do we need this if we already have Claude Code?",[189,680,681],{},"You need it for jobs whose workspace is the company. Keep Claude Code for repos. Do not share production SoR write tokens into the inner harness.",[675,683,685],{"id":684},"is-palantir-aip-an-enterprise-harness","Is Palantir AIP an enterprise harness?",[189,687,688],{},"It can be, as a programme-shaped outer runtime. Ask deployment time, who sets a gate without vendor engineers, and whether the ledger is yours. Category yes; evaluation still required.",[675,690,692],{"id":691},"is-agentforce-enough","Is Agentforce enough?",[189,694,695],{},"If the job is CRM-anchored and stays there, maybe. Cross-system jobs with Legal on the canvas usually need a harness that is not only Salesforce. Clear scopes; avoid two writers.",[675,697,699],{"id":698},"can-we-build-this-on-langchain","Can we build this on LangChain?",[189,701,702,703,706],{},"Yes, with time. You will rebuild grants, quoting, roster, and replay. ",[209,704,705],{"href":311},"Build vs buy",". Frameworks assemble loops; operators still need a loop they can hire.",[675,708,710],{"id":709},"whats-the-first-proof","What’s the first proof?",[189,712,713,714,717],{},"A real cross-department write: operator attaches OAuth; unsigned payload blocked; reject leaves SoR unchanged; export shows signer. ",[209,715,716],{"href":667},"Proof of value",". A chat demo is not this.",[675,719,721],{"id":720},"what-should-i-read-next","What should I read next?",[189,723,724,726,727,726,731,254],{},[209,725,668],{"href":667},". ",[209,728,730],{"href":729},"\u002Fblog\u002Fagent-harness-architecture\u002F","Agent harness architecture",[209,732,734],{"href":733},"\u002Fblog\u002Fwhat-is-harness-engineering\u002F","What is harness engineering",[237,736,738],{"id":737},"related-reading","Related reading",[189,740,741,415,744,254],{},[209,742,743],{"href":275},"What is write-back governance",[209,745,746],{"href":667},"how to evaluate an agent harness",[237,748,750],{"id":749},"sources","Sources",[242,752,753,758,763,768,773,779,784,789,793,797,801,805,809,814,819,825],{},[245,754,755],{},[209,756,757],{"href":211},"LangChain, Agents",[245,759,760],{},[209,761,762],{"href":609},"Databricks, What is an AI agent harness?",[245,764,765],{},[209,766,767],{"href":613},"Wikipedia, Agent harness",[245,769,770],{},[209,771,772],{"href":216},"Thoughtworks, The operating system for enterprise AI",[245,774,775],{},[209,776,778],{"href":777},"https:\u002F\u002Fwww.thoughtworks.com\u002Finsights\u002Fpodcasts\u002Ftechnology-podcasts\u002Fscaling-the-enterprise-harness--how-to-achieve-ai-agent-controll","Thoughtworks, Scaling the enterprise harness",[245,780,781],{},[209,782,783],{"href":570},"Anthropic, Building effective agents",[245,785,786],{},[209,787,788],{"href":349},"McKinsey, The state of AI in 2025",[245,790,791],{},[209,792,414],{"href":413},[245,794,795],{},[209,796,419],{"href":418},[245,798,799],{},[209,800,424],{"href":423},[245,802,803],{},[209,804,407],{"href":406},[245,806,807],{},[209,808,397],{"href":396},[245,810,811],{},[209,812,813],{"href":401},"SEC, Sarbanes–Oxley",[245,815,816],{},[209,817,818],{"href":391},"CBC, Air Canada chatbot lawsuit",[245,820,821],{},[209,822,824],{"href":823},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Findex","Model Context Protocol specification",[245,826,827],{},[209,828,830],{"href":829},"https:\u002F\u002Fwww.swebench.com\u002F","SWE-bench",{"title":169,"searchDepth":170,"depth":170,"links":832},[833,834,835,836,837,838,839,840,849,850],{"id":239,"depth":170,"text":240},{"id":343,"depth":170,"text":344},{"id":428,"depth":170,"text":429},{"id":537,"depth":170,"text":538},{"id":579,"depth":170,"text":580},{"id":618,"depth":170,"text":619},{"id":643,"depth":170,"text":644},{"id":672,"depth":170,"text":673,"children":841},[842,844,845,846,847,848],{"id":677,"depth":843,"text":678},3,{"id":684,"depth":843,"text":685},{"id":691,"depth":843,"text":692},{"id":698,"depth":843,"text":699},{"id":709,"depth":843,"text":710},{"id":720,"depth":843,"text":721},{"id":737,"depth":170,"text":738},{"id":749,"depth":170,"text":750},"2026-08-24","An enterprise agent harness is the outer runtime for operators: a wiki, scoped connectors, agent teams, write gates, and a ledger.",{"eyebrow":854,"title":855},"Short answers","The outer runtime for operators",[857,860,863],{"question":858,"answer":859},"What is an enterprise agent harness?","The outer runtime for operators: a wiki, scoped connectors, agent teams, write gates, and a ledger.",{"question":861,"answer":862},"Is a coding benchmark that harness?","No. A SWE-bench score does not grant a production login, and a chat with every production login is not a harness either.",{"question":864,"answer":865},"Who is it for?","Operators who need an agent to do company work and still be able to stop it.","\u002Fblog\u002Fwhat-is-an-enterprise-agent-harness",{"title":179,"description":852},"explainer","blog\u002Fwhat-is-an-enterprise-agent-harness",[868,871,872,331],"agent-harness","enterprise-ai","A1kbd3VxJotoXRDlHSlL2CNJkRzlKHNwzm2SnM8sYGc",{"hero":875,"id":877,"title":878,"archived":163,"authors":164,"badge":164,"body":879,"date":164,"definedTerm":164,"department":164,"description":883,"extension":172,"eyebrow":884,"faqHeader":164,"faqs":164,"footerBand":885,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":60,"relatedHeading":891,"seo":892,"series":164,"sitemap":131,"status":164,"stem":893,"subhead":164,"tags":164,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":894},{"filename":876},"u2221455217_Flat_design_of_a_futuristic_minimalist_landscape__5d589295-cdea-4ea9-a262-be766881accf_1.png","content\u002Fblog\u002Findex.md","Exploring the future of intelligence.",{"type":166,"value":880,"toc":881},[],{"title":169,"searchDepth":170,"depth":170,"links":882},[],"Deep dives into pre-cognitive intelligence, sentient enterprises, and the evolving landscape of AI-driven business transformation.","Latest Research",{"headline":886,"description":887,"primaryLabel":888,"primaryTo":889,"secondaryLabel":890,"secondaryTo":12},"Stay at the frontier.","Subscribe for product updates and new insights.","Subscribe","\u002Fnewsletter","Explore the platform","More research",{"title":878,"description":883},"blog\u002Findex","BFSWGYO9bcTlaulivKYWyg08_DJHsdGg3OC6g_CG1Hw",[896,1526],{"id":897,"title":898,"archived":163,"authors":899,"badge":901,"body":902,"date":851,"definedTerm":164,"department":164,"description":1506,"extension":172,"eyebrow":164,"faqHeader":1507,"faqs":1509,"footerBand":164,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":1519,"relatedHeading":164,"seo":1520,"series":868,"sitemap":131,"status":164,"stem":1521,"subhead":164,"tags":1522,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":1525},"content\u002Fblog\u002Fwhat-is-harness-engineering.md","What is Harness Engineering",[900],{"name":182,"to":183},{"label":185},{"type":166,"value":903,"toc":1488},[904,910,933,936,948,964,966,1045,1051,1053,1060,1062,1082,1094,1108,1111,1115,1125,1144,1157,1171,1185,1197,1200,1204,1210,1216,1229,1240,1249,1253,1259,1265,1271,1277,1291,1294,1306,1310,1313,1326,1328,1332,1335,1339,1346,1350,1357,1361,1368,1372,1389,1391,1404,1406,1414,1416],[189,905,906,909],{},[193,907,908],{},"Harness engineering"," is the practice of treating the runtime around a model as the system you design, test, and tighten — so that when an agent fails, you change the environment, not only the prompt.",[189,911,912,914,915,918,919,923,924,928,929,932],{},[209,913,575],{"href":211}," defines the object: Agent = Model + Harness. Harness engineering is what you ",[353,916,917],{},"do"," to that object. ",[209,920,922],{"href":921},"https:\u002F\u002Faddyosmani.com\u002Fblog\u002Fagent-harness-engineering\u002F","Addy Osmani"," puts the payoff in one line: a decent model with a great harness beats a great model with a bad harness. ",[209,925,927],{"href":926},"https:\u002F\u002Fmartinfowler.com\u002Farticles\u002Fharness-engineering.html","Birgitta Böckeler’s article on martinfowler.com"," is the user’s-side map for coding agents: guides in, sensors back. Thoughtworks then asked the organisational question: ",[209,930,931],{"href":777},"how you scale that harness across a company"," without turning every team into a snowflake of markdown files.",[189,934,935],{},"The practice showed up because prompt engineering hit a wall that everyone could see and nobody wanted to name. You can spend a week on a system prompt. The agent will still skip the test, ignore the style guide, or report the task finished. The model is non-deterministic. The prompt is interpreted, not executed. The harness is code. That is the whole discipline.",[189,937,938,939,943,944,254],{},"The companion discipline for work that already has a checklist is ",[209,940,942],{"href":941},"\u002Fblog\u002Fwhat-is-loop-engineering\u002F","loop engineering",". The cut between the two is ",[209,945,947],{"href":946},"\u002Fblog\u002Floop-engineering-vs-harness-engineering\u002F","loop engineering vs harness engineering",[189,949,950,951,954,955,959,960,963],{},"This is not a replacement for ",[209,952,953],{"href":570},"prompt"," or ",[209,956,958],{"href":957},"https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents","context"," work. Those live ",[353,961,962],{},"inside"," the harness. Harness engineering is the wider loop: every failure becomes a rule, a hook, a test, or a denied tool — the ratchet Osmani describes — so the same mistake is cheaper the second time and impossible the tenth.",[237,965,240],{"id":239},[242,967,968,974,994,1005,1016,1022,1028,1036],{},[245,969,970,973],{},[193,971,972],{},"Ratchet."," A failure updates the harness. Commented-out test → pre-commit hook and a reviewer check. Invented CRM field → schema quote and a Hard gate. If you only fix the artefact by hand, you did operations. You did not do harness engineering.",[245,975,976,979,980,983,984,320,986,989,990,993],{},[193,977,978],{},"Guides (feed-forward)."," Context the agent gets ",[353,981,982],{},"before"," it acts: ",[445,985,447],{},[445,987,988],{},"CLAUDE.md",", architecture notes, ",[209,991,992],{"href":455},"company wiki"," playbooks. Böckeler’s term. Advice. Necessary. Not a stop.",[245,995,996,999,1000,1004],{},[193,997,998],{},"Sensors (feedback)."," Deterministic checks (compiler, linter, schema, pytest) and inferential checks (LLM reviewer, specialist critic). ",[209,1001,1003],{"href":1002},"https:\u002F\u002Fwww.thoughtworks.com\u002Fen-us\u002Finsights\u002Fblog\u002Fgenerative-ai\u002Fharness-engineering-agent-feedback-exploring-ai-coding-sensors","Thoughtworks on sensors",". Without sensors the agent grades its own homework.",[245,1006,1007,1010,1011,1015],{},[193,1008,1009],{},"Hooks."," Lifecycle intercepts that always run. ",[209,1012,1014],{"href":1013},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fhooks","Claude Code"," can block a tool with exit code 2. LangChain middleware is the library form. A guide that says “never run rm -rf” is not a hook.",[245,1017,1018,1021],{},[193,1019,1020],{},"Harness-as-a-service."," Osmani’s HaaS framing: you used to build on completion APIs; you now build on runtime APIs (Claude Agent SDK, Codex SDK, OpenAI Agents SDK) that already own the loop, sandbox, and hooks. You configure; you do not re-implement ReAct.",[245,1023,1024,1027],{},[193,1025,1026],{},"Skill issue."," HumanLayer’s joke with a serious edge: most agent failures are configuration. Blaming the model first is how teams wait for the next release instead of adding a sensor.",[245,1029,1030,491,1032,1035],{},[193,1031,259],{},[209,1033,1034],{"href":216},"Thoughtworks’ enterprise layer",": who may build which harness, how exceptions work, identity, economics, learning. The gap after builder harnesses (Claude Code, Cursor) and user harnesses (guides and sensors on a repo).",[245,1037,1038,1041,1042,254],{},[193,1039,1040],{},"Eval loop."," Independent verification that does not take the model’s word. SWE-bench and Terminal-Bench for code. Quoted payload vs executed write for operations. See ",[209,1043,1044],{"href":301},"eval loops for enterprise agent harnesses",[189,1046,1047,1048,1050],{},"In Nimbus, harness engineering for operators looks like: wiki revisions as guides, connector scopes as tool policy, Soft \u002F Hard \u002F Critical as hooks on the write plane, and the ",[209,1049,23],{"href":334}," as the sensor log you can query. That is the same discipline as adding a linter. The artefact is a signed CRM change rather than a green CI job.",[237,1052,344],{"id":343},[189,1054,1055,1056,1059],{},"If you only tune prompts, every incident is a conversation. If you engineer the harness, incidents become tests. ",[209,1057,1058],{"href":413},"NIST’s AI RMF"," Measure and Manage steps assume you can change controls after you observe harm. A prompt history is not a control change. A hook that now fires is.",[189,1061,368],{},[242,1063,1064,1067,1073,1076,1079],{},[245,1065,1066],{},"agents already write code or propose writes to live systems",[245,1068,1069,1070,1072],{},"two teams have two ",[445,1071,988],{}," files that contradict Legal",[245,1074,1075],{},"you cannot say which harness version ran last Tuesday",[245,1077,1078],{},"spend is “the model was verbose” rather than “the loop had no budget”",[245,1080,1081],{},"auditors ask who could have stopped the action, and the answer is “the model was supposed to ask”",[189,1083,1084,1086,1087,1090,1091,1093],{},[209,1085,350],{"href":349}," keeps showing usage without redesign. Harness engineering ",[353,1088,1089],{},"is"," the redesign for agentic work: not a new department named AI, a runtime with stops. ",[209,1092,419],{"href":418}," wants named AI actors and documented operational controls. You cannot name actors if every operator’s personal GPT is a different harness.",[189,1095,1096,1097,1100,1101,1103,1104,1107],{},"Coding teams already have half of this and do not always notice. Types, tests, CI, CODEOWNERS — Böckeler’s point is that those ",[353,1098,1099],{},"are"," sensors. The work is to point the agent at them and to add the ones that are missing (architecture fitness, behaviour: did it do what was asked). Operations teams usually have the human version — maker-checker, SoD, SOX — and have not yet wired those instincts into a loop. ",[209,1102,276],{"href":275}," is that wiring. ",[209,1105,1106],{"href":494},"Human-in-the-loop approval architecture"," is the state machine.",[189,1109,1110],{},"Air Canada’s chatbot and the sanctioned ChatGPT brief are what happens when generation reaches a system of record with no ratchet. The fix is not a sterner system prompt. The fix is a harness that cannot emit a commitment or a filing until a named person has seen the artefact.",[237,1112,1114],{"id":1113},"the-practice-not-the-slogan","The practice, not the slogan",[189,1116,1117,1120,1121,1124],{},[193,1118,1119],{},"1. Work backward from the behaviour you cannot afford to miss once."," Inner loop: never merge without tests; never ",[445,1122,1123],{},"git push --force"," to main. Outer loop: never PATCH Opportunity.Amount without a Hard quote. Write those as hooks, not as paragraphs.",[189,1126,1127,491,1130,1134,1135,1137,1138,1140,1141,1143],{},[193,1128,1129],{},"2. Separate advice from invariants.",[209,1131,1133],{"href":1132},"https:\u002F\u002Fclaude.com\u002Fblog\u002Fsteering-claude-code-skills-hooks-rules-subagents-and-more","Anthropic’s steering note for Claude Code"," is unusually clear: ",[445,1136,988],{}," is always-on context; hooks fire on events and can block. If a rule must hold when the model is tired, it graduates from markdown to a hook. Enterprise equivalent: playbooks in the ",[209,1139,319],{"href":318}," versus the interceptor in ",[209,1142,331],{"href":330},". If they conflict, the interceptor wins.",[189,1145,1146,1149,1150,1153,1154,254],{},[193,1147,1148],{},"3. Put verification outside the generator."," Anthropic’s long-running harness uses incremental commits and end-to-end checks so later sessions cannot declare victory by vibes. Coding sensors: pytest, tsc, lint. Enterprise sensors: schema of the quote, identity of the signer, hash of the payload that executed, connector grant still attached. The model may ",[353,1151,1152],{},"propose"," that it is done. The harness ",[353,1155,1156],{},"decides",[189,1158,1159,1162,1163,1165,1166,1170],{},[193,1160,1161],{},"4. Version the harness."," Which ",[445,1164,447],{},", which wiki revision, which team contract, which approval tier ran. ",[209,1167,1169],{"href":1168},"\u002Fblog\u002Fwhat-is-an-agentic-workflow\u002F","What is an agentic workflow"," already treats workflow version as an input. Harness engineering extends that to tools and gates. Hot-patching production prompts without a change record is how Tuesday becomes unexplained.",[189,1172,1173,1176,1177,415,1180,1184],{},[193,1174,1175],{},"5. Budget the loop."," Max steps and a cost cap that do not depend on the model’s judgement. Seat licences hide this; metered work makes it visible. See ",[209,1178,1179],{"href":526},"What is model routing",[209,1181,1183],{"href":1182},"\u002Fblog\u002Fwhat-is-ai-token-economics\u002F","what is AI token economics",". Always-flagship is not careful. It is an unengineered harness.",[189,1186,1187,1190,1191,1193,1194,1196],{},[193,1188,1189],{},"6. Do not fork a harness per person."," User-owned bots are how mandates drift. Org-level ",[209,1192,327],{"href":475}," assigned to ",[209,1195,234],{"href":233}," is the enterprise form of “one CI config per repo, not one per intern.” Thoughtworks’ organisational harness is this ownership question: who is allowed to add a write tool.",[189,1198,1199],{},"Nimbus encodes several of these as product defaults — read-only connectors until you enable write, quoted payloads, graph on the way out — because operators should not have to re-implement ReAct to get a ratchet. You can still fail the practice: a wiki that is never updated, a Critical tier nobody uses, a graph nobody queries. The product is not the practice. The practice is whether last month’s incident produced a new gate.",[237,1201,1203],{"id":1202},"how-this-differs-from-adjacent-crafts","How this differs from adjacent crafts",[189,1205,1206,1209],{},[193,1207,1208],{},"Prompt engineering"," improves a single call. Necessary for tone, tool descriptions, and “what good looks like.” Insufficient for tool dispatch, identity, and replay.",[189,1211,1212,1215],{},[193,1213,1214],{},"Context engineering"," governs what the model sees this turn: compaction, retrieval, files. Anthropic’s initializer agent is context engineering in a harness. It is not permission to write NetSuite.",[189,1217,1218,1221,1222,1225,1226,254],{},[193,1219,1220],{},"Platform \u002F DevOps."," CI, sandboxes, secrets. Harness engineering ",[353,1223,1224],{},"reuses"," thosensors and execution environments. It adds the fact that the component in the loop is non-deterministic, so “the job returned zero” is not enough: you need independent tests of the ",[353,1227,1228],{},"claim",[189,1230,1231,1234,1235,1239],{},[193,1232,1233],{},"Governance-as-PDF."," Policy. Harness engineering is whether the tool call is reachable. ",[209,1236,1238],{"href":1237},"\u002Fblog\u002Fwhat-is-ai-governance\u002F","What is AI governance"," is the buying cousin.",[189,1241,1242,1245,1246,254],{},[193,1243,1244],{},"Framework assembly."," Writing LangGraph nodes is building a harness in code. Harness engineering is the ongoing discipline after the graph exists: sensors, ownership, eval. See ",[209,1247,1248],{"href":560},"agent harness vs agent framework",[237,1250,1252],{"id":1251},"four-layers-one-ratchet","Four layers, one ratchet",[189,1254,1255,1258],{},[209,1256,1257],{"href":216},"Thoughtworks’ July 2026 essay"," is the organisational map most engineering blogs skip. They split enterprise AI into four harness layers. Most companies have built one, maybe two. The gap is not a smarter model.",[189,1260,1261,1264],{},[193,1262,1263],{},"Layer 1 — the model."," Substrate. Choice still matters for cost, residency, and task fit. It is the wrong unit of analysis for a programme. Teams that prototype, hit a failure, and buy the next flagship are looping on layer 1.",[189,1266,1267,1270],{},[193,1268,1269],{},"Layer 2 — the builder harness."," Frameworks, tool access, memory, where inference runs. LangChain, Claude Agent SDK, AIP-style platforms, Nimbus’s hosted loop. Without layer 3, every team invents naming and review. Without layer 4, nobody owns failure.",[189,1272,1273,1276],{},[193,1274,1275],{},"Layer 3 — the user harness."," Guides and sensors on the job. Böckeler’s taxonomy lives here. Thoughtworks add a useful matrix: feed-forward vs feedback, crossed with deterministic vs probabilistic. Deterministic feed-forward is a whitelist and a spend ceiling — cheap, auditable, default. Probabilistic feed-forward is a runbook retrieved at decision time. Deterministic feedback is schema validation after the act. Probabilistic feedback is an eval model on a rubric — expensive, use on critical paths only. A guide with no sensor is theatre.",[189,1278,1279,1282,1283,1286,1287,1290],{},[193,1280,1281],{},"Layer 4 — the organisational harness."," Who may grant which autonomy, escalation, accountability when layers 1–3 all “worked” and the company still took harm. Thoughtworks’ public cases: Parloa, where versioned rules, skills, commands, and helpers lived ",[353,1284,1285],{},"in the repo"," (they report p95 latency drops they attribute to harness architecture, not a new model); Morgan Stanley, where hygiene and CVE triage used a ",[353,1288,1289],{},"delegation tier"," instead of a yes\u002Fno “do we trust the agent.” You do not need those vendors to accept the lesson: governance that is not versioned next to the work decays.",[189,1292,1293],{},"Harness engineering is the steering loop across those layers. Sensor data reveals a miss. Guides update. Hooks graduate. Templates change. The next job is cheaper. An organisation with that loop has a compounding harness. An organisation without one has markdown that rots while models improve.",[189,1295,1296,1297,1299,1300,1302,1303,1305],{},"A concrete week: Monday the agent comments out a flaky test (inner) or proposes Amount without CloseDate (outer). Tuesday a human fixes the artefact. That is operations. Harness engineering is Tuesday’s hook or schema sensor, Wednesday’s wiki or ",[445,1298,447],{}," line, Thursday’s replay that the new control fired. Friday you run the job ten times and count refuses. Nimbus makes the outer version of that week a product surface — ",[209,1301,331],{"href":330}," queues, ",[209,1304,335],{"href":334}," export — so operators are not waiting on a platform sprint to add the sensor. You still have to look at the refuse count. A product without a steering cadence is layer 2 with a nicer UI.",[237,1307,1309],{"id":1308},"what-good-looks-like","What good looks like",[189,1311,1312],{},"Good: a named owner for the harness (not “AI working group”), a cadence that turns incidents into controls, deterministic gates on knowable bounds, inferential checks only where judgement is required, versioned guides, exportable traces. Failure: a new system prompt after every incident; sensors the agent can skip; no owner; SWE-bench as the only score for a CRM job; layer 4 as a PDF.",[189,1314,1315,1318,1319,1321,1322,1325],{},[209,1316,1317],{"href":921},"Osmani’s ratchet"," and Thoughtworks’ steering loop are the same instinct. ",[209,1320,668],{"href":667}," asks whether your vendor lets you ",[353,1323,1324],{},"run"," that instinct.",[237,1327,673],{"id":672},[675,1329,1331],{"id":1330},"who-coined-harness-engineering","Who coined “harness engineering”?",[189,1333,1334],{},"The phrase circulated in early 2026 across OpenAI engineering notes (Ryan Lopopolo’s line of work), LangChain’s anatomy posts, Böckeler at Thoughtworks, and Osmani’s synthesis. Treat it as a shared 2026 name for work teams were already doing, not a trademarked method.",[675,1336,1338],{"id":1337},"is-this-only-for-coding-agents","Is this only for coding agents?",[189,1340,1341,1342,1345],{},"The literature is densest there because tests already exist. The discipline is the same for RevOps and Finance: independent sensors, fail-closed writes, versioned context. An ",[209,1343,195],{"href":1344},"\u002Fblog\u002Fwhat-is-an-enterprise-agent-harness\u002F"," is that application.",[675,1347,1349],{"id":1348},"do-we-wait-for-a-better-model-instead","Do we wait for a better model instead?",[189,1351,1352,1353,1356],{},"You still buy better models. You do not pause the ratchet. Stronger models attempt larger jobs and fail in new ways. Anthropic’s long-running work exists ",[353,1354,1355],{},"because"," models got good enough to outlast a window.",[675,1358,1360],{"id":1359},"how-do-we-start-this-quarter","How do we start this quarter?",[189,1362,1363,1364,1367],{},"Pick one job that already has a finish line. Encode guides. Attach one deterministic sensor. Add one hook that can refuse. Run it ten times. Every failure updates the harness. That is a ",[209,1365,1366],{"href":667},"proof of value"," for the practice, not a chat demo.",[675,1369,1371],{"id":1370},"how-does-nimbus-fit-without-becoming-the-definition","How does Nimbus fit without becoming the definition?",[189,1373,1374,1375,320,1377,320,1380,320,1383,1385,1386,1388],{},"Nimbus is an outer harness you can hire: ",[209,1376,234],{"href":323},[209,1378,1379],{"href":326},"teams",[209,1381,1382],{"href":330},"gates",[209,1384,335],{"href":334},". Score it the way you score Claude Code: can you add a sensor, refuse a write, and replay who signed. ",[209,1387,668],{"href":667}," is the sheet.",[675,1390,721],{"id":720},[189,1392,1393,1396,1397,1399,1400,1403],{},[209,1394,1395],{"href":223},"Inner vs outer agent harness"," for the repo\u002Fcompany cut. ",[209,1398,730],{"href":729}," for the parts. ",[209,1401,1402],{"href":435},"What is an agent harness"," if you still need the noun.",[237,1405,738],{"id":737},[189,1407,1408,415,1411,254],{},[209,1409,1410],{"href":228},"What is an enterprise AI operating system",[209,1412,1413],{"href":275},"How to solve AI that cannot write back safely",[237,1415,750],{"id":749},[242,1417,1418,1422,1427,1432,1437,1442,1446,1451,1457,1461,1466,1471,1476,1480,1484],{},[245,1419,1420],{},[209,1421,757],{"href":211},[245,1423,1424],{},[209,1425,1426],{"href":574},"LangChain, The anatomy of an agent harness",[245,1428,1429],{},[209,1430,1431],{"href":926},"Böckeler, Harness engineering for coding agent users",[245,1433,1434],{},[209,1435,1436],{"href":1002},"Thoughtworks, Harness engineering and agent feedback",[245,1438,1439],{},[209,1440,1441],{"href":777},"Thoughtworks, Scaling the enterprise harness (podcast)",[245,1443,1444],{},[209,1445,772],{"href":216},[245,1447,1448],{},[209,1449,1450],{"href":921},"Addy Osmani, Agent harness engineering",[245,1452,1453],{},[209,1454,1456],{"href":1455},"https:\u002F\u002Fwww.oreilly.com\u002Fradar\u002Fagent-harness-engineering\u002F","O’Reilly Radar, Agent harness engineering",[245,1458,1459],{},[209,1460,783],{"href":570},[245,1462,1463],{},[209,1464,1465],{"href":957},"Anthropic, Effective harnesses for long-running agents",[245,1467,1468],{},[209,1469,1470],{"href":1132},"Anthropic, Steering Claude Code",[245,1472,1473],{},[209,1474,1475],{"href":1013},"Claude Code, Hooks",[245,1477,1478],{},[209,1479,788],{"href":349},[245,1481,1482],{},[209,1483,414],{"href":413},[245,1485,1486],{},[209,1487,419],{"href":418},{"title":169,"searchDepth":170,"depth":170,"links":1489},[1490,1491,1492,1493,1494,1495,1496,1504,1505],{"id":239,"depth":170,"text":240},{"id":343,"depth":170,"text":344},{"id":1113,"depth":170,"text":1114},{"id":1202,"depth":170,"text":1203},{"id":1251,"depth":170,"text":1252},{"id":1308,"depth":170,"text":1309},{"id":672,"depth":170,"text":673,"children":1497},[1498,1499,1500,1501,1502,1503],{"id":1330,"depth":843,"text":1331},{"id":1337,"depth":843,"text":1338},{"id":1348,"depth":843,"text":1349},{"id":1359,"depth":843,"text":1360},{"id":1370,"depth":843,"text":1371},{"id":720,"depth":843,"text":721},{"id":737,"depth":170,"text":738},{"id":749,"depth":170,"text":750},"Harness engineering fixes the environment when an agent fails — tools, hooks, tests, and stops — instead of rewriting the prompt.",{"eyebrow":854,"title":1508},"Change the environment, not only the prompt",[1510,1513,1516],{"question":1511,"answer":1512},"What is harness engineering?","The practice of fixing the environment when an agent fails: tools, hooks, tests, and stops, instead of rewriting the prompt and hoping.",{"question":1514,"answer":1515},"Is it the same as loop engineering?","No. Harness engineering is the runtime around a model. Loop engineering compiles the known path for work that should not need a model. The difference is in loop engineering vs harness engineering.",{"question":1517,"answer":1518},"What is the unit of improvement?","A hook, a test, or a denied tool that makes the same failure harder next time. A better prompt is not that unit.","\u002Fblog\u002Fwhat-is-harness-engineering",{"title":898,"description":1506},"blog\u002Fwhat-is-harness-engineering",[868,1523,871,1524],"harness-engineering","evaluation","yqpYG2v1Q5Y8Ha8LFLJQGDWhGB57dvh8fQSoMbyWPsY",{"id":1527,"title":1528,"archived":163,"authors":1529,"badge":1531,"body":1532,"date":851,"definedTerm":164,"department":164,"description":2102,"extension":172,"eyebrow":164,"faqHeader":2103,"faqs":2105,"footerBand":164,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":2115,"relatedHeading":164,"seo":2116,"series":868,"sitemap":131,"status":164,"stem":2117,"subhead":164,"tags":2118,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":2120},"content\u002Fblog\u002Fwhat-is-an-agent-harness.md","What is an Agent Harness",[1530],{"name":182,"to":183},{"label":185},{"type":166,"value":1533,"toc":2084},[1534,1547,1554,1563,1575,1577,1668,1682,1684,1690,1692,1709,1721,1733,1739,1743,1746,1760,1771,1785,1798,1806,1816,1828,1832,1835,1838,1844,1851,1868,1887,1891,1903,1912,1921,1928,1930,1934,1937,1941,1944,1948,1956,1960,1963,1967,1973,1977,1982,1984,1995,1997,2006,2008],[189,1535,191,1536,1539,1540,1543,1544,1546],{},[193,1537,1538],{},"agent harness"," is the software around a large language model that turns next-token prediction into work: tools, memory, a loop, permissions, and a stop. ",[209,1541,1542],{"href":211},"LangChain’s 2026 documentation"," writes the equation in plain type: ",[193,1545,212],{},". The model reasons. The harness is everything else.",[189,1548,1549,1550,1553],{},"That sentence is not marketing. An unaided model is stateless. It produces text. It cannot keep a file, call Salesforce, fail a linter, or refuse a write. The ",[209,1551,1552],{"href":613},"Wikipedia entry on agent harnesses"," records the same split, and notes that the UK’s AI Security Institute already described an AI agenthe model plus scaffolding in 2023. The industry spent two years arguing about which model was smartest. In 2026 it started arguing about which environment the model was sitting in.",[189,1555,1556,1558,1559,1562],{},[209,1557,610],{"href":609}," uses a body-and-brain analogy: the model is the brain; the harness is the body and the workspace. ",[209,1560,1561],{"href":574},"LangChain’s anatomy post"," is more mechanical. A harness is every piece of code, configuration, and execution logic that is not the model itself. A raw model is not an agent. It becomes one when a harness gives it state, tool execution, feedback loops, and constraints that do not depend on the model’s mood.",[189,1564,1565,1566,1568,1569,1571,1572,1574],{},"This article is the definition. ",[209,1567,734],{"href":733}," is the practice of tightening that environment when the agent fails. ",[209,1570,1395],{"href":223}," is the cut between a repo and a company. An ",[209,1573,195],{"href":1344}," is the outer case: operators, signers, a ledger.",[237,1576,240],{"id":239},[242,1578,1579,1585,1591,1597,1607,1619,1636,1648,1656],{},[245,1580,1581,1584],{},[193,1582,1583],{},"Harness \u002F scaffolding."," Same object, two eras. Scaffolding is the 2023–2024 research word. Harness is the 2026 product word. Both mean the runtime around the weights.",[245,1586,1587,1590],{},[193,1588,1589],{},"Agent."," The composed system. Not the model. Not the chat UI. If you can swap the model and the job still runs, you were looking at the harness.",[245,1592,1593,1596],{},[193,1594,1595],{},"Loop."," Plan, act, observe, repeat — the ReAct-shaped cycle popularised in 2022 and now owned by the harness, not by the prompt. The harness dispatches the tool, returns the result, and decides whether to continue.",[245,1598,1599,1602,1603,1606],{},[193,1600,1601],{},"Stop."," Budget, max steps, empty retrieval, tool error, human cancel, wait-for-named-signer. “The model says it is done” is a suggestion. ",[209,1604,1605],{"href":570},"Anthropic’s note on building effective agents"," is honest about this: encoding the job and deciding what “done” means is the boring part that actually matters.",[245,1608,1609,1612,1613,1616,1617,254],{},[193,1610,1611],{},"Tools \u002F skills \u002F MCP."," Hands. The ",[209,1614,1615],{"href":823},"Model Context Protocol"," is a common plug so hosts can call the same servers. Plumbing. A plug is not a permission model. See ",[209,1618,471],{"href":470},[245,1620,1621,1624,1625,1628,1629,1632,1633,1635],{},[193,1622,1623],{},"Hooks \u002F middleware."," Deterministic intercepts on the loop. ",[209,1626,1627],{"href":1013},"Claude Code hooks"," run shell or HTTP at ",[445,1630,1631],{},"PreToolUse"," and can block with exit code 2. LangChain middleware is the same instinct in a library. A line in ",[445,1634,988],{}," is advice. A hook is a gate.",[245,1637,1638,491,1641,1644,1645,1647],{},[193,1639,1640],{},"Guides and sensors.",[209,1642,1643],{"href":926},"Birgitta Böckeler’s framing on martinfowler.com",": feed-forward context (conventions, architecture, ",[445,1646,447],{},") versus feedback (linters, tests, reviewers). A harness that only prompts is half a harness.",[245,1649,1650,1653,1654,254],{},[193,1651,1652],{},"Inner harness."," Coding agents: Claude Code, Cursor, Codex. Workspace is a repository. Tests are the eval. See ",[209,1655,253],{"href":223},[245,1657,1658,1661,1662,320,1664,1667],{},[193,1659,1660],{},"Outer \u002F enterprise harness."," Operators. Connectors, ",[209,1663,234],{"href":233},[209,1665,1666],{"href":275},"write-back",", a ledger. Workspace is the company. A passing unit test does not prove a CRM write was authorised.",[189,1669,1670,1671,320,1673,320,1675,320,1677,320,1679,1681],{},"Nimbus is one outer harness: ",[209,1672,319],{"href":318},[209,1674,327],{"href":326},[209,1676,234],{"href":323},[209,1678,331],{"href":330},[209,1680,23],{"href":334},". Claude Code is a strong inner harness. Calling either “an agent” without naming the harness is how RFPs buy a model and inherit someone else’s loop.",[237,1683,344],{"id":343},[189,1685,1686,1689],{},[209,1687,1688],{"href":349},"McKinsey’s 2025 State of AI survey"," is the scale gap in one chart: most organisations use AI in at least one function; far fewer have begun to scale. Copilots produce usage. Harnesses produce jobs that finish under a stop. If your programme is “we rolled out ChatGPT Enterprise,” you have licensed a model surface. You have not yet chosen a harness for the work that writes back.",[189,1691,368],{},[242,1693,1694,1697,1700,1703,1706],{},[245,1695,1696],{},"the job is multi-step and tool-using, not a single completion",[245,1698,1699],{},"a live system can change (CRM, ERP, repo, ticket queue)",[245,1701,1702],{},"someone will ask, six months later, why a field or a file changed",[245,1704,1705],{},"you need to swap models without rewriting every tool",[245,1707,1708],{},"you already noticed that a better model still skips the linter, invents a policy, or pastes into Salesforce",[189,1710,1711,1712,1715,1716,1720],{},"In February 2024 a British Columbia tribunal held Air Canada responsible for a chatbot that invented a bereavement-fare policy. ",[209,1713,1714],{"href":391},"CBC reported"," that the airline’s argument — the chatbot is a separate legal entity — failed. That failure is a missing harness, not a missing model: no quote, no signer, no stop before a commitment left the building. In 2023 a New York court ",[209,1717,1719],{"href":1718},"https:\u002F\u002Fwww.reuters.com\u002Flegal\u002Fnew-york-lawyers-sanctioned-using-fake-chatgpt-cases-legal-brief-2023-06-22\u002F","sanctioned lawyers"," who filed ChatGPT-invented cases. Ungated generation reached a system of record. CRM writes are the operational twin with money attached.",[189,1722,1723,1725,1726,1728,1729,1732],{},[209,1724,1058],{"href":413}," organises Govern, Map, Measure, Manage. ",[209,1727,419],{"href":418}," is an AI ",[353,1730,1731],{},"management system"," standard. Neither is implemented by a system prompt that says “be careful.” They are implemented by a runtime that can refuse a tool call.",[189,1734,1735,1738],{},[209,1736,1737],{"href":921},"Addy Osmani’s 2026 write-up"," states the engineering claim operators keep rediscovering: a decent model with a great harness beats a great model with a bad harness. When the agent does something dumb, the default instinct is to blame the weights. Harness engineering treats most of those failures as configuration. That is the rest of this cluster.",[237,1740,1742],{"id":1741},"what-a-harness-actually-contains","What a harness actually contains",[189,1744,1745],{},"LangChain’s anatomy and Databricks’s list converge on the same parts. You can inspect each one before you buy a product or assemble a library.",[189,1747,1748,1751,1752,1755,1756,1759],{},[193,1749,1750],{},"The loop."," The harness owns plan → act → observe. It executes the tool. It feeds the result back. It enforces max steps and a cost budget so a stuck agent cannot run forever. ",[209,1753,1754],{"href":957},"Anthropic’s long-running harness note"," shows why this is not a prompt: tasks that outlast one context window need an initializer, incremental sessions, git commits, and a progress file the ",[353,1757,1758],{},"next"," session can read. The model does not remember. The environment does.",[189,1761,1762,1765,1766,1770],{},[193,1763,1764],{},"Tools and execution."," Search, shell, apply_patch, browser, CRM, ERP. The model proposes a call. The harness runs it in a sandbox or against an adapter, handles timeouts, and returns structured results. A generic HTTP tool with a production token is not a harness. It is a confused deputy. ",[209,1767,1769],{"href":1768},"https:\u002F\u002Fgenai.owasp.org\u002Fllm-top-10\u002F","OWASP’s Top 10 for LLM applications"," still applies: excessive agency and unbounded tool use are design failures, not model quirks.",[189,1772,1773,1776,1777,1779,1780,415,1782,254],{},[193,1774,1775],{},"Context and memory."," Working memory is the current window. Session state is progress for this job. Durable memory is files, ",[445,1778,447],{},", a wiki, or a graph — something that survives compaction. Anthropic’s initializer\u002Fcoding-agent split is a memory design: feature lists and commits as cross-session state. A company that stores “what we approved” only in Slack search does not have durable memory for operations. See ",[209,1781,292],{"href":291},[209,1783,1784],{"href":455},"What is a company wiki for AI agents",[189,1786,1787,1790,1791,1793,1794,1797],{},[193,1788,1789],{},"Permissions and hooks."," Who may call which tool, with which identity, on which object. Claude Code’s ",[445,1792,1631],{}," hook can deny Bash regardless of what the model intended. That is the inner version of ",[209,1795,1796],{"href":275},"write-back governance",": the write API is unreachable until a named role signs a quoted payload. A prompt that says “ask Legal first” is not this layer. The model can forget. The user can paste anyway.",[189,1799,1800,1803,1804,254],{},[193,1801,1802],{},"Feedback."," Compilers, tests, linters, schema validators, human review. Böckeler’s sensors. Without them the loop is open: the model reports success and the harness believes it. Terminal-Bench and SWE-bench exist because coding harnesses can grade against an environment. Enterprise writes need an equivalent: did the signed payload match what executed. See ",[209,1805,1044],{"href":301},[189,1807,1808,1811,1812,1815],{},[193,1809,1810],{},"Orchestration."," Subagents, hand-offs, model routing. Optional until the job already splits in the organisation. ",[209,1813,1814],{"href":475},"Multi-agent AI"," is the pattern and the hiring object. A harness that spawns specialists without a stop is a faster way to share a production login.",[189,1817,191,1818,1821,1822,1824,1825,1827],{},[209,1819,1820],{"href":1168},"agentic workflow"," is a designed sequence with business stops. The harness is the runtime that can actually run that sequence. Mixing those two words is how demos skip isolation. A ",[209,1823,650],{"href":233}," is the company object that hosts the job: brief, connectors, people, budget. In Nimbus the workstream is that folder; the harness is wiki + teams + connectors + gates + graph sitting around whichever model ",[209,1826,339],{"href":338}," picks for the step.",[237,1829,1831],{"id":1830},"what-is-not-a-harness","What is not a harness",[189,1833,1834],{},"A chat window with plugins. The human is still the message bus, the permission system, and the audit log.",[189,1836,1837],{},"A system prompt. Advice inside the window. Useful. Not a stop.",[189,1839,1840,1841,1843],{},"A policy PDF. ",[209,1842,1238],{"href":1237}," is a management claim. A harness is whether an unapproved write is impossible.",[189,1845,1846,1847,1850],{},"MCP on its own. A standard plug. See ",[209,1848,1849],{"href":470},"what is Model Context Protocol",". If the server can PATCH Salesforce from natural language, you built a bypass.",[189,1852,1853,1854,1861,1862,1865,1866,254],{},"A framework on its own. ",[209,1855,1857,1858],{"href":1856},"https:\u002F\u002Fwww.langchain.com\u002Fblog\u002Fhow-to-build-a-custom-agent-harness","LangChain’s ",[445,1859,1860],{},"create_agent"," is a way to ",[353,1863,1864],{},"assemble"," a harness. CrewAI, LangGraph, and Pydantic AI are in the same neighbourhood. You still have to choose tools, stops, and identity. See ",[209,1867,1248],{"href":560},[189,1869,1870,1871,415,1875,1879,1880,415,1883,254],{},"A copilot seat. ",[209,1872,1874],{"href":1873},"https:\u002F\u002Fopenai.com\u002Fbusiness\u002Fchatgpt-enterprise\u002F","ChatGPT Enterprise",[209,1876,1878],{"href":1877},"https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fmicrosoft-365\u002Fcopilot","Microsoft 365 Copilot"," are excellent personal surfaces. They are not, by default, a company loop with fail-closed writes. See ",[209,1881,1882],{"href":549},"collaborative AI and personal assistants",[209,1884,1886],{"href":1885},"\u002Fblog\u002Fhow-to-choose-between-a-coding-harness-and-an-enterprise-harness\u002F","how to choose between a coding harness and an enterprise harness",[237,1888,1890],{"id":1889},"how-this-shows-up-in-products","How this shows up in products",[189,1892,1893,1896,1897,1899,1900,1902],{},[193,1894,1895],{},"Coding harnesses."," Claude Code, Cursor, Codex, open shells like OpenHands. Workspace is a checkout. ",[445,1898,988],{}," \u002F ",[445,1901,447],{}," are guides. Hooks, tests, and CI are sensors. Eval is SWE-bench or Terminal-Bench, or your own suite. These are the right shape for software.",[189,1904,1905,1908,1909,1911],{},[193,1906,1907],{},"Library harnesses."," LangChain ",[445,1910,1860],{},", Deep Agents, LangGraph graphs. You compose the loop in code. You own production identity. Good when the job is yours to engineer. A liability when operators are expected to “just add Salesforce.”",[189,1913,1914,1917,1918,1920],{},[193,1915,1916],{},"Enterprise \u002F outer harnesses."," Palantir AIP, Salesforce Agentforce, and self-service OS-class products such as Nimbus. The workspace is a job with connectors and people, not a git root. The interesting stop is a named signer on a quoted write, not a green test. ",[209,1919,668],{"href":667}," is the buying sheet.",[189,1922,1923,1924,1927],{},"Nimbus’s mapping is deliberate and not unique as a ",[353,1925,1926],{},"category",": Perception orients, Conflux collaborates, agent teams run, governance quotes, the graph records. You can score that mapping against the parts above. You should score AIP and Agentforce the same way. Category names do not substitute for a failed write.",[237,1929,673],{"id":672},[675,1931,1933],{"id":1932},"is-the-model-the-agent","Is the model the agent?",[189,1935,1936],{},"No. The agent is model plus harness. Shopping for a model is shopping for a chip. Shopping for a harness is shopping for how work finishes.",[675,1938,1940],{"id":1939},"do-i-need-a-harness-for-a-single-prompt","Do I need a harness for a single prompt?",[189,1942,1943],{},"No. A completion does not need a loop. Multi-step tool use does. Long-running work that outlasts one window does. Writes to live systems do.",[675,1945,1947],{"id":1946},"is-rag-a-harness","Is RAG a harness?",[189,1949,1950,1951,1955],{},"Retrieval is a tool and a memory pattern inside a step. ",[209,1952,1954],{"href":1953},"\u002Fblog\u002Fwhat-is-enterprise-rag\u002F","Enterprise RAG"," does not dispatch tools, enforce a signer, or persist a decision. Useful. Incomplete.",[675,1957,1959],{"id":1958},"can-i-just-use-mcp-as-my-harness","Can I just use MCP as my harness?",[189,1961,1962],{},"You can use MCP as the plug. You still need identity, scope, quoting, and a stop. The spec does not require those.",[675,1964,1966],{"id":1965},"will-a-better-model-shrink-the-harness","Will a better model shrink the harness?",[189,1968,1969,1972],{},[209,1970,1971],{"href":921},"Osmani"," and Anthropic’s long-running work both say the ceiling moves. Tasks that were unreachable come into play and bring new failure modes. Stronger models still do not know your signer, your budget, or your CRM field map.",[675,1974,1976],{"id":1975},"how-is-this-different-from-an-enterprise-ai-os","How is this different from an enterprise AI OS?",[189,1978,191,1979,1981],{},[209,1980,229],{"href":228}," is the company-shaped product: wiki, workstreams, teams, gates, ledger. A harness is the runtime idea underneath — including coding harnesses that are not an OS. Nimbus is an OS-class outer harness. Claude Code is not an OS. Both are harnesses.",[675,1983,721],{"id":720},[189,1985,1986,1988,1989,1991,1992,1994],{},[209,1987,734],{"href":733}," for the practice. ",[209,1990,730],{"href":729}," for the parts in one diagram. ",[209,1993,668],{"href":667}," before a vendor demo.",[237,1996,738],{"id":737},[189,1998,1999,320,2001,2003,2004,254],{},[209,2000,1169],{"href":1168},[209,2002,476],{"href":475},", and ",[209,2005,743],{"href":275},[237,2007,750],{"id":749},[242,2009,2010,2015,2019,2024,2028,2032,2036,2040,2044,2048,2052,2057,2061,2065,2070,2075,2080],{},[245,2011,2012],{},[209,2013,2014],{"href":211},"LangChain, Agents (Agent = Model + Harness)",[245,2016,2017],{},[209,2018,1426],{"href":574},[245,2020,2021],{},[209,2022,2023],{"href":1856},"LangChain, How to build a custom agent harness",[245,2025,2026],{},[209,2027,767],{"href":613},[245,2029,2030],{},[209,2031,762],{"href":609},[245,2033,2034],{},[209,2035,783],{"href":570},[245,2037,2038],{},[209,2039,1465],{"href":957},[245,2041,2042],{},[209,2043,1431],{"href":926},[245,2045,2046],{},[209,2047,1450],{"href":921},[245,2049,2050],{},[209,2051,788],{"href":349},[245,2053,2054],{},[209,2055,2056],{"href":413},"NIST AI Risk Management Framework",[245,2058,2059],{},[209,2060,419],{"href":418},[245,2062,2063],{},[209,2064,818],{"href":391},[245,2066,2067],{},[209,2068,2069],{"href":1718},"Reuters, New York lawyers sanctioned over ChatGPT citations",[245,2071,2072],{},[209,2073,2074],{"href":1768},"OWASP Top 10 for LLM applications",[245,2076,2077],{},[209,2078,2079],{"href":823},"Model Context Protocol specification (2025-11-25)",[245,2081,2082],{},[209,2083,1475],{"href":1013},{"title":169,"searchDepth":170,"depth":170,"links":2085},[2086,2087,2088,2089,2090,2091,2100,2101],{"id":239,"depth":170,"text":240},{"id":343,"depth":170,"text":344},{"id":1741,"depth":170,"text":1742},{"id":1830,"depth":170,"text":1831},{"id":1889,"depth":170,"text":1890},{"id":672,"depth":170,"text":673,"children":2092},[2093,2094,2095,2096,2097,2098,2099],{"id":1932,"depth":843,"text":1933},{"id":1939,"depth":843,"text":1940},{"id":1946,"depth":843,"text":1947},{"id":1958,"depth":843,"text":1959},{"id":1965,"depth":843,"text":1966},{"id":1975,"depth":843,"text":1976},{"id":720,"depth":843,"text":721},{"id":737,"depth":170,"text":738},{"id":749,"depth":170,"text":750},"An agent harness is everything around a model that lets it do work: tools, memory, permissions, loops, and stops.",{"eyebrow":854,"title":2104},"Everything around the model",[2106,2109,2112],{"question":2107,"answer":2108},"What is an agent harness?","Everything around a model that lets it do work: tools, memory, permissions, loops, and stops. Agent equals model plus harness.",{"question":2110,"answer":2111},"Is a chat window with plugins a harness?","No. Plugins without a stop, an identity, and a record are still a chat.",{"question":2113,"answer":2114},"What does the model do, and what does the harness do?","The model proposes. The harness decides which tools exist, what may be written, and when the loop ends.","\u002Fblog\u002Fwhat-is-an-agent-harness",{"title":1528,"description":2102},"blog\u002Fwhat-is-an-agent-harness",[868,871,2119,1523],"agents","nEbkYgxLqx9029Xl-euoJSJGlRL_AZRKSh0pOAnQr80",{"enabled":163,"message":2122,"linkLabel":79,"linkHref":80,"id":2123,"title":2124,"archived":163,"authors":164,"badge":164,"body":2125,"date":164,"definedTerm":164,"department":164,"description":169,"extension":172,"eyebrow":164,"faqHeader":164,"faqs":164,"footerBand":164,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":2129,"relatedHeading":164,"seo":2130,"series":164,"sitemap":163,"status":164,"stem":2131,"subhead":164,"tags":164,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":2132},"We're hiring! Join the team building the Sentient Enterprise.","content\u002Fshared\u002Fhiring.md","Hiring banner",{"type":166,"value":2126,"toc":2127},[],{"title":169,"searchDepth":170,"depth":170,"links":2128},[],"\u002Fshared\u002Fhiring",{"title":2124,"description":169},"shared\u002Fhiring","1zs3boivKda1e-b-hAyuNcmZSKjZUAXmecnwHVgcHzk",{"fold":2134,"id":2138,"title":2139,"archived":163,"authors":164,"badge":164,"body":2140,"date":164,"definedTerm":164,"department":164,"description":169,"extension":172,"eyebrow":164,"faqHeader":164,"faqs":164,"footerBand":2144,"headline":164,"image":164,"industry":164,"jobType":164,"listed":131,"location":164,"navigation":131,"openRoles":164,"pageLayout":164,"path":2148,"relatedHeading":164,"seo":2149,"series":164,"sitemap":163,"status":164,"stem":2150,"subhead":164,"tags":164,"video":164,"whyJoin":164,"workplaceType":164,"__hash__":2151},{"headline":2135,"description":2136,"primaryLabel":8,"primaryTo":2137,"secondaryLabel":890,"secondaryTo":12},"Run frontier AI your business actually owns.","Governed workstreams, 3,000+ integrations, and a proprietary knowledge graph. Start on Free.","\u002Fsignup?plan=free","content\u002Fshared\u002Fcta.md","Site CTAs",{"type":166,"value":2141,"toc":2142},[],{"title":169,"searchDepth":170,"depth":170,"links":2143},[],{"headline":2145,"description":2146,"primaryLabel":8,"primaryTo":2137,"secondaryLabel":2147,"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","\u002Fshared\u002Fcta",{"title":2139,"description":169},"shared\u002Fcta","eYqahyaPnbp8GKrWpoORbZdtmkWmgHr5F61ZHOnb8sY",1792999485608]