<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Laxmikant Sharma</title><description>Writing and notes on agent protocols, identity, payments, and verification.</description><link>https://laxsharma.com/</link><item><title>Agents Are Speedrunning the History of RPC</title><link>https://laxsharma.com/writing/agents-speedrunning-rpc/</link><guid isPermaLink="true">https://laxsharma.com/writing/agents-speedrunning-rpc/</guid><description>When a tool call dies mid-flight, neither MCP nor A2A can tell you whether it executed, and no retry can prove it is the same request. RPC solved this in 1984. Three changes close the gap.</description><pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;Part 4 of the agentic-web series. &lt;a href=&quot;/writing/agentic-web-field-guide/&quot;&gt;Part 1&lt;/a&gt;, &lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;Part 2&lt;/a&gt;, and &lt;a href=&quot;/writing/when-agents-hire-agents-pact/&quot;&gt;Part 3&lt;/a&gt; came before.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When an agent&apos;s tool call fails, nothing in the current protocol stack can tell you whether it executed, and nothing lets the retry say &amp;quot;I&apos;m the same request, don&apos;t run me twice.&amp;quot; MCP made this worse on 28 July, when it went stateless and dropped its recovery machinery. A2A opened a public epic admitting the same hole five weeks earlier. Both teams are now rediscovering, issue by issue, machinery that RPC systems shipped in 1984 and fintech reinvented as the idempotency key a decade ago.&lt;/p&gt;
&lt;p&gt;If your tools move money, merge branches, or send messages, this is a layer you own today without having agreed to. At the end are the three changes I think both specs should make. Everything before that is why.&lt;/p&gt;
&lt;p&gt;Say your tool charges a card. Under MCP &lt;code&gt;2026-07-28&lt;/code&gt; the call goes out looking like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: charge_card
Accept: application/json, text/event-stream
Content-Type: application/json

