<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Calvin Lin</title>
    <description>The latest articles on DEV Community by Calvin Lin (@calvin_lin_816fc5a7ce26a1).</description>
    <link>https://dev.to/calvin_lin_816fc5a7ce26a1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4054006%2F49407da8-6022-44ed-8207-a1950939d407.png</url>
      <title>DEV Community: Calvin Lin</title>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/calvin_lin_816fc5a7ce26a1"/>
    <language>en</language>
    <item>
      <title>A Practical Architecture for Self-Hosted AI Agent Operations</title>
      <dc:creator>Calvin Lin</dc:creator>
      <pubDate>Tue, 08 Sep 2026 04:50:20 +0000</pubDate>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1/a-practical-architecture-for-self-hosted-ai-agent-operations-361k</link>
      <guid>https://dev.to/calvin_lin_816fc5a7ce26a1/a-practical-architecture-for-self-hosted-ai-agent-operations-361k</guid>
      <description>&lt;p&gt;Running an AI agent on your own infrastructure gives you control over deployment and data, but it does not automatically make the system reliable or safe.&lt;/p&gt;

&lt;p&gt;The difficult part begins when an agent can use tools, access business context, and continue working after the first prompt. At that point, the system needs operational boundaries—not only a model endpoint and a collection of tools.&lt;/p&gt;

&lt;p&gt;Here are seven boundaries worth designing before adding more agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Give each workspace a clear goal
&lt;/h2&gt;

&lt;p&gt;Do not use one global agent context for every project. A workspace should have a defined goal, its own relevant knowledge, and an explicit set of participants and capabilities.&lt;/p&gt;

&lt;p&gt;A measurable goal also gives the system a way to decide whether work is complete. “Help with marketing” is too broad. “Produce a reviewed launch brief and a seven-day content plan” can be checked.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Separate agent identity from user identity
&lt;/h2&gt;

&lt;p&gt;An agent should not silently inherit every permission of the person running it.&lt;/p&gt;

&lt;p&gt;Use a distinct identity or capability set for each agent role. A research agent may read approved sources but should not publish. A communications agent may draft a message but require approval before sending it. Credentials should be scoped to the smallest useful surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Treat tools as capabilities, not plugins
&lt;/h2&gt;

&lt;p&gt;A tool description is part of the security boundary. Record what the tool can read, what it can change, and whether the action is reversible.&lt;/p&gt;

&lt;p&gt;This is particularly important for MCP servers. Treat MCP configuration like executable dependency metadata:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;allowlist server origins;&lt;/li&gt;
&lt;li&gt;pin the expected package, version, or image digest;&lt;/li&gt;
&lt;li&gt;isolate credentials per server;&lt;/li&gt;
&lt;li&gt;review tool-schema changes;&lt;/li&gt;
&lt;li&gt;default new capabilities to disabled or read-only;&lt;/li&gt;
&lt;li&gt;require approval when capabilities expand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The question is not only whether a server is trusted. It is what the server can do with the identity and environment available to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Distinguish planning from execution
&lt;/h2&gt;

&lt;p&gt;The output of a planning step should not automatically authorize execution.&lt;/p&gt;

&lt;p&gt;Plans can be reviewed, changed, and rejected. Execution should use a specific plan version and record each attempted step. This makes failures easier to reproduce and prevents the system from quietly changing its approach after approval.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Make approval requests inspectable
&lt;/h2&gt;

&lt;p&gt;An approval request should contain a compact decision packet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;proposed action;&lt;/li&gt;
&lt;li&gt;reason for the action;&lt;/li&gt;
&lt;li&gt;target account or resource;&lt;/li&gt;
&lt;li&gt;important parameters;&lt;/li&gt;
&lt;li&gt;expected effect;&lt;/li&gt;
&lt;li&gt;rollback or recovery path, when one exists.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Users should not need to inspect a full agent transcript to understand what they are approving.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Store artifacts separately from chat
&lt;/h2&gt;

&lt;p&gt;A final answer is not always the result of the work. The result may be a document, spreadsheet, code change, report, or updated task state.&lt;/p&gt;

&lt;p&gt;Store those artifacts as durable objects, link them to the task that produced them, and keep the supporting evidence available. This gives users something concrete to verify and reuse.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Define completion with observable checks
&lt;/h2&gt;

&lt;p&gt;Agents are good at producing plausible completion reports. They still need objective acceptance criteria.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a command exits successfully;&lt;/li&gt;
&lt;li&gt;an expected file exists and passes validation;&lt;/li&gt;
&lt;li&gt;a message remains in draft until approved;&lt;/li&gt;
&lt;li&gt;a workflow creates the expected artifact;&lt;/li&gt;
&lt;li&gt;a required source is cited;&lt;/li&gt;
&lt;li&gt;a human reviewer accepts the result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without these checks, “done” is only another model-generated sentence.&lt;/p&gt;

&lt;h2&gt;
  
  
  A small reference model
&lt;/h2&gt;

&lt;p&gt;The resulting loop is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Goal
  -&amp;gt; Workspace context
  -&amp;gt; Plan
  -&amp;gt; Task steps
  -&amp;gt; Tool calls
  -&amp;gt; Approval when required
  -&amp;gt; Artifact
  -&amp;gt; Acceptance check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We use this operating model in &lt;a href="https://github.com/manor-os/manor-ai?utm_source=devto&amp;amp;utm_medium=referral&amp;amp;utm_campaign=oss_geo&amp;amp;utm_content=self_hosted_agent_architecture" rel="noopener noreferrer"&gt;Manor AI&lt;/a&gt;, a self-hosted AI workspace for connecting conversations to persistent work. The public repository is source-available under the Sustainable Use License 1.0.&lt;/p&gt;

