<?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: Aaditya Rajgor</title>
    <description>The latest articles on DEV Community by Aaditya Rajgor (@arajgor1).</description>
    <link>https://dev.to/arajgor1</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%2F4214289%2Fa17624e9-6475-44db-9917-d49a53f0f94f.jpg</url>
      <title>DEV Community: Aaditya Rajgor</title>
      <link>https://dev.to/arajgor1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arajgor1"/>
    <language>en</language>
    <item>
      <title>I asked what would make software easier for AI agents to use. Then I built VAP (Feedback Wanted).</title>
      <dc:creator>Aaditya Rajgor</dc:creator>
      <pubDate>Thu, 29 Oct 2026 04:49:08 +0000</pubDate>
      <link>https://dev.to/arajgor1/i-asked-what-would-make-software-easier-for-ai-agents-to-use-then-i-built-vap-5bck</link>
      <guid>https://dev.to/arajgor1/i-asked-what-would-make-software-easier-for-ai-agents-to-use-then-i-built-vap-5bck</guid>
      <description>&lt;p&gt;Most conversations about improving AI agents focus on the model: better reasoning, more context, better prompts.&lt;/p&gt;

&lt;p&gt;I wanted to look at the software the agent interacts with.&lt;/p&gt;

&lt;p&gt;If we could make that software easier for an AI model to use, what should it expose?&lt;/p&gt;

&lt;p&gt;The answer that started this project was:&lt;/p&gt;

&lt;p&gt;Its current state, available actions and the outcome of each action—in a consistent, verifiable way.&lt;/p&gt;

&lt;p&gt;That became VAP: Verified Action Protocol, an open-source protocol and reference runtime. Its first experimental release is available, and I’m looking for developers to try it and tell me where the idea or implementation falls short.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/arajgor1/verified-action-protocol" rel="noopener noreferrer"&gt;Explore the repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The problem: a tool response isn’t always an outcome&lt;/p&gt;

&lt;p&gt;Imagine an agent creates an issue through an API.&lt;/p&gt;

&lt;p&gt;The server creates it, but the connection drops before the response reaches the agent.&lt;/p&gt;

&lt;p&gt;Now the agent has a timeout.&lt;/p&gt;

&lt;p&gt;Did nothing happen? Did the issue get created? Should it retry?&lt;/p&gt;

&lt;p&gt;A blind retry can create a duplicate. Claiming success would be guessing. And if the agent process restarts, it may lose the context needed to investigate.&lt;/p&gt;

&lt;p&gt;This is one example of a broader problem: agents need a structured way to understand actions and their effects, including uncertainty.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What VAP does&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;VAP sits between an agent or application and its registered tools.&lt;/p&gt;

&lt;p&gt;Developers describe the actions a tool supports, their expected effects, how to check the result and how to investigate an uncertain outcome.&lt;/p&gt;

&lt;p&gt;VAP provides a shared place to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prepare an action under scoped permissions.&lt;/li&gt;
&lt;li&gt;Record the intent before dispatch.&lt;/li&gt;
&lt;li&gt;Track execution separately from verification.&lt;/li&gt;
&lt;li&gt;Read back state and evaluate the defined checks.&lt;/li&gt;
&lt;li&gt;Reconcile uncertain operations before retrying.&lt;/li&gt;
&lt;li&gt;Keep an event history and evidence of what was checked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;“The action completed” and “the result was verified” are different states.&lt;/p&gt;

&lt;p&gt;Here, verified means the configured checks passed on fresh evidence. It does not mean VAP can independently understand every business goal.&lt;/p&gt;

&lt;p&gt;If the result cannot be established, VAP reports unknown.&lt;/p&gt;

&lt;p&gt;The demo: lose the response, then find out what happened&lt;/p&gt;

&lt;p&gt;The included demo uses a synthetic issue tracker. It deliberately creates an issue and drops the response.&lt;/p&gt;

