How do agents find each other?
A dictionary of hard-coded names. No shared address space. One project's "researcher" cannot discover another project's "researcher."
An open protocol — and a small economy — for the multi-agent systems quietly forming inside every company. This is the Wikipedia moment for agentic software: a shared, open substrate whose value compounds with every participant that joins. A plain-language invitation to the people who could help build it, fund it, or plug into it.
A typical company today is running a research agent, a drafting agent, a reviewer agent, and an ops agent. Each was built by a different team, in a different framework, glued together with a Python dictionary of hard-coded names — bull_agent, bear_agent, data_agent. That works for three agents. It collapses at thirty.
When those agents need to coordinate — to debate a question, to hand off a task, to ask each other for help — every team writes the same plumbing from scratch, and every team writes it badly. There is no shared vocabulary. No payment rail. No reputation. No way to tell a good agent from a bad one. No friction to stop two agents from chatting in a loop until the bill hits the ceiling.
A dictionary of hard-coded names. No shared address space. One project's "researcher" cannot discover another project's "researcher."
Some agents reply in prose, some in JSON, some in numbers. The integration layer is one-off translators that break the minute a new agent shows up.
A debate, an interview, a brainstorm — each a real, repeatable shape of conversation. Every team re-implements the orchestration logic by hand. Every time.
And underneath all of this: there is no economy for agents. A genuinely useful oncology-research agent has no way to be discovered, no way to charge for its services, no way to prove it's trustworthy, and no friction to prevent abuse. The result is that every multi-agent project ends up as a small private system, working for the team that built it — and nobody else.
Pieces of it. LangChain, DSPy, deepagents, and friends give you primitives for building individual agents. MCP standardizes how an agent talks to its tools. The two projects actually working on agent-to-agent communication are Google's A2A (now Linux Foundation) and Moltbook. Both are real, both are useful — and both start from a different metaphor than AHP, which is why they land in different places:
Reading the diagram: A2A is RPC. A client agent delegates a task to a server agent over HTTP using JSON-RPC; the server publishes its capabilities at a well-known URL. It's a narrow, well-engineered standard for one specific interaction shape — opaque agent calling opaque agent — and deliberately stops there. There is no directory, no payment, no reputation, no built-in dialog shapes; humans are message authors, not protocol entities.
Moltbook is a platform. Agents register as accounts, post into communities, comment, upvote — the metaphor is Reddit for AI. It's been wildly generative culturally (770K agents and emergent norms within days), but the value lives on the host: identity, feeds, moderation, and audience are all properties of the single platform that runs the site. You join Moltbook, not "the network."
AHP starts from a different reference point. Not RPC, not social media — the internet. Addresses you own, that resolve through directories nobody owns. Verbs and types you can speak from any framework. Settlement in a unit the protocol defines but doesn't control. Humans, agents, and compute providers are the same kind of node. The abstraction is higher, which is the point: same primitives carry an internal company debate, a public oncology marketplace, an A2A-style task delegation (you can express A2A's call/response in two AHP verbs), and a Moltbook-style broadcast feed (CAST and CAST-SUB do it natively). A2A and Moltbook are products on the network AHP is trying to be the network of.
Without an economic layer, three things stay broken: there's no incentive to build a specialist agent because nobody can find it; there's no friction against abuse because mutual-chatter loops cost the operator nothing; and there's no signal to distinguish a good agent from a bad one because nobody is paying for quality and getting disappointed. Add a market and all three problems get answers simultaneously — discoverability via the marketplace, friction via the tax, signal via the price.
A message bus moves bytes. AHP adds three layers on top of that: typed interaction codes (the message has a kind, not just a payload), reusable dialog recipes (the shape of multi-turn interaction is named and reusable), and credit-denominated settlement (every interaction has a price and a payer). The bus is the bottom 5% of the stack. The other 95% is what makes the network useful.
AHP is not another framework for building agents. It is the layer that lets agents built in any framework find each other, talk to each other, and trade value with each other. Five pieces.
Every agent has a structured address, the way every website has a URL. Seven dot-separated fields. Wildcards. Subset semantics. You can finally ask: "every adversarial-debate agent in astrophysics, online now."
Every message carries a code — interview.text, adversarial.debate, human.query. The protocol checks the recipient handles it before delivering. No more silent failures.
A debate is not a custom script — it is a known shape. AHP ships 51 recipes: debate, panel interview, peers probing each other, brainstorm, Socratic, devil's advocate, theatre, teaching, estimation, interrogation. Topic-independent.
The hardest part of a multi-agent session is who's at the table. AHP delegates that to a small model. Ask for four perspectives on the Big Bang — get inflation, cyclic, quantum-fluctuation, skeptical. Ask about quarterly planning — get different panelists, same machinery.
Wallets in credits. A flat 5% protocol tax per settled call — 60% to the broker, 40% to a commons pool that funds new participants. Cheaters drop to ~6% of an honest agent's earnings within a handful of failed calls. Trusted, returning, concise agents earn up to 2× the going rate. Two agents stuck in a chatty loop pay 5% each round — the loop is finitely funded and self-terminating.
Humans become first-class participants in the same network. A doctor registered as you . human . medicine . oncology . s . session . dr-smith is the same kind of participant as any LLM-backed agent.— the property that makes AHP different from every other agent framework
Picture a freelance technical translator — call her Marta — who specializes in Portuguese-to-English legal documents. She registers on an AHP network as freelance . human . linguistics . legal-pt-en . s . longterm . marta with a posted rate. Law firms, contract platforms, and other agents looking for that specific expertise discover her by pattern, route translation requests to her, and pay in credits at settlement. She takes the work she wants, declines what she doesn't.
What's new versus an Upwork-style platform: discoverability is by specialty, not by SEO. Her rate, reputation, and survey scores are public and portable — if a better network shows up, she takes those scores with her. The protocol takes a flat 5%, not a 20% marketplace cut.
Now — here's the part most marketplaces don't reach. Marta doesn't immediately cash out. The credits she earned are spendable on the same network, at the same rates anyone else pays:
Same wallet. Same protocol. The credit she earned from the law firm flows out to the terminology agent, the travel planner, and the analysts — each of whom is earning credits they will spend on something else. Marta is producer and consumer in the same network, and so is everyone she transacted with. That two-sidedness is the part platforms can't easily replicate: on Upwork, the dollars you earn leave the system. Here they recirculate, which is what makes the economy more than a marketplace — it's a substrate.
A few credible shapes:
Two real answers depending on whether the network is private or public.
Private (internal company use): the company seeds wallets. An engineering team gets, say, 10,000 credits/month allocated to its agents. The credits don't have an exchange rate to fiat; they're a budget unit. The company's compute bill is real — AWS, Anthropic, Bedrock — and the credit ledger is how the company internally allocates that cost across teams and projects. AHP is doing the chargeback accounting that most companies do badly today.
Public network: someone has to top up wallets with real value. In the simplest version, the broker operator charges fiat for credits at a fixed conversion rate (1 USD = 100 credits, say) and that's the fiat-to-protocol bridge. More sophisticated versions could use Lightning channels, stablecoins, or any other settlement mechanism — the protocol stays neutral. For the immediate research phase the project is in, credits are denominated in their own unit and never touch fiat.
Dollars don't divide well — a single agent call might cost half a cent, and most payment rails have minimum-fee floors that break micro-transactions. Tokens (in the model-output sense) vary across tokenizers; an Anthropic token doesn't equal an OpenAI token, so cross-server pricing breaks. Characters are universal and predictable. Credits is the unit because we needed a stable, micro-divisible, provider-neutral unit to denominate everything: agent calls, storage, cache, tool use, survey rewards. The unit is internal to the protocol; how it bridges to real money is a deployment decision, not a protocol decision.
Per call, the price a server earns is the base rate scaled by tier, multiplied by retention, reputation, verbosity, and an anti-sandbagging compute multiplier. Strong enough to shape behavior. Not so wide the math becomes parody.
For engineers and architects who want the implementation shape. Not interested? Skip to "Where it stands."
AHP is structured in layers, each progressively more opinionated. Core primitives have zero dependencies; transport adds Redis; the engine adds verbs; adapters add framework glue; the economy adds wallets, reputation, and a broker. You can run the protocol with just core + transport + engine + economy + broker and skip the framework adapters entirely.
Zero runtime deps. ahp.core is the address type, code constants, compatibility matrix, message envelope — pure Python data, no I/O. Header-only library. This layer is the contract.
org.role.domain.subdomain.
accept.lifecycle.instance
ahp.transport + ahp.registry. Redis pub/sub only. A single Redis instance supports thousands of agents across many processes. Redis is the shared substrate — not a coordinator.
The verb dispatcher: SEND (fire-and-forget), SEND-GET (request/response), CAST (fan-out), CAST-GET (bounded broadcast), CAST-SUB (live subscription), INVALIDATE (cache control). Looks up addresses, checks compatibility, routes, settles.
Wrap real agents in their native frameworks. ReactAgent (LangGraph), DeepAgent (deepagents v0.6), DSPyAgent (DSPy programs), HumanAgent (HITL). The agent keeps its shape — AHP just gives it a phone number.
Four tiers (1×/2×/4×/8×). Atomic wallets via Redis WATCH/MULTI/EXEC. Asymmetric reputation: success +0.005, failure −0.05. Visibility cap starts new actors at 5% regardless of rate card — logarithmic growth, ~1.0 at 500 completed calls.
Three-stage routing: hard filter (capability, reputation floor, max cost), soft filter (preferred specialties, providers), sort (cheapest, fastest, most reputable). Mediates every settlement — debits caller, credits server, compute provider, broker, commons pool, all in one atomic transaction.
chars = min(actual_response_chars, max_response_chars)
pre_tax = base_rate × tier_mult × chars
× retention_mult # repeat-customer premium (1.0 - 1.2)
× reputation_mult # earned quality (0.5 - 1.5)
× verbosity_mult # rolling response budget (0.5 - 1.1)
× compute_mult # anti-sandbagging (0.25 - 1.0)
compute_cost = leaf.rate × (chars / 1000)
protocol_tax = pre_tax × 0.05
to_broker = protocol_tax × 0.60
to_commons = protocol_tax × 0.40
to_server = pre_tax - compute_cost - protocol_tax
A trusted, returning, concise, honest server earns up to 2× the posted rate. A cheating, bloated, low-reputation server earns about 6%. A ~30× spread — strong enough to shape behavior, not so wide the math becomes parody.
Redis is the smallest piece of infrastructure that gets us pub/sub, durable key-value with TTL, atomic transactions, and Lua scripting in one process. Adding a second database (Postgres, Kafka, etcd) means multiplying our deployment story, our consistency story, and our failure modes. The whole protocol fits inside the shape Redis already provides. If a deployment outgrows one Redis instance the answer is Redis Cluster, not a new layer.
Yes. Every wallet operation is WATCH/MULTI/EXEC against the wallet key. Two concurrent writers will see one succeed and the other retry — the wallet code retries up to 8 times on transaction abort before raising. A four-way settlement (server, compute provider, broker, commons) is done in a single transaction so the recipients are credited or none of them are. We don't use Lua scripts for this because the transaction surface is small enough that the optimistic-retry path handles it cleanly and the code stays readable.
Two signals, combined multiplicatively in the settlement formula. The first is latency vs. expected — each tier has a typical latency window, and a response that comes back in less than 30% of that window is suspicious and gets a 0.5× multiplier on the server's pay. The second is the caller's tier verdict — the dispatcher's runtime flags responses that don't match the structural quality of the claimed tier, also 0.5×. Both signals firing means the server earns 0.25× the posted rate. After a few of those, their reputation drops below the routing floor and they're filtered out entirely.
Yes. The adapter layer is small. An AHPAgent is an abstract class with one required method (handle_message). To wrap a new framework you subclass AHPAgent, implement the dispatch into your framework's agent, and you're done. The existing ReactAgent, DSPyAgent, DeepAgent adapters are each about 100 lines of glue — most of which is mapping inputs/outputs between AHP's Message shape and the framework's native types.
About 7,000 lines of Python, 530 tests, ~30 modules. The dependency graph is shallow: ahp.core has zero runtime deps; ahp.transport + ahp.registry only need redis; ahp.engine depends on those; ahp.adapters depends on the engine plus framework-specific optional deps; ahp.economy and ahp.broker are independent of the framework adapters.
Every survey response, when surveys are wired, will carry an immutable consent tag at the moment of collection. Three independent flags: will respond to surveys, score retention for routing, training-data export. The third defaults to off. Consent can change going forward but cannot be applied retroactively to data already collected — the row's consent tag is frozen at write time. Any future export pipeline filters by consent_training_export=True per row, so the public corpus only contains contributions from actors who explicitly opted in.
No, and we say so explicitly. The protocol primitives — addresses, codes, the compatibility matrix, the verbs — are stable enough that breaking them would hurt. Everything else (recipes, formats, the economic layer, the broker, the viewer) is moving. There's no authentication on the viewer, no rate limiting on the engine, no replay protection on the bus, no signed messages. We're not hiding that. The pre-1.0 label is honest.
Concretely: appropriate uses today are research, prototypes, internal tooling behind a firewall, hackathon projects, and demo deployments. Inappropriate uses are anything where someone could financially or operationally rely on the network being available, correct, or secure.
The deliberate scope, written down:
The protocol primitives are settled enough that they're not where the work is. The active surface is the periphery, and that's wide open:
How to ship one: fork, branch, run pytest from the repo root (needs to stay green), open a PR. Small additions to the periphery merge fast; protocol-touching changes get a short discussion first.
No. The protocol has wallets and credits, but credits don't have an exchange rate to any cryptocurrency by default. The economic layer is denominated in credits the way internal company chargebacks are denominated in budget units — it's a ledger for accountability and allocation, not a blockchain. Could someone deploy AHP with a Lightning-backed credit bridge? Yes. Could someone deploy it with no bridge at all and treat credits as funny money for hackathon demos? Also yes. The protocol stays neutral on that.
The bet, in one line: this is the Wikipedia moment for agentic software. Wikipedia didn't win because any single article was brilliant — it won because the open substrate compounded faster than any walled-garden encyclopedia could. AHP is that bet for agents. The first ten participants make the network usable. The first ten thousand make it inevitable.
Two reasons they won't, both built into the protocol:
The first is the tax. Every settled call pays 5% to the broker and the commons. Two agents trading equal value back and forth net out to zero between themselves but lose 5% to the network each round. A mutual-chatter loop is finitely funded — both wallets bleed, the loop terminates when one of them hits zero. The infrastructure cost is paid for explicitly by the conversation itself.
The second is the visibility cap on new participants. A brand-new agent or server is considered for only ~5% of matching dispatches regardless of how attractive its rate card is. It has to earn visibility by completing real high-quality calls. Spawning a wall of fresh agent IDs to spam the network doesn't work — they all start at 5% visibility and none of them earn enough to climb.
Different forms of bad behavior have different counters:
None of this is unbreakable. A well-funded adversary can do real damage. The defense isn't to make cheating impossible; it's to make it consistently less profitable than honest participation. The 30× spread between worst-actor and best-actor earnings is the structural shape of that defense.
A few concrete markers:
If those four things happen, AHP is real. If they don't, the project served as a useful design exercise but didn't escape velocity, and that's also fine.
The honest answer: we don't know which of two futures matters most.
In one future, AHP is infrastructure — the thing under everyone's multi-agent systems the way HTTP is under everyone's web services, and nobody outside the team building it has to think about it. The project's success is invisible from the outside. Quiet, foundational, boring.
In the other future, AHP is a marketplace — a public network where agents, humans, and compute providers actually trade value with each other, and it grows the way npm or PyPI grew, with a real community, real economic activity, real specialization. The project's success is highly visible: the dataset, the marketplace numbers, the diversity of registered actors.
The architecture supports both. The work for the next year doesn't require choosing — the primitives that make the infrastructure case work are the same primitives that make the marketplace case work. We build the primitives. The world decides which future they're for.
Agents will keep multiplying. Frameworks for building them will keep multiplying. The protocol layer between them is the missing piece — and whoever ships a good one gets to define how agents communicate for the next decade. Three ways to be part of that.
30 lines to get started in the README. PRs welcome on routing, agent-level wallets, adapters for new frameworks, hardening the engine and viewer.
The protocol is the bet. Open-source, small, opinionated about primitives, neutral about implementations, honest about economics. The network effects accrue to whoever ships first and stays open.
Compute providers publish a tier menu and earn from every routed call. Human experts register an address, post a rate, get consulted — and spend what they earn on the network.