&lt;p&gt;Self-hosting is most valuable when it gives operators understandable control. The architecture should make the agent’s scope, actions, and results easier to inspect—not merely move the same black box onto another machine.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>security</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Policy checks for AI agents: the proposal envelope pattern</title>
      <dc:creator>Calvin Lin</dc:creator>
      <pubDate>Mon, 24 Aug 2026 20:44:25 +0000</pubDate>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1/policy-checks-for-ai-agents-the-proposal-envelope-pattern-1ono</link>
      <guid>https://dev.to/calvin_lin_816fc5a7ce26a1/policy-checks-for-ai-agents-the-proposal-envelope-pattern-1ono</guid>
      <description>&lt;p&gt;AI agents become useful in business when they can move work forward. They also become risky at exactly that moment.&lt;/p&gt;

&lt;p&gt;Reading a document is low risk. Drafting a reply is usually manageable. Sending the reply, changing a CRM stage, refunding a customer, editing a billing record, inviting a user, deleting a file, or posting publicly is different. Those actions leave the workspace and change the business.&lt;/p&gt;

&lt;p&gt;That is why the operating layer around an agent matters as much as the agent itself. A business does not only need intelligence. It needs a repeatable way to decide whether an AI-proposed action is allowed, should be reviewed, must be blocked, or should be re-checked because the state changed.&lt;/p&gt;

&lt;p&gt;The pattern I keep coming back to is the &lt;strong&gt;proposal envelope&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a proposal envelope?
&lt;/h2&gt;

&lt;p&gt;A proposal envelope is a structured record an AI agent must produce before it changes a business system, sends an external message, touches money, updates permissions, or makes a public commitment.&lt;/p&gt;

&lt;p&gt;It packages the exact proposed action, source evidence, risk class, approval owner, expiry time, idempotency key, rollback path, and log destination so a human or policy layer can review the action before it becomes a side effect.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;agent output
-&amp;gt; proposal envelope
-&amp;gt; policy check
-&amp;gt; approval inbox
-&amp;gt; state re-check
-&amp;gt; action
-&amp;gt; evidence log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent can still reason over messy context. It can still prepare useful work. But before it creates a side effect, it must produce a structured proposal that another layer can inspect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters in real workflows
&lt;/h2&gt;

&lt;p&gt;Most early agent workflows grow from small experiments.&lt;/p&gt;

&lt;p&gt;A founder asks an agent to draft emails. A team adds a Slack approval step. A CRM workflow gets another condition. A support automation pauses when refund words appear. A billing exception goes to email. A public post waits in a document.&lt;/p&gt;

&lt;p&gt;Each rule may be reasonable on its own. The problem is that the review system becomes scattered.&lt;/p&gt;

&lt;p&gt;Nobody can easily see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which proposals are waiting&lt;/li&gt;
&lt;li&gt;which approvals expired&lt;/li&gt;
&lt;li&gt;which actions already ran&lt;/li&gt;
&lt;li&gt;what evidence the agent used&lt;/li&gt;
&lt;li&gt;whether another workflow touched the same record&lt;/li&gt;
&lt;li&gt;whether the business state changed after approval&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is how a sanctioned AI tool can still behave like shadow AI. The app may be approved, but the exact interaction is not governed. The connector exists, but the workflow does not have a shared policy contract.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the envelope should contain
&lt;/h2&gt;

&lt;p&gt;A useful proposal envelope includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Actor:&lt;/strong&gt; which agent, workflow, user, or schedule requested the action&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; which business goal loop this action is supposed to advance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target system:&lt;/strong&gt; Gmail, CRM, billing, calendar, file storage, Slack, Discord, or another tool&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exact action:&lt;/strong&gt; the specific message, update, record change, invite, post, or task to create&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected record:&lt;/strong&gt; the customer, lead, invoice, document, thread, account, project, or channel touched by the action&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source evidence:&lt;/strong&gt; the emails, docs, notes, policies, tickets, or records the agent used&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk class:&lt;/strong&gt; low, review, sensitive, blocked, or custom levels defined by the business&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval owner:&lt;/strong&gt; the person or role allowed to approve the proposal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expiry time:&lt;/strong&gt; when the approval stops being valid&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Idempotency key:&lt;/strong&gt; a key that prevents duplicate sends, duplicate updates, or duplicate refunds&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rollback path:&lt;/strong&gt; what can be undone, what cannot, and what mitigation exists&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log destination:&lt;/strong&gt; where the final decision, evidence, and result should be recorded&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is much easier to review than a vague notification saying the agent wants to update something.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the policy check should decide
&lt;/h2&gt;

&lt;p&gt;The policy check should be boring. That is a feature.&lt;/p&gt;

