Hey folks,
I've been wondering about the current state of development on the Bitcoin Agent / Decentralized Autonomous Corporations concept -
https://en.bitcoin.it/wiki/AgentsTLDR; - Is anyone working on, or are there any proof of concepts / drafts out there, for a somewhat-universal and extensible API/communications protocol over which agents can communicate with each other? Discover their services, set up an agreement, exchange signatures, construct a transaction. Something like an 'Agent Exchange Format'.
I feel it's necessary to have some sense of consensus in- or direction to an exchange format of some kind in order for this concept to flourish, but I'm currently unaware of any development toward it.Take this overly modular example:
Agent A
self - providing an arbitrary service to sustain itself, wishes to replicate/update itself (create a child) onto a server hosted by Agent H
host.
Agent A's source code is hosted on some trusted repository.
Agent A will communicate with various other agents in order to get this done, basically doing nothing itself except for negotiating with other Agents.
My thinking is this (please, disregard any trust issues that arise from this flow as 'resolved'; not relevant for what I'm getting at):
- Agent A contacts Agent B
builder, a service that builds a program from source and returns the resulting distribution, they negotiate a contract, deciding on a price for this service - and optionally employ some oracle/escrow service (also an agent - Agent O
oracle) to mediate the contract and verify the distribution output. A hands B the repository information, B starts building.
- Agent A is now in possession of a verifiably valid and freshly built distribution of its source code.
- Agent A contacts Agent H, the hosting corporation, to buy server time / space where its distribution may live, negotiating a contract, deciding on the pricing. They set up a micropayment channel to pay for cpu-time and storage space. This is mediated by Agent E
escrow and/or Agent O
oracle.
- Agent A contacts Agent D
deployment, a service which deploys programs to a server, again mediated with an escrow/oracle agent. Agent A hands it the distribution which is then deployed on the server hosted by Agent H.
Another instance of Agent A now lives on some server, and the process is fully orchestrated and taken care of by agents.
--
Now, for the communications exchange format.
Basically, what all the above agent communication boils down to is these 3 requirements:
- Understanding the meaning/function of another agent's services.
- Negotiating a contract between 2 or more agents for an arbitrary service.
- Discovery of agents providing said arbitrary services.
The first can/should(?) be programmed into an agent, I reckon. Rather trivial at this point.
The third... Let's leave this in the open for today's discussion and focus on an exchange format.
The second is what I'm interested in. An exchange format. All negotiation depends on some exchange format all agents involved understand. They need to speak the same language in order for them to negotiate anything. So I'm wondering whether anything like this has already been created, is in development, whether anyone's interested in seeing this happen, or whether the communication flow described here is completely outdated / entirely false?
When a (however simple) exchange/communications format exists, I reckon we can start building/testing agents 'in the wild' that can communicate with each other, negotiate, transact, live, replicate, and build the concept further from there.
Thoughts?
Thanks.