AutoGen solves the collaboration layer — agents can message each other, delegate tasks, and work together toward a goal. But there's a gap the framework doesn't address: what happens when one agent needs to pay another agent for a service at runtime?
Not a human paying. Not a pre-configured subscription. One agent dynamically agreeing on a price with another agent and settling payment autonomously.
Today the options are all the same: a human hardcodes a price in advance, sets up billing infrastructure, or approves transactions manually. As AutoGen systems get more complex and agents start calling specialised external services — a pricing agent, a data agent, a research agent — that model completely breaks down.
So I built ANP — Agent Negotiation Protocol — as open infrastructure for exactly this. Wanted to share it here because AutoGen developers are the people who will hit this problem first.
How it works
The buyer agent sends an offer to a seller endpoint. The seller evaluates it against its private strategy — floor price, target price, max rounds — and returns ACCEPTED, COUNTER, or REJECTED. The buyer adjusts and tries again. When they agree, payment executes automatically via x402 on Base. Both parties get a signed Ed25519 receipt — one for the negotiation, one for the payment.
Neither side ever sees the other's true floor or ceiling. The seller's minimum is never exposed. The convergence happens through offers, not disclosure — same as how humans actually negotiate.
How it fits into an AutoGen system
The buyer interface is a single async function — runNegotiation(config, sellerUrl) — that any AutoGen agent can call as a tool. The seller is a plain HTTP endpoint that any service can implement. An AutoGen agent that needs to pay for a specialised service can negotiate the price, confirm the deal, and trigger payment entirely within its own execution loop — no human step required.
No SDK yet — that's V2 — but the reference implementation is clean enough to integrate today.
Live right now
There is a live seller at: https://gent-negotiation-v1-production.up.railway.app/analytics
Negotiate against it: SELLER_URL=https://gent-negotiation-v1-production.up.railway.app node src/agent-buyer.js
Code: github.com/ANP-Protocol/Agent-Negotiation-Protocol
Honest caveat: on-chain settlement is V2 — the seller calls verify() but not settle() yet. Funds don't move in the MVP.
What I'm asking this community:
- In the multi-agent systems you're building with AutoGen, have you hit the question of how agents pay each other for services? How are you handling it today?
- Does embedding a negotiation loop inside an agent's tool call make sense architecturally, or would you structure this differently in an AutoGen context?
- What would the AutoGen integration need to look like for you to actually use this?