&lt;p&gt;Its job is not to rethink the whole business problem. Its job is to classify the proposal and decide what happens next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Allow:&lt;/strong&gt; safe, reversible, inside scope, and low impact&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Require approval:&lt;/strong&gt; customer-facing, financial, public, permission-related, or ambiguous&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deny:&lt;/strong&gt; outside tool scope, missing evidence, unsupported claim, forbidden action, or unsafe target&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Escalate:&lt;/strong&gt; requires a named owner, legal review, founder approval, manager approval, or manual handling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask for more context:&lt;/strong&gt; the proposal cannot be judged because the source set is missing or stale&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The decision should come with a reason. A reviewer should know whether the workflow paused because of missing evidence, customer impact, money movement, public visibility, policy mismatch, or stale state.&lt;/p&gt;

&lt;h2&gt;
  
  
  The approval inbox is not just notifications
&lt;/h2&gt;

&lt;p&gt;A real approval inbox is a queue of proposed side effects.&lt;/p&gt;

&lt;p&gt;Each item should show what will happen, why the agent believes it should happen, which records are affected, what sources were used, who can approve it, and when the proposal expires. The reviewer should not need to reconstruct the entire thread from scratch.&lt;/p&gt;

&lt;p&gt;This matters because review time is the hidden cost of AI. A draft that saves five minutes but requires ten minutes of fact-checking is not an improvement.&lt;/p&gt;

&lt;p&gt;The approval inbox should make the reviewer faster by carrying evidence and constraints with the proposal.&lt;/p&gt;

&lt;h2&gt;
  
  
  State re-checks prevent stale approvals
&lt;/h2&gt;

&lt;p&gt;An approval is only valid against a specific business state.&lt;/p&gt;

&lt;p&gt;If the customer replied after approval, the approved follow-up may be wrong. If pricing changed, the old renewal draft may be wrong. If another workflow already updated the CRM record, a retry may create a duplicate task. If inventory changed, a fulfillment message may no longer be accurate.&lt;/p&gt;

&lt;p&gt;Before execution, the workflow should re-check the minimum state that must still be true:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the goal is still active&lt;/li&gt;
&lt;li&gt;the affected record has not changed in a conflicting way&lt;/li&gt;
&lt;li&gt;the approval has not expired&lt;/li&gt;
&lt;li&gt;the proposal is still inside the approved scope&lt;/li&gt;
&lt;li&gt;the idempotency key has not already been executed&lt;/li&gt;
&lt;li&gt;the source evidence is still current enough for the action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where many agent demos break in real operations. The demo shows an action. The business needs the action to still be correct at the time it runs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where deterministic workflow tools fit
&lt;/h2&gt;

&lt;p&gt;Workflow automation tools are excellent for deterministic plumbing: triggers, transformations, webhooks, retries, routing, record updates, and scheduled jobs.&lt;/p&gt;

&lt;p&gt;The proposal envelope pattern does not compete with that. It gives the AI part of the system a contract before the deterministic part executes.&lt;/p&gt;

&lt;p&gt;A practical setup can look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;workflow trigger
-&amp;gt; AI drafts proposal
-&amp;gt; policy check
-&amp;gt; approval inbox
-&amp;gt; workflow executes approved action
-&amp;gt; log result
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That split is important. The workflow should not ask the agent to improvise every step.&lt;/p&gt;

&lt;p&gt;The agent handles the messy judgment: what does this customer mean, which policy applies, what action should be proposed, and what evidence supports it. The workflow handles reliable execution after the proposal is allowed or approved.&lt;/p&gt;

&lt;h2&gt;
  
  
  A concrete example: a renewal email
&lt;/h2&gt;

&lt;p&gt;Suppose a small SaaS company wants an agent to help recover renewals at risk.&lt;/p&gt;

&lt;p&gt;The agent reviews account notes, support tickets, usage, billing status, and the latest human message. It decides that one customer should receive a retention email with a proposed support plan.&lt;/p&gt;

&lt;p&gt;Instead of sending, the agent creates a proposal envelope:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Goal:&lt;/strong&gt; reduce churn risk for active customer accounts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target:&lt;/strong&gt; Gmail and CRM&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Action:&lt;/strong&gt; send a specific renewal email and create a CRM follow-up task&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Evidence:&lt;/strong&gt; last support thread, usage drop, renewal date, account owner's note&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk:&lt;/strong&gt; review required because the message mentions a service commitment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Owner:&lt;/strong&gt; account owner&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expiry:&lt;/strong&gt; 24 hours&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Re-check:&lt;/strong&gt; do not send if the customer replied, renewal status changed, or another task already exists&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Log:&lt;/strong&gt; save final email, approval decision, evidence, and outcome to the account timeline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is reviewable business execution. The agent did useful work, but the human is not approving a black box. They are approving a concrete side effect with evidence and boundaries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Checklist before agents touch live systems
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Define which action types are low-risk, review-required, sensitive, or blocked.&lt;/li&gt;
&lt;li&gt;Require a proposal envelope before any external side effect.&lt;/li&gt;
&lt;li&gt;Route proposal envelopes through one approval inbox or shared review contract.&lt;/li&gt;
&lt;li&gt;Add expiry times for approvals.&lt;/li&gt;
&lt;li&gt;Use idempotency keys for sends, record updates, refunds, invites, and task creation.&lt;/li&gt;
&lt;li&gt;Re-check state immediately before execution.&lt;/li&gt;
&lt;li&gt;Log the proposal, evidence, policy decision, reviewer, action result, and failure state.&lt;/li&gt;
&lt;li&gt;Measure cost and outcome by completed goal loop, not by number of agent runs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If those pieces are missing, the next improvement is not a more powerful agent. The next improvement is a better operating contract around the agent.&lt;/p&gt;

