Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V2 #1061

Draft
wants to merge 104 commits into
base: main
Choose a base branch
from
Draft

V2 #1061

wants to merge 104 commits into from

Conversation

lalalune
Copy link
Member

@lalalune lalalune commented Dec 14, 2024

This is a draft PR for the V2 branch.

This is extremely work in progress.

Here are the objectives of V2:

  • Unified message bus and simplified clients
    We'll be refactoring all clients to handle input and output only, with an event bus to hook in response handlers.
    Clients will have dramatically less code, and agents will be able to send messages across clients. This will also enable autonomous agent to unify all input and outputs into a single stream of thought and action.

  • Unified agent wallet
    The current wallet system reflects the way we use humans use wallets today, but the UX around network switching and wallet management is a pain. Instead, the agent will have a unified wallet, with access to all registered chains at once. No wallet switching, and tokens will all be handled by agents in a unified way.

  • CLI Tool
    We want a create-react-app like experience for creating new projects, and we want CLI handlers for adding and removing plugins, opening chat interface in browser, maybe even deploying like Cloudflare Wrangler to some of our deployment provider friends. Should also handle secrets management and character / agent / conversation management.

  • Model Provider Registry
    The current model provider system requires a pull request to core for every model provider. v2 will have a registry and override pattern so new code doesn't need to be added to core, and any provider can quickly override with a few lines of code to add integration without a pull request.

  • Extensible and generic core framework
    The v1 is very opinionated about prompts, state and some features. v2 will be very extensible so you can create different kinds of agents and override state management and context composition. For advanced developers, this will make the framework far more powerful and flexible for different user cases.

  • Community plugins
    We'll be moving community plugins out of core and adding requirements for plugin inclusion in core around test coverage, documentation and code maintenance and ownership.

  • Better secret management
    Currently, secret management in .env and character files is risky, so considering better and more secure options for this

  • 100% Test Coverage
    v2 reflects what we want Eliza to be, and we feel that after these changes we should focus entirely on stability, security and cutting down on issues. We'll be aiming for 100% test coverage of core, adapters and primary components, and end-to-end tests for clients.

Copy link

codecov bot commented Dec 14, 2024

Codecov Report

Attention: Patch coverage is 5.71429% with 33 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/core/src/generation.ts 0.00% 33 Missing ⚠️
Files with missing lines Coverage Δ
packages/core/src/models.ts 100.00% <100.00%> (ø)
packages/core/src/types.ts 86.76% <100.00%> (+2.01%) ⬆️
packages/core/src/generation.ts 2.70% <0.00%> (+0.97%) ⬆️

... and 12 files with indirect coverage changes

@augchan42
Copy link
Contributor

For message bus - consider long term that we may want a way to coordinate different sovereign agents to interact with each other, so any design should consider this possibility. The message bus as scoped is internal to the agent for v2, but maybe there's just a little bit of design that we can do upfront to more easily support cross-agent coordination in the future.

Here's some detail considerations to consider (from Sonnet FYI):

Message namespacing that could later accommodate agent IDs
Message routing infrastructure that could be extended beyond a single agent's boundary
Serialization formats that would work across different environments
Authentication/authorization hooks that could later be used for inter-agent security

@todorkolev
Copy link
Contributor

SOPS might be a good tool for secrets management: https://github.com/getsops/sops

btw, we are cooking a more advanced TEE plugin for Eliza that also uses SOPS for secure initialization: https://github.com/comrade-coop/aapp-toolkit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.