<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SANJEEVA KUMAR SSK</title>
    <description>The latest articles on DEV Community by SANJEEVA KUMAR SSK (@sanjeeva_kumarssk_03c040).</description>
    <link>https://dev.to/sanjeeva_kumarssk_03c040</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3903586%2Fdc9f2a5e-1aa9-4850-90ef-ffe64c6eb236.jpg</url>
      <title>DEV Community: SANJEEVA KUMAR SSK</title>
      <link>https://dev.to/sanjeeva_kumarssk_03c040</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sanjeeva_kumarssk_03c040"/>
    <language>en</language>
    <item>
      <title>CrisisOps: Turning Disaster Response Experience Into Persistent Operational Memory</title>
      <dc:creator>SANJEEVA KUMAR SSK</dc:creator>
      <pubDate>Tue, 29 Sep 2026 15:48:47 +0000</pubDate>
      <link>https://dev.to/sanjeeva_kumarssk_03c040/crisisops-turning-disaster-response-experience-into-persistent-operational-memory-3ebi</link>
      <guid>https://dev.to/sanjeeva_kumarssk_03c040/crisisops-turning-disaster-response-experience-into-persistent-operational-memory-3ebi</guid>
      <description>&lt;p&gt;DescriptDescript&lt;/p&gt;

&lt;p&gt;Done. I completed and verified the final video render.&lt;/p&gt;

&lt;p&gt;Final video:&lt;br&gt;
Download CrisisOps FINAL — Visible Subtitles&lt;/p&gt;

&lt;p&gt;Verified:&lt;/p&gt;

&lt;p&gt;4:00.43 duration&lt;/p&gt;

&lt;p&gt;1080 × 2392 portrait&lt;/p&gt;

&lt;p&gt;H.264 video + AAC audio&lt;/p&gt;

&lt;p&gt;Subtitles are burned directly into the video&lt;/p&gt;

&lt;p&gt;Actual CrisisOps screen recording retained&lt;/p&gt;

&lt;p&gt;No fake UI inserted&lt;/p&gt;

&lt;p&gt;Subtitle styling is readable on the mobile recording&lt;/p&gt;

&lt;p&gt;One remaining limitation: the natural Indian-English AI voice could not be regenerated because the available Descript/HeyGen voice-generation credits are exhausted. The final render therefore retains the existing narration rather than pretending a new Indian voice was generated.&lt;/p&gt;

&lt;p&gt;The video itself is now ready to upload/sub­mit.&lt;/p&gt;

&lt;p&gt;Today 8:39 PM&lt;br&gt;
What the rest of them how to do&lt;/p&gt;

&lt;p&gt;Here are the complete descriptions/content you can use for all the submission fields.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LinkedIn Post — copy this
I’m excited to share CrisisOps — Disaster Response Memory Engine, a project focused on helping emergency-response teams turn past operational experience into reusable memory.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;During disasters, responders deal with changing conditions, route constraints, resource availability, and information coming from multiple sources. One challenge is that valuable lessons from previous incidents can disappear once an incident is over.&lt;/p&gt;

&lt;p&gt;CrisisOps addresses this through a persistent memory loop:&lt;/p&gt;

&lt;p&gt;Capture → Retain → Recall → Reflect → Human Decision → Outcome → Future Memory&lt;/p&gt;

&lt;p&gt;The system combines operator field reports, public hazard intelligence, and Hindsight persistent memory. When a similar incident occurs, relevant experiences from previous incidents can be recalled and considered during response planning.&lt;/p&gt;

&lt;p&gt;For example, a previous North Ward flood scenario records a failed road-delivery attempt caused by an inaccessible route. During a later related incident, CrisisOps recalls that experience and brings it into the response review, giving the operator additional historical context.&lt;/p&gt;

&lt;p&gt;The system also incorporates public intelligence from sources including Open-Meteo, USGS, IMD CAP and GDACS, while clearly separating REAL, OPERATOR INPUT, SYNTHETIC, and HINDSIGHT SYNTHESIS information.&lt;/p&gt;