&lt;p&gt;At Manor AI, this is the workspace layer we are designing around: agents, skills, context, approval gates, policy checks, evidence logs, and goal loops that make business execution reviewable.&lt;/p&gt;




&lt;p&gt;Originally published on the Manor AI blog: &lt;a href="https://manorai.xyz/blogs/blog-ai-agent-policy-checks-proposal-envelope" rel="noopener noreferrer"&gt;https://manorai.xyz/blogs/blog-ai-agent-policy-checks-proposal-envelope&lt;/a&gt;&lt;/p&gt;

</description>
      <category>saas</category>
      <category>productivity</category>
      <category>ai</category>
      <category>automation</category>
    </item>
    <item>
      <title>How to Handle Goal Loops in Business Operations with AI Agents</title>
      <dc:creator>Calvin Lin</dc:creator>
      <pubDate>Sun, 23 Aug 2026 18:13:53 +0000</pubDate>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1/how-to-handle-goal-loops-in-business-operations-with-ai-agents-f9i</link>
      <guid>https://dev.to/calvin_lin_816fc5a7ce26a1/how-to-handle-goal-loops-in-business-operations-with-ai-agents-f9i</guid>
      <description>&lt;p&gt;Originally published by Manor AI: &lt;a href="https://manorai.xyz/blogs/blog-handle-goal-loops-business-ai-agents.html" rel="noopener noreferrer"&gt;https://manorai.xyz/blogs/blog-handle-goal-loops-business-ai-agents.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Business work rarely ends after one output. A customer replies. A lead goes quiet. A support issue changes priority. A creator launches a new offer. A founder decides retention matters more than outbound this week. A finance review finds an exception. A workflow that looked correct at 10:00 can be wrong by 10:17.&lt;/p&gt;

&lt;p&gt;That is why the useful unit of AI business software is the goal loop.&lt;/p&gt;

&lt;p&gt;The agent still matters. The workflow still matters. But neither is enough if the business cannot preserve state around the work: what goal is active, what context is trusted, what action is being proposed, what has already been approved, what changed since approval, and what outcome should be measured after action.&lt;/p&gt;

&lt;h2&gt;
  
  
  The goal loop model
&lt;/h2&gt;

&lt;p&gt;A goal loop is a recurring business objective with enough structure to be run, reviewed, improved, and run again. The simple version looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;goal -&amp;gt; context -&amp;gt; proposal -&amp;gt; approval -&amp;gt; action -&amp;gt; log -&amp;gt; measurement -&amp;gt; re-evaluate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This model is useful because it matches how operators actually work. A founder does not close a customer by sending one message. A support team does not improve customer experience by summarizing one ticket. A creator does not help students build a business by giving one prompt. The work advances through repeated passes over changing context.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tasks have outputs. Goal loops have state.
&lt;/h2&gt;

&lt;p&gt;A task can be completed in isolation. A goal loop cannot.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task: draft a follow-up email.&lt;/li&gt;
&lt;li&gt;Goal loop: recover stale sales opportunities without messaging someone who already replied, already booked, or should be excluded.&lt;/li&gt;
&lt;li&gt;Task: summarize a support ticket.&lt;/li&gt;
&lt;li&gt;Goal loop: reduce unresolved customer issues while keeping refunds, pricing exceptions, and public commitments behind review.&lt;/li&gt;
&lt;li&gt;Task: generate a weekly report.&lt;/li&gt;
&lt;li&gt;Goal loop: review progress, detect blockers, decide the next operating priority, and leave evidence for the next review.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The difference is state. A goal loop needs to know what happened before, what changed, what is allowed, who owns the decision, and what outcome matters now.&lt;/p&gt;

&lt;h2&gt;
  
  
  Separate the strategist loop from the proposal loop
&lt;/h2&gt;

&lt;p&gt;Useful business AI usually contains two different loops that should not be collapsed into one black box.&lt;/p&gt;

&lt;p&gt;The strategist loop decides what should happen next based on current business state. It asks which goal matters, what changed since the last review, which constraint matters most, what should stop, and what should be escalated.&lt;/p&gt;

&lt;p&gt;The proposal loop turns that direction into a concrete action that can be reviewed, approved, executed, and logged. It asks which records are affected, which sources were used, what exactly will be sent or changed, which tools are required, what approval boundary applies, and what should be logged after execution.&lt;/p&gt;

&lt;p&gt;When these two loops are mixed together, review becomes vague. A human sees an agent's conclusion, but not the operating state, evidence, tool scope, approval rule, or exact side effect. That is not enough for real business execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  A concrete example: customer retention
&lt;/h2&gt;

&lt;p&gt;Imagine a small SaaS company with 300 customers. The strategist loop reviews current business state and decides that retention should be prioritized this week because expansion pipeline slowed and several customers have unresolved issues.&lt;/p&gt;

&lt;p&gt;That is not an action yet. It is direction.&lt;/p&gt;