{&amp;quot;jsonrpc&amp;quot;:&amp;quot;2.0&amp;quot;,&amp;quot;id&amp;quot;:7,&amp;quot;method&amp;quot;:&amp;quot;tools/call&amp;quot;,
 &amp;quot;params&amp;quot;:{&amp;quot;name&amp;quot;:&amp;quot;charge_card&amp;quot;,
   &amp;quot;arguments&amp;quot;:{&amp;quot;amount&amp;quot;:4000,&amp;quot;currency&amp;quot;:&amp;quot;usd&amp;quot;},
   &amp;quot;_meta&amp;quot;:{
     &amp;quot;io.modelcontextprotocol/protocolVersion&amp;quot;:&amp;quot;2026-07-28&amp;quot;,
     &amp;quot;io.modelcontextprotocol/clientCapabilities&amp;quot;:{}}}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The stream dies before anything comes back. You&apos;re now holding a request you can&apos;t classify. Either it never landed, or it landed and the card is charged and the reply evaporated, or it&apos;s still running on a box that hasn&apos;t noticed you left.&lt;/p&gt;
&lt;p&gt;Look at the frame for anything that would let the server spot a second attempt. &lt;code&gt;id: 7&lt;/code&gt; won&apos;t do it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The request ID &lt;strong&gt;MUST NOT&lt;/strong&gt; match the ID of any other request the sender has issued and not yet received a response for.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Unique among in-flight requests, and that&apos;s all. It&apos;s a demux handle for concurrent calls on a connection, which is what JSON-RPC always meant by it, and it carries no identity across attempts. Nothing else in the envelope helps either: the reserved &lt;code&gt;_meta&lt;/code&gt; keys are &lt;code&gt;progressToken&lt;/code&gt;, the &lt;code&gt;io.modelcontextprotocol/&lt;/code&gt; set, and the three OpenTelemetry trace-propagation keys. No idempotency key, no dedup token, nowhere to put one that means anything.&lt;/p&gt;
&lt;p&gt;Somebody wrote this exact problem up in 1994:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The only way to fix this is to change the protocol to add request IDs. But since this is a standardized interface, there is no way to do this.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Jim Waldo, Geoff Wyant, Ann Wollrath and Sam Kendall, &lt;em&gt;A Note on Distributed Computing&lt;/em&gt;, about a queue interface they made up for the argument. The system they actually autopsy later in that paper is NFS.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What 28 July changed&lt;/h2&gt;
&lt;p&gt;The stateless core got all the coverage and deserved it. Dropping &lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;Mcp-Session-Id&lt;/code&gt; means any request lands on any instance behind an L4 round robin, and you stop running sticky sessions just to keep a tool server alive. Real win. I&apos;d take it.&lt;/p&gt;
&lt;p&gt;Item nine of the major changes is the one nobody quoted:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Remove SSE stream resumability and message redelivery (the &lt;code&gt;Last-Event-ID&lt;/code&gt; header and SSE event IDs) from the Streamable HTTP transport. A broken response stream loses the in-flight request; clients &lt;strong&gt;MUST&lt;/strong&gt; re-issue it as a new request with a new request ID.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Before this revision a dropped stream could be resumed, if the server implemented it: reconnect with &lt;code&gt;Last-Event-ID&lt;/code&gt;, the server could replay from that cursor, final response included. Every step was a MAY, but the recovery path existed. Now the retry is mandated and the correlation is deliberately destroyed, in the same sentence. Mutating &lt;code&gt;tools/call&lt;/code&gt; is at-least-once with no dedup anywhere in the stack, and it fails quietly. You don&apos;t get a duplicate error. You get a second charge.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agents-speedrunning-rpc/20_what_was_removed.png&quot; alt=&quot;What the 2026-07-28 release removed&quot;&gt;&lt;/p&gt;
&lt;p&gt;SEP-2575 is straight about the trade, under a heading called &lt;em&gt;Resumable Streams Are Removed&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Because connection drops now implicitly cancel a request, resumable SSE streams (via &lt;code&gt;Last-Event-ID&lt;/code&gt; reconnection) are removed. They contradict the stateless-by-default paradigm: resuming would require the server to retain per-request state across connection failures.&lt;/p&gt;
&lt;p&gt;Workloads that need durability or resumability &lt;strong&gt;MUST&lt;/strong&gt; use the tasks primitive instead, which provides explicit mechanisms for fetching results after a connection drop.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That first clause is doing more work than it looks like. Closing the response stream is now &lt;em&gt;defined&lt;/em&gt; as cancellation. Clean at the transport, since each request owns its stream. Fiction at the application, where your handler is four frames deep in somebody&apos;s payment SDK and will finish what it started regardless. gRPC hit this years ago and says so out loud: the library &amp;quot;does not have a mechanism to interrupt the application-provided server handler,&amp;quot; so a long-running handler has to poll for its own cancellation. Nobody&apos;s tool handler polls for anything.&lt;/p&gt;
&lt;p&gt;And durability-via-tasks inherits the same hole at its own front door, because tasks mint their IDs server side. Hold a task ID and you can poll &lt;code&gt;tasks/get&lt;/code&gt; forever. Lose the response that carried it and you have no way to learn the task exists. The same release removed &lt;code&gt;tasks/list&lt;/code&gt;, reasonably, on the grounds that it can&apos;t be scoped safely without sessions. It was also the one workaround. A client that loses a task ID now has no path back to it.&lt;/p&gt;
&lt;p&gt;The idempotency gap itself came up while tasks were being designed and was deliberately deferred to a proposal of its own. That proposal went up last week. More on it at the end.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;A2A, same wall, opposite direction&lt;/h2&gt;
&lt;p&gt;Eight epics landed against A2A on 25 June under &lt;code&gt;v1.1-candidate&lt;/code&gt;. #1987 is &lt;em&gt;[Epic] Idempotency &amp;amp; safe retries&lt;/em&gt;. Zero comments on it as of today.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If a client crashes (or the connection drops) after sending the first message but before it receives and persists the server-generated &lt;code&gt;taskId&lt;/code&gt;/&lt;code&gt;contextId&lt;/code&gt;, it has no way to learn whether a task was started on its behalf&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The proximate cause is one line in section 3.4.2:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Client-provided &lt;code&gt;taskId&lt;/code&gt; values for creating new tasks is &lt;strong&gt;NOT&lt;/strong&gt; supported.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The identifier that names the work gets minted on the far side, one round trip after you needed it. There was a real reason: a client-chosen ID could become a handle into another client&apos;s task, and #1987&apos;s acceptance criteria say the retry key they add back must not reopen that. But the fix took the retry story out with it, which is why this epic is harder than it looks and why it has no comments.&lt;/p&gt;
&lt;p&gt;A2A does have a client-minted identifier, &lt;code&gt;message_id&lt;/code&gt;, required on every message. It even has a section headed &lt;em&gt;Idempotency&lt;/em&gt;, and the modal verbs are the entire story:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Send Message&lt;/strong&gt; operations MAY be idempotent. Agents may utilize the messageId to detect duplicate messages.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;code&gt;MAY&lt;/code&gt; and &lt;code&gt;may&lt;/code&gt;. The raw material is on the wire and the obligation isn&apos;t, so you can&apos;t know whether a given agent implemented dedup and can&apos;t write a retry policy that leans on it. Push notifications are more upfront about where that leaves you: &amp;quot;Clients SHOULD process notifications idempotently, as duplicate deliveries may occur.&amp;quot;&lt;/p&gt;
&lt;p&gt;Epic #1986 covers the streaming half: &amp;quot;no per-task event ordering, no cursor to resume from, no defined replay behavior on &lt;code&gt;tasks/resubscribe&lt;/code&gt;.&amp;quot; And resubscribe keys on &lt;code&gt;taskId&lt;/code&gt; rather than on a stream, so with two streams live against one task you get both streams&apos; events fired at you.&lt;/p&gt;
&lt;p&gt;Two protocols, two teams, five weeks apart, same wall.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;The prior art&lt;/h2&gt;
&lt;p&gt;Exactly-once delivery isn&apos;t implementable. Over a lossy channel no finite protocol gets two parties to agree a message arrived, because the agreement needs an ack, and the ack needs an ack. Akkoyunlu, Ekanadham and Huber proved it at SOSP in 1975, where the parable is two gangs of gangsters coordinating a job rather than generals on hilltops. Jim Gray gave it the name that stuck three years later.&lt;/p&gt;
&lt;p&gt;Fifty years old.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agents-speedrunning-rpc/19_ambiguity_window.png&quot; alt=&quot;Three different worlds, one identical client view&quot;&gt;&lt;/p&gt;
&lt;p&gt;Exactly-once &lt;em&gt;effect&lt;/em&gt; is implementable, and the recipe hasn&apos;t changed. Accept at-least-once delivery, have the caller mint a key, have the receiver keep a table of executed keys and replay the stored result on a repeat. Three conditions decide whether it actually holds:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;The dedup record and the side effect commit together.&lt;/strong&gt; Writing the key to Redis and then charging the card is the same race with more moving parts. If the effect is a third-party call, you need an outbox or that provider&apos;s own idempotency key.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The retention window is finite and published.&lt;/strong&gt; The contract has to say how long a retry is honoured and what a late duplicate gets.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The caller&apos;s key namespace survives restart.&lt;/strong&gt; A client that reboots and restarts its counter gets live requests eaten as duplicates, which is a miserable bug to chase.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Birrell and Nelson shipped most of that in 1984, in &lt;em&gt;Implementing Remote Procedure Calls&lt;/em&gt;. A call identifier made of machine, process, and a monotonic sequence number; a server table keeping the highest number seen per caller and discarding anything at or below it; state discarded once retransmission stops being plausible, which they put at roughly five minutes; and a conversation identifier so a rebooted caller can&apos;t collide with the corpse of its old self. That&apos;s a modern idempotency-key implementation, including the restart case most of them still get wrong. The piece they don&apos;t solve is the atomic commit, which is the one that keeps biting people forty-two years later.&lt;/p&gt;
&lt;p&gt;They also never wrote &amp;quot;exactly once&amp;quot; or &amp;quot;at most once.&amp;quot; Their guarantee: if the call returns, the procedure ran precisely once, and if you get an exception it ran &amp;quot;either once or not at all&amp;quot; with the caller not told which. They named the ambiguity window instead of pretending they&apos;d closed it, which is more than most retry documentation manages today.&lt;/p&gt;
&lt;p&gt;ONC RPC, still the specification behind NFS, put it in Standards Track language. RFC 5531, unchanged from RFC 1831 in 1995:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A server may wish to remember previously granted requests from a client and not regrant them, in order to insure some degree of execute-at-most-once semantics. [...] &lt;strong&gt;The server is not allowed to examine this ID in any other way except as a test for equality.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The XID is an idempotency key and that last clause is the opaque-key rule, still violated by everyone who parses structure out of a request ID because it looked like it had a timestamp in it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agents-speedrunning-rpc/22_paper_trail.png&quot; alt=&quot;Fifty years of solving the same problem&quot;&gt;&lt;/p&gt;
&lt;p&gt;DCE RPC did the thing I keep wishing somebody would copy. Call semantics were an operation attribute in the IDL: &lt;code&gt;idempotent&lt;/code&gt;, &lt;code&gt;broadcast&lt;/code&gt;, &lt;code&gt;maybe&lt;/code&gt;, with at-most-once as the default when you declared nothing. The interface stated the retry contract and the runtime enforced it. You couldn&apos;t ship a mutating call that a stub would cheerfully replay, because the safe behaviour was what you got by saying nothing.&lt;/p&gt;
&lt;p&gt;MCP is closer to this than I gave it credit for, and the distance is the interesting part. &lt;code&gt;ToolAnnotations&lt;/code&gt; has carried an &lt;code&gt;idempotentHint&lt;/code&gt; all along. But the schema says annotations are hints, not guaranteed to describe behaviour faithfully, and tells clients not to trust them from unknown servers. So it&apos;s an assertion by the one party with an incentive to make it, verified by nobody, and it says nothing about what the server should &lt;em&gt;do&lt;/em&gt; when the same call shows up twice. DCE&apos;s &lt;code&gt;idempotent&lt;/code&gt; was enforced. MCP&apos;s is a comment.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;gRPC declined on purpose&lt;/h2&gt;
&lt;p&gt;From &lt;code&gt;PROTOCOL-HTTP2.md&lt;/code&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Unless explicitly defined to be, gRPC Calls are not assumed to be idempotent. Specifically:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Calls that cannot be proven to have started will not be retried.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;There is no mechanism for duplicate suppression as it is not necessary.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Calls that are marked as idempotent may be sent multiple times.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;End-to-end argument, applied correctly. Duplicate suppression needs application semantics the transport doesn&apos;t have, so the transport shouldn&apos;t pretend. Even gRPC&apos;s hedging, which fires the same call at several backends on purpose, fits: it&apos;s only meant to be enabled for methods already safe to run twice.&lt;/p&gt;
&lt;p&gt;The catch is that &amp;quot;the application&amp;quot; meant one team&apos;s code in one repo. When the caller is a model picking tools at runtime and the callee is another company&apos;s agent behind an agent card, there&apos;s no shared application to push the problem down into. The end-to-end argument tells you where the mechanism belongs. In this topology that place has no owner.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agents-speedrunning-rpc/23_retry_contract.png&quot; alt=&quot;Who declares the retry contract?&quot;&gt;&lt;/p&gt;
&lt;p&gt;The standardisation attempt tells you the rest. &lt;code&gt;draft-ietf-httpapi-idempotency-key-header&lt;/code&gt; got to &lt;code&gt;-07&lt;/code&gt; in October 2025 and expired on 18 April 2026 without becoming an RFC. Its own implementation status section lists nine organisations shipping that exact header, Stripe and Adyen and WorldPay among them, then ten more shipping the same idea under names they picked themselves: &lt;code&gt;PayPal-Request-Id&lt;/code&gt;, &lt;code&gt;I-Twilio-Idempotency-Token&lt;/code&gt;, BBVA&apos;s &lt;code&gt;X-Unique-Transaction-ID&lt;/code&gt;. Square and Google Standard Payments put it in the body instead.&lt;/p&gt;
&lt;p&gt;Nineteen independent implementations of one mechanism. Six years of drafts. No RFC.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Deadlines, same story&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;grep -inE &apos;deadline|expire|expiry|ttl&apos; specification/a2a.proto&lt;/code&gt; gives you nothing. Issue #857 has been asking since 10 July 2025:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A deadline is an absolute timestamp by which the server must complete the task or stream of tasks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It&apos;s assigned. It&apos;s not on the v1.1 candidate list.&lt;/p&gt;
&lt;p&gt;A gRPC call to an A2A agent can carry an RPC deadline, because every gRPC call can; that&apos;s the transport&apos;s doing, and A2A&apos;s spec never mentions deadlines at all. What doesn&apos;t exist anywhere is a &lt;em&gt;task&lt;/em&gt; deadline: one that outlives a single RPC, survives push delivery and resubscribe, and means something in the JSON-RPC and HTTP+JSON bindings, which are co-equal in v1.0.&lt;/p&gt;
&lt;p&gt;The mechanics people usually get backwards: some gRPC language APIs take an absolute deadline, others a relative timeout, but what goes on the wire is only ever &lt;code&gt;grpc-timeout&lt;/code&gt;, a relative value, &lt;code&gt;1500m&lt;/code&gt; or &lt;code&gt;30S&lt;/code&gt;. Relative on purpose, because an absolute timestamp is only as trustworthy as the clock agreement between two machines and there is no clock agreement. One budget set at the root, each hop forwarding what&apos;s left after its own elapsed time.&lt;/p&gt;
&lt;p&gt;The SRE book has the counterexample. A gives B ten seconds. B takes eight to start, then calls C with a hardcoded twenty instead of the two it actually has. C dequeues five seconds later and gets to work believing it has fifteen in hand. A gave up three seconds before C even started.&lt;/p&gt;
&lt;p&gt;Stack that five agents deep with nobody propagating and the chain has no bounded completion time at all. The depth makes it worse: the agent burning the most speculative compute is the one furthest from anyone who could tell it to stop.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agents-speedrunning-rpc/21_deadline_decay.png&quot; alt=&quot;Deadline propagation, and what happens without it&quot;&gt;&lt;/p&gt;
&lt;p&gt;Nelson had a word for this in 1981. An &lt;strong&gt;orphan&lt;/strong&gt; is a remote call whose ancestor is running on a crashed node. Every agent framework that fans out sub-agents and then loses the parent is manufacturing orphans in exactly his sense. His remedy, exterminating them after a crash, assumed a runtime that could see the call tree. No agent runtime sees the call tree once it crosses an org boundary.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;The part that actually is harder&lt;/h2&gt;
&lt;p&gt;One piece of this is genuinely new, and it&apos;s worth being precise about which piece.&lt;/p&gt;
&lt;p&gt;Sagas are the answer to a half-completed workflow. Garcia-Molina and Salem, 1987. Split the long transaction, give the sub-transactions compensating transactions, unwind backwards when something fails. It works, and people have built a lot on it.&lt;/p&gt;
&lt;p&gt;Then you read the assumptions. The paper scopes itself to &amp;quot;a centralized database system.&amp;quot; It merges the saga log and the transaction log into one. It allows saga code outside the database&apos;s control on the basis that sagas are written by trusted application programmers. And when a compensation itself fails, its remedies are an alternate implementation or a human, the second described, honestly, as &amp;quot;definitely not an elegant solution, but it is a practical one.&amp;quot;&lt;/p&gt;
&lt;p&gt;One database, one log, one coordinator, everybody trusted. Agent-to-agent delegation violates all four.&lt;/p&gt;
&lt;p&gt;Step three of your workflow ran inside another company&apos;s agent and it billed you. There&apos;s no rollback here. You can&apos;t execute a compensating transaction in their system, they&apos;re under no obligation to run one for you, and if they say they did you can&apos;t check. That&apos;s a claim, not a compensation, and no agent protocol has a message type for it.&lt;/p&gt;
&lt;p&gt;There&apos;s a footnote in the paper that reads differently now than it can have in 1987: forward recovery works only if every sub-transaction eventually succeeds given enough retries. Inside one company, a resourcing assumption. Across a trust boundary, false, because the counterparty is allowed to say no and keep saying it.&lt;/p&gt;
&lt;p&gt;And the limit case hasn&apos;t moved: &amp;quot;if a transaction fires a missile, it may not be possible to undo this action.&amp;quot;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;What I think the specs should do&lt;/h2&gt;
&lt;p&gt;Both protocols are moving. A2A has eight epics open and a TSC decision pending between two proposals that directly contradict each other on multi-turn state. SEP-3182 went up against MCP on 1 August, no sponsor, no reviewers, no labels. Its motivation runs long but it reaches the right sentence fast:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A &lt;code&gt;tools/call&lt;/code&gt; that mutates state (charges a payment, merges a branch, sends a notification) carries no field that would let the server recognize a retry and return the original outcome instead of executing the side effect again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If it were mine to fix, three changes. None of them invents anything; all three adopt designs with decades of production behind them, and none needs a new protocol or a working group. Three PRs and the willingness to write MUST.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One: a client-minted execution key on every mutating call.&lt;/strong&gt; In MCP, a declared field on &lt;code&gt;tools/call&lt;/code&gt; params, not &lt;code&gt;_meta&lt;/code&gt;. Opaque, compared by equality only, the RFC 1831 rule. Within a published retention window, a repeated key returns the stored result and MUST NOT re-execute. SEP-3182 is the right vehicle and deserves a sponsor. In A2A, the same key on &lt;code&gt;message/send&lt;/code&gt; closes #1987 without reopening the security hole that killed client-set task IDs, because the key is scoped to the authenticated caller: the task ID stays server-minted and names the work, the key is per-principal and names the attempt. That split is the entire design, and it&apos;s been sitting in Birrell and Nelson&apos;s activity table since 1984.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Two: make the retry contract declarative and enforceable.&lt;/strong&gt; &lt;code&gt;idempotentHint&lt;/code&gt; should grow up into a declared semantic: &lt;code&gt;at-most-once&lt;/code&gt;, &lt;code&gt;idempotent&lt;/code&gt;, or &lt;code&gt;unsafe&lt;/code&gt;, safe default when nothing is declared, tested by the conformance suite MCP already gates spec features on. A hint nobody can trust protects nobody. A declared contract with a test behind it changes what clients can safely automate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Three: a relative time budget, decremented hop by hop.&lt;/strong&gt; &lt;code&gt;budgetMs&lt;/code&gt; on the call, gRPC&apos;s design lifted whole: relative on the wire so clock skew can&apos;t corrupt it, every hop forwarding the remainder, any hop receiving a spent budget failing fast. That&apos;s the task deadline #857 has wanted for a year, and it gives a five-hop delegation chain a bounded completion time, which today it does not have.&lt;/p&gt;
&lt;p&gt;One thing I wouldn&apos;t do: put exactly-once in the transport. gRPC&apos;s refusal was correct, and Two Generals says the transport can&apos;t deliver it anyway. The protocol&apos;s job is to carry the key, the contract, and the budget. Effect semantics belong to the endpoint that owns the side effect. That line has held since 1975 and nothing about agents moves it.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;While you wait&lt;/h2&gt;
&lt;p&gt;Until something like that lands, you own this layer in application code:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mint your own key and put it in tool arguments, not &lt;code&gt;_meta&lt;/code&gt;.&lt;/strong&gt; Declare it in your &lt;code&gt;inputSchema&lt;/code&gt; so the model carries it across retries. SEP-3182 argues several popular frameworks strip &lt;code&gt;_meta&lt;/code&gt;, and a guarantee riding on a field that might not survive the trip isn&apos;t one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Commit the key and the effect in one transaction.&lt;/strong&gt; Or an outbox, or the downstream provider&apos;s own idempotency key. Two separate network calls just relocate the race.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Publish the retention window.&lt;/strong&gt; Pick twenty-four hours, enforce it, decide what a late duplicate gets back.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Set one deadline at the root and decrement it.&lt;/strong&gt; A hop that receives a spent budget should fail immediately rather than start work nobody wants.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Assume every mutating tool call arrives twice.&lt;/strong&gt; Write the handler that way and the transport stops being your problem.&lt;/p&gt;
&lt;p&gt;Everyone building agents is carrying this separately and incompatibly right now, which is roughly where HTTP APIs sat on idempotency keys a decade ago, and where RPC sat in 1984.&lt;/p&gt;
&lt;p&gt;Waldo and his co-authors called the loop. Their section heading was &lt;em&gt;Déjà Vu All Over Again&lt;/em&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Every ten years (approximately), members of the language camp notice that the number of distributed applications is relatively small. They look at the programming interfaces and decide that the problem is that the programming model is not close enough to whatever programming model is currently in vogue (messages in the 1970s, procedure calls in the 1980s, and objects in the 1990s). A furious bout of language and protocol design takes place and a new distributed computing paradigm is announced that is compliant with the latest programming model. After several years, the percentage of distributed applications is discovered not to have increased significantly, and the cycle begins anew.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Tools in the 2020s. New paradigm, same partial failure.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Earlier parts of this series covered &lt;a href=&quot;/writing/agentic-web-field-guide/&quot;&gt;protocol discovery&lt;/a&gt;, &lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;agent identity and delegation&lt;/a&gt;, and &lt;a href=&quot;/writing/when-agents-hire-agents-pact/&quot;&gt;the contract layer between work and payment&lt;/a&gt;, the last of which became &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-laxsharma-pact/&quot;&gt;draft-laxsharma-pact&lt;/a&gt; at the IETF.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>This site is home now</title><link>https://laxsharma.com/notes/this-site-is-home-now/</link><guid isPermaLink="true">https://laxsharma.com/notes/this-site-is-home-now/</guid><description>Why everything I publish will land at laxsharma.com first.</description><pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;I have been writing in other people&apos;s houses for a while: Medium, LinkedIn, and a few
conference PDFs scattered around the internet. Those places are good at distribution and
bad at permanence. Feeds change, formats change, and none of it is really mine.&lt;/p&gt;
&lt;p&gt;This domain fixes that. Everything I publish lands here first: articles, short notes,
papers, talks, and eventually videos. The platform copies become pointers back to this
address.&lt;/p&gt;
&lt;p&gt;The site is plain by design. Text, a feed you can subscribe to, and URLs that will not
break. If you want to follow along, &lt;a href=&quot;/feed.xml&quot;&gt;RSS&lt;/a&gt; is the reliable way.&lt;/p&gt;
</content:encoded></item><item><title>When Agents Hire Agents: PACT, the Missing Layer 4 of the Agentic Web</title><link>https://laxsharma.com/writing/when-agents-hire-agents-pact/</link><guid isPermaLink="true">https://laxsharma.com/writing/when-agents-hire-agents-pact/</guid><description>A2A moves tasks without prices, x402 moves money unconditionally, AP2 authorizes without verifying. PACT adds the missing object: the Verifiable Task Contract.</description><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;Part 3 of the agentic-web series. &lt;a href=&quot;/writing/agentic-web-field-guide/&quot;&gt;Part 1&lt;/a&gt; and &lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;Part 2&lt;/a&gt; mapped what already exists. This one proposes something new. &lt;a href=&quot;/writing/agents-speedrunning-rpc/&quot;&gt;Part 4&lt;/a&gt; continues with the retry nobody owns.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Picture a thousand agents assembling around a single job. A sealed-bid auction resolves in one round-trip. A tree of subcontracts forms underneath it. Work streams through payment channels with payouts landing as it arrives, one fraud proof slashes a subcontractor that cut corners, and every participant&apos;s reputation updates the moment escrow closes. Paid in seconds. Final in an hour, once the last challenge window closes clean. Humans involved: zero. Every hop provable, forever.&lt;/p&gt;
&lt;p&gt;Nothing in today&apos;s stack can run that scene. I spent two posts mapping the protocols and the trust machinery underneath them, and when I lined it all up, one hole stood out.&lt;/p&gt;
&lt;h2&gt;The stack has an OSI problem&lt;/h2&gt;
&lt;p&gt;Transport ships. Messaging ships, in the form of MCP tools and A2A tasks. Trust ships too: signed cards, DIDs, act-chains, mandates. But watch what happens when an agent actually tries to &lt;em&gt;hire&lt;/em&gt; another agent. A2A moves tasks, except they carry no price. x402 moves money, but unconditionally. AP2 authorizes payments without ever verifying the work. Nowhere in the 2026 stack is there an object that binds work to money to proof. Agent-to-agent commerce today is pay a stranger and hope.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/13_l4_layer_model.png&quot; alt=&quot;The agent stack&apos;s missing Layer 4, commerce&quot;&gt;&lt;/p&gt;
&lt;p&gt;There is even a 45-year-old blueprint for the missing piece. R.G. Smith&apos;s &lt;strong&gt;Contract Net Protocol&lt;/strong&gt; (1980) described almost exactly this: task announcement, bidding, awarding. It got built, too, but only inside closed and mutually trusting systems. FIPA standardized it in 2002 and factories ran it on JADE. What never existed was the substrate for running it &lt;em&gt;among strangers&lt;/em&gt;, meaning identity, money, and verification between parties with no reason to trust each other. That substrate exists now. PACT is Contract Net with teeth.&lt;/p&gt;
&lt;h2&gt;PACT: Propose, Agree, Complete, Trust&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/14_pact_sequence.png&quot; alt=&quot;One job through PACT, the wire-level lifecycle&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Propose.&lt;/strong&gt; The buyer broadcasts a call-for-bids carrying the task spec, a deadline, a maximum price, and the verification tier the work will be judged by. Sellers answer with sealed bids plus a staked bond. The award goes to the best bid &lt;em&gt;at the second-best price&lt;/em&gt;, which is to say a Vickrey auction.&lt;/p&gt;
&lt;p&gt;But what does the broadcast actually &lt;em&gt;say&lt;/em&gt;? The spec inside it is a layered &lt;strong&gt;TaskSpec&lt;/strong&gt;, and each layer has a different reader:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;description&amp;quot;: &amp;quot;Dedupe 2.1M customer rows&amp;quot;,
  &amp;quot;skill&amp;quot;: &amp;quot;data-cleaning/dedupe&amp;quot;,
  &amp;quot;inputs&amp;quot;: {
    &amp;quot;sample_uri&amp;quot;: &amp;quot;…/sample-10k.csv&amp;quot;,
    &amp;quot;size_hint&amp;quot;: { &amp;quot;rows&amp;quot;: 2100000 }
  },
  &amp;quot;deliverable&amp;quot;: { &amp;quot;format&amp;quot;: &amp;quot;csv&amp;quot; },
  &amp;quot;acceptance&amp;quot;: {
    &amp;quot;tier&amp;quot;: &amp;quot;T0-reexec&amp;quot;,
    &amp;quot;harness_uri&amp;quot;: &amp;quot;…/acceptance-tests.tar&amp;quot;,
    &amp;quot;thresholds&amp;quot;: { &amp;quot;dup_rate_max&amp;quot;: 0.001 }
  },
  &amp;quot;constraints&amp;quot;: {
    &amp;quot;tools_prohibited&amp;quot;: [&amp;quot;external-APIs&amp;quot;]
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/18_taskspec_anatomy.png&quot; alt=&quot;Inside the call-for-bids: the TaskSpec layer by layer, and which layer is the contract&quot;&gt;&lt;/p&gt;
&lt;p&gt;The seller&apos;s LLM reads &lt;code&gt;description&lt;/code&gt; to understand the job. The schemas and the sample let it price the effort, and the acceptance harness lets it price the risk, since what it is really estimating is its probability of passing against a bond it could lose. Which surfaces PACT&apos;s quiet precedence rule: where prose and tests disagree, &lt;strong&gt;the acceptance instrument governs&lt;/strong&gt;. Settlement is gated on verification, so the only economically real definition of &amp;quot;done&amp;quot; is the one the verifier applies. Prose is intent. The harness is the contract. (Confidential work? Publish the call-for-bids with the spec behind an authenticated fetch. The hash commitment stops any bait-and-switch.)&lt;/p&gt;
&lt;p&gt;Why an auction rather than letting the agents haggle? Because negotiation between LLMs is an attack surface. Persuasion exploits, prompt-injecting your counterparty, strategic hallucination, none of it patchable with guardrails. Under a sealed-bid second-price award, truthful bidding is the dominant strategy, so game theory removes the incentive to manipulate instead of asking you to detect manipulation afterwards. Two details matter for safety. Bids are cryptographic commitments, so the buyer can&apos;t peek, and can&apos;t quietly insert a fake price-setting second bid either. And awards cover &lt;em&gt;one task per auction&lt;/em&gt;, because Yokoo&apos;s classic result says single-item second-price survives fake-identity bidding while bundle auctions don&apos;t.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agree.&lt;/strong&gt; Both parties co-sign a &lt;strong&gt;Verifiable Task Contract&lt;/strong&gt;: one typed JSON object, canonicalized (RFC 8785), signed (JWS), binding everything the stack currently leaves loose.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;pact&amp;quot;: &amp;quot;0.1&amp;quot;,
  &amp;quot;type&amp;quot;: &amp;quot;VerifiableTaskContract&amp;quot;,
  &amp;quot;id&amp;quot;: &amp;quot;vtc_9f2c&amp;quot;,
  &amp;quot;parties&amp;quot;: {
    &amp;quot;buyer&amp;quot;:  &amp;quot;did:web:acme.ai:buyer-7&amp;quot;,
    &amp;quot;seller&amp;quot;: &amp;quot;did:web:dataforge.io:etl-3&amp;quot;
  },
  &amp;quot;task&amp;quot;: {
    &amp;quot;spec_hash&amp;quot;: &amp;quot;sha256:4be1…&amp;quot;,
    &amp;quot;deadline&amp;quot;: &amp;quot;2026-08-01T00:00:00Z&amp;quot;
  },
  &amp;quot;price&amp;quot;: {
    &amp;quot;amount&amp;quot;: &amp;quot;180.00&amp;quot;,
    &amp;quot;currency&amp;quot;: &amp;quot;USDC&amp;quot;,
    &amp;quot;settlement&amp;quot;: &amp;quot;pact-escrow&amp;quot;,
    &amp;quot;channel&amp;quot;: &amp;quot;ch_88a1&amp;quot;
  },
  &amp;quot;verification&amp;quot;: {
    &amp;quot;tier&amp;quot;: &amp;quot;T1-tee&amp;quot;,
    &amp;quot;criteria_hash&amp;quot;: &amp;quot;sha256:77d0…&amp;quot;,
    &amp;quot;arbiter&amp;quot;: &amp;quot;did:web:arbiter.example&amp;quot;
  },
  &amp;quot;liability&amp;quot;: {
    &amp;quot;seller_bond&amp;quot;: &amp;quot;18.00&amp;quot;,
    &amp;quot;parent&amp;quot;: &amp;quot;vtc_31aa&amp;quot;
  },
  &amp;quot;challenge&amp;quot;: { &amp;quot;window_seconds&amp;quot;: 3600 },
  &amp;quot;signatures&amp;quot;: [
    { &amp;quot;kid&amp;quot;: &amp;quot;buyer#k1&amp;quot;,  &amp;quot;sig&amp;quot;: &amp;quot;MEQCIA…&amp;quot; },
    { &amp;quot;kid&amp;quot;: &amp;quot;seller#k1&amp;quot;, &amp;quot;sig&amp;quot;: &amp;quot;MEUCIQ…&amp;quot; }
  ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A note on those hashes, because they are doing quiet work. &lt;code&gt;spec_hash&lt;/code&gt; is a commitment, not a pointer. The full spec travels with the call-for-bids, either inline or at a &lt;code&gt;spec_uri&lt;/code&gt;, and every party verifies it against the hash &lt;em&gt;before&lt;/em&gt; signing and keeps the preimage through the dispute window. So in any later argument, presenting content that matches the co-signed hash proves exactly what was agreed. RFC 6920, &amp;quot;naming things with hashes,&amp;quot; gives the format.&lt;/p&gt;
&lt;p&gt;The price locks in escrow through a proposed &lt;code&gt;pact-escrow&lt;/code&gt; x402 payment &lt;em&gt;scheme&lt;/em&gt;, and the word choice there is deliberate. In x402 v2&apos;s taxonomy, anything that changes settlement semantics is a scheme, alongside &lt;code&gt;exact&lt;/code&gt; and &lt;code&gt;upto&lt;/code&gt;, while &amp;quot;extensions&amp;quot; are non-payment add-ons. The landing zone is well prepared. Cloudflare has proposed a &lt;code&gt;deferred&lt;/code&gt; scheme with an escrow deposit up front, off-chain vouchers per request, and batch redemption, and there is an open PR in the x402 repo for a usage-based escrow scheme. What none of them provide is release gated on &lt;em&gt;verified work&lt;/em&gt;, with bonds and challenge windows. That last step is what &lt;code&gt;pact-escrow&lt;/code&gt; adds. Meanwhile the buyer&apos;s authority arrives as an act-chain token from Part 2. Keep an eye on that &lt;code&gt;parent&lt;/code&gt; field, it matters shortly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Complete.&lt;/strong&gt; Work streams in hash-committed checkpoints, and payment releases &lt;em&gt;optimistically&lt;/em&gt;, which is the rollup pattern applied to labor. The seller gets paid at delivery. A challenge window follows, during which anyone can submit a fraud proof that reverts the payment and slashes the bond. A &lt;em&gt;valid&lt;/em&gt; challenger is then paid out of that slashed bond: costs reimbursed plus a capped bounty, with the remainder going to a neutral sink. That clause isn&apos;t generosity, it&apos;s game theory. The rollup literature proved that unpaid watchmen stop watching, which is the verifier&apos;s dilemma, and deployed systems like Arbitrum&apos;s BoLD pay defenders a capped bounty for exactly this reason. Verification cost moves off the critical path, the same trick optimistic rollups pulled for Ethereum. What counts as a valid fraud proof depends on the tier the contract named up front:&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/15_verification_ladder.png&quot; alt=&quot;The verification ladder: proof of work product, graded by stakes&quot;&gt;&lt;/p&gt;
&lt;p&gt;I want to stress that this ladder is not speculative, but let me give you the honest numbers rather than the marketing ones. Lagrange&apos;s DeepProve proves full GPT-2 inference at roughly 174 tokens per minute with about 1.2-second verification. Polyhedra&apos;s zkPyTorch has pushed the ceiling to Llama-3 8B at around 150 seconds per token, which is provable but not yet economical, and NANOZK-style layerwise proofs (43 s proving, 23 ms verification at GPT-2 scale) point at how T2 eventually gets practical. Meanwhile TEE-attested inference is the production tier today: NVIDIA&apos;s confidential-computing mode costs 2 to 8% throughput with a one-time attestation of a second or three, and the attestation itself now has a stable IETF format in EAT, RFC 9711. Re-execution covers code and data work, TEE covers provenance, zkML covers high stakes, and staked juries handle the subjective residue.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trust.&lt;/strong&gt; Escrow settles and both parties receive a co-signed &lt;strong&gt;Work Attestation&lt;/strong&gt;. Here is the part I find genuinely satisfying: reputation becomes the exhaust of settlement. Every rating system ever built eventually drowns in Sybils and fake reviews. An attestation that exists only because escrowed money moved through a bonded contract is a different animal, because fabricating a work history means actually funding it, contract by contract, fee by fee. Collusion doesn&apos;t come free either, since wash-trading your own reputation costs facilitator fees and locked bonds on every fake job. The agent credit bureau builds itself. And selective-disclosure proofs (SD-JWT, BBS) let an agent show &amp;quot;1,000+ settled contracts, under 1% disputes&amp;quot; without naming a single client.&lt;/p&gt;
&lt;h2&gt;Machine speed and recursion&lt;/h2&gt;
&lt;p&gt;Two more borrowed patterns make the economics work at agent tempo. &lt;strong&gt;Contract channels&lt;/strong&gt; are Lightning, for work: open one master escrow, stream thousands of micro-contracts off-ledger, net-settle on close. Contract formation drops to effectively zero cost, so hiring can happen inside an inference loop. Channels also inherit Lightning&apos;s hardest operational lesson, which is that someone must be watching during the challenge window or an offline party can be defrauded with a stale state. So monitoring is delegable to watchtowers, exactly as Lightning&apos;s BOLT 13 draft does it. Sellers can also start work before contract finality, speculative execution with rollback priced into the bond.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/17_machine_speed.png&quot; alt=&quot;Machine-speed mechanics: contract channels and optimistic settlement&quot;&gt;&lt;/p&gt;
&lt;p&gt;Now the &lt;code&gt;parent&lt;/code&gt; field. A contract can spawn child contracts, so a prime contractor decomposes a job into a tree. Bonds sit at every node. A failed leaf slashes upward until the buyer&apos;s remedy is covered. And the root attestation carries a Merkle commitment over every child attestation, so a single signature proves an entire delegation hierarchy. Authority flows down the act-chain and accountability flows back up it. Insurers get a per-node price surface to underwrite, which is a liability market for machine labor, born the day someone quotes the first premium.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/when-agents-hire-agents-pact/16_contract_tree.png&quot; alt=&quot;The Merkle contract tree: recursive subcontracting with cascading liability&quot;&gt;&lt;/p&gt;
&lt;p&gt;One more thing, because markets of millisecond actors fail like flash crashes rather than recessions. The protocol carries its own circuit breakers: velocity caps per identity, position limits, and CAEP-triggered market-wide halts. The SEC of the machine economy will be a policy engine subscribed to a signal feed.&lt;/p&gt;
&lt;h2&gt;Nothing here is invented, and that&apos;s the point&lt;/h2&gt;
&lt;p&gt;Every element maps onto something already shipping. Discovery via &lt;code&gt;/.well-known/pact.json&lt;/code&gt; (RFC 8615, sitting right next to the server and agent cards from Part 1). DIDs and signed cards for identity. Act-chain token exchange for authority (RFC 8693). JWS and JCS for signing. x402 plus AP2 mandates for settlement, AuthZEN for approvals, CAEP for revocation, Kleros-style juries and TEE or zkML for proof. PACT contributes exactly one missing object, the contract, and composes everything else.&lt;/p&gt;
&lt;p&gt;A seller advertises what it can do at &lt;code&gt;/.well-known/pact.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &amp;quot;pactVersion&amp;quot;: &amp;quot;0.1&amp;quot;,
  &amp;quot;roles&amp;quot;: [&amp;quot;seller&amp;quot;],
  &amp;quot;verification_tiers&amp;quot;: [
    &amp;quot;T0-reexec&amp;quot;, &amp;quot;T1-tee&amp;quot;
  ],
  &amp;quot;settlement&amp;quot;: [&amp;quot;pact-escrow&amp;quot;],
  &amp;quot;channels&amp;quot;: true,
  &amp;quot;min_bond_pct&amp;quot;: 10,
  &amp;quot;attestation_jwks&amp;quot;: &amp;quot;…/jwks.json&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One distinction worth being precise about: this card is &lt;em&gt;static discovery&lt;/em&gt;, telling you who I am and which roles, tiers, and rails I support. The call-for-bids and the sealed bids are different animals entirely, being dynamic, per-auction, signed protocol messages with their own media types in the draft. The card tells you whom to invite. The messages run the auction.&lt;/p&gt;
&lt;h2&gt;PACT has neighbors, and that&apos;s good news&lt;/h2&gt;
&lt;p&gt;While writing this I went looking for parallel efforts and found the layer already stirring. &lt;strong&gt;VCAP&lt;/strong&gt; (draft-stone-vcap) does marketplace-mediated escrow with verify-then-release settlement. &lt;strong&gt;AGTP&lt;/strong&gt; builds an agent transport with runtime negotiation. An early &lt;strong&gt;Agentic Dispute Protocol&lt;/strong&gt; exists, &lt;strong&gt;ATEP&lt;/strong&gt; proposes a portable &amp;quot;agent passport&amp;quot; for track records, and &lt;strong&gt;ERC-8004&lt;/strong&gt; put on-chain agent identity and reputation registries on Ethereum mainnet in January. Even DeepMind&apos;s &lt;em&gt;Virtual Agent Economies&lt;/em&gt; paper from September 2025 calls for auction-based allocation and verifiable reputation as the design agenda for agent markets, though at the economics level and without a wire protocol. The neighborhood has kept growing since: Virtuals&apos; on-chain Agent Commerce Protocol pairs escrow with evaluator agents, ERC-8183 standardizes client, provider, and evaluator transactions on Ethereum, the RAILS paper develops verification-native clearing with graded verifier classes, and Stripe&apos;s Machine Payments Protocol from March 2026 gives x402 a second major rail, which is exactly why PACT&apos;s settlement bindings are deliberately rail-agnostic. I read all of this as confirmation the gap is real. Multiple people are digging at it from different sides.&lt;/p&gt;
&lt;p&gt;Where PACT stakes out its own ground: no marketplace in the middle, auctions instead of negotiation, pay-then-challenge instead of verify-then-release, bonded liability that survives subcontracting, and reputation &lt;em&gt;derived&lt;/em&gt; from settlement rather than declared. Attestations can then be exported into an ATEP-style passport or anchored in an ERC-8004 registry, and the escrow profile picks up where x402&apos;s deferred scheme leaves off. Composition, not competition. The draft cites and differentiates each of these, and if their authors are reading, I&apos;d like to compare notes.&lt;/p&gt;
&lt;h2&gt;The draft, and three predictions&lt;/h2&gt;
&lt;p&gt;I&apos;ve written the full strawman up properly, and as of this week it isn&apos;t just written, it&apos;s &lt;strong&gt;submitted&lt;/strong&gt;. &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-laxsharma-pact/&quot;&gt;&lt;code&gt;draft-laxsharma-pact-00&lt;/code&gt;, &amp;quot;PACT: A Contract Layer for Autonomous Agent Commerce&amp;quot;&lt;/a&gt; is live on the IETF Datatracker, with the spec, JSON Schemas, and hash-verified examples at &lt;a href=&quot;https://github.com/pact-spec/spec&quot;&gt;github.com/pact-spec/spec&lt;/a&gt;. If you work on A2A, x402, AP2, or agent infrastructure and this collides with problems on your desk, I want to hear where it&apos;s wrong. That isn&apos;t politeness. A -00 draft is a request for demolition.&lt;/p&gt;
&lt;p&gt;Three falsifiable predictions, so you can hold me to something. By mid-2027: an escrow or conditional-settlement extension ships in the x402 ecosystem; some standards venue, whether an IETF side meeting, a W3C community group, or a Linux Foundation working group, charters agent work-contracts as an actual item; and someone announces the first insurance product for autonomous-agent liability. If all three miss, the thesis was wrong, and I&apos;ll write that post too.&lt;/p&gt;
&lt;p&gt;The last two years wired the agentic web and made it trustworthy. Whether it becomes an economy gets decided next, and economies don&apos;t run on tasks and tokens. They run on contracts.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Smith, R.G., &amp;quot;The Contract Net Protocol: High-Level Communication and Control in a Distributed Problem Solver,&amp;quot; IEEE Trans. Computers (1980)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://a2a-protocol.org/latest/specification/&quot;&gt;A2A v1.0&lt;/a&gt; · &lt;a href=&quot;https://ap2-protocol.org/&quot;&gt;AP2&lt;/a&gt; · &lt;a href=&quot;https://x402.org/&quot;&gt;x402 + v2 extensions&lt;/a&gt; · &lt;a href=&quot;https://modelcontextprotocol.io&quot;&gt;MCP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.rfc-editor.org/info/rfc8615/&quot;&gt;RFC 8615&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc8693/&quot;&gt;RFC 8693&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc7515/&quot;&gt;RFC 7515&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc8785/&quot;&gt;RFC 8785&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;zkML and TEE: &lt;a href=&quot;https://eprint.iacr.org/2026/1112.pdf&quot;&gt;DeepProve (eprint 2026/1112)&lt;/a&gt; · &lt;a href=&quot;https://blog.polyhedra.network/zkpytorch/&quot;&gt;zkPyTorch / Llama-3 8B&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/abs/2603.18046&quot;&gt;NANOZK (arXiv 2603.18046)&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/pdf/2512.20176&quot;&gt;optimistic TEE-rollups (arXiv 2512.20176)&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc9334/&quot;&gt;RATS RFC 9334&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc9711.html&quot;&gt;EAT RFC 9711&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fraud-proof economics: Luu et al. (CCS 2015) · &lt;a href=&quot;https://arxiv.org/pdf/1908.04756&quot;&gt;TrueBit (arXiv 1908.04756)&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/abs/2308.02880&quot;&gt;rollup validator incentives (arXiv 2308.02880)&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/abs/2404.10491&quot;&gt;Arbitrum BoLD (arXiv 2404.10491)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://arxiv.org/pdf/2605.30998&quot;&gt;x402 security analysis (arXiv 2605.30998)&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/pdf/2604.03976&quot;&gt;financial risk management for AI agents (arXiv 2604.03976)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Parallel drafts: &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-stone-vcap/&quot;&gt;VCAP (draft-stone-vcap)&lt;/a&gt; · &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-hood-independent-agtp/&quot;&gt;AGTP (draft-hood-independent-agtp)&lt;/a&gt; · &lt;a href=&quot;https://www.ietf.org/archive/id/draft-kotecha-agentic-dispute-protocol-00.html&quot;&gt;Agentic Dispute Protocol&lt;/a&gt; · &lt;a href=&quot;https://datatracker.ietf.org/doc/draft-stone-atep/&quot;&gt;ATEP (draft-stone-atep)&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/pdf/2602.00213&quot;&gt;TessPay (arXiv 2602.00213)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Agent economies and registries: &lt;a href=&quot;https://arxiv.org/abs/2509.10147&quot;&gt;Virtual Agent Economies (arXiv 2509.10147)&lt;/a&gt; · ERC-8004 &amp;quot;Trustless Agents&amp;quot; (Ethereum mainnet, Jan 2026) · &lt;a href=&quot;https://github.com/coinbase/x402/blob/main/specs/x402-specification-v2.md&quot;&gt;x402 v2 spec + schemes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mechanism design: Vickrey, &amp;quot;Counterspeculation, Auctions, and Competitive Sealed Tenders,&amp;quot; J. Finance (1961) · &lt;a href=&quot;https://milgrom.people.stanford.edu/wp-content/uploads/2005/12/Lovely-but-Lonely-Vickrey-Auction-072404a.pdf&quot;&gt;Ausubel &amp;amp; Milgrom, &amp;quot;The Lovely but Lonely Vickrey Auction&amp;quot;&lt;/a&gt; · &lt;a href=&quot;https://www.sigecom.org/exchanges/volume_7/1/yokoo.pdf&quot;&gt;Yokoo on false-name bids&lt;/a&gt; · &lt;a href=&quot;https://kleros.io&quot;&gt;Kleros&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc9901&quot;&gt;SD-JWT, RFC 9901&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Agent-economy neighbors: &lt;a href=&quot;https://whitepaper.virtuals.io/about-virtuals/agent-commerce-protocol-acp&quot;&gt;Virtuals ACP&lt;/a&gt; · &lt;a href=&quot;https://arxiv.org/abs/2606.08790&quot;&gt;RAILS (arXiv 2606.08790)&lt;/a&gt; · &lt;a href=&quot;https://stripe.com/blog/machine-payments-protocol&quot;&gt;Stripe MPP&lt;/a&gt; · &lt;a href=&quot;https://github.com/coinbase/x402/pull/873&quot;&gt;x402 escrow-scheme PR #873&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The Agentic Web Is Being Wired Right Now: A Field Guide to MCP, A2A, Skills, and Agent Payments</title><link>https://laxsharma.com/writing/agentic-web-field-guide/</link><guid isPermaLink="true">https://laxsharma.com/writing/agentic-web-field-guide/</guid><description>A field guide to the protocols wiring the agentic web: MCP for tools, A2A for agent-to-agent work, Skills for know-how, and the three-way fight over payments.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;Part 1 of the agentic-web series. Continue with &lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;Part 2&lt;/a&gt;, &lt;a href=&quot;/writing/when-agents-hire-agents-pact/&quot;&gt;Part 3&lt;/a&gt;, and &lt;a href=&quot;/writing/agents-speedrunning-rpc/&quot;&gt;Part 4&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An AI agent that can only chat is a demo. An agent that can &lt;em&gt;do&lt;/em&gt; things needs plumbing: a way to reach tools, talk to other agents, carry know-how, and pay. Two years ago that plumbing didn&apos;t exist as a standard. Today it&apos;s a stack of open protocols — moving weekly, and increasingly the layer your architecture decisions depend on.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agentic-web-field-guide/01_agent_stack.png&quot; alt=&quot;The Agent Interoperability Stack — four problems, four protocol families, one shared discovery substrate&quot;&gt;&lt;/p&gt;
&lt;h2&gt;How we got here in 24 months&lt;/h2&gt;
&lt;p&gt;Anthropic open-sourced &lt;strong&gt;MCP&lt;/strong&gt; (November 2024) for tools; Google answered with &lt;strong&gt;A2A&lt;/strong&gt; (April 2025) for agent-to-agent work; payments arrived through 2025 (Coinbase&apos;s x402, Google&apos;s AP2, OpenAI + Stripe&apos;s checkout standard); Anthropic shipped &lt;strong&gt;Agent Skills&lt;/strong&gt; with Claude in October 2025 and published &lt;code&gt;SKILL.md&lt;/code&gt; as an open, cross-platform standard that December. The discovery layer evolved in parallel and is still moving: MCP&apos;s &lt;strong&gt;SEP-1649&lt;/strong&gt; ratified a card at &lt;code&gt;/.well-known/mcp.json&lt;/code&gt;, its successor &lt;strong&gt;SEP-2127&lt;/strong&gt; is converging on &lt;code&gt;/.well-known/mcp/server-card.json&lt;/code&gt;, and A2A&apos;s card moved from &lt;code&gt;agent.json&lt;/code&gt; to &lt;code&gt;agent-card.json&lt;/code&gt; before gaining signatures in v1.0. Along the way, most of it — MCP, A2A (absorbing IBM&apos;s ACP), AGNTCY, the x402 Foundation — moved under the &lt;strong&gt;Linux Foundation&lt;/strong&gt;: the clearest signal this is shared infrastructure, not any vendor&apos;s moat.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agentic-web-field-guide/02_journey_timeline.png&quot; alt=&quot;The Agent-Protocol Boom — a 24-month timeline from MCP to a converging agentic web&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Problem 1 — Reaching tools and data: MCP&lt;/h2&gt;
&lt;p&gt;MCP is &amp;quot;the USB-C for AI&amp;quot;: write an integration once, and any MCP-aware client (Claude, Cursor, VS Code…) can use it. The architecturally interesting part is &lt;strong&gt;discovery&lt;/strong&gt; — how a client vets a server &lt;em&gt;before&lt;/em&gt; connecting, via a self-describing card:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;// GET https://api.example.com/.well-known/mcp/server-card.json
{
  &amp;quot;protocolVersion&amp;quot;: &amp;quot;2025-06-18&amp;quot;,
  &amp;quot;serverInfo&amp;quot;: { &amp;quot;name&amp;quot;: &amp;quot;example-crm&amp;quot;, &amp;quot;title&amp;quot;: &amp;quot;Example CRM&amp;quot;,
                  &amp;quot;version&amp;quot;: &amp;quot;1.4.0&amp;quot; },
  &amp;quot;transport&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;streamable-http&amp;quot;, &amp;quot;endpoint&amp;quot;: &amp;quot;/mcp&amp;quot; },
  &amp;quot;capabilities&amp;quot;: { &amp;quot;tools&amp;quot;: { &amp;quot;listChanged&amp;quot;: true }, &amp;quot;resources&amp;quot;: {} },
  &amp;quot;tools&amp;quot;: [{
    &amp;quot;name&amp;quot;: &amp;quot;search_contacts&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;Search CRM contacts by name, company, or email&amp;quot;,
    &amp;quot;inputSchema&amp;quot;: {
      &amp;quot;type&amp;quot;: &amp;quot;object&amp;quot;,
      &amp;quot;properties&amp;quot;: { &amp;quot;query&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot; },
                      &amp;quot;limit&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;integer&amp;quot;, &amp;quot;default&amp;quot;: 10 } },
      &amp;quot;required&amp;quot;: [&amp;quot;query&amp;quot;]
    }
  }],
  &amp;quot;authentication&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;oauth2&amp;quot; }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The card can embed the server&apos;s actual &lt;strong&gt;tool definitions&lt;/strong&gt; — names, descriptions, JSON-Schema inputs — which is what makes pre-connect vetting real: registries can index tools, and security scanners can statically classify tool descriptions (prompt-injection screening included) &lt;em&gt;before&lt;/em&gt; any client connects. Note the churn: &lt;strong&gt;SEP-1649&lt;/strong&gt; ratified &lt;code&gt;/.well-known/mcp.json&lt;/code&gt;; its successor &lt;strong&gt;SEP-2127&lt;/strong&gt; (an active draft) moved to &lt;code&gt;/.well-known/mcp/server-card.json&lt;/code&gt;. An official &lt;strong&gt;MCP Registry&lt;/strong&gt; (preview since September 2025) indexes servers at scale.&lt;/p&gt;
&lt;h2&gt;Problem 2 — Talking to other agents: A2A&lt;/h2&gt;
&lt;p&gt;When agents delegate to each other across vendors, A2A is the wire. Its core artifact is the &lt;strong&gt;Agent Card&lt;/strong&gt; at &lt;code&gt;/.well-known/agent-card.json&lt;/code&gt; — a JSON &amp;quot;business card&amp;quot; doing three jobs at once: identity, résumé, and API contract.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;// GET https://acme.ai/.well-known/agent-card.json
{
  &amp;quot;protocolVersion&amp;quot;: &amp;quot;1.0&amp;quot;,
  &amp;quot;name&amp;quot;: &amp;quot;Acme Travel Agent&amp;quot;,
  &amp;quot;description&amp;quot;: &amp;quot;Books flights and hotels&amp;quot;,
  &amp;quot;url&amp;quot;: &amp;quot;https://acme.ai/a2a&amp;quot;,
  &amp;quot;preferredTransport&amp;quot;: &amp;quot;JSONRPC&amp;quot;,
  &amp;quot;capabilities&amp;quot;: { &amp;quot;streaming&amp;quot;: true },
  &amp;quot;securitySchemes&amp;quot;: { &amp;quot;oauth2&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;oauth2&amp;quot; } },
  &amp;quot;skills&amp;quot;: [{
    &amp;quot;id&amp;quot;: &amp;quot;book-flight&amp;quot;,
    &amp;quot;name&amp;quot;: &amp;quot;Book a flight&amp;quot;,
    &amp;quot;description&amp;quot;: &amp;quot;Finds and books flights within constraints&amp;quot;,
    &amp;quot;tags&amp;quot;: [&amp;quot;travel&amp;quot;, &amp;quot;booking&amp;quot;],
    &amp;quot;examples&amp;quot;: [&amp;quot;Book SFO→NYC next Friday under $500&amp;quot;],
    &amp;quot;inputModes&amp;quot;: [&amp;quot;text&amp;quot;], &amp;quot;outputModes&amp;quot;: [&amp;quot;text&amp;quot;]
  }],
  &amp;quot;supportsAuthenticatedExtendedCard&amp;quot;: true,
  &amp;quot;signatures&amp;quot;: [{ &amp;quot;protected&amp;quot;: &amp;quot;eyJhbGciOi...&amp;quot;, &amp;quot;signature&amp;quot;: &amp;quot;MEUCIQ...&amp;quot; }]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;code&gt;AgentSkill&lt;/code&gt; objects are what registries index and LLM routers rank; &lt;code&gt;supportsAuthenticatedExtendedCard&lt;/code&gt; splits the public shingle from a richer private catalog revealed after auth; and &lt;code&gt;signatures&lt;/code&gt; (JWS over a canonicalized card, new in &lt;strong&gt;v1.0&lt;/strong&gt;) makes the card tamper-evident through caches and relays. A2A also absorbed IBM&apos;s rival ACP under the Linux Foundation — consolidation, not fragmentation. (&lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;Part 2&lt;/a&gt; dissects the card and its trust model in depth.)&lt;/p&gt;
&lt;h2&gt;Problem 3 — Carrying know-how: Agent Skills&lt;/h2&gt;
&lt;p&gt;Tools tell an agent what it can touch; &lt;strong&gt;Skills&lt;/strong&gt; tell it how your organization works. A Skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt; — YAML frontmatter plus instructions and optional scripts. The elegant idea is &lt;strong&gt;progressive disclosure&lt;/strong&gt;: agents preload only each Skill&apos;s name and description, loading the body on demand — hundreds of Skills, no context bloat. An open standard since December 2025, running across 20+ platforms; a Skill written once is portable across agents, which makes your Skills reusable IP.&lt;/p&gt;
&lt;h2&gt;Problem 4 — Paying: AP2, ACP, and x402&lt;/h2&gt;
&lt;p&gt;The messiest frontier — three overlapping efforts, each with a different center of gravity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AP2 (Agent Payments Protocol)&lt;/strong&gt; — Google&apos;s open standard, launched September 2025 with 60+ partners (Mastercard, PayPal, Amex, Coinbase). Its trust model is a chain of signed &lt;strong&gt;mandates&lt;/strong&gt;, each a selectively disclosable SD-JWT credential (RFC 9901): an &lt;em&gt;Intent Mandate&lt;/em&gt; (&amp;quot;concert tickets ≤ $150, before Friday&amp;quot;), a &lt;em&gt;Cart Mandate&lt;/em&gt; (the exact approved order), and a &lt;em&gt;Payment Mandate&lt;/em&gt; that tells the network an agent was involved and whether the human was present. The asymmetry is the design insight — human watching? The strong signature lands on the final cart. Human absent? A detailed intent is signed up front and the agent closes within its bounds:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;// AP2 Intent Mandate (human-not-present) — the user&apos;s signed &amp;quot;contract&amp;quot;
{
  &amp;quot;intent_mandate&amp;quot;: {
    &amp;quot;natural_language_description&amp;quot;: &amp;quot;Concert tickets, max $150, before Friday&amp;quot;,
    &amp;quot;merchants&amp;quot;: null,                      // any merchant allowed
    &amp;quot;requires_refundability&amp;quot;: true,
    &amp;quot;intent_expiry&amp;quot;: &amp;quot;2026-07-24T00:00:00Z&amp;quot;,
    &amp;quot;user_cart_confirmation_required&amp;quot;: false  // agent may close the cart
  },
  &amp;quot;user_authorization&amp;quot;: &amp;quot;eyJhbGciOi...&amp;quot;     // user-signed SD-JWT credential
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It&apos;s already reaching real rails: Mastercard Agent Pay ran its first authenticated agentic transaction in Q3 2025, and Visa&apos;s Intelligent Commerce Connect targets GA in June 2026.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Agentic Commerce Protocol&lt;/strong&gt; — OpenAI + Stripe&apos;s merchant-centric standard powering ChatGPT&apos;s Instant Checkout. OpenAPI-specified, date-versioned (in beta since 2025-09-29), built around a &lt;em&gt;Delegate Payment&lt;/em&gt; spec: the buyer&apos;s agent passes a scoped, single-use payment token (Stripe&apos;s Shared Payment Token) authorized for a specific amount and merchant — so the merchant stays the merchant of record and the agent never holds raw card data.&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;// ACP delegate_payment — mint a scoped, single-use token
POST /agentic_commerce/delegate_payment
{
  &amp;quot;payment_method&amp;quot;: { &amp;quot;type&amp;quot;: &amp;quot;card&amp;quot;, &amp;quot;number&amp;quot;: &amp;quot;4242…&amp;quot;, &amp;quot;exp_month&amp;quot;: &amp;quot;11&amp;quot; },
  &amp;quot;allowance&amp;quot;: {
    &amp;quot;reason&amp;quot;: &amp;quot;one_time&amp;quot;,
    &amp;quot;max_amount&amp;quot;: 15000, &amp;quot;currency&amp;quot;: &amp;quot;usd&amp;quot;,    // ≤ $150.00, cents
    &amp;quot;merchant_id&amp;quot;: &amp;quot;merchant_123&amp;quot;,             // this merchant only
    &amp;quot;expires_at&amp;quot;: &amp;quot;2026-07-22T12:00:00Z&amp;quot;
  },
  &amp;quot;risk_signals&amp;quot;: [ { &amp;quot;type&amp;quot;: &amp;quot;card_testing&amp;quot;, &amp;quot;score&amp;quot;: 5 } ]
}
// → { &amp;quot;id&amp;quot;: &amp;quot;vt_abc123&amp;quot; }  — the only thing the agent ever carries
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;x402&lt;/strong&gt; — Coinbase&apos;s revival of the dormant HTTP &lt;code&gt;402 Payment Required&lt;/code&gt; status code, now run by an independent &lt;strong&gt;x402 Foundation&lt;/strong&gt; under the Linux Foundation (40 members including AWS, Visa, Cloudflare). The flow is HTTP-native: server responds &lt;code&gt;402&lt;/code&gt; with payment requirements, client retries with a signed payment header, a facilitator verifies and settles in stablecoins — machine-speed micropayments with no accounts:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-http&quot;&gt;GET /api/market-report          → 402 Payment Required
{ &amp;quot;x402Version&amp;quot;: 1, &amp;quot;accepts&amp;quot;: [{
    &amp;quot;scheme&amp;quot;: &amp;quot;exact&amp;quot;, &amp;quot;network&amp;quot;: &amp;quot;base&amp;quot;,
    &amp;quot;maxAmountRequired&amp;quot;: &amp;quot;10000&amp;quot;,              // 0.01 USDC, atomic units
    &amp;quot;payTo&amp;quot;: &amp;quot;0xAbC…&amp;quot;, &amp;quot;asset&amp;quot;: &amp;quot;0xA0b8…&amp;quot;,     // USDC contract
    &amp;quot;resource&amp;quot;: &amp;quot;/api/market-report&amp;quot;, &amp;quot;maxTimeoutSeconds&amp;quot;: 60 }] }

GET /api/market-report
X-PAYMENT: eyJzaWduYXR1cmU…                    // signed payment payload
→ 200 OK  + X-PAYMENT-RESPONSE (settlement receipt)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A Google-backed &lt;strong&gt;A2A x402 extension&lt;/strong&gt; already wires it in as a settlement rail beneath A2A/AP2.&lt;/p&gt;
&lt;p&gt;They compose rather than compete head-on: AP2 supplies the &lt;em&gt;authorization evidence&lt;/em&gt;, ACP the &lt;em&gt;merchant checkout rail&lt;/em&gt;, x402 the &lt;em&gt;HTTP-native settlement&lt;/em&gt;. One sticky-note warning: &lt;strong&gt;&amp;quot;ACP&amp;quot; means three unrelated things&lt;/strong&gt; — Agent &lt;em&gt;Communication&lt;/em&gt; (IBM, merged into A2A), Agentic &lt;em&gt;Commerce&lt;/em&gt; (OpenAI/Stripe), Agent &lt;em&gt;Connect&lt;/em&gt; (Cisco AGNTCY). Always disambiguate.&lt;/p&gt;
&lt;h2&gt;The pattern underneath: &lt;code&gt;.well-known&lt;/code&gt; is quietly becoming the spec&lt;/h2&gt;
&lt;p&gt;Every protocol above converges on the same move: &lt;strong&gt;fetch a self-describing card from a well-known URL, verify who published it, then speak its native protocol.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agentic-web-field-guide/03_wellknown_pattern.png&quot; alt=&quot;The .well-known handshake — fetch a self-describing card, verify identity, then connect&quot;&gt;&lt;/p&gt;
&lt;p&gt;This isn&apos;t a convention the agent world invented — &lt;code&gt;/.well-known/&lt;/code&gt; is a formal &lt;strong&gt;IANA registry (RFC 8615)&lt;/strong&gt;, and the agent specs are just registering new tenants in the table that already holds the web&apos;s auth plumbing. That&apos;s why agents don&apos;t reinvent login: an MCP server is a standard OAuth resource server, and an agent bootstraps everything from the base URL alone — server card for capabilities, &lt;code&gt;401&lt;/code&gt; → &lt;code&gt;/.well-known/oauth-protected-resource&lt;/code&gt; (RFC 9728) → &lt;code&gt;/.well-known/oauth-authorization-server&lt;/code&gt; (RFC 8414) for the token, then connect.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/agentic-web-field-guide/04_discovery_auth_chain.png&quot; alt=&quot;Discovery-first — how an AI agent bootstraps an MCP server through a chain of .well-known documents&quot;&gt;&lt;/p&gt;
&lt;p&gt;The next fight is already visible here: a cross-protocol draft of &lt;strong&gt;&lt;code&gt;ai-catalog.json&lt;/code&gt;&lt;/strong&gt; would let one domain advertise &lt;em&gt;all&lt;/em&gt; its agents, servers, and skills; Google&apos;s &lt;strong&gt;ARD&lt;/strong&gt; spec (June 2026) layers registries and trust on top. Discovery and identity — not the protocols — are the unsettled frontier. Also circling: ANP and MIT&apos;s NANDA (decentralized identity), Cisco&apos;s AGNTCY, and MCP Apps (tools returning interactive UI).&lt;/p&gt;
&lt;h2&gt;What this means if you&apos;re building&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Adopt MCP now&lt;/strong&gt; — the mature, safe bet; the cheapest way to make your systems agent-usable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design for A2A, deploy later&lt;/strong&gt; — model capabilities as skills today so exposing an Agent Card is trivial tomorrow.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Treat Skills as reusable IP&lt;/strong&gt; — likely more durable than any model choice.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Watch payments, don&apos;t commit&lt;/strong&gt; — pilot behind an abstraction; AP2 vs. ACP vs. x402 is unsettled.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reuse the web&apos;s auth plumbing&lt;/strong&gt; — ship MCP servers as OAuth 2.1 resource servers (RFC 9728), never bespoke agent auth.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Build to the pattern, not the filename&lt;/strong&gt; — &lt;code&gt;mcp.json&lt;/code&gt; → &lt;code&gt;mcp/server-card.json&lt;/code&gt;; &lt;code&gt;agent.json&lt;/code&gt; → &lt;code&gt;agent-card.json&lt;/code&gt;. Wrap discovery behind your own interface so spec churn is a config change.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We&apos;re watching the early web&apos;s standardization arc replay — messy, vendor-driven, then consolidated under neutral governance. The teams treating these protocols as strategic infrastructure now are the ones whose agents will actually participate when the wiring is done.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;/writing/can-you-trust-an-autonomous-agent/&quot;&gt;Part 2&lt;/a&gt; goes beneath the protocols: identity, delegation, and why an OAuth token is nowhere near enough for an autonomous agent. What are you betting on — MCP-first, A2A-ready, or waiting for the dust to settle?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Correction (2026-08-09): AP2&apos;s mandates are selectively disclosable SD-JWT credentials (RFC 9901) presented over OpenID4VP, not W3C Verifiable Credentials as this piece originally said, and the Intent / Cart / Payment Mandate vocabulary shown here is AP2 v0.1; v0.2 reworked it. AP2 stewardship moved to the FIDO Alliance in April 2026. The &lt;a href=&quot;https://www.linkedin.com/pulse/agentic-web-protocol-stack-platform-laxmikant-sharma-gbwmc&quot;&gt;LinkedIn original&lt;/a&gt; preserves the earlier text.&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;MCP specification &amp;amp; discovery: &lt;a href=&quot;https://modelcontextprotocol.io&quot;&gt;modelcontextprotocol.io&lt;/a&gt; · &lt;a href=&quot;https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649&quot;&gt;SEP-1649&lt;/a&gt; · &lt;a href=&quot;https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2127&quot;&gt;SEP-2127 (Server Cards)&lt;/a&gt; · &lt;a href=&quot;https://registry.modelcontextprotocol.io/&quot;&gt;MCP Registry&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A2A: &lt;a href=&quot;https://a2a-protocol.org/latest/specification/&quot;&gt;spec&lt;/a&gt; · &lt;a href=&quot;https://a2a-protocol.org/latest/announcing-1.0/&quot;&gt;v1.0 announcement (signed Agent Cards)&lt;/a&gt; · &lt;a href=&quot;https://lfaidata.foundation/communityblog/2025/08/29/acp-joins-forces-with-a2a-under-the-linux-foundations-lf-ai-data/&quot;&gt;ACP merges into A2A (LF AI &amp;amp; Data)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Agent Skills: &lt;a href=&quot;https://agentskills.io&quot;&gt;agentskills.io&lt;/a&gt; · &lt;a href=&quot;https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills&quot;&gt;Anthropic engineering deep-dive&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Payments: &lt;a href=&quot;https://ap2-protocol.org/&quot;&gt;AP2 spec&lt;/a&gt; · &lt;a href=&quot;https://github.com/agentic-commerce-protocol/agentic-commerce-protocol&quot;&gt;Agentic Commerce Protocol&lt;/a&gt; · &lt;a href=&quot;https://x402.org/&quot;&gt;x402&lt;/a&gt; · &lt;a href=&quot;https://github.com/google-agentic-commerce/a2a-x402&quot;&gt;A2A x402 extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discovery substrate: &lt;a href=&quot;https://www.rfc-editor.org/info/rfc8615/&quot;&gt;RFC 8615 (well-known URIs)&lt;/a&gt; · &lt;a href=&quot;https://www.rfc-editor.org/info/rfc9728/&quot;&gt;RFC 9728 (Protected Resource Metadata)&lt;/a&gt; · &lt;a href=&quot;https://github.com/Agent-Card/ai-catalog&quot;&gt;ai-catalog.json working repo&lt;/a&gt; · &lt;a href=&quot;https://developers.googleblog.com/announcing-the-agentic-resource-discovery-specification/&quot;&gt;Google ARD announcement&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Can You Trust an Autonomous Agent? The Identity and Delegation Layer Behind MCP, A2A, and AP2</title><link>https://laxsharma.com/writing/can-you-trust-an-autonomous-agent/</link><guid isPermaLink="true">https://laxsharma.com/writing/can-you-trust-an-autonomous-agent/</guid><description>Four questions a bearer token cannot answer: agent identity, authorization flows, delegation chains, and accountability, each mapped to its standard.</description><pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;Part 2 of the agentic-web series. Start with &lt;a href=&quot;/writing/agentic-web-field-guide/&quot;&gt;Part 1&lt;/a&gt;; &lt;a href=&quot;/writing/when-agents-hire-agents-pact/&quot;&gt;Part 3&lt;/a&gt; proposes what&apos;s missing, and &lt;a href=&quot;/writing/agents-speedrunning-rpc/&quot;&gt;Part 4&lt;/a&gt; follows the retry problem.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Give an agent a valid OAuth token and it can call an API. For years, that was the whole trust conversation. But an agent that acts on its own, spends money, and hands work to other agents raises four questions a bearer token can&apos;t answer — and each now has its own standard.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/05_agent_trust_stack.png&quot; alt=&quot;The Agent Trust Stack — four questions, four standards, and the delegation chain&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Layer 1 — Identity: who is this agent?&lt;/h2&gt;
&lt;p&gt;TLS proves you fetched a card from &lt;code&gt;acme.ai&lt;/code&gt; — but the moment that card is cached, indexed by a registry, or relayed agent-to-agent, the channel proof is gone. That&apos;s why A2A v1.0 made Agent Cards &lt;strong&gt;signed artifacts&lt;/strong&gt;: canonicalize (RFC 8785), sign (JWS, RFC 7515), publish the signature &lt;em&gt;on&lt;/em&gt; the card, verify against the publisher&apos;s keys. For identity that outlives any one platform, &lt;code&gt;did:web:acme.ai&lt;/code&gt; resolves to &lt;code&gt;/.well-known/did.json&lt;/code&gt; — decentralized identity, same discovery substrate.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/12_signed_agent_card.png&quot; alt=&quot;Signed Agent Cards — the signing pipeline and three levels of trust&quot;&gt;&lt;/p&gt;
&lt;h2&gt;The Agent Card, up close&lt;/h2&gt;
&lt;p&gt;The card itself is one JSON file doing three jobs: &lt;strong&gt;identity&lt;/strong&gt; (who signed it), &lt;strong&gt;résumé&lt;/strong&gt; (skills that registries index and LLM routers rank), and &lt;strong&gt;API contract&lt;/strong&gt; (which transport and auth to use). Two field pairs do the heavy lifting: &lt;code&gt;skills[]&lt;/code&gt; + &lt;code&gt;supportsAuthenticatedExtendedCard&lt;/code&gt; splits your public shingle from your private catalog, and &lt;code&gt;securitySchemes&lt;/code&gt; + &lt;code&gt;signatures&lt;/code&gt; makes the card enforceable rather than descriptive.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/11_agent_card_anatomy.png&quot; alt=&quot;Agent Card anatomy, lifecycle, and evolution — v0.2 to v1.0 and what&apos;s next&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Layer 2 — Authorization: which flow gets the token?&lt;/h2&gt;
&lt;p&gt;Identity is not authorization — a verified agent still needs a scoped token from the server&apos;s &lt;code&gt;/.well-known/oauth-protected-resource&lt;/code&gt; chain. The real design decision is &lt;em&gt;which grant flow&lt;/em&gt;, and one question routes it: &lt;strong&gt;where is the human relative to the agent at token time?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/06_authz_playbook.png&quot; alt=&quot;The Agent Authorization Playbook — which OAuth flow for which agent scenario&quot;&gt;&lt;/p&gt;
&lt;p&gt;Two of these five deserve sequence diagrams, because they&apos;re the newest and the most agent-shaped.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CIBA&lt;/strong&gt; is the standards answer to human-in-the-loop: the agent pushes an approval to your phone mid-task, keeps working, and polls for the token — no browser redirect, no &amp;quot;reply YES to approve&amp;quot; hack. Auth0, Okta, and WSO2 all shipped agent-focused CIBA in the past year; it&apos;s under active MCP-WG discussion.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/07_ciba_sequence.png&quot; alt=&quot;CIBA sequence — the agent keeps working while the user approves out-of-band&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ID-JAG / Cross-App Access&lt;/strong&gt; (IETF OAuth WG, draft -04, 2026) lets an enterprise agent swap the user&apos;s existing SSO assertion for tokens to &lt;em&gt;other&lt;/em&gt; apps — making the IdP, not each SaaS app, the governance point for agent access.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/08_idjag_sequence.png&quot; alt=&quot;ID-JAG sequence — the IdP swaps an SSO assertion for a cross-app token&quot;&gt;&lt;/p&gt;
&lt;p&gt;Whatever the flow, three hardeners are defaults: &lt;strong&gt;DPoP&lt;/strong&gt; (RFC 9449) binds tokens to the agent&apos;s key, &lt;strong&gt;RAR&lt;/strong&gt; (RFC 9396) replaces blunt scopes with &lt;code&gt;authorization_details&lt;/code&gt; like &amp;quot;spend ≤ $150 at merchant X,&amp;quot; and &lt;strong&gt;PAR&lt;/strong&gt; (RFC 9126) protects the request itself.&lt;/p&gt;
&lt;h2&gt;Layer 3 — Delegation: on whose behalf, and how far?&lt;/h2&gt;
&lt;p&gt;Real agentic work is a chain — user → orchestrator → specialist → merchant MCP — and a single shared token loses &lt;em&gt;whose&lt;/em&gt; authority is in play. &lt;strong&gt;Token Exchange (RFC 8693)&lt;/strong&gt; fixes the foundation: every hop re-mints the token, delegation nests inside the &lt;code&gt;act&lt;/code&gt; claim, scope shrinks while attribution grows. Delegation, not impersonation. What&apos;s new in 2026 is the &lt;strong&gt;control plane around the chain&lt;/strong&gt;: Identity Chaining carries it across trust domains, Transaction Tokens propagate it inside your domain, AuthZEN&apos;s agent profiles (COAZ, AARP) externalize the per-tool decision, and Shared Signals/CAEP revokes it mid-task. The chain &lt;em&gt;proves&lt;/em&gt;, AuthZEN &lt;em&gt;decides&lt;/em&gt;, Txn-Tokens &lt;em&gt;propagate&lt;/em&gt;, CAEP &lt;em&gt;revokes&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/09_delegation_control_plane.png&quot; alt=&quot;Delegation in 2026 — the nested act-chain and its control plane&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Layer 4 — Accountability: can we prove it later?&lt;/h2&gt;
&lt;p&gt;&amp;quot;The agent decided to&amp;quot; is not an audit record. AP2&apos;s mandates — each a selectively disclosable SD-JWT credential (RFC 9901) — encode one elegant asymmetry: &lt;em&gt;the riskier the autonomy, the earlier and more detailed the human signature.&lt;/em&gt; Human present: the strong signature lands on the final cart. Human absent: the user signs a detailed Intent Mandate up front, and the agent closes within its bounds. Every party ends up holding cryptographic proof instead of logs — and the rails are live: Mastercard Agent Pay ran its first authenticated agentic transaction in Q3 2025, Visa&apos;s Intelligent Commerce Connect hits GA in June 2026, and FIDO is aligning verifiable intent with passkeys.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/can-you-trust-an-autonomous-agent/10_ap2_accountability.png&quot; alt=&quot;AP2 accountability — who signs what, and the evidence each party keeps&quot;&gt;&lt;/p&gt;
&lt;h2&gt;How it composes&lt;/h2&gt;
&lt;p&gt;An MCP tool call, an A2A hand-off, and an AP2 purchase are the same motion at different stakes: &lt;strong&gt;present a verifiable identity, carry a scoped delegation, leave a provable record — at every hop.&lt;/strong&gt; A production platform needs six components, each mapped to a standard rather than invented: an agent runtime (workload identity + DPoP keys), a discovery layer (&lt;code&gt;.well-known&lt;/code&gt; cards and catalogs), an authorization server speaking the full grant playbook, a policy decision point (AuthZEN/RAR), verifying resource servers, and an evidence store for mandates. If a box in your architecture maps to none of these, ask why it exists.&lt;/p&gt;
&lt;h2&gt;What&apos;s unsettled, and what to do&lt;/h2&gt;
&lt;p&gt;Agent identity is the contested layer — enterprise IAM (Entra Agent ID, Okta), DIDs/VCs, and SPIFFE are all claiming it, and consolidation will be messy. Until then, five defaults serve builders well:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sign your cards, publish a &lt;code&gt;did:web&lt;/code&gt;, regenerate both in CI&lt;/strong&gt; — never hand-edit a signed card in production.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Match the grant to the moment&lt;/strong&gt;; if your agent asks for approvals over chat, you needed CIBA.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never share a service account across hops&lt;/strong&gt; — token exchange with &lt;code&gt;act&lt;/code&gt; chains, always.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DPoP + RAR on every flow&lt;/strong&gt; — sender-constrained, fine-grained by default.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Anything that spends gets a signed mandate&lt;/strong&gt; and a human at the mandate boundary.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;&lt;a href=&quot;/writing/agentic-web-field-guide/&quot;&gt;Part 1&lt;/a&gt; mapped the protocols; this mapped the trust underneath them. The uncomfortable truth: most agent deployments today run on layer 2 alone. The stack above is how &amp;quot;autonomous&amp;quot; stops meaning &amp;quot;unaccountable.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Correction (2026-08-09): AP2&apos;s mandates are selectively disclosable SD-JWT credentials (RFC 9901) presented over OpenID4VP, not W3C Verifiable Credentials as originally published. The &lt;a href=&quot;https://www.linkedin.com/pulse/identity-delegation-layer-behind-mcp-a2a-ap2-laxmikant-sharma-nshbc&quot;&gt;LinkedIn original&lt;/a&gt; preserves the earlier text.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>The Hardware-Accelerated Mesh: How DPUs and Ambient Topologies Killed the Data Center Tax</title><link>https://laxsharma.com/writing/dpus-and-ambient-mesh/</link><guid isPermaLink="true">https://laxsharma.com/writing/dpus-and-ambient-mesh/</guid><description>How DPUs and ambient mesh topologies remove the sidecar tax from service networking.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the last five years, cloud architects have been fighting a losing battle against the &lt;strong&gt;Data Center Tax&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;As monolithic applications decomposed into thousands of microservices, organizations deployed service meshes (like Istio and Linkerd) to handle mutual TLS (mTLS), L7 routing, and observability. The dominant architecture was the sidecar model: injecting a proxy (typically Envoy) into every single application pod.&lt;/p&gt;
&lt;p&gt;While elegant in theory, the physics of this design are brutal at scale. Traffic originating in user space must traverse the kernels TCP/IP stack to the local Envoy sidecar, get encrypted, traverse the kernel again to the physical network, and repeat the process in reverse on the receiving end. In dense multi-tenant environments, this software proxy layer can consume up to 30% of host CPU cycles—resources that should be generating revenue. Furthermore, this architecture adds approximately 0.63ms to 0.88ms of P99 latency per hop.&lt;/p&gt;
&lt;p&gt;In the era of high-frequency trading and Agentic AI workflows—where hundreds of containerized inference microservices must communicate in microseconds—software-bound sidecars are a fatal bottleneck.&lt;/p&gt;
&lt;p&gt;In 2026, the solution has arrived through a perfect marriage of software redesign and silicon innovation.&lt;/p&gt;
&lt;p&gt;In 2026, the solution has arrived through a perfect marriage of software redesign and silicon innovation.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/dpus-and-ambient-mesh/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;1. The Software Metamorphosis: Istio Ambient Mesh&lt;/h2&gt;
&lt;p&gt;You cannot offload a bloated architecture to hardware and expect miracles. The software had to evolve first. This evolution culminated in the General Availability of Istio Ambient Mesh, a sidecarless architecture.&lt;/p&gt;
&lt;p&gt;Ambient Mesh solves the proxy bloat by bifurcating the data plane into two distinct layers:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The ztunnel (Zero Trust Tunnel)&lt;/strong&gt;: A lightweight, Rust-based DaemonSet deployed once per node. It handles strictly Layer 4 traffic—enforcing mTLS, SPIFFE identity, and TCP authorization.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Waypoint Proxies&lt;/strong&gt;: Dedicated L7 Envoy proxies deployed only when advanced HTTP routing or payload inspection is required, configured on a per-namespace basis.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By removing L7 parsing from the default path, the ztunnel reduces the base mesh latency from ~0.85ms down to a blistering 0.16ms. But the true magic of Ambient Mesh is that its per-node ztunnel architecture maps perfectly to the physical topology of a &lt;strong&gt;Data Processing Unit (DPU)&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;2. Enter the DPU: The Third Pillar of Compute&lt;/h3&gt;
&lt;p&gt;A DPU or IPU (Infrastructure Processing Unit) is essentially a fully functional mini-server residing on your PCIe bus. They combine high-speed network interfaces (400G/800G) with programmable packet pipelines (like P4) and arrays of embedded ARM cores.&lt;/p&gt;
&lt;p&gt;By 2026, the silicon capabilities of these devices have reached staggering levels:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;NVIDIA BlueField-4&lt;/strong&gt;: Pushing the boundaries with 800 Gb/s throughput and 64 ARM cores, delivering 6x the compute power of its predecessor.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Intel IPU E2200&lt;/strong&gt;: Featuring 24 Arm Neoverse N2 cores, a 32MB system-level cache, and 400 Gb/s networking.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AMD Pensando Salina 400&lt;/strong&gt;: Utilizing a massive array of 232 proprietary Match Processing Units (MPUs) programmed via P4 to handle stateful connections at 400 Gbps.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Offloading the Mesh: Zero Trust at Line Rate&lt;/h3&gt;
&lt;p&gt;When we combine Ambient Mesh with DPUs, we fundamentally alter the security and performance profile of the data center.&lt;/p&gt;
&lt;p&gt;Instead of running the ztunnel as a software process on the host x86 CPU, the ztunnel and its cryptographic keys are deployed directly onto the embedded ARM cores of the DPU.&lt;/p&gt;
&lt;p&gt;This achieves true &lt;strong&gt;Hardware-Enforced Zero Trust&lt;/strong&gt;. Because the routing rules, policies, and certificates live on the DPU, the host operating system has zero visibility into the control plane. Even if a tenants container is entirely compromised by a malicious actor, they cannot alter network topologies or extract mTLS keys, because the enforcement mechanism sits on an isolated physical processor.&lt;/p&gt;
&lt;p&gt;Furthermore, leveraging native eBPF (Extended Berkeley Packet Filter) frameworks like Cilium, traffic is intercepted at the exact moment the network driver pulls the packet from the NICs receive ring. Utilizing the DPUs inline cryptographic engines (like the BlueFields Public Key Accelerator), asymmetric RSA/ECC handshakes and symmetric AES-GCM encryption are executed at line-rate (400Gbps+) with virtually zero latency penalty.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/dpus-and-ambient-mesh/inline-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. The Economic Reality: Power, TCO, and AI Inference&lt;/h2&gt;
&lt;p&gt;Ultimately, the shift to hardware-accelerated meshes is driven by extreme data center economics. General-purpose x86 CPUs are highly inefficient at moving and encrypting packets.&lt;/p&gt;
&lt;h3&gt;1. Massive Power Reductions:&lt;/h3&gt;
&lt;p&gt;In large-scale clusters, power availability is the ultimate constraint. Benchmark testing reveals that offloading Open vSwitch (OVS) and SDN tasks to a DPU reduces peak server power consumption by up to &lt;strong&gt;29% (roughly 127 Watts per server)&lt;/strong&gt;. Across a 10,000-node cluster, this represents millions of dollars in direct electricity and cooling savings.&lt;/p&gt;
&lt;h3&gt;2. Complete CPU Reclamation:&lt;/h3&gt;
&lt;p&gt;By moving the service mesh and security boundary to the DPU, platform engineers reclaim 100% of the host CPU for revenue-generating workloads. In some hyperscale deployments, just two DPU cards have successfully replaced the networking overhead of 52 general-purpose CPU cores.&lt;/p&gt;
&lt;h3&gt;3. Turbocharging Agentic AI:&lt;/h3&gt;
&lt;p&gt;For AI inference, network latency dictates user experience. When deploying a hardware-accelerated L7 Waypoint proxy (such as F5 BIG-IP Next) directly on an NVIDIA BlueField-3 DPU, benchmarks show a &lt;strong&gt;30% increase in LLM token throughput&lt;/strong&gt; and a massive &lt;strong&gt;60% reduction in Time-to-First-Token (TTFT)&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;The Bottom Line&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/dpus-and-ambient-mesh/inline-03.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;We have officially moved past the era where infrastructure software competes with application logic for CPU time. Thanks to open standards pushed by the Open Programmable Infrastructure (OPI) project , these DPU offload architectures are becoming vendor-agnostic and accessible to mainstream enterprises.&lt;/p&gt;
&lt;p&gt;If you are scaling Kubernetes, AI inference, or high-throughput microservices today, the service mesh is no longer just a software daemonset. It is the silicon sitting on your PCIe bus.&lt;/p&gt;
</content:encoded></item><item><title>WebMCP: The HTTP of the Agentic AI Age</title><link>https://laxsharma.com/writing/webmcp-http-for-the-agentic-age/</link><guid isPermaLink="true">https://laxsharma.com/writing/webmcp-http-for-the-agentic-age/</guid><description>WebMCP as the missing protocol layer for agents that browse and act on the web.</description><pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For the last three years, we’ve been forcing AI agents to browse the web like a human trying to read a book through a telescope.&lt;/p&gt;
&lt;p&gt;They render a page, take a massive screenshot, send millions of pixels to a vision model, and hope the AI guesses that the blue rectangle saying &amp;quot;Submit&amp;quot; is actually a button. It’s slow, expensive, and honestly, it’s fragile engineering.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This week, that era effectively ended.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With the release of Google’s &lt;strong&gt;Web Model Context Protocol (WebMCP)&lt;/strong&gt; in Chrome 146, the web has fundamentally shifted. We are moving from a &amp;quot;visual-first&amp;quot; web, built for human retinas, to an &amp;quot;agentic-first&amp;quot; web built for AI reasoning. The browser is no longer just a document viewer; it is now a standardized API server that lets agents &amp;quot;talk&amp;quot; directly to websites.&lt;/p&gt;
&lt;p&gt;If you are a CTO, Architect, or Engineering Lead, your roadmap just changed. Here is the deep technical breakdown of how WebMCP works, how to deploy it on Kubernetes with Zero Trust, and, most importantly, how to secure it when your &amp;quot;users&amp;quot; are no longer human&lt;/p&gt;
&lt;h2&gt;1. The Core Shift: The Browser as a Client-Side Server&lt;/h2&gt;
&lt;p&gt;To understand WebMCP, you have to flip your mental model of the web upside down.&lt;/p&gt;
&lt;p&gt;In the traditional web, the browser is a &lt;strong&gt;client&lt;/strong&gt; requesting data from a backend. In the WebMCP architecture, the browser tab &lt;em&gt;becomes&lt;/em&gt; a &lt;strong&gt;server&lt;/strong&gt;. It exposes a list of &amp;quot;tools&amp;quot; (capabilities) that a client (the AI agent) can call.&lt;/p&gt;
&lt;p&gt;When an agent visits your site, instead of parsing DOM nodes or guessing CSS selectors, it performs a structured handshake:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agent:&lt;/strong&gt; &lt;em&gt;&amp;quot;OPTIONS /capabilities&amp;quot;&lt;/em&gt; (Metaphorically)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Browser:&lt;/strong&gt; &lt;em&gt;&amp;quot;I can search_flights, add_baggage, and checkout.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This eliminates the &amp;quot;Execution Gap.&amp;quot; The agent doesn&apos;t need to calculate X/Y coordinates for a simulated click; it simply invokes a function.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;2. Two Roads to Integration: Declarative vs. Imperative&lt;/h2&gt;
&lt;p&gt;WebMCP gives us two distinct interfaces to expose these capabilities. One is for the HTML purists (SEO-style), and the other is for the JavaScript power users (Application-style).&lt;/p&gt;
&lt;h3&gt;The Declarative API: &amp;quot;Agent Optimization&amp;quot; (AO)&lt;/h3&gt;
&lt;p&gt;If you have a legacy application or a Server-Side Rendered (SSR) site, you don&apos;t need a rewrite. You just need to annotate your existing HTML forms. Think of this as &lt;strong&gt;Agent Optimization (AO)&lt;/strong&gt;, the new SEO.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Code:&lt;/strong&gt; You add &lt;strong&gt;toolname&lt;/strong&gt; and &lt;strong&gt;tooldescription&lt;/strong&gt; attributes. The browser automatically synthesizes these into a JSON schema for the agent.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;The Imperative API: Full Programmatic Control&lt;/h3&gt;
&lt;p&gt;For Single Page Applications (SPAs) or complex state changes (like a &amp;quot;Crop Image&amp;quot; feature), HTML forms aren&apos;t enough. You need the Imperative API, which lives on the &lt;strong&gt;navigator.modelContext&lt;/strong&gt; object.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-03.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;3. Zero Trust Security: Inverting the Perimeter&lt;/h2&gt;
&lt;p&gt;Deploying WebMCP in an enterprise environment introduces a terrifying variable: &lt;strong&gt;The user might be an autonomous agent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Traditional security relies on &amp;quot;Ingress Control&amp;quot; (stopping bad guys from getting in). Agentic security requires &lt;strong&gt;Egress Control&lt;/strong&gt; (stopping your own agents from sending data &lt;em&gt;out&lt;/em&gt; to the wrong place).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The &amp;quot;Lethal Trifecta&amp;quot;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Security researchers define the &amp;quot;Lethal Trifecta&amp;quot; for agents as the combination of:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Access to Private Data&lt;/strong&gt; (e.g., reading emails).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Access to Untrusted Content&lt;/strong&gt; (e.g., reading a webpage).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;External Communication&lt;/strong&gt; (e.g., sending an API request).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If an agent has all three, a malicious website can use &amp;quot;Prompt Injection&amp;quot; (hidden text on a page) to trick your agent into exfiltrating secrets&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mitigation: The Reference Pattern&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;WebMCP solves this by enforcing a &lt;strong&gt;Reference Pattern&lt;/strong&gt;. The rule is simple: &lt;strong&gt;Never give the LLM the raw sensitive data.&lt;/strong&gt; Give it a token instead.&lt;/p&gt;
&lt;p&gt;❌** INSECURE:**&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-04.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;✅** SECURE (WebMCP Reference Pattern):**&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-05.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-06.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;4. Enterprise Architecture: Kubernetes, Service Mesh &amp;amp; Edge&lt;/h2&gt;
&lt;p&gt;How do you deploy this at scale? You don&apos;t just run it on a laptop. You deploy &lt;strong&gt;MCP Servers&lt;/strong&gt; as microservices within your existing infrastructure.&lt;/p&gt;
&lt;h3&gt;The &amp;quot;Agent Mesh&amp;quot; (Istio Ambient Mode)&lt;/h3&gt;
&lt;p&gt;In a Kubernetes cluster, you treat Agents and Tools as distinct workloads.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identity Sprawl:&lt;/strong&gt; Every agent instance needs a &lt;strong&gt;SPIFFE ID&lt;/strong&gt;. You must audit exactly &lt;em&gt;which&lt;/em&gt; agent instance (e.g., spiffe://cluster.local/ns/agents/sa/finance-bot-v2) accessed a resource.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;mTLS:&lt;/strong&gt; Use &lt;strong&gt;Istio Ambient Mode&lt;/strong&gt; (sidecar-less) to enforce mutual TLS between the Agent Pod and the MCP Server Pod. This ensures that even if the cluster is breached, an attacker cannot spoof an agent&apos;s identity.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Authorization: Why RBAC Fails &amp;amp; The Need for ABAC&lt;/h3&gt;
&lt;p&gt;In a traditional app, &lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt; works: &lt;em&gt;&amp;quot;User is an Admin, so they can Delete.&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;For agents, RBAC is dangerous. An agent might be &amp;quot;acting as an Admin,&amp;quot; but it shouldn&apos;t have &lt;em&gt;carte blanche&lt;/em&gt; to delete the database because it hallucinated a command. You need &lt;strong&gt;Attribute-Based Access Control (ABAC)&lt;/strong&gt; to evaluate the &lt;em&gt;context&lt;/em&gt; of the request.&lt;/p&gt;
&lt;h3&gt;The Policy Check (Open Policy Agent / Cerbos style):&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-07.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;Immutable Auditing: The &amp;quot;PhysicalTask&amp;quot; Protocol&lt;/h3&gt;
&lt;p&gt;For regulated industries (Finance, Healthcare), &amp;quot;The AI did it&amp;quot; is not a valid legal defense. We are seeing the adoption of &lt;strong&gt;Cryptographic Intent Logging&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Every time an agent constructs a tool call, the infrastructure generates a &lt;strong&gt;SHA-256 hash&lt;/strong&gt; of the &lt;em&gt;prompt&lt;/em&gt; (intent) and the &lt;em&gt;payload&lt;/em&gt; (action).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;This hash is written to an immutable ledger. If an agent goes rogue, the SOC can replay the cryptographic chain to prove exactly &lt;em&gt;why&lt;/em&gt; the agent made that decision.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/webmcp-http-for-the-agentic-age/inline-08.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;5. Strategic Takeaway: The &amp;quot;Dual-Layer&amp;quot; Web&lt;/h2&gt;
&lt;p&gt;We are witnessing the bifurcation of the internet.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layer 1 (Visual):&lt;/strong&gt; Built with CSS, Canvas, and React for human eyes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Layer 2 (Agentic):&lt;/strong&gt; Built with WebMCP, JSON Schema, and Policy-as-Code for AI minds.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are a technical leader, &amp;quot;Agent Optimization&amp;quot; is the new battleground. Deploying WebMCP endpoints isn&apos;t enough; you must secure them with Zero Trust principles, govern them with ABAC policies, and optimize them at the Edge.&lt;/p&gt;
&lt;p&gt;The bots are coming to your website. &lt;strong&gt;Make sure you speak their language.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What are your thoughts on the security implications of client-side agent servers? Let’s discuss in the comments.&lt;/em&gt; 👇&lt;/p&gt;
</content:encoded></item><item><title>The Invisible Revolution: How AI is Rewiring the Data Center Network</title><link>https://laxsharma.com/writing/ai-rewiring-the-data-center-network/</link><guid isPermaLink="true">https://laxsharma.com/writing/ai-rewiring-the-data-center-network/</guid><description>Why AI traffic broke the old data center network and what is replacing it.</description><pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;The assumption that &amp;quot;Ethernet is Ethernet&amp;quot; is officially dead.&lt;/p&gt;
&lt;p&gt;For years, hyperscale networking was dominated by generic Ethernet relying on TCP/IP. It was designed for resilience over unreliable links. If a packet dropped, TCP noticed, waited, and retransmitted. In the world of web applications, this latency was acceptable.&lt;/p&gt;
&lt;p&gt;In the world of AI supercomputing, it is catastrophic.&lt;/p&gt;
&lt;p&gt;AI training is a massive distributed computing problem. Thousands of GPUs must constantly synchronize vast amounts of data (gradients). If one packet in that synchronization phase is dropped due to switch buffer congestion, the entire cluster—potentially 20,000 GPUs—waits for the retransmission. This &amp;quot;tail latency&amp;quot; event destroys training efficiency.&lt;/p&gt;
&lt;p&gt;We are witnessing a fundamental shift from &lt;strong&gt;&amp;quot;Generic Ethernet&amp;quot;&lt;/strong&gt; (best effort, lossy) to &lt;strong&gt;&amp;quot;AI-Tuned Ethernet&amp;quot;&lt;/strong&gt; (predictable, lossless). This shift is being codified by platforms like &lt;strong&gt;NVIDIA Spectrum-X&lt;/strong&gt; and open standards like the &lt;strong&gt;Ultra Ethernet Consortium (UEC)&lt;/strong&gt;. They are redefining Ethernet to support RDMA (RoCE v2) at massive scale.&lt;/p&gt;
&lt;p&gt;Here is a detailed look at how this new fabric changes critical infrastructure concepts.&lt;/p&gt;
&lt;h3&gt;1. Redefining the &amp;quot;Transaction&amp;quot; at High Scale&lt;/h3&gt;
&lt;p&gt;In standard networking, a transaction might be a database query. In AI networking, a transaction is often a &amp;quot;Collective Operation&amp;quot; (like an All-Reduce), where every GPU shares data with every other GPU simultaneously.&lt;/p&gt;
&lt;p&gt;This leads to unique traffic patterns that break generic Ethernet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Elephant Flows:&lt;/strong&gt; Massive, long-lived streams of data, unlike the &amp;quot;mice flows&amp;quot; of web traffic.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Incast:&lt;/strong&gt; The moment when hundreds of senders transmit to a single receiver simultaneously, causing instantaneous buffer overflows in standard switches.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The AI-Tuned Fix:&lt;/strong&gt; Instead of reactive TCP congestion control (dropping packets when full), AI fabrics are proactive. Through advanced telemetry, the switch communicates directly with the NIC (Network Interface Card) to throttle traffic &lt;em&gt;before&lt;/em&gt; congestion occurs, ensuring the &amp;quot;transaction&amp;quot; completes without packet loss.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-rewiring-the-data-center-network/inline-01.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;2. The Evolution of the &amp;quot;Service Mesh&amp;quot; into Hardware&lt;/h3&gt;
&lt;p&gt;We are used to Service Meshes (like Istio) operating at the software layer to manage traffic between microservices. In AI, the performance demands are too high for software proxies.&lt;/p&gt;
&lt;p&gt;The &amp;quot;Service Mesh&amp;quot; is moving down into the hardware, specifically into DPUs (Data Processing Units) and SmartNICs used in Spectrum-X and UEC designs.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Generic Ethernet:&lt;/strong&gt; Uses ECMP (Equal-Cost Multi-Path) routing, which hashes a flow to a single path. If two &amp;quot;Elephant Flows&amp;quot; hash to the same path, they collide, causing congestion, while other paths remain idle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AI-Tuned Fabric:&lt;/strong&gt; Utilizing advanced techniques like &lt;strong&gt;Packet Spraying&lt;/strong&gt; (a key feature of UEC), a single large transaction is split into individual packets and sprayed across &lt;em&gt;all&lt;/em&gt; available paths simultaneously, reassembling them at the destination. This ensures 100% utilization of fabric bandwidth and acts as a hardware-based traffic manager.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-rewiring-the-data-center-network/inline-02.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;3. Security in a Direct-Memory-Access World&lt;/h3&gt;
&lt;p&gt;The magic of modern AI speed is RDMA (Remote Direct Memory Access). It allows one GPU to write data directly into the memory of another GPU across the network, bypassing the remote CPU entirely.&lt;/p&gt;
&lt;p&gt;In a multi-tenant cloud, this is terrifying.&lt;/p&gt;
&lt;p&gt;If not properly secured, Tenant A could potentially read the memory of Tenant B. Generic Ethernet security (firewalls, IP ACLs) is too slow and CPU-intensive for 800Gbps line rates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The AI-Tuned Fix:&lt;/strong&gt; Security is enforced at the NIC hardware level. Modern fabrics implement technologies like &lt;strong&gt;Zero Trust RoCE (ZTR)&lt;/strong&gt;. This uses strict memory protection keys and hardware-based encryption (like IPsec or PSP) executed at line rate on the DPU. A tenant can only access memory regions explicitly authorized for their specific job ID. Any unauthorized RDMA attempt is dropped instantly by the hardware, providing isolation without the performance penalty of software checks.&lt;/p&gt;
&lt;h3&gt;4. Dynamic Configuration via SONiC&lt;/h3&gt;
&lt;p&gt;In traditional networking, network configurations were relatively static. In an AI cloud, the network topology needs to logically reshape itself constantly.&lt;/p&gt;
&lt;p&gt;When a Kubernetes scheduler places a new training job, the network must instantly reconfigure to optimize for that specific workload. A large language model training run has different traffic patterns than an image generation model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The AI-Tuned Fix:&lt;/strong&gt; This requirement has solidified &lt;strong&gt;SONiC (Software for Open Networking in the Cloud)&lt;/strong&gt; as the operating system of choice for AI fabrics. SONiC allows the entire network stack to be managed via APIs.&lt;/p&gt;
&lt;p&gt;The fabric can dynamically adjust switch buffer allocations, change routing protocols, and push specific congestion control profiles to the NICs based on the job type—all automatically, in seconds.&lt;/p&gt;
&lt;h3&gt;The Bottom Line&lt;/h3&gt;
&lt;p&gt;The transition from Generic Ethernet to AI-Tuned Ethernet fabrics like Spectrum-X and UEC is not merely an upgrade in speed; it is a fundamental change in networking philosophy.&lt;/p&gt;
&lt;p&gt;We are moving from a world that tolerates loss to one that demands deterministic performance. For organizations investing billions in GPU infrastructure, the network is the critical bottleneck determining whether that investment yields a return in weeks or months.&lt;/p&gt;
&lt;p&gt;If you are building for AI, you cannot rely on the networking assumptions of the past two decades.&lt;/p&gt;
</content:encoded></item><item><title>The Enterprise AI Gap isn&apos;t Model IQ anymore. It’s Execution + Trust</title><link>https://laxsharma.com/writing/enterprise-ai-execution-gap/</link><guid isPermaLink="true">https://laxsharma.com/writing/enterprise-ai-execution-gap/</guid><description>Enterprise AI stopped being limited by model quality; execution and trust are the bottleneck now.</description><pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;We are crossing the chasm from &amp;quot;AI that helps&amp;quot; to &amp;quot;AI that &lt;em&gt;does&lt;/em&gt;.&amp;quot;&lt;/p&gt;
&lt;p&gt;OpenAI’s recent Frontier announcement confirmed what many of us in enterprise infrastructure have suspected: The bottleneck isn&apos;t model IQ anymore. It’s &lt;strong&gt;execution + trust.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Frontier isn&apos;t just about smarter chatbots; it reads like a blueprint for operationalizing AI coworkers.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/enterprise-ai-execution-gap/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;The &amp;quot;Frontier Stack&amp;quot;: Layered Defense&lt;/p&gt;
&lt;h3&gt;What Frontier Signals (Beyond the Headline)&lt;/h3&gt;
&lt;p&gt;The platform is positioned to build and deploy AI coworkers by giving them the &amp;quot;skills&amp;quot; we use to scale people: shared context, onboarding, feedback loops, and clear boundaries.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Shared Context is a First-Class Primitive:&lt;/strong&gt; Agents aren&apos;t trained on isolated docs; they connect to enterprise systems (CRM, ticketing, internal apps) to build a shared semantic understanding of the business.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;From Conversation to Execution:&lt;/strong&gt; The framing shifts from &amp;quot;AI answers questions&amp;quot; to &amp;quot;AI completes workflows&amp;quot;—coordinating multi-step tasks across tools, which is where both ROI and risk appear.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;The Execution Environment Matters:&lt;/strong&gt; Frontier highlights a dependable runtime (files, code, tools, memory), making it a controlled operating environment, not just an API call.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identity &amp;amp; Permissions are the Scaling Lever:&lt;/strong&gt; Agent systems need workload identity, least privilege, and auditability to be safe in real workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Reality Check&lt;/h3&gt;
&lt;p&gt;But here is the hard truth: If agents are the new runtime for work, security cannot be an afterthought. &lt;strong&gt;As we move from conversation to execution, the risk surface explodes.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We aren&apos;t just worried about wrong answers anymore. We are worried about over-permissioned agents, authorized incidents, lateral movement through tools, and silent failures at scale.&lt;/p&gt;
&lt;p&gt;If you are building agentic systems, you need a new architecture. You need &lt;strong&gt;Zero Trust for Agents.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Here is a practical blueprint for a trust fabric that allows agents to act autonomously without becoming an unbounded risk.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/enterprise-ai-execution-gap/inline-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h3&gt;The 8-Point &amp;quot;Zero Trust Agent&amp;quot; Blueprint&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. Strong Agent Identity (Workload Identity)&lt;/strong&gt; Treat agents like production microservices with unique, short-lived identities. Use mTLS with context claims for every call.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. The Tool Gateway (Your New Perimeter)&lt;/strong&gt; This is the most critical choke point. &lt;em&gt;Nothing&lt;/em&gt; bypasses the gateway, which enforces allowlists, schema validation, and rate limits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Policy-as-Code Authorization (Beyond the Prompt)&lt;/strong&gt; Stop putting auth logic in natural language prompts. Move it to a deterministic policy engine that evaluates &lt;em&gt;who&lt;/em&gt;, &lt;em&gt;what&lt;/em&gt;, &lt;em&gt;why&lt;/em&gt;, and real-time &lt;em&gt;risk signals&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Governed Context Retrieval&lt;/strong&gt; Shared context is vital but must not become data sprawl. Implement retrieval boundaries and DLP scanning on inputs and outputs.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Runtime Isolation &amp;amp; Egress Control&lt;/strong&gt; Assume breach. Sandbox execution environments and ruthlessly restrict network egress.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. The Immutable Action Ledger&lt;/strong&gt; Observability is your safety net. Every agent decision must produce a trace ID and write to an append-only audit record.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. Continuous Evaluation Loops&lt;/strong&gt; Drift is inevitable. Constantly run offline eval suites for expected behavior and online scoring for safety and quality.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8. Step-Up for High-Risk Actions&lt;/strong&gt; Design patterns for &amp;quot;human-in-the-loop&amp;quot; interrupt circuits when risk scores hit a threshold.&lt;/p&gt;
&lt;h3&gt;The Takeaway&lt;/h3&gt;
&lt;p&gt;The winners in this next phase won&apos;t just be the ones with the smartest agents. It will be the teams that build the strongest trust fabric &lt;em&gt;around&lt;/em&gt; those agents.&lt;/p&gt;
&lt;p&gt;If you are building agentic systems today, I have one question for you:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where is your policy enforcement living—inside the app logic, at a platform gateway, or scattered across a service mesh?&lt;/strong&gt; Let me know in the comments. 👇&lt;/p&gt;
&lt;p&gt;#AgenticAI #ZeroTrust #AIInfrastructure #PlatformEngineering #Cybersecurity #EnterpriseAI #MLOps&lt;/p&gt;
</content:encoded></item><item><title>AI Agents vs. Agentic AI vs. MCP Server–Based AI vs. A2A AI: Technical Angle</title><link>https://laxsharma.com/writing/ai-agents-vs-agentic-technical-angle/</link><guid isPermaLink="true">https://laxsharma.com/writing/ai-agents-vs-agentic-technical-angle/</guid><description>The same four terms, this time from the architecture and protocol side.</description><pubDate>Thu, 09 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;This is the part 2 of the previous post where we went over the differences in AI Agents, Agentic AI, MCP servers and A2A AI from business angle. Lets do a deep dive from technical perspective.&lt;/p&gt;
&lt;h2&gt;Technical Version&lt;/h2&gt;
&lt;h3&gt;Clear boundaries&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Agent: A goal-directed software entity with a control loop: observe → plan → act → reflect → stop/iterate. Uses tools/APIs, memory, and policies (budgets, approvals).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI: The toolkit that makes agents competent: ReAct-style reasoning, function calling, planners (flat/hierarchical), working and long-term memory, critique/reflection, stop criteria.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP server–based AI: Model Context Protocol links assistants (clients) to tools/resources exposed by MCP servers. The client discovers capabilities, requests permission, invokes with typed args, and receives structured results. Transport commonly via JSON‑RPC over stdio/WebSockets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A AI: Agents messaging and coordinating—either orchestrated (a coordinator delegates) or peer-to-peer. Requires identity, policy, convergence, and observability across boundaries.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Minimal implementation details&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Agent loop (pseudocode-ish)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;state = load_task_state()&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;steps = 0&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;while not done and steps &amp;lt; max_steps and within_budgets():&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ctx = gather_context(state) // working memory + retrievalplan = model.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;plan(goal, ctx) // planner prompt/tool&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;tool, args = pick_tool(plan)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;args = validate_against_schema(tool.schema, args)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;result = call_tool(tool, args) // retries, timeouts, idempotency&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;critique = model.reflect(result, plan)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;update_memory(state, plan, result, critique)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;done = check_stop(result, steps, policies)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;steps += 1&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tooling and memory&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Tools: Function calling with strict JSON schemas; idempotent writes; safe sandboxes; rate limits.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Memory:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Working memory (recent steps).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Retrieval (RAG) for domain docs.T&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ask memory/state (DB row keyed by task_id).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optional episodic log for evaluations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MCP servers (practical)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Server advertises:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tools: name, description, JSON schema, auth/policy, rate limit, idempotency hints.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Resources: datasets/files/endpoints, scopes, read/write modes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Prompts: reusable templates.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Client flow:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connect → discover → request scopes/consent → invoke → stream/receive → log.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Security/governance:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Secrets stay in servers; per-tool scopes; approval prompts on risky operations; full audit trail.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Operability:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Versioned servers; health checks; retries/backoff; quotas; central registry for approved servers (CRM, ERP, ticketing, DW).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;A2A messaging (nuts and bolts)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Message envelope:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;id, correlation_id, sender, recipients, intent, payload, policy_context, ttl, signature.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Coordination patterns:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Orchestrator-led: Simpler to reason about; one source of truth for state.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Peer-to-peer: Needs convergence criteria, leader election or arbitration, deadlock/timeouts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Identity/trust:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keys per agent; allow/deny lists; capability attestations; optional budget/credit tokens; per-partner policies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Safety:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Policy engine (think OPA-style) evaluates intent+context; high-risk actions require human sign-off.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Observability:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Semantic traces, tool-call logs, message timelines, state diffs; redaction for PII.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Reference deployment topologies&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Single agent serviceLLM + tool registry + memory store + policy engine; deployed as a stateless API with a task DB.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Agent + MCPThin assistant client; integrations live in MCP servers; policy and audit centralized; assistants across products reuse the same servers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multi-agent (A2A)Agents publish/subscribe on a message bus; orchestrator or broker enforces policy; external partner agents connect via API gateway with contract SLAs.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Expanded technical use cases (with brief flows)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Analytics assistantPlan analysis → run SQL via MCP Postgres server (read-only) → chart → self-check outliers → revise → export to BI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Data quality agentScan tables → compute drift/anomaly metrics → file tickets via MCP Jira server → open PR to fix dbt tests with human review.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SRE incident agentParse alert → run runbook steps via tool calls (kubectl, logs) in a safe sandbox → propose rollback → request approval via MCP Slack server → execute rollback tool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Contract review agentChunk contract → check clauses against a policy KB → propose redlines → route to legal approver; store artifacts via MCP DMS server.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Procurement A2ABuyer agent posts RFQ → supplier agents respond with quotes → pricing/legal agents score → buyer agent negotiates within budget → ERP PO created via MCP server.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Design trade-offs and guardrails&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Determinism vs autonomy: Cap steps/time/cost; approval gates for writes; rollback plans.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Latency/cost: Multi-step plan-act loops, add hops; cache retrieval; pre-plan batches; prefer streaming where possible; aggressive timeouts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reliability: Retries/backoff; circuit breakers; schema-first tools; idempotent operations; golden tasks for regression.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Security: Secrets in servers; least privilege; prompt shielding; allow/deny lists; redact PII; comprehensive audit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Evaluation: Track task success, human intervention rate, tool error rate, convergence time, cost per completed task, and user satisfaction.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Anti-patterns to avoid&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Unbounded loops or no stop criteria.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Write access to prod without strong approvals.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Embedding credentials in prompts or client code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Multi-agent chatter where one specialist agent would suffice.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy-pasting integrations into each agent instead of centralizing via MCP.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Technical comparison table&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-agents-vs-agentic-technical-angle/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Technical Usaecases&lt;/p&gt;
&lt;h2&gt;How they correlate and stack together&lt;/h2&gt;
&lt;h3&gt;Conceptual stack&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI is the “how” (methods) that gives an AI the ability to plan, use tools, and self-correct.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI Agent is the “who” (entity) that uses those methods to achieve a goal under policies and budgets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP server–based AI is the “plumbing” that safely connects agents to enterprise tools and data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A AI is the “network” pattern where multiple agents interact to complete cross-boundary workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Practical lifecycle&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Start: Add Agentic AI patterns to a capable model to handle multi-step work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wrap: Package it as an AI Agent with policies, memory, and evaluation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connect: Use MCP servers to grant governed access to your systems and data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scale: Introduce A2A when tasks naturally span teams/companies and benefit from automated negotiation/coordination.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Selection guidance by maturity&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-agents-vs-agentic-technical-angle/inline-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Selection process&lt;/p&gt;
&lt;h3&gt;End-to-end example (correlated)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Research-to-brief&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI: Plan sources → fetch → synthesize → self-critique → finalize.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI Agent: Orchestrates steps, maintains state, manages budgets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP: Provides safe access to Confluence, CRM, data warehouse, and web search.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A: Hands off to a localization agent and a legal-review agent; resolves comments and publishes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Final takeaways&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Agent is the unit of action. Agentic AI is how you make it capable and reliable. MCP server–based AI is how you connect it to your world safely. A2A AI is how multiple agents cooperate across boundaries.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start small, add autonomy gradually, centralize integrations via MCP, and only move to A2A once single-agent value and governance are proven.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Measure outcomes, not demos: task success, time saved, error rate, cost per outcome, and human intervention rate.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you’re piloting agents today, pick one high-value but bounded workflow. Use agentic patterns for reliability, MCP servers for safe access, and only add A2A when the process truly spans multiple parties. Ship with guardrails, instrument everything, and iterate with metrics.&lt;/p&gt;
</content:encoded></item><item><title>AI Agents vs. Agentic AI vs. MCP Server–Based AI vs. A2A AI: Business Angle</title><link>https://laxsharma.com/writing/ai-agents-vs-agentic-business-angle/</link><guid isPermaLink="true">https://laxsharma.com/writing/ai-agents-vs-agentic-business-angle/</guid><description>Four overloaded terms untangled for decision makers: AI agents, agentic AI, MCP-based AI, and A2A.</description><pubDate>Tue, 07 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;If you’ve sat through a few “agent” demos lately, you’ve probably heard four terms thrown around as if they mean the same thing: AI Agent, Agentic AI, MCP server–based AI, and A2A AI. They don’t. Here’s a clean way to think about them—and how to put them to work without tripping over hype.&lt;/p&gt;
&lt;p&gt;This article clarifies four terms and then shows where each fits, how they differ, and when to use which. I will be publishing two versions of the explanations, this article covers business friendly version.&lt;/p&gt;
&lt;h2&gt;Part 1 — Business Version&lt;/h2&gt;
&lt;h3&gt;Quick mental model&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Agent is the doer, a software helper that can decide and act on goals (the digital teammate that takes steps and uses tools).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI is the work-style, making today’s AI models behave like real assistant (planning, using tools, remembering, self-correcting).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP servers are the door keys and turnstiles (connect AI safely to your company’s systems using a safe, standardized, auditable connector layer).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A (Agent-to-Agent) is the meeting room (agents coordinating with other agents to negotiate, collaborate, or transact, sometimes across companies).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Plain-English definitions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Agent: A goal-driven digital assistant that can take multiple steps, use approved tools/APIs, and bring back a result with varying levels of autonomy and oversight. Think “junior teammate you can supervise.”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI: The way we make today’s models act like that teammate—planning, using tools, iterating, checking their work and reflecting so they behave more like assistants that can get things done.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP server–based AI: An enterprise-friendly, standard, auditable way to connect AI to your systems (CRM, ERP, ticketing, data warehouse) with permissions and logs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A AI: Agents coordinating with other agents to get a cross-team or cross-company job done end-to-end (request, reply, negotiate, approve).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Where each one is best suited&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Agent: When you want a single digital assistant to complete a complex task end-to-end (e.g., triaging a support ticket, compiling a competitive brief, preparing a meeting with data pulls).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI: When you need your existing AI capabilities to be more effective—plan better, use tools reliably, self-correct, and handle multi-step work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP server–based AI: When you must connect AI to internal systems safely and at scale, with strong controls, audit logs, and a standardized way to add/remove integrations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A AI: When workflows span multiple teams or companies and can be automated as a “conversation” among agents (e.g., procurement quoting, price negotiation, supply chain updates).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Concrete examples&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;- AI Agent&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sales ops: Clean leads, enrich from a data vendor, draft outreach, schedule the first call.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Support: Triage a ticket, look up known issues, run basic diagnostics, propose fixes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Finance: Reconcile payments and invoices, flag mismatches, draft variance notes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;HR: Screen resumes against must-have criteria, schedule interviews, prep scorecards.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Marketing: Research competitors, collect examples, draft a brief and a social thread.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;IT: Read logs, run predefined checks, prepare an escalation with crisp context.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;- Agentic AI&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Reporting: Plan which data to pull, run queries, chart results, check anomalies, revise.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Content: Outline → draft → fact-check → tone adjustment → final polish.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Coding: Plan a change, run tests/linters, fix failures, produce a PR summary.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Research: Draft a research plan, visit sources, cross-verify, synthesize into a brief.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;- MCP server–based AI&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;One connector hub: A single, approved place for assistants to reach Salesforce, Jira, Slack, Notion, a read-only warehouse, etc.—with permissions and audit.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Regulated work: Read-only access for PII systems; redaction; time-bound permissions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reuse: The chat assistant, IDE copilot, and voice bot all reuse the same connectors.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;- A2A AI&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Procurement RFQ: Buyer agent requests quotes; supplier agents reply; pricing/legal agents score; buyer agent negotiates within budget; ERP updates the PO.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Supply chain: Inventory agent flags low stock; logistics agent finds lanes; warehouse agent schedules receiving; finance agent reserves funds.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Customer service concierge: Intake agent triages; billing agent processes refunds; policy agent approves exceptions; shipping agent prints labels.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Travel: Employee agent requests trip; policy agent approves; airline/hotel agents quote; itinerary gets booked.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to choose (quick tests)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If there’s a clear outcome and you can supervise it: AI Agent.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If your current AI answers questions but can’t follow a plan, act and self correct: Agentic AI.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the assistant needs access to your systems and you care about governance and scale: MCP servers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the process spans multiple teams or companies and requires negotiation: A2A.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Mini storylines (how they play together)&lt;/h3&gt;
&lt;p&gt;**- Quarter-end close (Finance) **&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI drafts a reconciliation plan.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI Agent pulls transactions, flags discrepancies, drafts explanations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP servers unlock ERP and bank APIs safely.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A coordinates with a vendor invoicing agent to fix a mismatch.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;- E‑commerce returns (Operations/Support)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI designs a decision tree for returns.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI Agent validates orders, checks warranty, proposes options.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP servers connect to OMS/WMS/CRM with least-privilege access.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A negotiates pickup slots with a logistics agent and issues a label.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;- Field service dispatch (IT/Facilities)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Agentic AI triages an incident and suggests steps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI Agent books a tech and reserves parts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP servers integrate ticketing, inventory, and calendars.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A loops in a third‑party maintenance agent for after-hours coverage.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What to watch out for&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Autonomy risk: Add guardrails and approval points for risky actions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Data security: Use governed connectors (MCP) instead of hardwiring API keys into prompts.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reliability: Start small, measure success/interventions, add fallbacks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Compliance: Log prompts, tool calls, data touched; review integrations centrally.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Business comparison table&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-agents-vs-agentic-business-angle/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;h2&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;If you’re piloting agents today, pick one valuable, bounded workflow and ship it with guardrails. Use Agentic patterns for reliability, MCP servers for safe access, and only move to A2A once single-agent value is proven. Iterate with metrics, not demos.&lt;/p&gt;
</content:encoded></item><item><title>AI x APIs: The new power couple</title><link>https://laxsharma.com/writing/ai-x-apis/</link><guid isPermaLink="true">https://laxsharma.com/writing/ai-x-apis/</guid><description>OpenAPI-described services are becoming agent tools; what AI-first means for API teams.</description><pubDate>Mon, 29 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;A decade ago, “mobile-first” wasn’t a slogan. It was survival. Today, the same turning point is here for “AI-first.” If you’re building anything—product, platform, or prototype—AI is no longer an add-on. It’s the operating principle.&lt;/p&gt;
&lt;p&gt;Here’s what’s changed: AI and RESTful APIs aren’t just interoperating. They’re completing each other.&lt;/p&gt;
&lt;h3&gt;From idea to GTM, AI is in the loop&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ideation and brainstorming with copilots&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Architecture and design with patterns auto-suggested&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mocks, POCs, and dev with agents scaffolding code&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Testing and deployment with automated checks and release flows&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This isn’t hype. It’s a productivity compounding effect. And it gets supercharged by standards like MCP and the A2A protocol that let agents discover, reason about, and safely use your APIs as “tools.”&lt;/p&gt;
&lt;p&gt;APIs grew up—now they speak “agent” RESTful APIs remain the cleanest way to expose capability. Pair that with OpenAPI 3.x and you get contracts, documentation, and automation for free. But here’s the unlock:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Your OpenAPI spec can be converted into an MCP server where each endpoint becomes a tool.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Little-to-no extra backend code. Your existing API suddenly becomes agent-ready.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;MCP clients/hosts can auto-discover, test, and consume your services safely and consistently.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What this looks like in practice&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Spec-to-tools: Feed your OpenAPI 3.1 file into a generator. Instantly, your endpoints show up as callable tools agents can reason about (“create_invoice,” “get_inventory,” “book_shipment”).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI-native QA: Contract tests, synthetic data, and agent-driven test plans spin out from the spec—catching regressions and schema drift early.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A2A orchestration: One agent plans calls, another validates responses against the schema, a third handles retries/observability. Clean, governed autonomy.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Why this wins&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Faster build cycles: Ship features without re-coding integration glue.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lower maintenance: Single source of truth—the spec—drives docs, SDKs, tests, and tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Safer execution: Clear auth scopes and typed schemas reduce misuse and hallucinations.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Better DX: Teams work from contracts, not tribal knowledge.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;A quick AI-first playbook&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Declare the contract first: Standardize on OpenAPI 3.x with rich descriptions, examples, and error models.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make it discoverable: Publish specs to your MCP registry so agents can find and reason about capabilities.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Automate quality: CI validates specs, generates tests, and runs agent-based checks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Design for safety: Auth scopes and rate hints in the spec guide agent behavior.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instrument everything: Structured logs and traces tuned for both humans and agents.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Close the loop: Use real usage to evolve the spec—not just the code.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Avoid these trapdoors&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;“Pretty JSON,” empty semantics: Missing examples, vague descriptions, no error shapes. Agents struggle; humans too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Proprietary glue everywhere: Fragmented adapters make scaling agents painful.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AI as an afterthought: Retrofitting later costs 10x more than designing for agents from day one.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If your API isn’t agent-ready, it’s already behind.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;https://www.linkedin.com/company/emachinelabs/&quot;&gt;Emachinelabs&lt;/a&gt;, we practice AI-first by default. Our APIs and backend services natively power MCP servers for instant discovery, inventory, and safe consumption by both AI agents and API clients. Result: faster iteration, cleaner governance, and measurable reductions in development and maintenance costs.&lt;/p&gt;
&lt;p&gt;Curious how to turn your API catalog into an agent-ready platform—without boiling the ocean? Let’s talk!&lt;/p&gt;
</content:encoded></item><item><title>Agentic AI in Healthcare: From Monitoring to Meaningful Action</title><link>https://laxsharma.com/writing/agentic-ai-healthcare/</link><guid isPermaLink="true">https://laxsharma.com/writing/agentic-ai-healthcare/</guid><description>Turning continuous patient monitoring into safe, timely action with agentic AI.</description><pubDate>Tue, 23 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Clinicians and patients are awash in data—from continuous heart monitors and wearables to lab results and imaging. Yet the value of that data is only realized when the right insight reaches the right person at the right time. In telemetry units today, signals from continuous cardiac monitors are streamed to the cloud and scanned by technicians. Despite best efforts, human bottlenecks can delay recognition of potentially life‑threatening rhythms or subtle deterioration. Agentic AI—goal‑driven AI systems that can sense, reason, act, and collaborate with care teams—offers a path to faster interventions, more personalized care, and lower cost.&lt;/p&gt;
&lt;h3&gt;Why the Status Quo Isn’t Enough&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Alarm fatigue and missed events: The Joint Commission documented big alarm-related adverse events (several deaths) in 2009–2012, and ECRI has repeatedly listed alarm hazards among top health technology risks. High alarm volumes and non-actionable alerts make it harder to catch the true emergencies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Time is clinical currency: In conditions like ventricular tachycardia, complete heart block, or sepsis, minutes matter. Even small delays from manual triage can change outcomes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rising workload and costs: Health systems face staffing shortages and growing telemetry volumes; manual monitoring doesn’t scale.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;What Is Agentic AI? Agentic AI systems:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Monitor continuously: Ingest and interpret multimodal data (ECG, SpO2, BP, notes) in real time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reason with context: Combine vitals with history, meds, and care protocols to assess risk.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Act with guardrails: Triage, escalate, and recommend next steps via approved workflows, keeping clinicians in the loop.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Learn and adapt: Improve specificity, personalization, and clinician trust through feedback and audit.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;How Agentic AI Improves Outcomes and Operations&lt;/h2&gt;
&lt;h3&gt;1. Monitoring and Rapid Response&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Event detection with fewer false alarms: AI agents filter noise and corroborate signals (e.g., cross-checking ECG, pleth, and movement) before escalating. Studies in alarm management show 40–60% reductions in nonactionable alarms in ICUs after algorithmic and policy improvements, easing alarm fatigue and improving responsiveness.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Faster, structured escalation: When sustained VT, high-grade AV block, or a significant ST change is detected, the agent can 1.) Verify signal quality and confirm multi-lead consistency. 2.) Auto-prioritize severity and notify the right on-call role via secure channels. 3.) Present a concise, clinically framed summary (trend strips, vitals trajectory, recent labs, medications) and next-step options aligned to local protocols. 4.) Track acknowledgment and re-escalate if needed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Evidence that earlier action saves lives: Real-world early warning systems show that timely AI-supported alerts can be associated with mortality reductions. For example, a large multi-hospital study of an AI sepsis early warning tool (TREWS) found earlier treatment initiation and an associated relative reduction in mortality when clinicians engaged with the alert promptly (Nature Medicine, 2022).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2. Personalized Treatment Plans&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Tailored care pathways: Agents synthesize comorbidities, prior responses, and guideline logic to suggest individualized titration, diagnostics, or consults. For cardiac patients, that can mean nuanced beta-blocker adjustments, anticoagulation considerations in new AFib, or expedited echo based on dynamic risk.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Continuous reassessment: As new data arrives, the agent updates risk and recommendations, closing the loop between monitoring and management.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Population impact: Remote patient monitoring programs have shown meaningful benefits at scale. The US Veterans Health Administration’s Home Telehealth program reported a 19% reduction in hospital admissions and a 25% reduction in bed days among enrolled patients—illustrating how continuous oversight and timely intervention can reduce acute events.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. Lower Total Cost of Care&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Fewer avoidable escalations: Earlier detection and tailored interventions reduce code events, ICU transfers, and readmissions—major cost drivers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Productivity gains: Automating triage, summarization, and protocol matching frees technicians and nurses for higher-value care. Industry analyses estimate AI could unlock tens to hundreds of billions of dollars in annual value in US healthcare through efficiency and quality gains; McKinsey has projected up to $360B per year as capabilities mature.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Right-sizing monitoring: Agents can identify stable patients and safely decrease monitoring intensity, saving consumables and staff time without compromising safety.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;A Day-in-the-Life: Continuous Heart Monitoring with an Agent&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;00:00: An inpatient’s telemetry shows intermittent nonsustained VT. The agent confirms lead integrity, corroborates with pleth, and notes recent potassium of 3.2 mmol/L and a missed dose of beta-blocker.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;00:01: Risk stratified as “urgent.” The agent pages the telemetry nurse and on-call hospitalist with a one-screen summary and recommended actions per local policy (recheck K+, replace potassium, consider magnesium, resume/titrate beta-blocker, obtain 12‑lead ECG).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;00:03: Nurse acknowledges and accepts potassium replacement order set (provider cosign required). The agent sets a 30-minute re-check for rhythm and electrolytes.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;00:35: VT resolves after correction; event, actions, and outcomes are auto-documented for quality review.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Safety, Equity, and Compliance by Design&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Human-in-the-loop: Alerts and orders follow clearly defined approval pathways; clinicians retain authority.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Guardrails and auditability: Versioned models, explainable rationales, and full audit trails support safety and regulatory needs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Bias mitigation: Continuous monitoring for performance across demographics and comorbidities; retraining and thresholds adjusted to ensure equitable care.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Privacy and security: HIPAA-compliant architecture, least-privilege access, encryption, and secure messaging; adherence to IEC 62304 and ISO 14971 for software lifecycle and risk management. Pursue FDA pathways as clinical functionality warrants.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Measuring What Matters&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Time from event onset to clinician acknowledgment&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Time from alert to intervention&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nonactionable alarm rate and alarm-to-action ratio&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Unplanned ICU transfers, rapid response calls, and code blue rates&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;30-day readmissions and length of stay&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cost per monitored patient and staff productivity&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clinician satisfaction and patient experience&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Getting Started: An Implementation Blueprint&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Start with a high-impact use case (e.g., cardiac telemetry). Map current workflows and escalation paths.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Integrate data sources: Telemetry waveforms, EHR vitals/labs/meds, staffing rosters, secure messaging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Co-design protocols with clinical leaders; encode local policies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Pilot with clear KPIs, safety triggers, and a feedback loop; run A/B periods to quantify impact.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scale thoughtfully: Expand to other units and conditions (heart failure, COPD, post-op monitoring, sepsis early warning), maintaining governance and model oversight.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Bottom Line Agentic AI turns monitoring into meaningful, timely action. By filtering noise, surfacing context, and orchestrating the next best step—always with clinician oversight—health systems can reduce adverse events, deliver more personalized care, and lower operating costs.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.linkedin.com/company/emachinelabs/&quot;&gt;Emachinelabs&lt;/a&gt; is building Agentic AI solutions for healthcare domain that make this future practical, safe, and scalable. To learn more or pilot with us, please &lt;a href=&quot;https://emachinelabs.com/&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;
</content:encoded></item><item><title>Automate. Predict. Grow: Why Managed AI Is the Fastest Path to Scale for SMBs</title><link>https://laxsharma.com/writing/managed-ai-automate-predict-grow/</link><guid isPermaLink="true">https://laxsharma.com/writing/managed-ai-automate-predict-grow/</guid><description>Why managed AI beats both complex tooling and simple tools for small and mid-sized businesses.</description><pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;For years, small and mid-sized businesses had two choices: complex tools they couldn’t staff, or simple tools that couldn’t scale. That era is over. AI has made enterprise-grade capability simple, affordable, and outcome-driven—exactly what SMBs need to grow.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The gap&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;SMBs rarely have large IT teams or deep infrastructure budgets.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;They get stuck with bloated, aging systems that are hard to customize.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Big consultancies chase big accounts—leaving SMBs underserved.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Result: missed insights, manual work, slow decisions, stalled growth.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What SMBs actually want&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;SMBs don’t need bigger IT. They need bigger outcomes, AI-powered, managed solutions to unlock growth&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;End-to-end products that “just work”—not toolkits that need armies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Customization where it matters, without custom overhead.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Predictive insights to grow: who to target, what to stock, when to act.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Managed SaaS so they can focus on customers, not servers.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;How AI changes the game&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Stop Buying IT. Start Buying Outcomes: Solution is in the Managed AI Growth Stacks Built for SMBs&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Personalization at scale: offers, pricing, and experiences tailored per customer.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Predictive analytics: demand, churn, cash flow, inventory, staffing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Automation everywhere: marketing, support, invoicing, scheduling, document processing.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Natural language interfaces: ask questions, get answers, act fast.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;What great looks like for SMBs&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A single, managed platform that connects sales, ops, marketing, finance, and support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Built-in AI copilots that surface insights and automate workflows.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Purpose-built templates by vertical—fast to deploy, easy to adapt.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Clear pricing, low maintenance, high ROI.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Where AI delivers fast wins&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Retail and eCommerce: predictive demand, dynamic bundles, AI-assisted merchandising, returns triage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Restaurants and services: staffing forecasts, smart scheduling, review-response automation.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Professional services: lead scoring, proposal drafting, document automation, client comms.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Healthcare and clinics: intake triage, appointment optimization, billing assistance, patient follow-up.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Trades and field ops: route optimization, job quoting, parts forecasting, voice-to-job notes.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;**What we do at **&lt;a href=&quot;https://emachinelabs.com/&quot;&gt;&lt;strong&gt;EmachineLabs&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://emachinelabs.com/&quot;&gt;EmachineLabs&lt;/a&gt; builds AI-powered, managed, customized products for SMBs—so you grow faster without the IT burden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Core capabilities:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;AI Business Copilot: ask in plain English; get insights, actions, and automations across your stack.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Predictive growth engine: demand forecasting, churn risk, next-best-offer, pricing suggestions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Marketing and CX automation: hyper-personalized campaigns, AI chat/voice agents, review management.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Back-office automation: invoicing, payables, reconciliations, document extraction, compliance checks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Knowledge and workflows: secure RAG knowledge bases, SOP copilots, approvals, low-code connectors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Secure, managed SaaS: multi-tenant architecture, role-based access, audit logs, SOC2-aligned practices.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Rapid time-to-value&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;30 days to first outcomes with prebuilt templates.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Managed onboarding, training, and optimization.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scale up as you grow—no heavy IT lift required.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Illustrative outcomes we frequently see&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;30–50% reduction in manual workload across ops and back-office.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;10–20% lift in repeat purchases via personalization.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Faster decisions: insights in minutes, not weeks.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lower total cost of ownership vs. piecemeal tools and custom builds.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Your move If you’re an SMB leader, ask yourself&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;What’s the one repetitive task my team does every week that AI could automate?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Which decision would be better with a prediction, not a hunch?&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comment “READY” and I’ll share a tailored 2–3 step AI roadmap for your business. Or DM me to book a free AI readiness check.&lt;/p&gt;
&lt;p&gt;Let’s turn operations into outcomes—so your business can scale with confidence.&lt;/p&gt;
&lt;p&gt;— &lt;a href=&quot;https://emachinelabs.com/&quot;&gt;EmachineLabs&lt;/a&gt; AI-powered. Managed. Built for SMB growth.&lt;/p&gt;
</content:encoded></item><item><title>AI-Powered Low-Code Platforms: Reimagining App Development for Everyone</title><link>https://laxsharma.com/writing/ai-powered-low-code-platforms/</link><guid isPermaLink="true">https://laxsharma.com/writing/ai-powered-low-code-platforms/</guid><description>How AI turns low-code platforms into a way for anyone to ship real applications.</description><pubDate>Wed, 07 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;em&gt;“The secret to digital transformation? It’s not code. It’s the speed and ease at which you solve real world problems.”&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-powered-low-code-platforms/inline-01.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;AI Democratizing App DevelopmentToday, the speed at which digital ideas turn into tangible solutions can make or break a company’s future. Yet, the journey from a great idea to a real-world application is still fraught with hurdles: technical skills, time constraints, resource bottlenecks, and maintenance challenges.&lt;/p&gt;
&lt;p&gt;Traditionally, solving a business problem with software meant months of development, architecture, API design, maintenance cycles, and countless lines of code. Even the rise of low-code and no-code platforms, promising an escape from complex coding, hasn’t solved all pain points—too often, they trade flexibility and scalability for ease of use. Customization gets tricky, integration takes effort, and technical intervention inevitably creeps back in.&lt;/p&gt;
&lt;p&gt;But the landscape is changing—dramatically—thanks to the integration of artificial intelligence in low-code development. Here’s why AI-powered low-code platforms aren’t just the next trend, but a paradigm shifts in how we build for the future.&lt;/p&gt;
&lt;h2&gt;Why Low-Code Tools Still Weren’t Enough&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-powered-low-code-platforms/inline-02.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Low Code is the start, rest process followsBefore AI, most low-code and no-code tools revolved around visual drag-and-drop builders, reusable components, and logical flows. This was certainly a leap forward, but not without gaps:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Limited Custom Logic&lt;/strong&gt;: Complex processes required “code escapes” or arcane formulas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Steep Learning Curve for Power Features&lt;/strong&gt;: Integrating external services, intricate automations, or custom UIs still demanded technical skills.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Deployment and Maintenance Overhead&lt;/strong&gt;: Updating features, scaling up, or maintaining integrations could become unwieldy as the solution matured.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Business users aspiring for true independence found themselves nudged back into developer territory. AI had the potential to close these gaps, but translating human intent to robust, production-ready software remained the holy grail.&lt;/p&gt;
&lt;h2&gt;From &amp;quot;No-Code&amp;quot; to &amp;quot;No-Limits&amp;quot;: The Promise of AI-Infused Development&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-powered-low-code-platforms/inline-03.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Speed of app developmentImagine if you could describe your business process in plain English, and an application would assemble itself accordingly: interfaces, business logic, databases, APIs, workflows, and even mobile deployment—all handled automatically. Imagine the power to iterate and experiment at the speed of thought, not at the pace of a development sprint.&lt;/p&gt;
&lt;p&gt;That’s what today’s leading AI-powered low-code platforms are striving to making it possible. The outcome is no longer held hostage by your ability to code. The focus shifts back to the fundamental question: &lt;strong&gt;“What problem are we solving—and how quickly can we solve it?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;AI turns low code on its head. Instead of simply removing the friction, it automates entire chunks of application creation that previously required human expertise. AI removes the technical “glue” work: the need to wire up forms to databases, to write tedious boilerplate for business logic, to ensure deployment across multiple platforms.&lt;/p&gt;
&lt;p&gt;Now, the digital canvas becomes accessible to everyone willing to reframe problems and imagine solutions. The digital divide isn’t between coders and non-coders. It’s between those who have a vision—and those willing to act on it.&lt;/p&gt;
&lt;h2&gt;Spotlight: Emachinelabs No-Code Platform, AI Brains&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;/images/writing/ai-powered-low-code-platforms/inline-04.png&quot; alt=&quot;&quot;&gt;&lt;/p&gt;
&lt;p&gt;Integrated frontend, logic, API, Data and more!Among the trailblazers in this AI-powered low-code revolution is &lt;a href=&quot;https://www.emachinelabs.com/&quot;&gt;Emachinelabs&lt;/a&gt;, a platform that turns idea-to-app into a swift, no-code journey—accessible to anyone, regardless of their software background.&lt;/p&gt;
&lt;h3&gt;Here’s how Emachinelabs breaks new ground:&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;AI-Driven App Generation: Talk to Build&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Emachinelabs leverages advanced AI to turn simple prompts—typed or spoken—into ready-to-use applications. Want an inventory tracker, a freight management solution, or a healthcare forms manager? Just describe it. The system scaffolds everything: data models, frontends, APIs, and even sample workflows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blockly-Powered Visual Logic—Beyond Drag-and-Drop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Taking inspiration from Google’s &lt;a href=&quot;https://developers.google.com/blockly/&quot;&gt;Blockly&lt;/a&gt;, Emachinelabs lets users construct powerful business logic visually. But unlike most platforms, these blocks aren’t just cosmetic—they represent real, scalable functions translated by AI into robust backend logic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;True No-Code Backend: Databases, APIs, and Automation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Users don’t need to look for code! Want to adjust a workflow, add an approval process, or revise notifications? Do it visually and intuitively; AI translates every block into efficient database models, CRUD APIs, and automated processes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;One-Click, Cross-Platform Deployment&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With Emachinelabs, you don’t need to worry about hosting, builds, or compatibility. One click, and your application is live—on the web, iOS, and Android. It’s the kind of magic that used to cost organizations thousands in developer hours and infrastructure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rapid Iteration and Continuous Improvement&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Need changes? Tweak your logic or interface, and the app redeploys—instantly, globally, and seamlessly, ensuring your solution always fits your evolving business needs.&lt;/p&gt;
&lt;h3&gt;Why This Matters: Unlocking True Digital Empowerment&lt;/h3&gt;
&lt;p&gt;At its core, Emachinelabs isn’t just a platform. It’s a philosophy: technology should serve the visionaries, the problem-solvers, the domain experts—not the other way around.&lt;/p&gt;
&lt;p&gt;What does this mean for organizations and innovators?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Speed to Innovation:&lt;/strong&gt; Go from idea to deployed software in a fraction of the time.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lower Total Cost:&lt;/strong&gt; Slash reliance on expensive, specialized development and maintenance teams.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agility &amp;amp; Inclusivity:&lt;/strong&gt; Empower business users—from HR to operations, from marketing to product—to build, iterate, and own their solutions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Future-Proof Applications:&lt;/strong&gt; Built-in AI means your apps evolve with your business—not against it.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Conclusion: The Outcome is What Counts&lt;/h2&gt;
&lt;p&gt;AI-powered low-code isn’t just a productivity hack—it’s a reset. When anyone can build sophisticated, scalable apps with the help of AI, innovation is reborn as a matter of intent and imagination. The barrier isn’t technical know-how; it’s your willingness to act.&lt;/p&gt;
&lt;p&gt;With platforms like Emachinelabs, we’re not just making application development easier. We’re making it accessible, delightful, and—most importantly—outcome-focused. Because at the end of the day, it’s not the code that matters, but the impact it creates.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ready to build the future without code? With AI and Emachinelabs, the only limit is your imagination.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Exploring the frontier where AI, business, and creativity converge.&lt;/em&gt; &lt;em&gt;Connect with me for more on no-code, AI, and digital transformation.&lt;/em&gt;&lt;/p&gt;
</content:encoded></item><item><title>Mocking web services for testing and fault injection</title><link>https://laxsharma.com/writing/mocking-web-services-fault-injection/</link><guid isPermaLink="true">https://laxsharma.com/writing/mocking-web-services-fault-injection/</guid><description>Standing up mock web services to test SOA systems and inject faults on purpose, from 2015.</description><pubDate>Tue, 21 Jul 2015 00:00:00 GMT</pubDate><content:encoded>&lt;h3&gt;WebService Test Strategy&lt;/h3&gt;
&lt;p&gt;Web services are generally the core pillars of any software development in today&apos;s information technology world. More and more companies are modeling their offerings based on service oriented architecture (SOA). The application logic becomes more relevant to presentation only, leaving the heavy lifting of logic to be done via web services. Further there are different types of services including SOA, REST etc. which makes the mix a little more interesting.&lt;/p&gt;
&lt;p&gt;While services becoming increasingly important, it&apos;s also making the app level testing a little bit more interesting. An app should be tested not only for the functionality but also for being able to handle different types of issues related to consumption of services. Testing app layer for functionality, performance, graceful degradation and disaster recovery are some of the very important aspects and need an intelligent solution around service mocking.&lt;/p&gt;
&lt;p&gt;There are many ways the web service mock testing can be done. For example some team may use a request and whatever response is received, it can be saved along with code for further consumption for testing. Or the response can be saved in the form of xml serialized file. Further ways include using aspect based programming where the calls to actual service is routed to mock api which can construct the mock response and send it to the caller.&lt;/p&gt;
&lt;p&gt;Here I will discuss a model that can help us achieve the following from test standpoint:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Provide mocking capability when actual service call is either not necessary or not available&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Handle the service request calls intelligently for either mocking or rerouting to actual service calls&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Inject the time delays in serving service responses based on requests&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Inject timeouts, exceptions and error scenarios for service requests (meaning providing error for responses like error code 404/504 etc)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Scale with the usage of the test system across the board&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In synch with most of the service layer changes&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Be able to work as an abstraction layer for mock as well as actual service calls for more stability&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Service test model&lt;/h3&gt;
&lt;p&gt;Lets assume that a new web service is being constructed. This proposal has three key components:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mock service clients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Each service should provide a mock service client in addition to the actual service client. The actual service client will have http end point to the real service, say &apos;S1 Service&apos;. The mock service client, say &apos;S1 Mock ServiceClient&apos;, will have http end point to a component called &apos;Test Server&apos;. The mock end point will have few query parameters added to the request to denote which web-service it is intended to talk to and if the request should be served from mock/stored response repository or rerouted to original web-service.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Test Server&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Test server is single entry point to cater to all service end points for mocking, testing and stabilizing purpose. It will be a test service which will be behind a load balancer to facilitate the scalability as and when needed. The test server serves two purposes. Based on the request type, it can either serve the response from its cache or reroute the call to actual service implementation. Mostly the implementation of test server will be a mix of custom code logic combined with rerouting software. &lt;a href=&quot;http://camel.apache.org/index.html&quot;&gt;Apache camel&lt;/a&gt; is a great example of rerouting part. The job of test server are three folds:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Validate the service request : The test server is designed to test application code while mocking/stability from web services. Hence this should always be used internally for any company and should not become end customer facing. In order to server internal traffic, every request made to this server should be validated. It can be checked for internal IP range, authenticity of the originating host. It can also be done via application level authentication tokens.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Service identification : This part analyzes the service request. This component is responsible to populate the required data model for test server with parameters of the web service request. The information includes the choice of service originator for a mock/cached response or routing to actual service implementation. It can also find if the originator needs any type of time delay in service response to test how efficiently application code handles the latencies and service outages. It can also inject different types of fault conditions while serving responses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Serve Response : This component is responsible to provide the appropriate response based on the request. Serve response module gathers the information from test server data model for the request and then decides to either reroute the service call to original service or serve the response from its cache/storage.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Points to note about test server is that it can be used to test multiple type of scenarios. That includes mocking responses, introducing time delays in responses etc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Response delivery&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Responses to the web service calls are delivered via this system. Its responsibilities include analyzing the data model sent by test server and provide responses either by fetching cached/stored response for exact request matches or re-routing service requests to respective actual service end points. There are two main components for this system:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Cached Response : This module takes care of providing the response back to &apos;serve response&apos; module from its cache. Based on the service endpoint and request parameters, it does following steps:&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it finds an exact match for the request in its cache/&apos;service response storage&apos;, it fetches that response and send it back to the Serve Response module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If it does not find an exact match for the request, it makes a service call to actual service, stores the request parameters and response in cache/storage and send it back to serve response module&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Periodically (configurable time interval like every midnight), it invalidates the cached/stored responses. It makes actual service calls and replaces the cached/stored responses with the latest received responses&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If there is any problem while fetching the service response from actual service end point, it logs it and also sends the notifications&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Service Response Storage (SRS): SRS is a storage or cache implementation for mocking actual service calls. It can be achieved by creating data model based on per service end points it mocks. Then further, every service endpoint based data model can store the responses based on service requests. All the service request parameters need to be stored in order to ensure that the exact matched request and responses. It needs to be fast as it should become bottleneck in serving responses. It should have very less latency.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Summery&lt;/h3&gt;
&lt;p&gt;I believe the testing model of mocking the web services should be based on real service calls itself. It should be able to provide most of the behaviors that can be expected (and unexpected one&apos;s as well!) from an actual service call. Keeping that in mind, I have tried coming up with this model. It serves the purpose of being able to mock the service calls by replacing them with in memory/cached/stored responses. It can also be used to inject fault conditions in response to the service calls and hence enabling us to test the app logic behavior in such cases. Finally it can also be used to completely replace the actual service calls, if needed and if latency is not an issue in testing domain, to achieve the service stabilities.&lt;/p&gt;
&lt;p&gt;Please do let me know your comments and hopefully we can create a better model along the lines. And yes, in the process, will make our lives little bit easy while testing applications in different modes.&lt;/p&gt;
&lt;p&gt;Disclaimer : I work for ebay Inc. The information in this post is compilation from my experiences in software industry and has no relation or recommendation from ebay Inc as such. ebay Inc will not be responsible for any information in this post. All the information in this post is only for educational purposes.&lt;/p&gt;
</content:encoded></item><item><title>Software secure coding standards and analysis</title><link>https://laxsharma.com/writing/secure-coding-standards/</link><guid isPermaLink="true">https://laxsharma.com/writing/secure-coding-standards/</guid><description>A 2015 walkthrough of Java secure coding standards and the static-analysis toolchain for enforcing them.</description><pubDate>Mon, 29 Jun 2015 00:00:00 GMT</pubDate><content:encoded>&lt;h3&gt;A brief note&lt;/h3&gt;
&lt;p&gt;Security and secure testing of software components is a vast domain. I will be exploring many aspects of security and its related challenges in many posts. This post is targeted towards the Java based testing tools/processes and automation ideas. Similar tools/processes also exists for other languages including C/C++, Python, Ruby etc. Also, in this post, I am covering only the static analysis tools. I will be covering dynamic analysis tools in next post.&lt;/p&gt;
&lt;h3&gt;Importance of security testing&lt;/h3&gt;
&lt;p&gt;A paragraph from US Department of Homeland Security 2006 draft &amp;quot;Security in the Software Lifecycle&amp;quot; :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Most critical difference between secure and insecure software lies in the nature of the processes and practices used to specify, design, and develop the software&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;quot;Correcting potential vulnerabilities as early as possible in in software development lifecycle, mainly through the adoption of security-enhanced process and practices, is far more cost effective than the currently pervasive approach of developing and releasing frequent patches to operational software&amp;quot;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It has become ever more important to understand the security in context of software code and implications of any security breach. As mentioned above, fixing a security issue reactively can be significantly more costly than taking proactive steps. At times, fixing cost is not even a fraction of the actual business and revenue impact security breach can cause. While financial implications can be overcome over a shorter period of time, the trust and reputation of business are irreversible damage. It can take much longer to actually gain that trust back.&lt;/p&gt;
&lt;p&gt;Following secure coding guidelines and using tools to analyze code for security issues can help software and applications be prepared for software security threats. While secure coding guidelines are important but it should be supplemented with code analysis tools as well. After all we are all human beings and do make mistakes. Automated tools, being run as part of software commits, testing or execution environment, are equally important and a must to have.&lt;/p&gt;
&lt;h3&gt;What to test for security&lt;/h3&gt;
&lt;p&gt;There has been a lot of discussion on present day hacks. Hackers try to penetrate the system with different ways. Some of the well known hacks are XSS (cross site scripting), DOS (denial of service attack), override wireframe, javascript manipulation etc. While this list can be really long, what is fundamental behind most of these security threats is software code that gives way to such incidents. To be fair, there are other such security problems in networks, app service configurations etc as well. But software code, by far, is most contributing factor in such security exploits.&lt;/p&gt;
&lt;p&gt;Hence what-to-test list contains software code, network layers, ports, server configs and libraries used in application. Security testing could be really tricky at times. Fortunately we are not alone in this battle and there are a lot of tools/processes available to go through and use. Some of the resources for java technology based software are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/java/seccodeguide-139067.html&quot;&gt;Oracle security coding standards&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.securecoding.cert.org/confluence/display/java/SEI+CERT+Oracle+Coding+Standard+for+Java&quot;&gt;SEI CERT secure coding guidelines&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Main_Page&quot;&gt;OWASP project&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://code.google.com/p/lapse-plus/&quot;&gt;OWASP Lapse+ project&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://h3xstream.github.io/find-sec-bugs/&quot;&gt;Find Security Bug plugin&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;How to test software code&lt;/h3&gt;
&lt;p&gt;There are many aspects of testing software code. For example, the software code can be reviewed to meet the security guidelines and/or code can be analyzed with the help of static code analysis tools. The security testing can also be supplemented with run time testing of software code.&lt;/p&gt;
&lt;p&gt;The approach should be three folds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use existing tools : we should try to use existing open source/licensed  tools as much as possible. The list includes the code analysis tools for both static and dynamic nature.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Write tools : There is a good enough gap between what we have in open source tools in automation and what we need. There are a lot of literature and coding patterns, guidelines and rules. It would be great to contribute back to some open source tools (like find-sec-bug) and make them more robust. Once community start realizing their value, it will automatically get more attention and further contributions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Build eco system : Writing/using tools alone will go some distance. It needs to be coupled with building eco system. For example it should be easy to run tools and get report in command line, IDE (like Eclipse, IntelliJ etc) and integration tools like Jenkins, Go pipeline etc.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lets take a look at some of the available tools/processes to security test our software code:&lt;/p&gt;
&lt;h4&gt;Find-Sec-Bug&lt;/h4&gt;
&lt;p&gt;As the website of this plugin states, Find security bugs is a &amp;quot;&lt;em&gt;Findbugs plugin for security audits of java applications&lt;/em&gt;&amp;quot;. This plugin scans the code for a set of code patterns that can lead to a security vulnerability in the code. At present its got 63 bug patterns. This is very active project and well placed to succeed in becoming major force in security testing. Its very easy to configure and use. For example, if the builds are based on maven and continuous integration is achieved via Jenkins, here are the steps to configure it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the following snippet of maven plugins under &lt;build&gt; and &lt;plugins&gt; section of your pom file&lt;/li&gt;
&lt;/ul&gt;
&lt;plugin&gt; 
    &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt; 
    &lt;artifactId&gt;findbugs-maven-plugin&lt;/artifactId&gt; 
    &lt;version&gt;${findbugs.plugin.version}&lt;/version&gt; 
        &lt;configuration&gt; 
            &lt;xmlOutput&gt;true&lt;/xmlOutput&gt; 
            &lt;threshold&gt;low&lt;/threshold&gt; 
            &lt;failOnError&gt;false&lt;/failOnError&gt; 
            &lt;effort&gt;Max&lt;/effort&gt; 
            &lt;includeTests&gt;false&lt;/includeTests&gt; 
            &lt;plugins&gt; 
                &lt;plugin&gt; 
                    &lt;groupId&gt;com.h3xstream.findsecbugs&lt;/groupId&gt; 
                    &lt;artifactId&gt;findsecbugs-plugin&lt;/artifactId&gt; 
                    &lt;version&gt;1.4.0&lt;/version&gt; 
                &lt;/plugin&gt; 
           &lt;/plugins&gt; 
    &lt;/configuration&gt; 
    &lt;executions&gt; 
        &lt;execution&gt; 
            &lt;phase&gt;verify&lt;/phase&gt; 
            &lt;goals&gt; 
                 &lt;goal&gt;check&lt;/goal&gt; 
            &lt;/goals&gt; 
      &lt;/execution&gt; 
  &lt;/executions&gt; 
 &lt;/plugin&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do maven build. As part of that findbugs will also be run&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure Jenkins to show findbugs report&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Findbugs report will have a new section called &apos;SECURITY&apos;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Happy bug hunting!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Dependency check for libraries flagged for Common security vulnerability&lt;/h4&gt;