&lt;p&gt;VAP records the outcome as unknown. Reconciliation then finds the existing write, verification checks the saved result, and the operation becomes verified.&lt;/p&gt;

&lt;p&gt;The destination records one write.&lt;/p&gt;

&lt;p&gt;If the destination cannot provide enough evidence, the operation must remain unresolved. VAP does not promise universal exactly-once execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You’ll need Git, Docker with Compose v2 and an internet connection. The documented test platform is x86-64 Linux.&lt;/p&gt;

&lt;p&gt;git clone &lt;a href="https://github.com/arajgor1/verified-action-protocol.git" rel="noopener noreferrer"&gt;https://github.com/arajgor1/verified-action-protocol.git&lt;/a&gt;&lt;br&gt;
cd verified-action-protocol&lt;br&gt;
docker compose -f examples/quickstart/compose.yaml run --rm demo&lt;/p&gt;

&lt;p&gt;No model API key, GitHub credentials or cloud account is needed for this synthetic demo.&lt;/p&gt;

&lt;p&gt;It demonstrates:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A verified action.&lt;/li&gt;
&lt;li&gt;A lost response followed by reconciliation.&lt;/li&gt;
&lt;li&gt;A partially applied batch followed by compensation as a separate operation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To try the SDK connection example:&lt;/p&gt;

&lt;p&gt;docker compose -f examples/quickstart/compose.yaml run --rm connect&lt;/p&gt;

&lt;p&gt;When finished, remove the demo containers and database volume:&lt;/p&gt;

&lt;p&gt;docker compose -f examples/quickstart/compose.yaml down -v&lt;/p&gt;

&lt;p&gt;The quickstart uses evaluation-only authentication. It is not a production deployment configuration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where it fits&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You run the VAP runtime with PostgreSQL and connect through the TypeScript SDK or the stdio MCP bridge.&lt;/p&gt;

&lt;p&gt;The supported adapters cover configured HTTP actions and registered command-line recipes. Developers supply the tool-specific meaning and verification rules; VAP does not automatically discover how arbitrary software works.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/arajgor1/verified-action-protocol/blob/main/docs/connect.md" rel="noopener noreferrer"&gt;Read the integration guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What the testing actually showed&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The synthetic fault comparison included a careful client with its own durable intent log.&lt;/p&gt;

&lt;p&gt;That client matched VAP’s outcomes.&lt;/p&gt;

&lt;p&gt;The value I’m exploring is making that discipline reusable: consistent action contracts, durable tracking, verification evidence and recovery behavior that each agent integration doesn’t have to implement from scratch.&lt;/p&gt;

&lt;p&gt;VAP adds runtime overhead and integration work. Whether the shared infrastructure earns that cost is one of the questions I want feedback on.&lt;/p&gt;

&lt;p&gt;This is 0.1.0-rc.1, an experimental release. Real-GitHub workflows and model-driven comparisons have not been validated. Browser support is excluded from the supported release, and the managed GCP path has an unresolved intermittent authentication failure.&lt;/p&gt;

&lt;p&gt;Deployment restrictions and accepted security exceptions are documented in the repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I’d like your feedback on&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have a few minutes, try the demo and tell me:&lt;/p&gt;

&lt;p&gt;Was it clear what VAP did—and what you still have to implement?&lt;/p&gt;

&lt;p&gt;Where would it fit, or fail to fit, in your existing agent workflow?&lt;/p&gt;

&lt;p&gt;Which real tool would you want to connect first?&lt;/p&gt;

&lt;p&gt;If you already handle these problems with a durable workflow engine or your own client, I’d especially like to understand what VAP would need to offer to justify another component.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/arajgor1/verified-action-protocol/issues" rel="noopener noreferrer"&gt;You can leave a comment here or open an issue.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The original question is still the one I’m exploring: how should software expose itself so an agent can act with clearer information and checkable results?&lt;/p&gt;

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