gnosis / prediction-market-agent

GNU Lesser General Public License v3.0
15 stars 4 forks source link

Create framework for on-chain agents #279

Open kongzii opened 1 week ago

kongzii commented 1 week ago

We are currently at the point where the general agent is probably good enough to present it publicly, e.g., with the new demo https://deployed-general-agent-viewer.ai.gnosisdev.com or with more fun on hackatons as in https://github.com/gnosis/prediction-market-agent/issues/272.

One direction we could go next, is to create our own framework for on-chain agents!

Atm, people who would want to run our agents need to set up their DB (Postgres + Pinecone), OpenAI key (or fight with mech-client), set up Safe, ask us to add them to Dune dashboard, etc.

But ideally, xDais should be all that's needed for such an agent to operate. (if we accomplish this, it would motivate people to use this).

So instead, we could create a Factory Contract and accompany it with a Python library.

Created contracts could directly hold stuff like system prompts, metadata, summarized past actions, etc. Anything that isn't too costly to store on Gnosis Chain directly. For stuff that's too big (like all the rows in our Memory table), there could be direct compatibility with IPFS, but I'd limit that as much as possible so as not to force people to pay for IPFS servers as we do with Pinata (maybe there could be a mech tool for it?).

Such a framework would need to be compatible with existing stuff as much as possible (autogen, langchain, etc.), so people could easily switch their agents to live on-chain.

We can also add built-in support for communication with mechs.

Later we could also make it compatible with projects like Cartesi, to not just store data on-chain, but live there as much as possible with current technologies.

I need to check how much this overlaps with what Olas is doing, but based on what I saw so far, I feel their framework isn't a good fit for this (except for mechs). Maybe this could use their framework in the background.

gabrielfior commented 1 week ago

Overall I like the idea. A few observations: -> Speaking with the Circles team, it could also be interesting to add a "Pay with Circles" feature to this idea. -> I see challenges arising (if/when) we are running servers for the agents, e.g. how do we provide a cloud server for an agent to run? Or does this fall under the responsability of the agent creator? -> Data storage (system prompts, metadata, summarized past actions, etc) - this is expensive to store on-chain and much more suitable for off-chain storage (IPFS, like Olas is doing). There are alternatives to IPFS (e.g. Ceramic where data is versioned), this should however be discussed to learn from what others considered when imagining their solution. -> Privacy would also be interesting for the data storage discussion above

kongzii commented 1 week ago

Another thought: Olas framework is meant for co-owned AI, but so far, we didn't need any co-owning for our agents (and not really sure what that would mean for trader agents anyway). So (maybe) we could build on top of their stack, but make it a lot simpler (also no need for any synchronization between agents, etc.). And add that complexity in the future, if needed.

gabrielfior commented 1 day ago

Interesting to compare is Lang graph cloud -> https://langchain-ai.github.io/langgraph/cloud/

image