&lt;p&gt;NVD is the U.S. government repository of standards based vulnerability management data represented using the &lt;a href=&quot;http://scap.nist.gov/&quot;&gt;Security Content Automation Protocol&lt;/a&gt; (SCAP). This data enables automation of vulnerability management, security measurement, and compliance. NVD includes databases of security checklists, security related software flaws, misconfigurations, product names, and impact metrics.&lt;/p&gt;
&lt;p&gt;OWASP project has got some good plugins to make it easy to integrate dependency check with existing software code. The dependency-check tool helps analyze and identify if the software code depends on any already flagged vulnerable library. For example, if you have maven builds with Jenkins integration, here is how you can configure it:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Add the dependency-maven-check plugin to pom file under &lt;build&gt; &lt;plugins&gt; section&lt;/li&gt;
&lt;/ul&gt;
&lt;plugin&gt; 
    &lt;groupId&gt;org.owasp&lt;/groupId&gt; 
    &lt;artifactId&gt;dependency-check-maven&lt;/artifactId&gt; 
    &lt;version&gt;1.2.11&lt;/version&gt; 
        &lt;executions&gt; 
            &lt;execution&gt; 
                &lt;phase&gt;install&lt;/phase&gt; 
                &lt;goals&gt; 
                     &lt;goal&gt;aggregate&lt;/goal&gt; 
                &lt;/goals&gt; 
           &lt;/execution&gt; 
     &lt;/executions&gt; 
 &lt;/plugin&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Do the maven build, as part of build, the dependency check will be run agains the project dependencies.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Reports can be generated in XML and HTML format. HTML report is very nice and easy to navigate&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;a href=&quot;https://wiki.jenkins-ci.org/display/JENKINS/OWASP+Dependency-Check+Plugin&quot;&gt;Jenkins plugin&lt;/a&gt; to show the vulnerable libs in dashboard&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Make your code free of vulnerable libs!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;OWASP ZAP for XSS&lt;/h4&gt;