&lt;p&gt;The proposal loop turns the direction into reviewable work:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review customers with open support issues older than seven days.&lt;/li&gt;
&lt;li&gt;Exclude customers who replied in the last 24 hours.&lt;/li&gt;
&lt;li&gt;Pull billing status, plan level, support history, and the last human note.&lt;/li&gt;
&lt;li&gt;Draft a specific follow-up for each account.&lt;/li&gt;
&lt;li&gt;Pause before sending anything that mentions refunds, credits, pricing, or commitments.&lt;/li&gt;
&lt;li&gt;Log which sources were used and what the reviewer approved.&lt;/li&gt;
&lt;li&gt;Re-check state immediately before sending.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is where an &lt;a href="https://manorai.xyz/ai-business-workspace.html" rel="noopener noreferrer"&gt;AI business workspace&lt;/a&gt; becomes valuable. The workspace carries the goal, current context, reusable skills, approval rules, evidence, and measurement around the agent. The agent is not asked to rebuild the operating system every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stale approvals are a real failure mode
&lt;/h2&gt;

&lt;p&gt;Approval is not only a button. Approval is a decision made against a specific business state.&lt;/p&gt;

&lt;p&gt;If the state changes, the approval may no longer be valid.&lt;/p&gt;

&lt;p&gt;Common examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A customer replies after a draft was approved.&lt;/li&gt;
&lt;li&gt;Pricing changes before a renewal email is sent.&lt;/li&gt;
&lt;li&gt;Inventory changes before a fulfillment message goes out.&lt;/li&gt;
&lt;li&gt;Another workflow already handled the same account.&lt;/li&gt;
&lt;li&gt;A support issue escalates after the proposal was reviewed.&lt;/li&gt;
&lt;li&gt;A goal is reprioritized by the owner or team.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In those cases, the agent should not blindly continue. Before any external side effect, the workspace should re-check whether the goal is still active, whether approval is still fresh, whether source data changed, whether another workflow touched the same record, and whether the action is still inside the approved scope.&lt;/p&gt;

&lt;p&gt;This is why goal loops need state, not just memory. Memory can recall history. State decides whether the current action is still valid.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where workflow automation fits
&lt;/h2&gt;

&lt;p&gt;Workflow automation tools are strong when the path is deterministic:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;form submitted -&amp;gt; create record -&amp;gt; notify team -&amp;gt; schedule task
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That should be reliable and inspectable. Tools such as n8n, Zapier, and Make are strong for this kind of structured handoff.&lt;/p&gt;

&lt;p&gt;AI agents are useful when the work starts in messy business context: inbox threads, support tickets, customer histories, documents, calls, notes, policies, and changing priorities.&lt;/p&gt;

&lt;p&gt;The practical stack is both. Workflow automation handles structured handoffs. The workspace layer handles context-heavy loops where a person may need to review the proposal before the business takes action.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to measure
&lt;/h2&gt;

&lt;p&gt;The wrong metric is "how much AI ran." The better metric is whether the goal loop moved.&lt;/p&gt;

&lt;p&gt;For a retention loop, measure unresolved accounts reviewed, qualified follow-ups prepared, risky messages caught before sending, customer replies recovered, churn-risk accounts escalated, cost per reviewed account, and time saved per weekly review.&lt;/p&gt;

&lt;p&gt;For a sales loop, measure stale leads recovered, follow-ups prepared, duplicates avoided, human review time, conversion lift, and cost per qualified reply.&lt;/p&gt;

&lt;p&gt;For an operations loop, measure exceptions detected, reports completed, handoffs created, blocked tasks surfaced, approvals completed, and rework avoided.&lt;/p&gt;

&lt;p&gt;The goal loop should make business progress easier to see. If it only creates more agent activity, it is not working.&lt;/p&gt;

&lt;h2&gt;
  
  
  A checklist before giving agents tool access
&lt;/h2&gt;

&lt;p&gt;Before an agent can act on a business workflow, define these pieces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The goal: what business outcome should move?&lt;/li&gt;
&lt;li&gt;The trigger: what starts the loop?&lt;/li&gt;
&lt;li&gt;The trusted context: which records, emails, docs, notes, and policies can the agent use?&lt;/li&gt;
&lt;li&gt;The skill: what repeatable job is the agent performing?&lt;/li&gt;
&lt;li&gt;The proposal: what exact action is being suggested?&lt;/li&gt;
&lt;li&gt;The approval boundary: which actions can run automatically, and which must pause?&lt;/li&gt;
&lt;li&gt;The state re-check: what must still be true immediately before execution?&lt;/li&gt;
&lt;li&gt;The log: what evidence should be saved?&lt;/li&gt;
&lt;li&gt;The measurement: how will the team know the loop worked?&lt;/li&gt;
&lt;li&gt;The stop rule: when should the agent stop or escalate?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the difference between using AI for isolated output and using AI for business execution.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Manor AI thinks about goal loops
&lt;/h2&gt;

&lt;p&gt;Manor AI is designed as a workspace for turning repeated business work into reviewable operating loops.&lt;/p&gt;

&lt;p&gt;The design goal is not to let agents do everything. The design goal is to let businesses define goals, business context, reusable skills, agent roles, workflow paths, approval rules, evidence logs, measurement, and re-evaluation in one place.&lt;/p&gt;

&lt;p&gt;The workspace matters because agents need somewhere to inherit current state before they propose action. The approval boundary matters because some actions should be prepared by AI but decided by a person. The log matters because the next loop should not start from zero.&lt;/p&gt;