&lt;p&gt;CrisisOps is designed as a human-in-the-loop decision-support system. It does not autonomously dispatch responders; the final operational decision remains with the human operator.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Sanjeevakumarnani/CrisisOps" rel="noopener noreferrer"&gt;https://github.com/Sanjeevakumarnani/CrisisOps&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key idea is simple: every incident should help make the next related response better informed.&lt;/p&gt;

&lt;h1&gt;
  
  
  AI #DisasterResponse #Hindsight #FastAPI #EmergencyManagement #SoftwareEngineering #Innovation #CrisisOps
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Article — use this as the article description/content
Title:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;CrisisOps: Turning Disaster Response Experience Into Persistent Operational Memory&lt;br&gt;
Article:&lt;/p&gt;

&lt;p&gt;During an emergency, responders need to make decisions with incomplete and rapidly changing information. They need to understand what is happening now, what resources are available, which routes are accessible, and what has already been tried.&lt;/p&gt;

&lt;p&gt;But there is another important source of information: what happened during previous incidents.&lt;/p&gt;

&lt;p&gt;Operational experience can contain valuable lessons about failed routes, successful workarounds, resource constraints, and local conditions. If that experience is not retained and made available during future incidents, teams may repeatedly solve similar problems from scratch.&lt;/p&gt;

&lt;p&gt;CrisisOps — Disaster Response Memory Engine was built around this problem.&lt;/p&gt;

&lt;p&gt;CrisisOps combines public hazard intelligence, operator field reports, structured incident information, and persistent semantic memory. Its goal is to allow a response team to capture operational experience, retain it, recall relevant previous experiences, reflect on them, and use that context during a new response.&lt;/p&gt;

&lt;p&gt;The core loop is:&lt;/p&gt;

&lt;p&gt;Capture → Retain → Recall → Reflect → Human Decision → Outcome → Future Memory&lt;/p&gt;

&lt;p&gt;The Problem&lt;br&gt;
Traditional incident-management systems often focus heavily on the current event. They can show current reports, resources, alerts, and status information, but the operational knowledge created during previous incidents can be difficult to reuse.&lt;/p&gt;

&lt;p&gt;Consider a flooding incident where a road-delivery attempt fails because a bridge is closed and the approach becomes inaccessible.&lt;/p&gt;

&lt;p&gt;If another flood occurs in the same area later, that previous experience can be extremely useful.&lt;/p&gt;

&lt;p&gt;A new response team may otherwise see the second incident as a completely new problem.&lt;/p&gt;

&lt;p&gt;CrisisOps treats previous operational experiences as reusable memory.&lt;/p&gt;

&lt;p&gt;How CrisisOps Works&lt;br&gt;
An operator can create a field report containing information such as:&lt;/p&gt;

&lt;p&gt;affected population&lt;/p&gt;

&lt;p&gt;immediate needs&lt;/p&gt;

&lt;p&gt;route constraints&lt;/p&gt;

&lt;p&gt;available resources&lt;/p&gt;

&lt;p&gt;observations from the field&lt;/p&gt;

&lt;p&gt;response actions&lt;/p&gt;

&lt;p&gt;outcomes&lt;/p&gt;

&lt;p&gt;The information is retained in Hindsight with a stable incident identity.&lt;/p&gt;

&lt;p&gt;When a related incident occurs, CrisisOps can recall relevant experiences from persistent memory.&lt;/p&gt;

&lt;p&gt;The recalled information can then be used during response-plan review.&lt;/p&gt;

&lt;p&gt;Hindsight also provides the reflection step, turning recalled operational experiences and the current situation into a focused synthesis for the operator.&lt;/p&gt;

&lt;p&gt;The system does not make the final operational decision.&lt;/p&gt;

&lt;p&gt;Instead, the operator receives additional historical context before deciding what action to take.&lt;/p&gt;

&lt;p&gt;A Demonstration Scenario&lt;br&gt;
The demonstration uses a clearly labelled synthetic North Ward flooding scenario.&lt;/p&gt;