&lt;p&gt;There are multiple ways to test cross site scripting. While there are some standard ways for checking if the website is secure from XSS, its never sufficient. There are always newer ways coming up breaching the security of our front end app codes being rendered with HTML, CSS and JavaScript. Best way to test for such security vulnerabilities is to have a good mix of manual testing, better code reviews, unit tests and automated UI tests.&lt;/p&gt;
&lt;p&gt;OWASP provides a good tool &lt;a href=&quot;https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project&quot;&gt;ZAP&lt;/a&gt; (Zed Attach Proxy) for some of the standard XSS related issues like attach vectors, string, sql, script injection, path traversal among others. Its provides an easy to use UI and run some of the automated attach scenarios covering many aspects of XSS. It then further provides analysis and easy to grasp reports on those. The results are easy to under as it points the exact location of source HTML, alert flag associated with this and some description around.&lt;/p&gt;
&lt;h4&gt;Static Analysis tools&lt;/h4&gt;
&lt;p&gt;Some commonly used static analysis tools like Findbugs, PMD, checkstyle, Coverity, Klockworks etc readily do some of the code patterns search and flag them. These tools are well known and widely used tools. There are build plugins and integrations with systems like Jenkins. I will try to cover more on these in next blog. On how to configure checkstyle seamlessly, please follow the steps from my blog on &lt;a href=&quot;http://letstestitright.blogspot.com/2015/06/checkstyle-seamless-configuration-for.html&quot;&gt;checkstyle configuration&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;Secure coding guidelines&lt;/h4&gt;
&lt;p&gt;There are many secure coding guidelines which are readily available on the web. It is very important for a code reviewer to keep in mind the security aspect while conducting code reviews. One should specially look out for the vulnerable library usage, DOS kind of use cases and issues like cross site request forgery and XSS. Some of the available coding guidelines are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Oracle secure coding rules : 10 categories with 66 rules&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;SEI secure coding rules : 20 categories with 178 rules&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Also has 27 Android rules&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project&quot;&gt;OWASP ModSecurity code rules&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Category:Software_Assurance_Maturity_Model&quot;&gt;OWASP SAMM&lt;/a&gt; (Software Assurance Maturity Model) is a great place to learn how to model software security in PDLC&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Another good tool from OWASP is &lt;a href=&quot;https://www.owasp.org/index.php/OWASP_OWTF&quot;&gt;OWTF&lt;/a&gt; which helps in pentesting scenarios&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A very good and comprehensive compilation on the security related categories and their details can be found on &lt;a href=&quot;https://www.owasp.org/index.php/Cheat_Sheets&quot;&gt;OWASP cheatsheet&lt;/a&gt; page&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;http://h3xstream.github.io/find-sec-bugs/bugs.htm&quot;&gt;Find-Sec-Bug bug patterns&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Fortify&lt;/h4&gt;
&lt;p&gt;While going through the secure coding guidelines, I found that &lt;a href=&quot;http://www8.hp.com/us/en/software-solutions/static-code-analysis-sast/&quot;&gt;Fortify static code analyzer&lt;/a&gt; is also a good tool. Fortify has lot of the security rules covered. It is not an open source tool and is a HP tool. There is a maven plugin available to run Fortify and there is also a Jenkins plugin.&lt;/p&gt;
&lt;h4&gt;OWASP projects&lt;/h4&gt;
&lt;p&gt;As it is evident from many references to OWASP projects in this post, OWASP is a great community for security testing of software code. There are many projects that can help bootstrap software code security testing. There is good amount of literature that helps while designing software systems and code review part.&lt;/p&gt;
&lt;h3&gt;Last words&lt;/h3&gt;
&lt;p&gt;Software code security is a common problem. There are many tools, docs and processes available today that can help perform this testing. Some of the tools can be used in automation while others are more manual in nature.&lt;/p&gt;
&lt;p&gt;At present, there is a bigger need to contribute back to the society and help build open source tools and systems that can help perform such secure testing in automation. More folks get involved in automating rules from references like SEI, Oracle, OWASP cheatsheet etc, it becomes more fruitful for everyone.&lt;/p&gt;
&lt;p&gt;Disclaimer : I work for ebay Inc. The information in this post is compilation from my experience from my own experiences in software industry and has no relation or recommendation from ebay Inc as such. All the information in this post is only for educational purposes.&lt;/p&gt;
</content:encoded></item></channel></rss>