-
Notifications
You must be signed in to change notification settings - Fork 4.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
624 changed files
with
41,273 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -102,4 +102,7 @@ packages/docs/api/* | |
packages/*/dist/* | ||
|
||
|
||
**/dist/** | ||
**/dist/** | ||
|
||
**/.docusaurus/** | ||
**/docs/build/** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,6 @@ | |
"version": "0.25.6-alpha.1", | ||
"packages": [ | ||
"packages/*", | ||
"docs", | ||
"agent", | ||
"client" | ||
], | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Dependencies | ||
/node_modules | ||
|
||
# Production | ||
/build | ||
|
||
./api/* | ||
|
||
# Generated files | ||
.docusaurus | ||
.cache-loader | ||
|
||
# Misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
npm-debug.log* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,185 @@ | ||
# Eliza - Multi-agent simulation framework | ||
|
||
# https://github.com/elizaOS/eliza | ||
|
||
# Visit https://eliza.builders for support | ||
|
||
## 🌍 README Translations | ||
|
||
[العربية](./README_AR.md) |[中文说明](./README_CN.md) | [Deutsch](./README_DE.md) | [Français](./README_FR.md) | [ไทย](./README_TH.md) | [Español](README_ES.md) | ||
|
||
# dev branch | ||
|
||
<img src="static/img/eliza_banner.jpg" alt="Eliza Banner" width="100%" /> | ||
|
||
_As seen powering [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_ | ||
|
||
- Multi-agent simulation framework | ||
- Add as many unique characters as you want with [characterfile](https://github.com/lalalune/characterfile/) | ||
- Full-featured Discord and Twitter connectors, with Discord voice channel support | ||
- Full conversational and document RAG memory | ||
- Can read links and PDFs, transcribe audio and videos, summarize conversations, and more | ||
- Highly extensible - create your own actions and clients to extend Eliza's capabilities | ||
- Supports open source and local models (default configured with Nous Hermes Llama 3.1B) | ||
- Supports OpenAI for cloud inference on a light-weight device | ||
- "Ask Claude" mode for calling Claude on more complex queries | ||
- 100% Typescript | ||
|
||
# Getting Started | ||
|
||
**Prerequisites (MUST):** | ||
|
||
- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) | ||
- [bun](https://bun.io/installation) | ||
|
||
### Edit the .env file | ||
|
||
- Copy .env.example to .env and fill in the appropriate values | ||
- Edit the TWITTER environment variables to add your bot's username and password | ||
|
||
### Edit the character file | ||
|
||
- Check out the file `packages/core/src/defaultCharacter.ts` - you can modify this | ||
- You can also load characters with the `bun start --characters="path/to/your/character.json"` and run multiple bots at the same time. | ||
|
||
After setting up the .env file and character file, you can start the bot with the following command: | ||
|
||
``` | ||
bun i | ||
bun start | ||
``` | ||
|
||
# Customising Eliza | ||
|
||
### Adding custom actions | ||
|
||
To avoid git clashes in the core directory, we recommend adding custom actions to a `custom_actions` directory and then adding them to the `elizaConfig.yaml` file. See the `elizaConfig.example.yaml` file for an example. | ||
|
||
## Running with different models | ||
|
||
### Run with Llama | ||
|
||
You can run Llama 70B or 405B models by setting the environment variable for a provider that supports these models. Llama is also supported locally if no other provider is set. | ||
|
||
### Run with Grok | ||
|
||
You can run Grok models by setting the `GROK_API_KEY` environment variable to your Grok API key and setting grok as the model provider in your character file. | ||
|
||
### Run with OpenAI | ||
|
||
You can run OpenAI models by setting the `OPENAI_API_KEY` environment variable to your OpenAI API key and setting openai as the model provider in your character file. | ||
|
||
## Additional Requirements | ||
|
||
You may need to install Sharp. If you see an error when starting up, try installing it with the following command: | ||
|
||
``` | ||
bun install --include=optional sharp | ||
``` | ||
|
||
# Environment Setup | ||
|
||
You will need to add environment variables to your .env file to connect to various platforms: | ||
|
||
``` | ||
# Required environment variables | ||
DISCORD_APPLICATION_ID= | ||
DISCORD_API_TOKEN= # Bot token | ||
OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- | ||
ELEVENLABS_XI_API_KEY= # API key from elevenlabs | ||
# ELEVENLABS SETTINGS | ||
ELEVENLABS_MODEL_ID=eleven_multilingual_v2 | ||
ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM | ||
ELEVENLABS_VOICE_STABILITY=0.5 | ||
ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9 | ||
ELEVENLABS_VOICE_STYLE=0.66 | ||
ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false | ||
ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 | ||
ELEVENLABS_OUTPUT_FORMAT=pcm_16000 | ||
TWITTER_DRY_RUN=false | ||
TWITTER_USERNAME= # Account username | ||
TWITTER_PASSWORD= # Account password | ||
TWITTER_EMAIL= # Account email | ||
# For asking Claude stuff | ||
ANTHROPIC_API_KEY= | ||
WALLET_SECRET_KEY=EXAMPLE_WALLET_SECRET_KEY | ||
WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY | ||
BIRDEYE_API_KEY= | ||
SOL_ADDRESS=So11111111111111111111111111111111111111112 | ||
SLIPPAGE=1 | ||
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com | ||
HELIUS_API_KEY= | ||
## Telegram | ||
TELEGRAM_BOT_TOKEN= | ||
TOGETHER_API_KEY= | ||
``` | ||
|
||
# Local Inference Setup | ||
|
||
### CUDA Setup | ||
|
||
If you have an NVIDIA GPU, you can install CUDA to speed up local inference dramatically. | ||
|
||
``` | ||
bun install | ||
npx --no node-llama-cpp source download --gpu cuda | ||
``` | ||
|
||
Make sure that you've installed the CUDA Toolkit, including cuDNN and cuBLAS. | ||
|
||
### Running locally | ||
|
||
By default, the bot will download and use a local model. You can change this by setting the environment variables for the model you want to use. | ||
|
||
# Clients | ||
|
||
## Discord Bot | ||
|
||
For help with setting up your Discord Bot, check out here: https://discordjs.guide/preparations/setting-up-a-bot-application.html | ||
|
||
# Development | ||
|
||
## Testing | ||
|
||
To run the test suite: | ||
|
||
```bash | ||
bun test # Run tests once | ||
bun test:watch # Run tests in watch mode | ||
``` | ||
|
||
For database-specific tests: | ||
|
||
```bash | ||
bun test:sqlite # Run tests with SQLite | ||
bun test:sqljs # Run tests with SQL.js | ||
``` | ||
|
||
Tests are written using Jest and can be found in `src/**/*.test.ts` files. The test environment is configured to: | ||
|
||
- Load environment variables from `.env.test` | ||
- Use a 2-minute timeout for long-running tests | ||
- Support ESM modules | ||
- Run tests in sequence (--runInBand) | ||
|
||
To create new tests, add a `.test.ts` file adjacent to the code you're testing. | ||
|
||
## Docs Updates | ||
|
||
Please make sure to verify if the documentation provided is correct. In order to do so, please run the docs service. | ||
|
||
```console | ||
docker compose -f docker-compose-docs.yaml up --build | ||
``` | ||
|
||
The docusaurus server will get started and you can verify it locally at https://localhost:3000/eliza. |
Oops, something went wrong.