&lt;p&gt;The first incident contains 120 affected people, water and medical-support needs, a closed bridge, and an attempted road delivery.&lt;/p&gt;

&lt;p&gt;The road approach eventually becomes inaccessible.&lt;/p&gt;

&lt;p&gt;That experience is retained in Hindsight.&lt;/p&gt;

&lt;p&gt;A second related flooding scenario then occurs with 150 affected people, two boats, one truck, and a closed Bridge 4.&lt;/p&gt;

&lt;p&gt;A canal route is being considered.&lt;/p&gt;

&lt;p&gt;Instead of considering only the current information, CrisisOps recalls the previous North Ward incident.&lt;/p&gt;

&lt;p&gt;The previous road-delivery failure becomes part of the response context.&lt;/p&gt;

&lt;p&gt;A third related incident then provides another outcome: the canal route is available, boats are staged at Depot 2, and the canal route is successfully used.&lt;/p&gt;

&lt;p&gt;That outcome is retained as another memory.&lt;/p&gt;

&lt;p&gt;This creates a simple learning curve:&lt;/p&gt;

&lt;p&gt;Previous failure → Recall → New decision context → Successful outcome → New memory&lt;/p&gt;

&lt;p&gt;The objective is not to claim that one historical event automatically determines the correct response. Instead, the system makes previous experience available to the human decision-maker.&lt;/p&gt;

&lt;p&gt;Hindsight Integration&lt;br&gt;
Hindsight is central to the architecture.&lt;/p&gt;

&lt;p&gt;CrisisOps uses three important memory operations:&lt;/p&gt;

&lt;p&gt;Retain — stores operational experiences.&lt;/p&gt;

&lt;p&gt;Recall — retrieves relevant experiences for a new situation.&lt;/p&gt;

&lt;p&gt;Reflect — synthesizes recalled experiences into useful operational context.&lt;/p&gt;

&lt;p&gt;A simplified implementation looks like this:&lt;/p&gt;