&lt;p&gt;That is the operating model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;business context -&amp;gt; strategist -&amp;gt; proposal -&amp;gt; approval -&amp;gt; action -&amp;gt; evidence log -&amp;gt; measurement -&amp;gt; next loop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is how AI becomes business infrastructure instead of another disconnected tool.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://manorai.xyz/ai-business-workspace.html" rel="noopener noreferrer"&gt;AI Business Workspace&lt;/a&gt;, &lt;a href="https://manorai.xyz/blogs/blog-goal-loops-ai-business.html" rel="noopener noreferrer"&gt;Why Goal Loops Are the Core of AI Business&lt;/a&gt;, and &lt;a href="https://manorai.xyz/features/approval-gates-activity-logs.html" rel="noopener noreferrer"&gt;Approval Gates and Activity Logs&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>architecture</category>
      <category>startup</category>
    </item>
    <item>
      <title>Why We Built an Independent, Goal-Driven AI Workspace</title>
      <dc:creator>Calvin Lin</dc:creator>
      <pubDate>Sat, 22 Aug 2026 05:14:59 +0000</pubDate>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1/why-we-built-an-independent-goal-driven-ai-workspace-2lin</link>
      <guid>https://dev.to/calvin_lin_816fc5a7ce26a1/why-we-built-an-independent-goal-driven-ai-workspace-2lin</guid>
      <description>&lt;p&gt;Most AI products begin with a chat box.&lt;/p&gt;

&lt;p&gt;That is useful for answering a question, drafting a document, or calling a tool. But it becomes harder to use when the work lasts longer than one conversation or involves several people and Agents.&lt;/p&gt;

&lt;p&gt;The problem is not only memory. The work also needs a clear goal, an owner, a current state, decision rules, review points, and a result that somebody can verify.&lt;/p&gt;

&lt;p&gt;That led us to a different model: an independent, goal-driven AI Workspace.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we mean by a Workspace
&lt;/h2&gt;

&lt;p&gt;A Workspace is not a folder containing several chats. It is an operating unit built around a measurable goal.&lt;/p&gt;

&lt;p&gt;For example, instead of asking an Agent to “help with product research,” a Workspace can define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the outcome it is expected to produce&lt;/li&gt;
&lt;li&gt;the people and Agents responsible for the work&lt;/li&gt;
&lt;li&gt;the Tasks and Plans currently in progress&lt;/li&gt;
&lt;li&gt;the Knowledge and documents that belong to this goal&lt;/li&gt;
&lt;li&gt;the Tools and Rules that apply&lt;/li&gt;
&lt;li&gt;the actions that require human approval&lt;/li&gt;
&lt;li&gt;the artifact that proves the work is complete&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each Workspace keeps this context and execution state separate from unrelated work. A customer project should not inherit the documents, permissions, or unfinished Tasks of another customer. An internal research Workspace should not behave like a support Workspace.&lt;/p&gt;

&lt;p&gt;The goal provides direction; the boundary provides control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why goal-driven matters
&lt;/h2&gt;

&lt;p&gt;Without a goal, an Agent can keep producing plausible activity without getting closer to a useful outcome.&lt;/p&gt;

&lt;p&gt;Inside a goal-driven Workspace, each proposed Task or action can be tested against a simple question: does this move the Workspace toward its goal?&lt;/p&gt;

&lt;p&gt;This creates a visible path:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Goal → Plan → Tasks → Execution → Approval → Artifact&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The final unit of value is not a prompt or an answer. It is a completed outcome with enough history for a person to review what happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why independence matters
&lt;/h2&gt;

&lt;p&gt;Long-running AI work accumulates state. It gathers documents, decisions, intermediate outputs, failed attempts, permissions, and assumptions.&lt;/p&gt;

&lt;p&gt;If all of that lives in one global conversation, the system becomes difficult to understand and risky to operate. Independent Workspaces give each goal its own:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Context&lt;/li&gt;
&lt;li&gt;Team and Agents&lt;/li&gt;
&lt;li&gt;Knowledge&lt;/li&gt;
&lt;li&gt;Tasks and Plans&lt;/li&gt;
&lt;li&gt;Rules and approval boundaries&lt;/li&gt;
&lt;li&gt;Activity history and artifacts&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This also makes collaboration clearer. A person can see what is active, what is blocked, what needs approval, and what has actually been delivered.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;Manor AI is our self-hosted implementation of this idea.&lt;/p&gt;

&lt;p&gt;It connects Workspace conversations with Goals, Tasks, Plans, Agents, Skills, Knowledge, approvals, Flows, Automations, and resulting artifacts. The intention is to keep context, execution, review, and results together instead of scattering them across chat windows and separate tools.&lt;/p&gt;

&lt;p&gt;A small first workflow looks like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a Workspace with a clear outcome.&lt;/li&gt;
&lt;li&gt;Add the relevant Knowledge and an Agent with a defined responsibility.&lt;/li&gt;
&lt;li&gt;Create a Task with acceptance criteria.&lt;/li&gt;
&lt;li&gt;Review the Plan and respond to approval requests.&lt;/li&gt;
&lt;li&gt;Verify the resulting artifact.&lt;/li&gt;
&lt;li&gt;Turn a process that works repeatedly into a Flow or Automation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We have published the self-hosted source on GitHub under the Manor Sustainable Use License 1.0. It is source-available rather than OSI-approved open source, and we want to be explicit about that distinction.&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/manor-os/manor-ai" rel="noopener noreferrer"&gt;https://github.com/manor-os/manor-ai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What we want to learn
&lt;/h2&gt;

