[{"data":1,"prerenderedAt":2219},["ShallowReactive",2],{"site-nav-content":3,"blog:/blog/what-is-an-enterprise-agent-harness":178,"blog-index-copy":898,"blog:/blog/what-is-an-enterprise-agent-harness:surround":919,"hiring-banner-content":2188,"site-cta-content":2200},{"header":4,"productNav":9,"nav":42,"footer":61,"askAI":131,"id":162,"title":163,"archived":164,"authors":165,"badge":165,"body":166,"date":165,"definedTerm":165,"department":165,"description":170,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":165,"headline":165,"image":165,"industry":165,"jobType":165,"listed":130,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":174,"relatedHeading":165,"seo":175,"series":165,"sitemap":164,"status":165,"stem":176,"subhead":165,"tags":165,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":177},{"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,"legalHeading":63,"docsLabel":64,"docsUrl":65,"statementLines":66,"copyright":69,"companyLinks":70,"legalLinks":100,"socialLinks":110,"bottomLinks":120},"Company","Legal","Docs","https://docs.gonimbus.ai",[67,68],"Stop training someone else's model.","Control your AI.","© 2026 Nimbus Intelligence, Inc. All rights reserved.",[71,72,73,74,75,78,81,84,87,90,92,95,98],{"label":47,"to":48},{"label":50,"to":51},{"label":53,"to":54},{"label":59,"to":60},{"label":76,"to":77},"Glossary","/glossary",{"label":79,"to":80},"Compare","/compare",{"label":82,"to":83},"Evaluate","/evaluate",{"label":85,"to":86},"Problems","/problems",{"label":88,"to":89},"Use cases","/use-cases",{"label":91,"to":57},"Partner Program",{"label":93,"to":94},"Careers","/careers",{"label":96,"to":97},"System status","/status",{"label":7,"to":99},"/contact",[101,104,107],{"label":102,"to":103},"Terms of Service","/terms",{"label":105,"to":106},"Privacy Policy","/privacy",{"label":108,"to":109},"Compliance","/compliance",[111,114,117],{"label":112,"href":113},"LinkedIn","https://www.linkedin.com/company/gonimbusai/",{"label":115,"href":116},"X","https://x.com/gonimbusai",{"label":118,"href":119},"Instagram","https://www.instagram.com/gonimbus_ai/",[121,123,125,126,127],{"label":122,"to":103},"Terms",{"label":124,"to":106},"Privacy",{"label":108,"to":109},{"label":96,"to":97},{"label":128,"to":129,"external":130},"LLMs.txt","/llms.txt",true,{"text":132,"prompt":133},"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":134,"platforms":136},{" Summarize the highlights from Nimbus's website":135},"https://gonimbus.ai",[137,142,147,152,157],{"name":138,"label":139,"icon":140,"hrefPrefix":141},"chatgpt","ChatGPT","simple-icons:openai","https://chatgpt.com/?prompt=",{"name":143,"label":144,"icon":145,"hrefPrefix":146},"perplexity","Perplexity","mdi:magnify","https://www.perplexity.ai/search/new?q=",{"name":148,"label":149,"icon":150,"hrefPrefix":151},"grok","Grok","simple-icons:x","https://x.com/i/grok?text=",{"name":153,"label":154,"icon":155,"hrefPrefix":156},"claude","Claude","simple-icons:anthropic","https://claude.ai/new?q=",{"name":158,"label":159,"icon":160,"hrefPrefix":161},"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":167,"value":168,"toc":169},"minimark",[],{"title":170,"searchDepth":171,"depth":171,"links":172},"",2,[],"md","/shared/nav",{"title":163,"description":170},"shared/nav","rDEv5cVG6P2l9ATcdQv2n6VOQiSL5ioOutyfvGevcD0",{"id":179,"title":180,"archived":164,"authors":181,"badge":184,"body":186,"date":888,"definedTerm":165,"department":165,"description":889,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":165,"headline":165,"image":165,"industry":165,"jobType":165,"listed":164,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":890,"relatedHeading":165,"seo":891,"series":892,"sitemap":130,"status":165,"stem":893,"subhead":165,"tags":894,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":897},"content/blog/what-is-an-enterprise-agent-harness.md","What is an Enterprise Agent Harness",[182],{"name":183,"to":135},"Nimbus Research",{"label":185},"Explainer",{"type":167,"value":187,"toc":868},[188,197,214,231,236,308,330,334,356,359,376,403,423,427,435,454,474,489,505,515,524,535,541,545,550,557,568,571,585,589,601,608,611,614,627,631,634,640,651,654,658,675,687,691,696,699,703,706,710,713,717,725,729,737,741,755,759,768,772],[189,190,191,192,196],"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.",[189,198,199,200,207,208,213],{},"It is still ",[201,202,206],"a",{"href":203,"rel":204},"https://docs.langchain.com/oss/python/langchain/agents",[205],"nofollow","Agent = Model + Harness",". The workspace is not a git root. The sensor is not only pytest. The stop is not only max steps. ",[201,209,212],{"href":210,"rel":211},"https://www.thoughtworks.com/insights/articles/operating-system-enterprise-ai",[205],"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,215,216,220,221,225,226,230],{},[201,217,219],{"href":218},"inner-vs-outer-agent-harness","Inner vs outer"," is the cut. This page is the outer object in full. An ",[201,222,224],{"href":223},"what-is-an-enterprise-ai-operating-system","enterprise AI operating system"," is the product category that usually ships it: wiki, ",[201,227,229],{"href":228},"what-is-an-ai-workstream","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.",[232,233,235],"h2",{"id":234},"words-youll-hear","Words you’ll hear",[237,238,239,250,256,262,272,278,288,298],"ul",{},[240,241,242,245,246,249],"li",{},[193,243,244],{},"Outer harness."," Company workspace. See ",[201,247,248],{"href":218},"inner vs outer",".",[240,251,252,255],{},[193,253,254],{},"Organizational harness."," Thoughtworks’ fourth layer after model, builder harness, and user harness. Governance architecture, not another markdown file.",[240,257,258,261],{},[193,259,260],{},"Workstream."," Isolation domain: roster, connectors, budget, finish line. The job folder. Not a chat title.",[240,263,264,267,268,249],{},[193,265,266],{},"Write quoting."," The human sees the change in the language of the live system before sign-off. ",[201,269,271],{"href":270},"what-is-write-back-governance","Write-back governance",[240,273,274,277],{},[193,275,276],{},"Fail-closed."," Missing approval, detached grant, or down interceptor means nothing mutates. Fail-open is a faster incident.",[240,279,280,283,284,249],{},[193,281,282],{},"Ledger / Lifecycle Graph."," AI operations events: brief, agents, policy version, signer, payload. Distinct from the warehouse’s business events. See ",[201,285,287],{"href":286},"what-is-a-lifecycle-graph","What is a lifecycle graph",[240,289,290,293,294,249],{},[193,291,292],{},"SWE-bench / Terminal-Bench."," Inner evals. Useful for engineering vendors. Not a SOX control. ",[201,295,297],{"href":296},"eval-loops-for-enterprise-agent-harnesses","Eval loops",[240,299,300,303,304,249],{},[193,301,302],{},"Forward-deployed programme."," Vendor engineers for months. AIP at scale. Capability can be real. Time-to-value is staffing. ",[201,305,307],{"href":306},"self-service-vs-forward-deployed-ai-platforms","Self-service vs forward-deployed",[189,309,310,311,314,315,314,317,314,320,314,323,314,326,329],{},"Nimbus is one self-service enterprise harness: ",[201,312,313],{"href":28},"wiki",", ",[201,316,229],{"href":32},[201,318,319],{"href":20},"agent teams",[201,321,322],{"href":40},"governance",[201,324,325],{"href":24},"graph",[201,327,328],{"href":45},"routing",". Score it as an example of the shape, next to AIP and Agentforce, not as the definition of the category.",[232,331,333],{"id":332},"why-you-should-care","Why you should care",[189,335,336,341,342,346,347,350,351,355],{},[201,337,340],{"href":338,"rel":339},"https://www.mckinsey.com/capabilities/quantumblack/our-insights/the-state-of-ai",[205],"McKinsey’s 2025 State of AI"," keeps separating ",[343,344,345],"em",{},"use"," from ",[343,348,349],{},"scale",". Copilots and coding harnesses can produce the first. Enterprise harnesses are how writes to systems of record become the second without becoming ",[201,352,354],{"href":353},"what-is-shadow-ai","shadow AI"," in the CRM.",[189,357,358],{},"It affects you if:",[237,360,361,364,367,370,373],{},[240,362,363],{},"RevOps, Legal, and Finance must share a job, not a Slack channel of screenshots",[240,365,366],{},"Salesforce or NetSuite can change because a model proposed it",[240,368,369],{},"last quarter’s pricing chat is unrecoverable",[240,371,372],{},"security cannot list the AI actors that may write",[240,374,375],{},"the vendor demo is a SWE-bench plot and a “we have MCP”",[189,377,378,379,384,385,390,391,396,397,402],{},"In 2024 Air Canada was held to a chatbot’s invented policy (",[201,380,383],{"href":381,"rel":382},"https://www.cbc.ca/news/canada/british-columbia/air-canada-chatbot-lawsuit-1.7116416",[205],"CBC","). That is an outer-harness failure: a commitment left the building without a quote or a signer. ",[201,386,389],{"href":387,"rel":388},"https://eur-lex.europa.eu/eli/reg/2016/679/oj",[205],"GDPR"," constrains personal data in payloads. ",[201,392,395],{"href":393,"rel":394},"https://www.sec.gov/about/laws.shtml",[205],"Sarbanes–Oxley"," constrains who may change revenue truth. ",[201,398,401],{"href":399,"rel":400},"https://eur-lex.europa.eu/eli/reg/2024/1689/oj",[205],"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,404,405,410,411,416,417,422],{},[201,406,409],{"href":407,"rel":408},"https://www.nist.gov/itl/ai-risk-management-framework",[205],"NIST AI RMF"," and ",[201,412,415],{"href":413,"rel":414},"https://www.iso.org/standard/42001",[205],"ISO/IEC 42001"," assume operational controls, not a slide titled governance. ",[201,418,421],{"href":419,"rel":420},"https://oecd.ai/en/ai-principles",[205],"OECD AI Principles"," are a board checklist. They do not implement a gate. The harness does.",[232,424,426],{"id":425},"what-enterprise-adds-to-a-harness","What “enterprise” adds to a harness",[189,428,429,430,434],{},"Start from ",[201,431,433],{"href":432},"what-is-an-agent-harness","what a harness contains"," — loop, tools, memory, permissions, feedback, orchestration — and raise the bar.",[189,436,437,440,441,445,446,449,450,453],{},[193,438,439],{},"Policy that loads."," Inner harnesses inject ",[442,443,444],"code",{},"AGENTS.md",". Enterprise harnesses inject asserted company policy for ",[343,447,448],{},"this"," job, versioned. A Drive dump is not policy. A ",[201,451,313],{"href":452},"what-is-a-company-wiki-for-ai-agents"," 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,455,456,459,460,464,465,469,470,249],{},[193,457,458],{},"Connectors as grants, not a toolbox."," Default read. Write is a separate plane. Least privilege is a workstream property. ",[201,461,463],{"href":462},"connector-and-permissions-architecture","Connector architecture",". MCP may be the plug; it must inherit the grant. ",[201,466,468],{"href":467},"mcp-for-enterprise-integrations","MCP for enterprise integrations",". A Finance team assigned to a GTM-only stream still must not reach ERP “because it is Finance.” ",[201,471,473],{"href":472},"agent-team-architecture","Agent team architecture",[189,475,476,479,480,483,484,488],{},[193,477,478],{},"A hiring object for operators."," Not a folder of personal GPTs. A mandate, required systems, approval triggers — ",[201,481,319],{"href":482},"what-is-multi-agent-ai"," as a roster. ",[201,485,487],{"href":486},"how-to-evaluate-agent-teams-vs-single-agents","How to evaluate agent teams vs single agents",". 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,490,491,494,495,499,500,504],{},[193,492,493],{},"Human wait as a step."," ",[201,496,498],{"href":497},"what-is-human-in-the-loop-ai","HITL"," is not a kill switch in a dashboard. It is quoted payload, named role, fail-closed adapter. ",[201,501,503],{"href":502},"human-in-the-loop-approval-architecture","HITL approval architecture",". Soft / Hard / Critical matched to blast radius. A six-month zero-reject rate on CRM writes is a finding.",[189,506,507,510,511,249],{},[193,508,509],{},"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. ",[201,512,514],{"href":513},"how-to-evaluate-ai-audit-and-observability","How to evaluate AI audit and observability",[189,516,517,520,521,249],{},[193,518,519],{},"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 ",[201,522,523],{"href":296},"eval loops",[189,525,526,529,530,534],{},[193,527,528],{},"Economics of the loop."," Routing compact extract vs frontier judgement. Spend quotes. Seat pricing that includes unlimited flagship is an unengineered cost harness. ",[201,531,533],{"href":532},"what-is-model-routing","Model routing",". Nimbus meters NTUs; copilots meter seats. Different jobs.",[189,536,537,540],{},[193,538,539],{},"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.",[232,542,544],{"id":543},"what-it-is-not","What it is not",[189,546,547,548,249],{},"A coding harness with SSO. ",[201,549,219],{"href":218},[189,551,552,553,249],{},"A copilot with an admin console. ",[201,554,556],{"href":555},"how-to-choose-between-a-copilot-and-a-work-os","Copilot vs work OS",[189,558,559,560,563,564,249],{},"A framework. LangGraph can ",[343,561,562],{},"host"," an enterprise harness if you build grants, quotes, and a ledger. Out of the box it hosts a graph. ",[201,565,567],{"href":566},"agent-harness-vs-agent-framework","Harness vs framework",[189,569,570],{},"“We integrate with Salesforce.” Integration is a slide. A scoped connector plus a blocked unsigned write is a harness.",[189,572,573,574,410,579,584],{},"SWE-bench-first marketing. ",[201,575,578],{"href":576,"rel":577},"https://www.anthropic.com/engineering/building-effective-agents",[205],"Anthropic",[201,580,583],{"href":581,"rel":582},"https://www.langchain.com/blog/the-anatomy-of-an-agent-harness",[205],"LangChain"," are writing about coding and general agents. Steal the discipline (stops, artifacts, sensors). Do not steal the benchmark as your control framework.",[232,586,588],{"id":587},"thoughtworks-organisational-harness-in-operator-language","Thoughtworks’ organisational harness, in operator language",[189,590,591,592,596,597,600],{},"The ",[201,593,595],{"href":210,"rel":594},[205],"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 ",[343,598,599],{},"company jobs"," — not only for coding-agent users.",[189,602,603,604,607],{},"Delegation failures are the tell. The model was fine. The platform ran. Practitioner guides existed. The agent did what it was ",[343,605,606],{},"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,609,610],{},"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,612,613],{},"Their public examples (Parloa’s repo-resident rules/skills/commands; 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 / Hard / Critical is that tiering in product form. AIP will have a different packaging. The architectural claim is the same.",[189,615,616,410,621,626],{},[201,617,620],{"href":618,"rel":619},"https://www.databricks.com/blog/ai-harness",[205],"Databricks",[201,622,625],{"href":623,"rel":624},"https://en.wikipedia.org/wiki/Agent_harness",[205],"Wikipedia"," describe the runtime. Thoughtworks describe why a runtime without ownership still fails at scale. You need both descriptions when you buy.",[232,628,630],{"id":629},"what-good-looks-like-on-a-live-job","What “good” looks like on a live job",[189,632,633],{},"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,635,636,637,249],{},"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. ",[201,638,639],{"href":306},"Self-service vs FDE",[189,641,642,643,646,647,650],{},"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. ",[201,644,395],{"href":393,"rel":645},[205]," did not wait for LLMs; it waited for a named signer. ",[201,648,389],{"href":387,"rel":649},[205]," 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,652,653],{},"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.",[232,655,657],{"id":656},"how-this-shows-up-in-nimbus","How this shows up in Nimbus",[189,659,660,661,664,665,668,669,671,672,674],{},"Nimbus’s outer loop is: brief a ",[201,662,663],{"href":32},"workstream"," → assign a ",[201,666,667],{"href":20},"team"," whose connector contract is satisfied → retrieve under scope → draft on the canvas (Conflux) → quote writes → ",[201,670,322],{"href":40}," pause → execute the signed payload → commit to the ",[201,673,23],{"href":24},". Perception orients; it does not silently write. Routing picks model class per step.",[189,676,677,678,410,682,686],{},"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. ",[201,679,681],{"href":680},"how-to-evaluate-an-enterprise-ai-operating-system","How to evaluate an enterprise AI OS",[201,683,685],{"href":684},"how-to-evaluate-an-agent-harness","how to evaluate an agent harness"," are the two sheets; use both.",[232,688,690],{"id":689},"questions-people-actually-ask","Questions people actually ask",[692,693,695],"h3",{"id":694},"do-we-need-this-if-we-already-have-claude-code","Do we need this if we already have Claude Code?",[189,697,698],{},"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.",[692,700,702],{"id":701},"is-palantir-aip-an-enterprise-harness","Is Palantir AIP an enterprise harness?",[189,704,705],{},"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.",[692,707,709],{"id":708},"is-agentforce-enough","Is Agentforce enough?",[189,711,712],{},"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.",[692,714,716],{"id":715},"can-we-build-this-on-langchain","Can we build this on LangChain?",[189,718,719,720,724],{},"Yes, with time. You will rebuild grants, quoting, roster, and replay. ",[201,721,723],{"href":722},"build-vs-buy-an-enterprise-ai-os","Build vs buy",". Frameworks assemble loops; operators still need a loop they can hire.",[692,726,728],{"id":727},"whats-the-first-proof","What’s the first proof?",[189,730,731,732,736],{},"A real cross-department write: operator attaches OAuth; unsigned payload blocked; reject leaves SoR unchanged; export shows signer. ",[201,733,735],{"href":734},"how-to-run-an-enterprise-ai-proof-of-value","Proof of value",". A chat demo is not this.",[692,738,740],{"id":739},"what-should-i-read-next","What should I read next?",[189,742,743,746,747,746,751,249],{},[201,744,745],{"href":684},"How to evaluate an agent harness",". ",[201,748,750],{"href":749},"agent-harness-architecture","Agent harness architecture",[201,752,754],{"href":753},"what-is-harness-engineering","What is harness engineering",[232,756,758],{"id":757},"related-reading","Related reading",[189,760,761,410,764,249],{},[201,762,763],{"href":270},"What is write-back governance",[201,765,767],{"href":766},"rfp-questions-for-enterprise-ai-agents","RFP questions for enterprise AI agents",[232,769,771],{"id":770},"sources","Sources",[237,773,774,780,786,792,798,805,811,817,822,827,832,837,842,848,854,861],{},[240,775,776],{},[201,777,779],{"href":203,"rel":778},[205],"LangChain, Agents",[240,781,782],{},[201,783,785],{"href":618,"rel":784},[205],"Databricks, What is an AI agent harness?",[240,787,788],{},[201,789,791],{"href":623,"rel":790},[205],"Wikipedia, Agent harness",[240,793,794],{},[201,795,797],{"href":210,"rel":796},[205],"Thoughtworks, The operating system for enterprise AI",[240,799,800],{},[201,801,804],{"href":802,"rel":803},"https://www.thoughtworks.com/insights/podcasts/technology-podcasts/scaling-the-enterprise-harness--how-to-achieve-ai-agent-controll",[205],"Thoughtworks, Scaling the enterprise harness",[240,806,807],{},[201,808,810],{"href":576,"rel":809},[205],"Anthropic, Building effective agents",[240,812,813],{},[201,814,816],{"href":338,"rel":815},[205],"McKinsey, The state of AI in 2025",[240,818,819],{},[201,820,409],{"href":407,"rel":821},[205],[240,823,824],{},[201,825,415],{"href":413,"rel":826},[205],[240,828,829],{},[201,830,421],{"href":419,"rel":831},[205],[240,833,834],{},[201,835,401],{"href":399,"rel":836},[205],[240,838,839],{},[201,840,389],{"href":387,"rel":841},[205],[240,843,844],{},[201,845,847],{"href":393,"rel":846},[205],"SEC, Sarbanes–Oxley",[240,849,850],{},[201,851,853],{"href":381,"rel":852},[205],"CBC, Air Canada chatbot lawsuit",[240,855,856],{},[201,857,860],{"href":858,"rel":859},"https://modelcontextprotocol.io/specification/2025-11-25/index",[205],"Model Context Protocol specification",[240,862,863],{},[201,864,867],{"href":865,"rel":866},"https://www.swebench.com/",[205],"SWE-bench",{"title":170,"searchDepth":171,"depth":171,"links":869},[870,871,872,873,874,875,876,877,886,887],{"id":234,"depth":171,"text":235},{"id":332,"depth":171,"text":333},{"id":425,"depth":171,"text":426},{"id":543,"depth":171,"text":544},{"id":587,"depth":171,"text":588},{"id":629,"depth":171,"text":630},{"id":656,"depth":171,"text":657},{"id":689,"depth":171,"text":690,"children":878},[879,881,882,883,884,885],{"id":694,"depth":880,"text":695},3,{"id":701,"depth":880,"text":702},{"id":708,"depth":880,"text":709},{"id":715,"depth":880,"text":716},{"id":727,"depth":880,"text":728},{"id":739,"depth":880,"text":740},{"id":757,"depth":171,"text":758},{"id":770,"depth":171,"text":771},"2026-08-24","An enterprise agent harness is the outer runtime for operators: wiki, scoped connectors, agent teams, write gates, and a ledger — not a SWE-bench score and not a chat with every production login.","/blog/what-is-an-enterprise-agent-harness",{"title":180,"description":889},"explainer","blog/what-is-an-enterprise-agent-harness",[892,895,896,322],"agent-harness","enterprise-ai","VCI6uaS6V4vGana_omswQGrFpUW2iH4qg59Oz11-AgA",{"hero":899,"id":901,"title":902,"archived":164,"authors":165,"badge":165,"body":903,"date":165,"definedTerm":165,"department":165,"description":907,"extension":173,"eyebrow":908,"faqHeader":165,"faqs":165,"footerBand":909,"headline":165,"image":165,"industry":165,"jobType":165,"listed":130,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":60,"relatedHeading":915,"seo":916,"series":165,"sitemap":130,"status":165,"stem":917,"subhead":165,"tags":165,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":918},{"filename":900},"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":167,"value":904,"toc":905},[],{"title":170,"searchDepth":171,"depth":171,"links":906},[],"Deep dives into pre-cognitive intelligence, sentient enterprises, and the evolving landscape of AI-driven business transformation.","Latest Research",{"headline":910,"description":911,"primaryLabel":912,"primaryTo":913,"secondaryLabel":914,"secondaryTo":12},"Stay at the frontier.","Subscribe for product updates and new insights.","Subscribe","/newsletter","Explore the platform","More research",{"title":902,"description":907},"blog/index","BFSWGYO9bcTlaulivKYWyg08_DJHsdGg3OC6g_CG1Hw",[920,1557],{"id":921,"title":922,"archived":164,"authors":923,"badge":925,"body":926,"date":888,"definedTerm":165,"department":165,"description":1549,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":165,"headline":165,"image":165,"industry":165,"jobType":165,"listed":164,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":1550,"relatedHeading":165,"seo":1551,"series":892,"sitemap":130,"status":165,"stem":1552,"subhead":165,"tags":1553,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":1556},"content/blog/what-is-harness-engineering.md","What is Harness Engineering",[924],{"name":183,"to":135},{"label":185},{"type":167,"value":927,"toc":1531},[928,934,961,964,982,984,1066,1072,1074,1082,1084,1104,1118,1132,1135,1139,1149,1169,1182,1196,1210,1222,1225,1229,1235,1241,1254,1265,1274,1278,1285,1291,1297,1303,1317,1320,1332,1336,1339,1353,1355,1359,1362,1366,1373,1377,1384,1388,1395,1399,1416,1418,1431,1433,1442,1444],[189,929,930,933],{},[193,931,932],{},"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,935,936,939,940,943,944,949,950,955,956,960],{},[201,937,583],{"href":203,"rel":938},[205]," defines the object: Agent = Model + Harness. Harness engineering is what you ",[343,941,942],{},"do"," to that object. ",[201,945,948],{"href":946,"rel":947},"https://addyosmani.com/blog/agent-harness-engineering/",[205],"Addy Osmani"," puts the payoff in one line: a decent model with a great harness beats a great model with a bad harness. ",[201,951,954],{"href":952,"rel":953},"https://martinfowler.com/articles/harness-engineering.html",[205],"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: ",[201,957,959],{"href":802,"rel":958},[205],"how you scale that harness across a company"," without turning every team into a snowflake of markdown files.",[189,962,963],{},"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,965,966,967,971,972,977,978,981],{},"This is not a replacement for ",[201,968,970],{"href":576,"rel":969},[205],"prompt"," or ",[201,973,976],{"href":974,"rel":975},"https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents",[205],"context"," work. Those live ",[343,979,980],{},"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.",[232,983,235],{"id":234},[237,985,986,992,1012,1024,1036,1042,1048,1057],{},[240,987,988,991],{},[193,989,990],{},"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.",[240,993,994,997,998,1001,1002,314,1004,1007,1008,1011],{},[193,995,996],{},"Guides (feed-forward)."," Context the agent gets ",[343,999,1000],{},"before"," it acts: ",[442,1003,444],{},[442,1005,1006],{},"CLAUDE.md",", architecture notes, ",[201,1009,1010],{"href":452},"company wiki"," playbooks. Böckeler’s term. Advice. Necessary. Not a stop.",[240,1013,1014,1017,1018,1023],{},[193,1015,1016],{},"Sensors (feedback)."," Deterministic checks (compiler, linter, schema, pytest) and inferential checks (LLM reviewer, specialist critic). ",[201,1019,1022],{"href":1020,"rel":1021},"https://www.thoughtworks.com/en-us/insights/blog/generative-ai/harness-engineering-agent-feedback-exploring-ai-coding-sensors",[205],"Thoughtworks on sensors",". Without sensors the agent grades its own homework.",[240,1025,1026,1029,1030,1035],{},[193,1027,1028],{},"Hooks."," Lifecycle intercepts that always run. ",[201,1031,1034],{"href":1032,"rel":1033},"https://code.claude.com/docs/en/hooks",[205],"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.",[240,1037,1038,1041],{},[193,1039,1040],{},"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.",[240,1043,1044,1047],{},[193,1045,1046],{},"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.",[240,1049,1050,494,1052,1056],{},[193,1051,254],{},[201,1053,1055],{"href":210,"rel":1054},[205],"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).",[240,1058,1059,1062,1063,249],{},[193,1060,1061],{},"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 ",[201,1064,1065],{"href":296},"eval loops for enterprise agent harnesses",[189,1067,1068,1069,1071],{},"In Nimbus, harness engineering for operators looks like: wiki revisions as guides, connector scopes as tool policy, Soft / Hard / Critical as hooks on the write plane, and the ",[201,1070,23],{"href":24}," 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.",[232,1073,333],{"id":332},[189,1075,1076,1077,1081],{},"If you only tune prompts, every incident is a conversation. If you engineer the harness, incidents become tests. ",[201,1078,1080],{"href":407,"rel":1079},[205],"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,1083,358],{},[237,1085,1086,1089,1095,1098,1101],{},[240,1087,1088],{},"agents already write code or propose writes to live systems",[240,1090,1091,1092,1094],{},"two teams have two ",[442,1093,1006],{}," files that contradict Legal",[240,1096,1097],{},"you cannot say which harness version ran last Tuesday",[240,1099,1100],{},"spend is “the model was verbose” rather than “the loop had no budget”",[240,1102,1103],{},"auditors ask who could have stopped the action, and the answer is “the model was supposed to ask”",[189,1105,1106,1109,1110,1113,1114,1117],{},[201,1107,340],{"href":338,"rel":1108},[205]," keeps showing usage without redesign. Harness engineering ",[343,1111,1112],{},"is"," the redesign for agentic work: not a new department named AI, a runtime with stops. ",[201,1115,415],{"href":413,"rel":1116},[205]," wants named AI actors and documented operational controls. You cannot name actors if every operator’s personal GPT is a different harness.",[189,1119,1120,1121,1124,1125,1127,1128,1131],{},"Coding teams already have half of this and do not always notice. Types, tests, CI, CODEOWNERS — Böckeler’s point is that those ",[343,1122,1123],{},"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. ",[201,1126,271],{"href":270}," is that wiring. ",[201,1129,1130],{"href":502},"Human-in-the-loop approval architecture"," is the state machine.",[189,1133,1134],{},"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.",[232,1136,1138],{"id":1137},"the-practice-not-the-slogan","The practice, not the slogan",[189,1140,1141,1144,1145,1148],{},[193,1142,1143],{},"1. Work backward from the behaviour you cannot afford to miss once."," Inner loop: never merge without tests; never ",[442,1146,1147],{},"git push --force"," to main. Outer loop: never PATCH Opportunity.Amount without a Hard quote. Write those as hooks, not as paragraphs.",[189,1150,1151,494,1154,1159,1160,1162,1163,1165,1166,1168],{},[193,1152,1153],{},"2. Separate advice from invariants.",[201,1155,1158],{"href":1156,"rel":1157},"https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more",[205],"Anthropic’s steering note for Claude Code"," is unusually clear: ",[442,1161,1006],{}," 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 ",[201,1164,313],{"href":28}," versus the interceptor in ",[201,1167,322],{"href":40},". If they conflict, the interceptor wins.",[189,1170,1171,1174,1175,1178,1179,249],{},[193,1172,1173],{},"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 ",[343,1176,1177],{},"propose"," that it is done. The harness ",[343,1180,1181],{},"decides",[189,1183,1184,1187,1188,1190,1191,1195],{},[193,1185,1186],{},"4. Version the harness."," Which ",[442,1189,444],{},", which wiki revision, which team contract, which approval tier ran. ",[201,1192,1194],{"href":1193},"what-is-an-agentic-workflow","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,1197,1198,1201,1202,410,1205,1209],{},[193,1199,1200],{},"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 ",[201,1203,1204],{"href":532},"What is model routing",[201,1206,1208],{"href":1207},"ai-cost-control-architecture","AI cost control architecture",". Always-flagship is not careful. It is an unengineered harness.",[189,1211,1212,1215,1216,1218,1219,1221],{},[193,1213,1214],{},"6. Do not fork a harness per person."," User-owned bots are how mandates drift. Org-level ",[201,1217,319],{"href":472}," assigned to ",[201,1220,229],{"href":228}," 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,1223,1224],{},"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.",[232,1226,1228],{"id":1227},"how-this-differs-from-adjacent-crafts","How this differs from adjacent crafts",[189,1230,1231,1234],{},[193,1232,1233],{},"Prompt engineering"," improves a single call. Necessary for tone, tool descriptions, and “what good looks like.” Insufficient for tool dispatch, identity, and replay.",[189,1236,1237,1240],{},[193,1238,1239],{},"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,1242,1243,1246,1247,1250,1251,249],{},[193,1244,1245],{},"Platform / DevOps."," CI, sandboxes, secrets. Harness engineering ",[343,1248,1249],{},"reuses"," those as sensors 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 ",[343,1252,1253],{},"claim",[189,1255,1256,1259,1260,1264],{},[193,1257,1258],{},"Governance-as-PDF."," Policy. Harness engineering is whether the tool call is reachable. ",[201,1261,1263],{"href":1262},"how-to-evaluate-ai-governance-platforms","How to evaluate AI governance platforms"," is the buying cousin.",[189,1266,1267,1270,1271,249],{},[193,1268,1269],{},"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 ",[201,1272,1273],{"href":566},"agent harness vs agent framework",[232,1275,1277],{"id":1276},"four-layers-one-ratchet","Four layers, one ratchet",[189,1279,1280,1284],{},[201,1281,1283],{"href":210,"rel":1282},[205],"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,1286,1287,1290],{},[193,1288,1289],{},"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,1292,1293,1296],{},[193,1294,1295],{},"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,1298,1299,1302],{},[193,1300,1301],{},"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,1304,1305,1308,1309,1312,1313,1316],{},[193,1306,1307],{},"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 ",[343,1310,1311],{},"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 ",[343,1314,1315],{},"delegation tier"," instead of a yes/no “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,1318,1319],{},"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,1321,1322,1323,1325,1326,1328,1329,1331],{},"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 ",[442,1324,444],{}," 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 — ",[201,1327,322],{"href":40}," queues, ",[201,1330,325],{"href":24}," 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.",[232,1333,1335],{"id":1334},"what-good-looks-like","What good looks like",[189,1337,1338],{},"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,1340,1341,1345,1346,1348,1349,1352],{},[201,1342,1344],{"href":946,"rel":1343},[205],"Osmani’s ratchet"," and Thoughtworks’ steering loop are the same instinct. ",[201,1347,745],{"href":684}," asks whether your vendor lets you ",[343,1350,1351],{},"run"," that instinct.",[232,1354,690],{"id":689},[692,1356,1358],{"id":1357},"who-coined-harness-engineering","Who coined “harness engineering”?",[189,1360,1361],{},"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.",[692,1363,1365],{"id":1364},"is-this-only-for-coding-agents","Is this only for coding agents?",[189,1367,1368,1369,1372],{},"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 ",[201,1370,195],{"href":1371},"what-is-an-enterprise-agent-harness"," is that application.",[692,1374,1376],{"id":1375},"do-we-wait-for-a-better-model-instead","Do we wait for a better model instead?",[189,1378,1379,1380,1383],{},"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 ",[343,1381,1382],{},"because"," models got good enough to outlast a window.",[692,1385,1387],{"id":1386},"how-do-we-start-this-quarter","How do we start this quarter?",[189,1389,1390,1391,1394],{},"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 ",[201,1392,1393],{"href":734},"proof of value"," for the practice, not a chat demo.",[692,1396,1398],{"id":1397},"how-does-nimbus-fit-without-becoming-the-definition","How does Nimbus fit without becoming the definition?",[189,1400,1401,1402,314,1404,314,1407,314,1410,1412,1413,1415],{},"Nimbus is an outer harness you can hire: ",[201,1403,229],{"href":32},[201,1405,1406],{"href":20},"teams",[201,1408,1409],{"href":40},"gates",[201,1411,325],{"href":24},". Score it the way you score Claude Code: can you add a sensor, refuse a write, and replay who signed. ",[201,1414,745],{"href":684}," is the sheet.",[692,1417,740],{"id":739},[189,1419,1420,1423,1424,1426,1427,1430],{},[201,1421,1422],{"href":218},"Inner vs outer agent harness"," for the repo/company cut. ",[201,1425,750],{"href":749}," for the parts. ",[201,1428,1429],{"href":432},"What is an agent harness"," if you still need the noun.",[232,1432,758],{"id":757},[189,1434,1435,410,1438,249],{},[201,1436,1437],{"href":223},"What is an enterprise AI operating system",[201,1439,1441],{"href":1440},"how-to-solve-ai-that-cannot-write-back-safely","How to solve AI that cannot write back safely",[232,1443,771],{"id":770},[237,1445,1446,1451,1457,1463,1469,1475,1480,1486,1493,1498,1504,1510,1516,1521,1526],{},[240,1447,1448],{},[201,1449,779],{"href":203,"rel":1450},[205],[240,1452,1453],{},[201,1454,1456],{"href":581,"rel":1455},[205],"LangChain, The anatomy of an agent harness",[240,1458,1459],{},[201,1460,1462],{"href":952,"rel":1461},[205],"Böckeler, Harness engineering for coding agent users",[240,1464,1465],{},[201,1466,1468],{"href":1020,"rel":1467},[205],"Thoughtworks, Harness engineering and agent feedback",[240,1470,1471],{},[201,1472,1474],{"href":802,"rel":1473},[205],"Thoughtworks, Scaling the enterprise harness (podcast)",[240,1476,1477],{},[201,1478,797],{"href":210,"rel":1479},[205],[240,1481,1482],{},[201,1483,1485],{"href":946,"rel":1484},[205],"Addy Osmani, Agent harness engineering",[240,1487,1488],{},[201,1489,1492],{"href":1490,"rel":1491},"https://www.oreilly.com/radar/agent-harness-engineering/",[205],"O’Reilly Radar, Agent harness engineering",[240,1494,1495],{},[201,1496,810],{"href":576,"rel":1497},[205],[240,1499,1500],{},[201,1501,1503],{"href":974,"rel":1502},[205],"Anthropic, Effective harnesses for long-running agents",[240,1505,1506],{},[201,1507,1509],{"href":1156,"rel":1508},[205],"Anthropic, Steering Claude Code",[240,1511,1512],{},[201,1513,1515],{"href":1032,"rel":1514},[205],"Claude Code, Hooks",[240,1517,1518],{},[201,1519,816],{"href":338,"rel":1520},[205],[240,1522,1523],{},[201,1524,409],{"href":407,"rel":1525},[205],[240,1527,1528],{},[201,1529,415],{"href":413,"rel":1530},[205],{"title":170,"searchDepth":171,"depth":171,"links":1532},[1533,1534,1535,1536,1537,1538,1539,1547,1548],{"id":234,"depth":171,"text":235},{"id":332,"depth":171,"text":333},{"id":1137,"depth":171,"text":1138},{"id":1227,"depth":171,"text":1228},{"id":1276,"depth":171,"text":1277},{"id":1334,"depth":171,"text":1335},{"id":689,"depth":171,"text":690,"children":1540},[1541,1542,1543,1544,1545,1546],{"id":1357,"depth":880,"text":1358},{"id":1364,"depth":880,"text":1365},{"id":1375,"depth":880,"text":1376},{"id":1386,"depth":880,"text":1387},{"id":1397,"depth":880,"text":1398},{"id":739,"depth":880,"text":740},{"id":757,"depth":171,"text":758},{"id":770,"depth":171,"text":771},"Harness engineering is the 2026 practice of fixing the environment when an agent fails — tools, hooks, tests, and stops — instead of rewriting the prompt and hoping the next model call behaves.","/blog/what-is-harness-engineering",{"title":922,"description":1549},"blog/what-is-harness-engineering",[892,1554,895,1555],"harness-engineering","evaluation","J7WO8MGgOG9nFjnGjs25nfHH5sz-UYeKtt3NvK0eueE",{"id":1558,"title":1559,"archived":164,"authors":1560,"badge":1562,"body":1563,"date":888,"definedTerm":165,"department":165,"description":2181,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":165,"headline":165,"image":165,"industry":165,"jobType":165,"listed":164,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":2182,"relatedHeading":165,"seo":2183,"series":892,"sitemap":130,"status":165,"stem":2184,"subhead":165,"tags":2185,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":2187},"content/blog/inner-vs-outer-agent-harness.md","Inner vs Outer Agent Harness",[1561],{"name":183,"to":135},{"label":185},{"type":167,"value":1564,"toc":2164},[1565,1579,1598,1617,1632,1634,1706,1727,1729,1732,1734,1748,1764,1767,1789,1799,1803,1820,1830,1841,1850,1860,1870,1887,1896,1910,1914,1917,1927,1935,1944,1948,1957,1967,1976,1982,1987,1998,2001,2003,2007,2010,2014,2021,2025,2036,2040,2045,2049,2055,2057,2069,2071,2077,2079],[189,1566,191,1567,1570,1571,1574,1575,1578],{},[193,1568,1569],{},"inner agent harness"," is the runtime around a model for a developer and a codebase. An ",[193,1572,1573],{},"outer agent harness"," is the runtime around a model for operators and live business systems. Same equation — ",[201,1576,206],{"href":203,"rel":1577},[205]," — different workspace, different sensors, different stop.",[189,1580,1581,1585,1586,1589,1590,1594,1595,249],{},[201,1582,1584],{"href":952,"rel":1583},[205],"Böckeler"," already uses “outer harness” for the controls ",[343,1587,1588],{},"users"," add around a coding agent (guides, sensors) as distinct from the vendor’s built-in loop. ",[201,1591,948],{"href":1592,"rel":1593},"https://addyosmani.com/blog/own-the-outer-loop/",[205]," tells engineers to own the outer loop of investigate → implement → verify so accountability does not dissolve into the model. This article borrows those words and draws the cut enterprises actually buy: ",[193,1596,1597],{},"repo versus company",[189,1599,1600,1601,314,1604,1606,1607,314,1609,1613,1614,1616],{},"Claude Code, Cursor, and Codex are excellent inner harnesses. They sandboxes, ",[442,1602,1603],{},"apply_patch",[442,1605,1006],{}," / ",[442,1608,444],{},[201,1610,1612],{"href":1032,"rel":1611},[205],"hooks",", and tests. Palantir AIP, Salesforce Agentforce, and OS-class products such as Nimbus are outer harnesses: ",[201,1615,229],{"href":228},", connectors, named signers, a decision record. Confusing them is how Legal is asked to “just use Cursor on the Salesforce repo” and how engineering is asked to “approve CRM writes in a coding agent.”",[189,1618,1619,1623,1624,1627,1628,1631],{},[201,1620,1622],{"href":1621},"how-to-choose-between-a-coding-harness-and-an-enterprise-harness","How to choose between a coding harness and an enterprise harness"," is the buying version of this page. ",[201,1625,1626],{"href":555},"How to choose between a copilot and a work OS"," is the adjacent cut (personal assistant versus departmental work). Inner/outer is about ",[343,1629,1630],{},"which loop you are hiring",", not whether the UI looks like chat.",[232,1633,235],{"id":234},[237,1635,1636,1642,1648,1658,1670,1679,1692],{},[240,1637,1638,1641],{},[193,1639,1640],{},"Inner loop (classic SE)."," Edit, build, test on a developer’s machine. Fast. Local. The coding-agent inner harness lives here: shell, files, compiler.",[240,1643,1644,1647],{},[193,1645,1646],{},"Outer loop (classic SE)."," PR, CI, review, release. Osmani’s “own the outer loop” is this accountability layer for agentic coding. Still software.",[240,1649,1650,1653,1654,1657],{},[193,1651,1652],{},"Inner harness (this article)."," Vendor + user controls for a ",[193,1655,1656],{},"repository workspace",": Claude Code, Cursor, Codex. Eval: tests, Terminal-Bench, SWE-bench.",[240,1659,1660,1663,1664,1667,1668,249],{},[193,1661,1662],{},"Outer harness (this article)."," Controls for a ",[193,1665,1666],{},"company workspace",": jobs, systems of record, people who may sign. Eval: quoted write, identity, ledger. An ",[201,1669,195],{"href":1371},[240,1671,1672,1675,1676,249],{},[193,1673,1674],{},"Guides vs sensors."," Feed-forward markdown versus feedback from tools. Inner: lint and pytest. Outer: schema of a Salesforce payload and a Hard gate. See ",[201,1677,1678],{"href":753},"what is harness engineering",[240,1680,1681,1684,1685,1688,1689,249],{},[193,1682,1683],{},"CLAUDE.md / AGENTS.md."," Inner guides. ",[201,1686,578],{"href":1156,"rel":1687},[205]," is explicit: files are context; hooks are deterministic. A company wiki is the outer analogue of those files — asserted policy, not a repo README. See ",[201,1690,1691],{"href":452},"What is a company wiki for AI agents",[240,1693,1694,1697,1698,1701,1702,1705],{},[193,1695,1696],{},"Write gate."," Inner: hook denies ",[442,1699,1700],{},"rm"," or force-push. Outer: ",[201,1703,1704],{"href":270},"write-back governance"," — adapter cannot mutate CRM until a named role signs the quote.",[189,1707,1708,1709,1711,1712,314,1714,1717,1718,1720,1721,1711,1723,1726],{},"Nimbus is built as an outer harness: ",[201,1710,313],{"href":28}," instead of only ",[442,1713,444],{},[201,1715,1716],{"href":51},"connectors"," instead of only a local shell, ",[201,1719,322],{"href":40}," instead of only a pre-commit hook, ",[201,1722,23],{"href":24},[442,1724,1725],{},"git log",". Engineering should still run Claude Code. Those products should not share a write path to NetSuite.",[232,1728,333],{"id":332},[189,1730,1731],{},"Demos collapse the cut. Both products answer a question. Both call tools. Both show a transcript. The evaluation is the workspace.",[189,1733,358],{},[237,1735,1736,1739,1742,1745],{},[240,1737,1738],{},"Security asks whether the coding agent’s MCP server can reach production Salesforce",[240,1740,1741],{},"RevOps wants “an agent” and is shown a SWE-bench slide",[240,1743,1744],{},"Engineering wants Cursor and is told to wait for the enterprise OS",[240,1746,1747],{},"You already have both, and they silently write to the same object",[189,1749,1750,1753,1754,1759,1760,1763],{},[201,1751,340],{"href":338,"rel":1752},[205]," describes agentic systems as an organisational design problem. Inner harnesses scale developer throughput. They do not, by themselves, scale governed operations. ",[201,1755,1758],{"href":1756,"rel":1757},"https://hai.stanford.edu/ai-index/2025-ai-index-report",[205],"Stanford HAI’s 2025 AI Index"," maps how fast coding-agent tooling moved. Speed in the repo is not a substitute for ",[201,1761,401],{"href":399,"rel":1762},[205]," oversight on systems that affect customers and money.",[189,1765,1766],{},"Two failure modes:",[1768,1769,1770,1780],"ol",{},[240,1771,1772,1775,1776,1779],{},[193,1773,1774],{},"Outer job, inner harness."," A pricing change drafted in Cursor with an MCP Salesforce tool. Tests pass on a fixture. Production Amount changes. ",[442,1777,1778],{},"git blame"," does not name the signer. You used a repo loop on a company record.",[240,1781,1782,1785,1786,1788],{},[193,1783,1784],{},"Inner job, outer harness."," “Rewrite this function” opened as a cross-department ",[201,1787,663],{"href":32}," with a Critical gate. Engineers will route around it. You used a company loop on a compile.",[189,1790,1791,1794,1795,1798],{},[201,1792,409],{"href":407,"rel":1793},[205]," Map step: know the context of use. Inner and outer are different contexts. ",[201,1796,415],{"href":413,"rel":1797},[205]," wants controls matched to that context. One harness policy for “all AI” is how both jobs get the wrong stop.",[232,1800,1802],{"id":1801},"what-each-harness-actually-owns","What each harness actually owns",[189,1804,1805,1808,1809,1813,1814,1816,1817,1819],{},[193,1806,1807],{},"Workspace."," Inner: a checkout, often sandboxed. Anthropic’s ",[201,1810,1812],{"href":974,"rel":1811},[205],"long-running harness"," keeps progress in git and files because the workspace ",[343,1815,1112],{}," the filesystem. Outer: a job folder with people, budget, and attached systems — a ",[201,1818,663],{"href":228},". Files may appear as artefacts. They are not the system of record.",[189,1821,1822,1825,1826,1829],{},[193,1823,1824],{},"Identity."," Inner: the developer’s machine credentials, a repo token, maybe a sandbox role. Outer: org roster, workstream membership, named approver. The model is not the principal. ",[201,1827,1828],{"href":462},"Connector and permissions architecture"," is the outer identity plane.",[189,1831,1832,1835,1836,1840],{},[193,1833,1834],{},"Tools."," Inner: shell, editor, tests, browser, maybe MCP to docs. Outer: CRM, ERP, warehouse, ticket systems, mail — default read, write as a separate plane. ",[201,1837,1839],{"href":1838},"what-is-model-context-protocol","MCP"," can sit under both. The grant must not.",[189,1842,1843,1846,1847,1849],{},[193,1844,1845],{},"Guides."," Inner: ",[442,1848,444],{},", skills, directory-local rules. Outer: company wiki, playbooks versioned with the run. Mixing them is useful (engineering conventions in the repo; discount policy in the wiki). Collapsing them is how a style guide becomes “legal approval.”",[189,1851,1852,1855,1856,1859],{},[193,1853,1854],{},"Sensors."," Inner: typechecker, unit tests, CI, architecture tests. Böckeler and ",[201,1857,1022],{"href":1020,"rel":1858},[205],". Outer: payload schema, blast-radius cardinality, maker-checker, exportable ledger. A passing pytest does not mean Opportunity.Stage was authorised.",[189,1861,1862,1865,1866,1869],{},[193,1863,1864],{},"Stop."," Inner: tests red, hook exit 2, max steps, human in the IDE. Outer: wait-for-named-signer, missing connector, budget, reject. ",[201,1867,1868],{"href":497},"Human-in-the-loop"," in a coding agent is “the developer kept going.” HITL in an outer harness is a first-class step with identity.",[189,1871,1872,1846,1875,314,1878,1883,1884,1886],{},[193,1873,1874],{},"Eval.",[201,1876,867],{"href":865,"rel":1877},[205],[201,1879,1882],{"href":1880,"rel":1881},"https://arxiv.org/abs/2601.11868",[205],"Terminal-Bench",", your suite. Outer: replay the signer; compare quote to SoR; see ",[201,1885,523],{"href":296},". Leaderboard scores are not a SOX control.",[189,1888,1889,1892,1893,1895],{},[193,1890,1891],{},"Memory."," Inner: files, commits, session transcripts, memory files the next coding session loads. Outer: wiki + ",[201,1894,23],{"href":286}," so next quarter’s operator can ask why a field changed. Chat logs of a coding session are not institutional memory for RevOps.",[189,1897,1898,1899,1901,1902,1904,1905,1909],{},"Nimbus’s ",[201,1900,319],{"href":20}," sit on the outer side: mandates, required connectors, approval triggers. You can still ",[343,1903,345],{}," an inner harness as a bounded tool behind a connector (for example a coding agent that only opens a draft PR). Do not let that inner harness become the orchestrator of record for a CRM write. ",[201,1906,1908],{"href":1907},"multi-agent-ai-architecture","Multi-agent architecture"," says the same thing with specialists: hands are not roles.",[232,1911,1913],{"id":1912},"how-they-should-sit-together","How they should sit together",[189,1915,1916],{},"Most companies need both. That is not a hedge. It is how software and operations already split.",[189,1918,1919,1922,1923,1926],{},[193,1920,1921],{},"Pattern that works."," Engineers use Cursor or Claude Code on application repos. CI remains the merge sensor. Separately, RevOps and Finance run outer-harness jobs on Salesforce and NetSuite. If a coding agent must touch a live business system, it proposes an artefact; the outer harness quotes and gates the write. Two writers to the same object without a single quote is the failure ",[201,1924,1925],{"href":1907},"multi-agent architecture"," already names.",[189,1928,1929,1932,1933,249],{},[193,1930,1931],{},"Pattern that fails."," One MCP mesh with production tokens, used from the IDE and from the chatbot and from the OS. Confused deputy. ",[201,1934,468],{"href":467},[189,1936,1937,1940,1941,249],{},[193,1938,1939],{},"Thoughtworks’ four layers"," — model, builder harness, user harness, organisational harness — map cleanly: Claude Code is builder + user on the inner side; the organisational layer is the outer operating model. Nimbus is one productisation of that outer layer, not the only one. AIP is a programme-shaped outer harness. Agentforce is CRM-anchored. Score scope and time-to-value separately. See ",[201,1942,1943],{"href":306},"self-service vs forward-deployed",[232,1945,1947],{"id":1946},"a-week-that-uses-both","A week that uses both",[189,1949,1950,1951,1953,1954,1956],{},"Monday an engineer uses Cursor to fix a pricing calculator in the billing service. ",[442,1952,444],{}," says no raw SQL in the request path. A hook blocks ",[442,1955,1147],{},". CI runs the unit suite. The PR is the artefact. CODEOWNERS signs the merge. That is a complete inner story. SWE-bench is relevant only as a vendor quality signal for the coding tool, not as a control.",[189,1958,1959,1960,1962,1963,1966],{},"Tuesday RevOps needs the list price on twenty renewals updated after Legal changed the cap in the playbook. The artefact is Salesforce. The signer is a named RevOps lead. The sensor is: quoted fields, hash, read-back. If Tuesday’s job is opened as a Cursor session with an MCP Salesforce server using a shared integration user, you have imported Monday’s workspace into Tuesday’s system of record. ",[442,1961,1725],{}," will not name the RevOps lead. ",[201,1964,1965],{"href":270},"Write-back"," did not fire because the inner harness does not have that interceptor.",[189,1968,1969,1970,1972,1973,1975],{},"Wednesday someone proposes “one agent for everything.” The honest architecture is: Monday’s harness stays. Tuesday’s job runs on an outer harness — in Nimbus, a ",[201,1971,663],{"href":32}," with the CRM connector, the wiki revision that contains the new cap, a Hard gate. If the calculator ",[343,1974,442],{}," must change as well, the outer job can spawn a bounded inner step that opens a draft PR. Two artefacts, two sensors, one company rule: unsigned SoR writes are impossible from either loop.",[189,1977,1978,1979,249],{},"Thursday Security reviews MCP. The question is not “is MCP approved.” It is “which workspace may this server mutate.” Inner: sandbox and repo. Outer: workstream grant. Same protocol, different identity box. ",[201,1980,1981],{"href":467},"MCP for enterprise",[189,1983,1984,1985,249],{},"Friday you look at evals. Engineering posts a Terminal-Bench plot for the coding vendor. Finance asks who signed Amount. Those are not competing dashboards. They are different oracles. ",[201,1986,297],{"href":296},[189,1988,1989,1992,1993,1997],{},[201,1990,212],{"href":210,"rel":1991},[205]," would call Monday layers 2–3 on a builder harness, Tuesday a delegation question on layer 4, and “one agent” a way to skip layer 4. ",[201,1994,1996],{"href":1592,"rel":1995},[205],"Osmani"," would say engineering still owns verify-and-merge on Monday. Neither author is selling Nimbus. Both are describing why the cut exists.",[189,1999,2000],{},"If you only fund inner harnesses, Tuesday happens in paste and Slack. If you only fund outer harnesses, Monday happens in unsanctioned Cursor anyway. Fund both. Bind writes.",[232,2002,690],{"id":689},[692,2004,2006],{"id":2005},"is-cursor-an-enterprise-harness-if-we-sso-it","Is Cursor an enterprise harness if we SSO it?",[189,2008,2009],{},"SSO is admin control. It does not quote a NetSuite journal or bind a Finance signer. Cursor can be an inner harness in an enterprise. That is not the same as an outer harness.",[692,2011,2013],{"id":2012},"can-claude-code-hooks-replace-write-back-governance","Can Claude Code hooks replace write-back governance?",[189,2015,2016,2017,2020],{},"They can replace ",[343,2018,2019],{},"some"," inner invariants (dangerous bash). They do not give you a payload in the language of Salesforce, a roster-aware approver, or an exportable operations ledger. Different workspace.",[692,2022,2024],{"id":2023},"should-we-ban-coding-agents-until-the-os-is-live","Should we ban coding agents until the OS is live?",[189,2026,2027,2028,2031,2032,249],{},"Usually no. Ban unsigned writes to systems of record from ",[343,2029,2030],{},"any"," agent, inner or outer. Let inner harnesses keep compiling. ",[201,2033,2035],{"href":2034},"how-to-solve-unapproved-crm-writes-from-ai","How to solve unapproved CRM writes from AI",[692,2037,2039],{"id":2038},"where-does-a-copilot-fit","Where does a copilot fit?",[189,2041,2042,2043,249],{},"A copilot is often not a full inner harness — no repo loop, no tests. Personal throughput. Keep it for mail. Do not give it the CRM write token. ",[201,2044,556],{"href":555},[692,2046,2048],{"id":2047},"is-nimbus-trying-to-replace-claude-code","Is Nimbus trying to replace Claude Code?",[189,2050,2051,2052,2054],{},"No. Different workspace. Nimbus is the company loop; Claude Code is the repo loop. ",[201,2053,11],{"href":12}," is the product map. This page is the architectural cut.",[692,2056,740],{"id":739},[189,2058,2059,746,2062,2065,2066,2068],{},[201,2060,2061],{"href":1371},"What is an enterprise agent harness",[201,2063,2064],{"href":566},"Agent harness vs agent framework"," if you are assembling rather than hiring. ",[201,2067,1429],{"href":432}," for the base noun.",[232,2070,758],{"id":757},[189,2072,2073,410,2075,249],{},[201,2074,754],{"href":753},[201,2076,750],{"href":749},[232,2078,771],{"id":770},[237,2080,2081,2086,2091,2097,2102,2107,2112,2117,2122,2127,2133,2138,2144,2149,2154,2159],{},[240,2082,2083],{},[201,2084,779],{"href":203,"rel":2085},[205],[240,2087,2088],{},[201,2089,1462],{"href":952,"rel":2090},[205],[240,2092,2093],{},[201,2094,2096],{"href":1592,"rel":2095},[205],"Addy Osmani, Own the outer loop",[240,2098,2099],{},[201,2100,1485],{"href":946,"rel":2101},[205],[240,2103,2104],{},[201,2105,797],{"href":210,"rel":2106},[205],[240,2108,2109],{},[201,2110,1503],{"href":974,"rel":2111},[205],[240,2113,2114],{},[201,2115,1509],{"href":1156,"rel":2116},[205],[240,2118,2119],{},[201,2120,1515],{"href":1032,"rel":2121},[205],[240,2123,2124],{},[201,2125,867],{"href":865,"rel":2126},[205],[240,2128,2129],{},[201,2130,2132],{"href":1880,"rel":2131},[205],"Terminal-Bench (arXiv:2601.11868)",[240,2134,2135],{},[201,2136,816],{"href":338,"rel":2137},[205],[240,2139,2140],{},[201,2141,2143],{"href":1756,"rel":2142},[205],"Stanford HAI, 2025 AI Index",[240,2145,2146],{},[201,2147,409],{"href":407,"rel":2148},[205],[240,2150,2151],{},[201,2152,415],{"href":413,"rel":2153},[205],[240,2155,2156],{},[201,2157,401],{"href":399,"rel":2158},[205],[240,2160,2161],{},[201,2162,860],{"href":858,"rel":2163},[205],{"title":170,"searchDepth":171,"depth":171,"links":2165},[2166,2167,2168,2169,2170,2171,2179,2180],{"id":234,"depth":171,"text":235},{"id":332,"depth":171,"text":333},{"id":1801,"depth":171,"text":1802},{"id":1912,"depth":171,"text":1913},{"id":1946,"depth":171,"text":1947},{"id":689,"depth":171,"text":690,"children":2172},[2173,2174,2175,2176,2177,2178],{"id":2005,"depth":880,"text":2006},{"id":2012,"depth":880,"text":2013},{"id":2023,"depth":880,"text":2024},{"id":2038,"depth":880,"text":2039},{"id":2047,"depth":880,"text":2048},{"id":739,"depth":880,"text":740},{"id":757,"depth":171,"text":758},{"id":770,"depth":171,"text":771},"An inner agent harness runs a developer and a repository — CLAUDE.md, hooks, tests. An outer harness runs the company — wiki, connectors, write gates, and a ledger. Most enterprises need both.","/blog/inner-vs-outer-agent-harness",{"title":1559,"description":2181},"blog/inner-vs-outer-agent-harness",[892,895,2186,896],"coding-agents","_il0EOS7LGYcsPqRPjgGBR-hd3QC3P9SSGIQjCv3Y0M",{"enabled":164,"message":2189,"linkLabel":93,"linkHref":94,"id":2190,"title":2191,"archived":164,"authors":165,"badge":165,"body":2192,"date":165,"definedTerm":165,"department":165,"description":170,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":165,"headline":165,"image":165,"industry":165,"jobType":165,"listed":130,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":2196,"relatedHeading":165,"seo":2197,"series":165,"sitemap":164,"status":165,"stem":2198,"subhead":165,"tags":165,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":2199},"We're hiring! Join the team building the Sentient Enterprise.","content/shared/hiring.md","Hiring banner",{"type":167,"value":2193,"toc":2194},[],{"title":170,"searchDepth":171,"depth":171,"links":2195},[],"/shared/hiring",{"title":2191,"description":170},"shared/hiring","1zs3boivKda1e-b-hAyuNcmZSKjZUAXmecnwHVgcHzk",{"fold":2201,"id":2205,"title":2206,"archived":164,"authors":165,"badge":165,"body":2207,"date":165,"definedTerm":165,"department":165,"description":170,"extension":173,"eyebrow":165,"faqHeader":165,"faqs":165,"footerBand":2211,"headline":165,"image":165,"industry":165,"jobType":165,"listed":130,"location":165,"navigation":130,"openRoles":165,"pageLayout":165,"path":2215,"relatedHeading":165,"seo":2216,"series":165,"sitemap":164,"status":165,"stem":2217,"subhead":165,"tags":165,"video":165,"whyJoin":165,"workplaceType":165,"__hash__":2218},{"headline":2202,"description":2203,"primaryLabel":8,"primaryTo":2204,"secondaryLabel":914,"secondaryTo":12},"Run frontier AI your business actually owns.","Governed agent swarms, 2,000+ integrations, and a knowledge graph that stays inside your walls. Free 7-day trial.","/checkout","content/shared/cta.md","Site CTAs",{"type":167,"value":2208,"toc":2209},[],{"title":170,"searchDepth":171,"depth":171,"links":2210},[],{"headline":2212,"description":2213,"primaryLabel":8,"primaryTo":2204,"secondaryLabel":2214,"secondaryTo":99},"See what governed AI looks like on your stack.","Connect your tools, run a workstream, and keep every decision on your ledger - free for 7 days.","Talk to our team","/shared/cta",{"title":2206,"description":170},"shared/cta","wz4AdRHnaYH021WMdWcHnZvHmkZJNKaNG4XGZfnFBtw",1788985847615]