&lt;p&gt;await client.aretain(&lt;br&gt;
    bank_id=BANK_ID,&lt;br&gt;
    content=incident_memory,&lt;br&gt;
    document_id=incident_id&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;memories = await client.arecall(&lt;br&gt;
    bank_id=BANK_ID,&lt;br&gt;
    query=current_situation&lt;br&gt;
)&lt;/p&gt;

&lt;p&gt;reflection = await client.areflect(&lt;br&gt;
    bank_id=BANK_ID,&lt;br&gt;
    query=current_situation&lt;br&gt;
)&lt;br&gt;
The important distinction is that the system is not simply querying the current database state. It is building persistent operational memory that can be reused across related incidents.&lt;/p&gt;

&lt;p&gt;Public Intelligence&lt;br&gt;
CrisisOps also connects to public hazard-intelligence sources including:&lt;/p&gt;

&lt;p&gt;Open-Meteo&lt;/p&gt;

&lt;p&gt;USGS&lt;/p&gt;

&lt;p&gt;IMD CAP&lt;/p&gt;

&lt;p&gt;GDACS&lt;/p&gt;

&lt;p&gt;The interface deliberately distinguishes different information types.&lt;/p&gt;

&lt;p&gt;REAL identifies public intelligence.&lt;/p&gt;

&lt;p&gt;OPERATOR INPUT identifies human-entered information.&lt;/p&gt;

&lt;p&gt;SYNTHETIC identifies demonstration data.&lt;/p&gt;

&lt;p&gt;HINDSIGHT SYNTHESIS identifies memory-based synthesis.&lt;/p&gt;

&lt;p&gt;This provenance distinction is important because synthetic demonstration scenarios should not be confused with verified emergency information.&lt;/p&gt;

&lt;p&gt;Technical Architecture&lt;br&gt;
CrisisOps uses a lightweight web architecture:&lt;/p&gt;

&lt;p&gt;Frontend&lt;/p&gt;

&lt;p&gt;FastAPI/Jinja-based interface with HTML, CSS and JavaScript.&lt;/p&gt;

&lt;p&gt;Backend&lt;/p&gt;

&lt;p&gt;FastAPI with structured Pydantic models and application services.&lt;/p&gt;

&lt;p&gt;Database&lt;/p&gt;

&lt;p&gt;SQLite for incident and application-state storage.&lt;/p&gt;

&lt;p&gt;Persistent Memory&lt;/p&gt;

&lt;p&gt;Hindsight for semantic operational memory.&lt;/p&gt;

&lt;p&gt;Public Intelligence&lt;/p&gt;

&lt;p&gt;Open-Meteo, USGS, IMD CAP and GDACS integrations.&lt;/p&gt;

&lt;p&gt;The system also includes deployment configuration, tests, CI validation and live health/smoke checks.&lt;/p&gt;

&lt;p&gt;Human-in-the-Loop&lt;br&gt;
Emergency response requires careful boundaries.&lt;/p&gt;

&lt;p&gt;CrisisOps is designed as a decision-support system rather than an autonomous dispatch system.&lt;/p&gt;

&lt;p&gt;It can provide:&lt;/p&gt;

&lt;p&gt;previous incident context&lt;/p&gt;

&lt;p&gt;recalled operational experiences&lt;/p&gt;

&lt;p&gt;historical route information&lt;/p&gt;

&lt;p&gt;lessons from previous outcomes&lt;/p&gt;

&lt;p&gt;public hazard information&lt;/p&gt;

&lt;p&gt;But the final operational decision remains with the human operator.&lt;/p&gt;

&lt;p&gt;This keeps the system focused on helping responders make better-informed decisions rather than automatically taking operational actions.&lt;/p&gt;

&lt;p&gt;What We Learned&lt;br&gt;
One of the biggest lessons from building CrisisOps was that persistent memory needs to be visible in the product.&lt;/p&gt;

&lt;p&gt;It is not enough to say that an application uses a memory system.&lt;/p&gt;

&lt;p&gt;The user should be able to see the difference between a response based only on the current incident and a response that also has access to previous operational experience.&lt;/p&gt;

&lt;p&gt;That is why the CrisisOps demonstration focuses on the sequence:&lt;/p&gt;

&lt;p&gt;Retain → Recall → Reflect → Outcome → Future Memory&lt;/p&gt;

&lt;p&gt;The project also makes an explicit distinction between real public intelligence and synthetic demonstration data.&lt;/p&gt;

&lt;p&gt;This makes the demonstration easier to understand and avoids presenting simulated emergency information as verified information.&lt;/p&gt;

&lt;p&gt;Limitations&lt;br&gt;
CrisisOps is a prototype and should not be treated as a replacement for official emergency-management systems.&lt;/p&gt;

&lt;p&gt;Public intelligence feeds can change availability and coverage.&lt;/p&gt;

&lt;p&gt;Synthetic scenarios are used for demonstration and do not represent actual emergency events.&lt;/p&gt;

&lt;p&gt;Memory retrieval can also depend on the quality and relevance of previously retained information.&lt;/p&gt;

&lt;p&gt;The system therefore keeps the human operator in the decision loop.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
CrisisOps explores a simple idea:&lt;/p&gt;

&lt;p&gt;Every incident should help make the next related response better informed.&lt;/p&gt;

&lt;p&gt;By combining operational reports, public hazard intelligence and persistent Hindsight memory, CrisisOps turns individual response experiences into reusable operational knowledge.&lt;/p&gt;

&lt;p&gt;Instead of allowing lessons to disappear when an incident ends, the system provides a mechanism to retain those experiences, recall them during future incidents, reflect on them, and continue building operational memory over time.&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/Sanjeevakumarnani/CrisisOps" rel="noopener noreferrer"&gt;https://github.com/Sanjeevakumarnani/CrisisOps&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>MCP Connects Agents to Tools. A2A Connects Agents to Each Other. Here's Why That Distinction Changes Everything</title>
      <dc:creator>SANJEEVA KUMAR SSK</dc:creator>
      <pubDate>Wed, 29 Apr 2026 05:49:04 +0000</pubDate>
      <link>https://dev.to/sanjeeva_kumarssk_03c040/mcp-connects-agents-to-tools-a2a-connects-agents-to-each-other-heres-why-that-distinction-599e</link>
      <guid>https://dev.to/sanjeeva_kumarssk_03c040/mcp-connects-agents-to-tools-a2a-connects-agents-to-each-other-heres-why-that-distinction-599e</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-cloud-next-2026-04-22"&gt;Google Cloud NEXT Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;I've spent the past week digging into every major announcement from Google Cloud &lt;br&gt;
NEXT '26. Gemini Enterprise Agent Platform. TPU v8. ADK v1.0 stable. Project Mariner. &lt;br&gt;
There's a lot to love.&lt;/p&gt;

&lt;p&gt;But one thing kept nagging me: &lt;strong&gt;everyone is building multi-agent systems without &lt;br&gt;
actually understanding the communication layer underneath them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At NEXT '26, Google made two protocol-level announcements that most keynote &lt;br&gt;
recaps buried in footnotes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A2A v1.0&lt;/strong&gt; is now production-stable, running at 150 organizations, and 
governed by the Linux Foundation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP (Model Context Protocol)&lt;/strong&gt; is now natively integrated across Google 
Cloud services (BigQuery, Maps, GKE, Compute Engine)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are NOT the same thing. They are NOT competing. And &lt;strong&gt;if you're building &lt;br&gt;
agents without understanding both, you are going to have a very bad time in production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me explain the difference — and then show you exactly how to use them together.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Confusion Everyone Has
&lt;/h2&gt;

&lt;p&gt;When Google announced MCP support in December 2025, and then doubled down on &lt;br&gt;
A2A at NEXT '26, a lot of developers asked: &lt;em&gt;"So which one do I use?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;This is the wrong question. Here's a cleaner mental model:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;MCP&lt;/strong&gt; = how your agent connects to &lt;strong&gt;tools and data sources&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;A2A&lt;/strong&gt; = how your agent communicates with &lt;strong&gt;other agents&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Think of it like a company:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MCP is the internal tool stack — Slack, Notion, your CRM, your database&lt;/li&gt;
&lt;li&gt;A2A is the org chart — who delegates to whom, who can request what from whom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you only have MCP, your agent is a brilliant solo worker drowning in tasks.&lt;br&gt;
If you only have A2A, your agents can coordinate perfectly but have no tools to &lt;br&gt;
actually do anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You need both.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Why A2A v1.0 Matters More Than You Think
&lt;/h2&gt;

&lt;p&gt;The original A2A launch (early 2025) had 50+ partners. At NEXT '26, it's 150 &lt;br&gt;
organizations running it &lt;strong&gt;in production&lt;/strong&gt; — not pilots, not proofs of concept.&lt;/p&gt;

&lt;p&gt;Microsoft, AWS, Salesforce, SAP, and ServiceNow are all routing real tasks through A2A.&lt;/p&gt;

&lt;p&gt;What changed in v1.2 (announced at NEXT '26):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signed Agent Cards&lt;/strong&gt; — cryptographic signatures for domain verification, 
so you can trust the agent you're talking to&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux Foundation governance&lt;/strong&gt; — this is no longer a Google protocol. 
It's an open standard with independent oversight&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native ADK integration&lt;/strong&gt; — A2A support is now built into Google's ADK, 
LangGraph, CrewAI, LlamaIndex Agents, Semantic Kernel, and AutoGen&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last point is huge. It means the ecosystem around A2A just became &lt;br&gt;
language-agnostic and framework-agnostic on the same day ADK hit stable v1.0 &lt;br&gt;
in Python, Go, Java, and TypeScript.&lt;/p&gt;


&lt;h2&gt;
  
  
  A Real Example: The Procurement Agent Problem
&lt;/h2&gt;

&lt;p&gt;Here's a scenario I've seen in almost every enterprise I've worked with:&lt;/p&gt;

&lt;p&gt;A company has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;finance agent&lt;/strong&gt; that knows about budgets and purchase limits&lt;/li&gt;
&lt;li&gt;An &lt;strong&gt;HR agent&lt;/strong&gt; that knows about team headcount and contractor approvals&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;procurement agent&lt;/strong&gt; that actually places orders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the old world, these three systems talk through custom API glue code that &lt;br&gt;
someone wrote in 2023 and nobody fully understands anymore.&lt;/p&gt;

&lt;p&gt;With A2A + ADK, the procurement agent can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Receive a purchase request via MCP (connected to your Slack or email tool)&lt;/li&gt;
&lt;li&gt;Use A2A to ask the finance agent: &lt;em&gt;"Is this within budget?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Use A2A to ask the HR agent: &lt;em&gt;"Is this contractor already approved?"&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Get structured responses from both agents&lt;/li&gt;
&lt;li&gt;Make a decision and place the order via MCP (connected to your ERP system)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No custom API code. No parsing each system's proprietary response format. &lt;br&gt;
Secure handoffs with signed agent cards. Full audit trail.&lt;/p&gt;


&lt;h2&gt;
  
  
  Building It: ADK + A2A in Practice
&lt;/h2&gt;

&lt;p&gt;Here's a minimal Python example using ADK v1.0 that shows what this actually &lt;br&gt;
looks like in code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.agents&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;LlmAgent&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.tools.a2a&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;A2AClient&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the A2A client pointing to your finance agent
&lt;/span&gt;&lt;span class="n"&gt;finance_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;A2AClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent_card_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://finance.yourcompany.com/.well-known/agent.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Initialize the A2A client for your HR agent
&lt;/span&gt;&lt;span class="n"&gt;hr_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;A2AClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;agent_card_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://hr.yourcompany.com/.well-known/agent.json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Your procurement orchestrator
&lt;/span&gt;&lt;span class="n"&gt;procurement_orchestrator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-3-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;procurement_orchestrator&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        You handle purchase requests. Before approving any request:
        1. Verify budget availability with the finance agent
        2. Verify contractor approval status with the HR agent
        3. Only proceed if both agents confirm
    &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;finance_agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;as_tool&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="n"&gt;hr_agent&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;as_tool&lt;/span&gt;&lt;span class="p"&gt;()]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;agent_card_url&lt;/code&gt; points to a JSON file that describes what the agent can do, &lt;br&gt;
what data it accepts, and — in v1.2 — carries a cryptographic signature so you &lt;br&gt;
know you're talking to the right agent.&lt;/p&gt;

&lt;p&gt;This is what Google means by &lt;strong&gt;"structured and secure"&lt;/strong&gt; agent-to-agent &lt;br&gt;
communication. It's not agents sending each other free-text messages. &lt;br&gt;
It's a typed, verifiable protocol.&lt;/p&gt;


&lt;h2&gt;
  
  
  The MCP Side: Connecting to Real Tools
&lt;/h2&gt;

&lt;p&gt;While A2A handles agent-to-agent coordination, your agents still need to &lt;br&gt;
connect to actual tools. This is where MCP comes in.&lt;/p&gt;

&lt;p&gt;At NEXT '26, Google launched fully managed MCP servers for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BigQuery&lt;/strong&gt; — agents query your data warehouse directly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Maps&lt;/strong&gt; — agents get location intelligence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compute Engine&lt;/strong&gt; — agents can provision and manage VMs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes Engine (GKE)&lt;/strong&gt; — agents manage container workloads&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Using ADK, connecting to these is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;google.adk.tools.mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;MCPToolset&lt;/span&gt;

&lt;span class="c1"&gt;# Connect your agent to BigQuery via managed MCP
&lt;/span&gt;&lt;span class="n"&gt;bigquery_tools&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MCPToolset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;connection_params&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;SseServerParams&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://bigquery.googleapis.com/mcp/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Your analytics agent now has live BigQuery access
&lt;/span&gt;&lt;span class="n"&gt;analytics_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;LlmAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-3-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;analytics_agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You answer data questions using live BigQuery data.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;bigquery_tools&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now combine this with A2A, and your procurement orchestrator from earlier &lt;br&gt;
can delegate data lookups to an analytics agent — which uses MCP to hit &lt;br&gt;
BigQuery — and get structured results back through A2A.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's the full stack.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Part I'm Most Excited About (And Most Worried About)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Excited:&lt;/strong&gt; Agent Gateway.&lt;/p&gt;

&lt;p&gt;This was announced quietly at NEXT '26 but it's one of the most important pieces &lt;br&gt;
of the whole system. Agent Gateway is essentially a managed proxy that sits in &lt;br&gt;
front of your entire agent ecosystem. It understands both MCP and A2A protocols &lt;br&gt;
natively, enforces your security policies in real time, and integrates with &lt;br&gt;
Model Armor to block prompt injection attacks before they reach your agents.&lt;/p&gt;

&lt;p&gt;Think of it as the API Gateway of the agentic era. You wouldn't expose your &lt;br&gt;
REST APIs without a gateway. You shouldn't expose your agent network without one either.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worried:&lt;/strong&gt; The signed agent cards in A2A v1.2 are a step in the right direction &lt;br&gt;
for trust, but key rotation and revocation aren't fully specified yet. In a world &lt;br&gt;
where your finance agent is making real budget decisions, the security model needs &lt;br&gt;
to be as rigorous as your OAuth token lifecycle. This is something the Linux &lt;br&gt;
Foundation governance will need to address fast.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means For You Right Now
&lt;/h2&gt;

&lt;p&gt;If you're building anything with agents in 2026, here's the practical checklist:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Stop building custom agent communication layers.&lt;/strong&gt;&lt;br&gt;
A2A v1.0 is stable. The ecosystem support (LangGraph, CrewAI, LlamaIndex) means &lt;br&gt;
you're not locking into Google. Build to the protocol, not to a vendor.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Use managed MCP servers where you can.&lt;/strong&gt;&lt;br&gt;
Google's managed MCP servers for BigQuery, Maps, GKE, and Compute Engine save you &lt;br&gt;
from running your own MCP infrastructure. Start there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Put Agent Gateway in front of everything.&lt;/strong&gt;&lt;br&gt;
Even if you're just running a two-agent prototype, get in the habit of routing &lt;br&gt;
through a gateway. Your future production self will thank you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Read the Agent Card specification.&lt;/strong&gt;&lt;br&gt;
The &lt;code&gt;/.well-known/agent.json&lt;/code&gt; format is where A2A actually lives. Understanding &lt;br&gt;
this file — what capabilities your agent advertises, how trust is established — &lt;br&gt;
is the most important 10 minutes you'll spend on agentic architecture this year.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Underrated Takeaway from NEXT '26
&lt;/h2&gt;

&lt;p&gt;Everyone's talking about Gemini 3.1 Pro. The Vertex AI rebrand. The TPU v8 &lt;br&gt;
Sunfish and Zebrafish chips.&lt;/p&gt;

&lt;p&gt;But the announcement with the longest tail isn't a model or a chip. It's a &lt;br&gt;
protocol reaching production maturity and independent governance.&lt;/p&gt;

&lt;p&gt;A2A v1.0 governed by the Linux Foundation is the HTTP moment for multi-agent &lt;br&gt;
systems. We'll look back at April 2026 the same way we look back at 1991: &lt;br&gt;
the point where the infrastructure became standardized enough for everything &lt;br&gt;
else to be built on top of it.&lt;/p&gt;

&lt;p&gt;The platform wars for AI are interesting. The &lt;strong&gt;protocol wars&lt;/strong&gt; are what &lt;br&gt;
actually determine who wins.&lt;/p&gt;

&lt;p&gt;Start building to the protocol.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Have you started experimenting with A2A or MCP in your projects? &lt;br&gt;
What's blocking you from moving to production? Drop it in the comments — &lt;br&gt;
I'm curious what real blockers look like out in the wild.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>cloudnextchallenge</category>
      <category>googlecloud</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