&lt;p&gt;We are still testing where the Workspace boundary should sit and what information must remain visible to users.&lt;/p&gt;

&lt;p&gt;If you build or operate Agents, we would appreciate your view on three questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should be isolated between Workspaces?&lt;/li&gt;
&lt;li&gt;Which actions should always require human approval?&lt;/li&gt;
&lt;li&gt;What evidence do you need before trusting an Agent's “completed” result?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those answers are more useful to us than a generic launch reaction.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>ai</category>
      <category>selfhosted</category>
      <category>github</category>
    </item>
    <item>
      <title>MCP went stateless. Your agent workflow did not.</title>
      <dc:creator>Calvin Lin</dc:creator>
      <pubDate>Mon, 03 Aug 2026 16:51:49 +0000</pubDate>
      <link>https://dev.to/calvin_lin_816fc5a7ce26a1/mcp-went-stateless-your-agent-workflow-did-not-53p</link>
      <guid>https://dev.to/calvin_lin_816fc5a7ce26a1/mcp-went-stateless-your-agent-workflow-did-not-53p</guid>
      <description>&lt;p&gt;MCP &lt;code&gt;2026-07-28&lt;/code&gt; is now the stable Model Context Protocol revision. Its biggest architectural change is a stateless, sessionless core designed to run more naturally on ordinary HTTP infrastructure.&lt;/p&gt;

&lt;p&gt;That is a major improvement for protocol implementers. It does not make the work performed through MCP stateless.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Disclosure: AI tools assisted with editing this article. The Manor AI team reviewed the technical claims against the stable MCP specification, changelog, and referenced SEPs before publication.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What problem MCP solves
&lt;/h2&gt;

&lt;p&gt;Before MCP, each AI host tended to invent its own adapters for files, databases, developer tools, and business systems. Every connection brought a new schema, discovery model, authentication flow, error model, and lifecycle.&lt;/p&gt;

&lt;p&gt;MCP gives hosts and servers a common way to expose:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tools&lt;/strong&gt; a model can invoke;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resources&lt;/strong&gt; that provide data and context;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompts&lt;/strong&gt; that package reusable interaction patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The protocol standardizes how capabilities are described and invoked. It does not decide why a capability should be used, who should approve it, or where the result should live tomorrow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in MCP 2026-07-28
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. The core protocol is stateless
&lt;/h3&gt;

&lt;p&gt;Earlier Streamable HTTP deployments could establish a session and carry an &lt;code&gt;Mcp-Session-Id&lt;/code&gt; across requests. Horizontally scaled servers then needed session affinity or shared session infrastructure.&lt;/p&gt;

&lt;p&gt;The new revision removes the initialization handshake and protocol-level session. Each request carries the information needed to understand it, while &lt;code&gt;server/discover&lt;/code&gt; lets clients inspect server capabilities.&lt;/p&gt;

&lt;p&gt;Any healthy server instance can now handle a request. This fits ordinary load balancers, gateways, caches, and tracing systems much better.&lt;/p&gt;

&lt;p&gt;When a workflow needs state across calls, the server can return an explicit handle and accept that handle as a normal argument later. A &lt;code&gt;basket_id&lt;/code&gt;, &lt;code&gt;browser_id&lt;/code&gt;, or &lt;code&gt;job_id&lt;/code&gt; becomes application data instead of invisible transport state.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Server-to-client interaction becomes an explicit round trip
&lt;/h3&gt;

&lt;p&gt;A server may still need more information while processing a request. The Multi Round-Trip Requests pattern makes that requirement explicit.&lt;/p&gt;

&lt;p&gt;Instead of depending on an open bidirectional session, an operation can return &lt;code&gt;input_required&lt;/code&gt;. The client collects the requested input and retries the operation with &lt;code&gt;inputResponses&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The correlation state is visible and routable rather than hidden inside a connection.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Extensions can evolve outside the core
&lt;/h3&gt;

&lt;p&gt;MCP now has a first-class extension model. Optional capabilities are advertised explicitly and can evolve without forcing every implementation to adopt them at the same time.&lt;/p&gt;

&lt;p&gt;Two extensions are especially relevant to agent applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Apps&lt;/strong&gt; can render interactive interfaces such as forms and charts inside a conversation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Tasks&lt;/strong&gt; adds asynchronous operations with durable handles, polling, and mid-flight input.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These extensions make MCP useful beyond short synchronous tool calls. They still do not replace the product-level operating model around a team.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Authorization improves, but host policy remains necessary
&lt;/h3&gt;

&lt;p&gt;The revision strengthens authorization and aligns it more closely with OAuth and OpenID Connect deployments.&lt;/p&gt;

&lt;p&gt;Authentication can establish whether a client may connect to a server. It cannot fully answer whether this specific agent should send an email, publish a post, modify a record, or delete a file in the current situation.&lt;/p&gt;

&lt;p&gt;The specification keeps that boundary explicit: host applications still need consent interfaces, access controls, and safe execution behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stateless protocol is not stateless work
&lt;/h2&gt;

&lt;p&gt;A tool call can be self-contained while the work around it remains durable.&lt;/p&gt;

&lt;p&gt;Consider a customer-onboarding workflow. It may include research, document generation, CRM updates, email drafts, approvals, and a final handoff. Several MCP calls may participate, but the team still needs to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the goal and current status;&lt;/li&gt;
&lt;li&gt;who owns the work;&lt;/li&gt;
&lt;li&gt;which documents and instructions were used;&lt;/li&gt;
&lt;li&gt;which tools were available;&lt;/li&gt;
&lt;li&gt;what completed and what failed;&lt;/li&gt;
&lt;li&gt;where human input was required;&lt;/li&gt;
&lt;li&gt;which evidence supports the result.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of that belongs in a transport session. It belongs in the host application's data model.&lt;/p&gt;

&lt;h2&gt;
  
  
  A prompt is not a durable task
&lt;/h2&gt;

&lt;p&gt;Chat is useful for expressing intent. It is a poor database for operational state.&lt;/p&gt;

&lt;p&gt;A real task needs an owner, priority, acceptance criteria, plan, status, evidence, comments, and a result that can be verified. If execution stops halfway through, another person should be able to see what happened and continue the work.&lt;/p&gt;

&lt;p&gt;The conversation can start the task. The task should become the record of the work.&lt;/p&gt;

&lt;p&gt;This also explains why an MCP Task and a product-level task are different concepts. The MCP extension represents the lifecycle of a protocol operation. A host application decides how that operation relates to a business goal, an owner, policy, review, and a result that remains useful later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Context needs an operating boundary
&lt;/h2&gt;

&lt;p&gt;Giving every agent access to every document and every tool is convenient in a demo and dangerous in production.&lt;/p&gt;

&lt;p&gt;Context should belong to a boundary such as a project, workspace, customer account, team, or environment. That boundary groups the people, agents, knowledge, tools, integrations, and rules that belong to the same work.&lt;/p&gt;

&lt;p&gt;It answers two basic questions:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What information may this agent use?&lt;/li&gt;
&lt;li&gt;What actions may this agent take here?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Without a boundary, retrieval and tool calling become global capabilities with unclear ownership.&lt;/p&gt;

&lt;h2&gt;
  
  
  Human approval belongs inside execution
&lt;/h2&gt;

&lt;p&gt;Approval should not be a popup added after an automation is designed.&lt;/p&gt;

&lt;p&gt;A task should be able to pause, show the proposed action and supporting evidence, record a decision, and continue from the same state. That creates a useful division of responsibility:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the agent prepares and explains the action;&lt;/li&gt;
&lt;li&gt;the runtime enforces the checkpoint;&lt;/li&gt;
&lt;li&gt;a person makes the decision;&lt;/li&gt;
&lt;li&gt;the task records what happened.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters most for customer communication, publishing, permission changes, payments, and destructive actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evidence makes agent work debuggable
&lt;/h2&gt;

&lt;p&gt;When automation produces a bad result, the first question is usually: why?&lt;/p&gt;

&lt;p&gt;The answer should not require reconstructing an entire chat transcript. A production host should preserve the plan, steps, tool results, artifacts, approvals, errors, and final status associated with the work.&lt;/p&gt;

&lt;p&gt;Evidence helps operators review a proposed action, developers debug a failed run, and teams improve a workflow after repeated use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What production hosts still need to provide
&lt;/h2&gt;

&lt;p&gt;The protocol is intentionally not a business-process engine. A production host still needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;an operating boundary for people, agents, knowledge, and rules;&lt;/li&gt;
&lt;li&gt;persistent context beyond one conversation;&lt;/li&gt;
&lt;li&gt;work objects with ownership, status, acceptance criteria, and results;&lt;/li&gt;
&lt;li&gt;narrowly scoped tools and credentials;&lt;/li&gt;
&lt;li&gt;approval checkpoints for consequential actions;&lt;/li&gt;
&lt;li&gt;evidence that makes execution reviewable;&lt;/li&gt;
&lt;li&gt;workflows that can be repeated and improved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is not a weakness in MCP. It is the correct separation of concerns.&lt;/p&gt;

&lt;p&gt;MCP standardizes the integration surface. The host remains responsible for turning tool calls into work a team can operate.&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical test
&lt;/h2&gt;

&lt;p&gt;Give an agent a small task with a verifiable result. Let it use one document and one scoped tool. Trigger an action that should require approval.&lt;/p&gt;

&lt;p&gt;Then verify that the system:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;pauses before the consequential action;&lt;/li&gt;
&lt;li&gt;shows useful evidence;&lt;/li&gt;
&lt;li&gt;records the decision;&lt;/li&gt;
&lt;li&gt;resumes from the same state;&lt;/li&gt;
&lt;li&gt;leaves a result another person can inspect.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That path reveals whether the system is only an agent demo or something a team can operate.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io/specification/2026-07-28" rel="noopener noreferrer"&gt;MCP 2026-07-28 specification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io/specification/2026-07-28/changelog" rel="noopener noreferrer"&gt;Key changes since 2025-11-25&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io/seps/2567-sessionless-mcp" rel="noopener noreferrer"&gt;SEP-2567: Sessionless MCP via explicit state handles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://modelcontextprotocol.io/extensions/overview" rel="noopener noreferrer"&gt;MCP extensions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Originally published by the Manor AI team on Medium. This DEV edition is a technical cross-post with the original URL set as canonical.&lt;/em&gt;&lt;br&gt;
``&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>architecture</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
