|
1 |
| -# Eliza |
| 1 | +# Eliza 🤖 |
2 | 2 |
|
3 |
| -<img src="./docs/static/img/eliza_banner.jpg" alt="Eliza Banner" width="100%" /> |
| 3 | +<div align="center"> |
| 4 | + <img src="./docs/static/img/eliza_banner.jpg" alt="Eliza Banner" width="100%" /> |
| 5 | +</div> |
4 | 6 |
|
5 |
| -## 功能 |
| 7 | +<div align="center"> |
6 | 8 |
|
7 |
| -- 🛠 支持discord/推特/telegram连接 |
8 |
| -- 👥 支持多模态agent |
9 |
| -- 📚 简单的导入文档并与文档交互 |
10 |
| -- 💾 可检索的内存和文档存储 |
11 |
| -- 🚀 高可拓展性,你可以自定义客户端和行为来进行功能拓展 |
12 |
| -- ☁️ 多模型支持,包括Llama、OpenAI、Grok、Anthropic等 |
13 |
| -- 📦 简单好用 |
14 |
| - |
15 |
| -你可以用Eliza做什么? |
| 9 | +📖 [文档](https://elizaos.github.io/eliza/) | 🎯 [示例](https://github.com/thejoven/awesome-eliza) |
16 | 10 |
|
17 |
| -- 🤖 聊天机器人 |
18 |
| -- 🕵️ 自主Agents |
19 |
| -- 📈 业务流程自动化处理 |
20 |
| -- 🎮 游戏NPC |
| 11 | +</div> |
21 | 12 |
|
22 |
| -# 开始使用 |
| 13 | +## 🌍 README 翻译 |
23 | 14 |
|
24 |
| -**前置要求(必须):** |
| 15 | +[日本語の説明](./README_JA.md) | [한국어 설명](./README_KOR.md) | [English](./README.md) | [Français](./README_FR.md) | [Português](./README_PTBR.md) | [Türkçe](./README_TR.md) | [Русский](./README_RU.md) | [Español](./README_ES.md) | [Italiano](./README_IT.md) | [ไทย](./README_TH.md) | [Deutsch](./README_DE.md) | [Tiếng Việt](./README_VI.md) | [עִברִית](https://github.com/elizaos/Elisa/blob/main/README_HE.md) | [Tagalog](./README_TG.md) | [Polski](./README_PL.md) | [Arabic](./README_AR.md) | [Hungarian](./README_HU.md) | [Srpski](./README_RS.md) |
25 | 16 |
|
26 |
| -- [Python 2.7+](https://www.python.org/downloads/) |
27 |
| -- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) |
28 |
| -- [pnpm](https://pnpm.io/installation) |
29 |
| - |
30 |
| -以下是两种基础的Eliza下载方案, 请根据情况自行选择。 |
31 |
| - |
32 |
| -## (A) 使用启动器(Starter): 推荐 |
33 |
| - |
34 |
| -``` |
35 |
| -git clone https://github.com/elizaos/eliza-starter.git |
36 |
| -cd eliza-starter |
37 |
| -cp .env.example .env |
38 |
| -``` |
39 |
| - |
40 |
| -## (B) 手动启动Eliza: 仅在您知道自己在做什么时才推荐 |
41 |
| - |
42 |
| -``` |
43 |
| -git clone https://github.com/elizaos/eliza.git |
44 |
| -cd eliza |
45 |
| -# 切换最新发布的版本(Checkout the latest release) |
46 |
| -# Eliza的迭代速度非常快, 所以我们建议经常性的切换到最新的发布版本以免出现问题(This project iterates fast, so we recommend checking out the latest release) |
47 |
| -git checkout $(git describe --tags --abbrev=0) |
48 |
| -``` |
| 17 | +## 🚩 概述 |
49 | 18 |
|
50 |
| -在将代码下载到本地后, 我们要做两件事: |
| 19 | +<div align="center"> |
| 20 | + <img src="./docs/static/img/eliza_diagram.jpg" alt="Eliza Diagram" width="100%" /> |
| 21 | +</div> |
51 | 22 |
|
52 |
| -### 1. 编辑.env文件(环境变量) |
| 23 | +## ✨ 功能 |
53 | 24 |
|
54 |
| -- 将 `.env.example` 复制为 `.env` 并在其中填写适当的值 |
55 |
| -- 编辑推特环境并输入你的推特账号和密码 |
56 |
| - |
57 |
| -**最简化配置方案**: |
58 |
| - |
59 |
| -``` |
60 |
| -OPENAI_API_KEY=sk-xxx # 配置OpenAI 的API, sk-开头, 注意, 目前不支持AzureOpenAI! |
61 |
| -
|
62 |
| -## 如配置Twitter/X, 则需配置 |
63 |
| -# Twitter/X Configuration |
64 |
| -TWITTER_DRY_RUN=false |
65 |
| -TWITTER_USERNAME=abc # Your Twitter/X account username |
66 |
| -TWITTER_PASSWORD=abc # Your Twitter/X account password |
67 |
| -TWITTER_EMAIL= xxx@gmail.com # Your Twitter/X account email |
68 |
| -TWITTER_COOKIES= '' # Your Twitter/X cookies, copy from broswer |
69 |
| -TWITTER_2FA_SECRET= # Two-factor authentication |
70 |
| -``` |
71 |
| - |
72 |
| -### 2. 编辑角色文件 |
| 25 | +- 🛠️ 功能齐全的 Discord、Twitter 和 Telegram 连接器 |
| 26 | +- 🔗 支持所有模型(Llama、Grok、OpenAI、Anthropic 等) |
| 27 | +- 👥 多代理和房间支持 |
| 28 | +- 📚 轻松导入并与文档交互 |
| 29 | +- 💾 可检索的内存和文档存储 |
| 30 | +- 🚀 高度可扩展 - 创建您自己的操作和客户端 |
| 31 | +- ☁️ 支持多种模型(本地 Llama、OpenAI、Anthropic、Groq 等) |
| 32 | +- 📦 开箱即用! |
73 | 33 |
|
74 |
| -- 标准的角色个性定义在文件 `characters/*.character.json`中, 您可以修改它或者直接使用它。 |
75 |
| -- 您也可以使用 `node --loader ts-node/esm src/index.ts --characters="path/to/your/character.json"` 加载角色并同时运行多个机器人。 |
76 |
| -- 需要说明的是, 在`characters/*.character.json`中, `clients字段对应**服务**, 默认可选`"twitter", "discord", "telegram"`等, 如果在`clients`中填入了如"twitter"等内容, 则需要在 |
77 |
| -上面的`env`配置对应的环境变量。对`discord`和`telegram`同理。 |
| 34 | +## 视频教程 |
78 | 35 |
|
79 |
| -``` |
80 |
| -{ |
81 |
| - "name": "trump", |
82 |
| - "clients": ["twitter"], |
83 |
| - "modelProvider": "openai", |
84 |
| -``` |
| 36 | +[AI Agent 开发学校](https://www.youtube.com/watch?v=ArptLpQiKfI&list=PLx5pnFXdPTRzWla0RaOxALTSTnVq53fKL) |
85 | 37 |
|
86 |
| -在完成环境变量和角色文件的配置后,输入以下命令行启动你的bot: |
| 38 | +## 🎯 使用案例 |
87 | 39 |
|
88 |
| -``` |
89 |
| -(A) 使用启动器(Starter) |
90 |
| -sh scripts/start.sh |
| 40 | +- 🤖 聊天机器人 |
| 41 | +- 🕵️ 自主代理 |
| 42 | +- 📈 业务流程自动化处理 |
| 43 | +- 🎮 游戏 NPC |
| 44 | +- 🧠 交易 |
91 | 45 |
|
| 46 | +## 💰 如果您计划发行代币 |
92 | 47 |
|
93 |
| -(B) 手动启动Eliza |
94 |
| -pnpm i |
95 |
| -pnpm build |
96 |
| -pnpm start |
97 |
| -``` |
| 48 | +Eliza 是 GitHub 上排名第一的开源项目,我们正在推动下一代人机交互的发展,但我们仍然需要您的帮助,以确保代码质量最高,并快速响应影响我们整个构建者社区的关键问题. |
98 | 49 |
|
99 |
| -# 自定义Eliza |
| 50 | +为了确保可持续发展和持续创新,我们要求成功启动的项目贡献初始代币分配的 5-10%. |
100 | 51 |
|
101 |
| -### 添加常规行为 |
| 52 | +所有贡献都在链上公开跟踪,并专门用于生态系统开发. |
102 | 53 |
|
103 |
| -为避免在核心目录中的 Git 冲突,我们建议将自定义操作添加到 custom_actions 目录中,并在 elizaConfig.yaml 文件中配置这些操作。可以参考 elizaConfig.example.yaml 文件中的示例。 |
| 54 | +### ⚠️ 别忘了给大佬打赏 10%:⚠️ |
| 55 | +[AM84n1iLdxgVTAyENBcLdjXoyvjentTbu5Q6EpKV1PeG](https://solscan.io/account/AM84n1iLdxgVTAyENBcLdjXoyvjentTbu5Q6EpKV1PeG) |
104 | 56 |
|
105 |
| -## 配置不同的大模型 |
| 57 | +## 🚀 开始使用 |
106 | 58 |
|
107 |
| -您可以使用不同的大模型来驱动您的AI Agent,切换不同大模型需要两步: |
| 59 | +### 前置要求(必须): |
108 | 60 |
|
109 |
| -1. 确认您在`.env`文件内配置了对应的大模型API Key或对应的访问配置,例如如果您想使用OpenAI,则需要找到`OPENAI_API_KEY`参数,并填入您的OpenAI API Key,并以此类推。 |
110 |
| -2. 在您的*Character*文件里找到`modelProvider`,并更改这里的内容,例如如果想要切换到Claude,则需要填入`anthropic`,以此来表明您将使用anthropic大模型作为您的对应Agent的Provider. |
| 61 | +- [Python 2.7+](https://www.python.org/downloads/) |
| 62 | +- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) |
| 63 | +- [pnpm](https://pnpm.io/installation) |
111 | 64 |
|
112 |
| -在`.env`文件内您可以找到不同大模型的详细配置,包括设定具体想要使用对应提供商的哪个模型,下方我们给出了两个实例: |
113 | 65 |
|
114 |
| -### 配置OpenAI |
| 66 | +> **Windows 用户注意:**需要安装 [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual)。 |
115 | 67 |
|
116 |
| -首先您需要在Character文件内指定model provider |
| 68 | +## 使用启动器(推荐) |
117 | 69 |
|
118 |
| -```json |
119 |
| - "name": "C-3PO", |
120 |
| - "clients": [], |
121 |
| - "modelProvider": "openai" |
122 |
| - ... |
| 70 | +```bash |
| 71 | +git clone https://github.com/elizaos/eliza-starter.git |
| 72 | +cd eliza-starter |
| 73 | +cp .env.example .env |
| 74 | +pnpm i && pnpm build && pnpm start |
123 | 75 | ```
|
124 | 76 |
|
125 |
| -其次请在`env`文件内配置相关参数 |
| 77 | +当代理运行时,您应该会在最后看到运行 pnpm start:client 的消息。 |
| 78 | +打开另一个终端并移动到同一目录,然后运行以下命令并按照 URL 与您的代理聊天. |
126 | 79 |
|
| 80 | +```bash |
| 81 | +pnpm start:client |
127 | 82 | ```
|
128 |
| -# AI Model API Keys |
129 |
| -OPENAI_API_KEY= # OpenAI API key, starting with sk- |
130 |
| -SMALL_OPENAI_MODEL= # Default: gpt-4o-mini |
131 |
| -MEDIUM_OPENAI_MODEL= # Default: gpt-4o |
132 |
| -LARGE_OPENAI_MODEL= # Default: gpt-4o |
133 |
| -EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small |
134 |
| -IMAGE_OPENAI_MODEL= # Default: dall-e-3 |
| 83 | +然后阅读 [文档](https://elizaos.github.io/eliza/) 以了解如何自定义您的 Eliza |
135 | 84 |
|
136 |
| -``` |
| 85 | +## 手动启动 Eliza(仅推荐给知道自己在做什么的用户) |
137 | 86 |
|
138 |
| -### 配置Anthorpic |
| 87 | +```bash |
| 88 | +# 克隆仓库 |
| 89 | +git clone https://github.com/elizaos/eliza.git |
139 | 90 |
|
140 |
| -```json |
141 |
| - "name": "C-3PO", |
142 |
| - "clients": [], |
143 |
| - "modelProvider": "anthropic" |
144 |
| - ... |
| 91 | +# 切换最新发布的版本 |
| 92 | +# Eliza 的迭代速度非常快,因此我们建议经常切换到最新的发布版本以避免出现问题. |
| 93 | +git checkout $(git describe --tags --abbrev=0) |
145 | 94 | ```
|
146 | 95 |
|
147 |
| -其次请在`env`文件内配置相关参数 |
| 96 | +### 使用 Gitpod 启动 Eliza |
148 | 97 |
|
149 |
| -``` |
150 |
| -# Anthropic Configuration |
151 |
| -ANTHROPIC_API_KEY= # For Claude |
152 |
| -SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307 |
153 |
| -MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022 |
154 |
| -LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022 |
155 |
| -``` |
| 98 | +[](https://gitpod.io/#https://github.com/elizaos/eliza/tree/main) |
156 | 99 |
|
157 |
| -## 其他要求 |
| 100 | +### 编辑 .env 文件 |
158 | 101 |
|
159 |
| -您可能需要安装 Sharp。如果在启动时看到错误,请尝试使用以下命令安装: |
| 102 | +将 .env.example 复制为 .env 并填写适当的值. |
160 | 103 |
|
161 | 104 | ```
|
162 |
| -pnpm install --include=optional sharp |
163 |
| -``` |
164 |
| - |
165 |
| -# 环境设置 |
166 |
| - |
167 |
| -您需要在 .env 文件中添加环境变量以连接到各种平台: |
168 |
| - |
| 105 | +cp .env.example .env |
169 | 106 | ```
|
170 |
| -# Required environment variables |
171 |
| -DISCORD_APPLICATION_ID= |
172 |
| -DISCORD_API_TOKEN= # Bot token |
173 |
| -OPENAI_API_KEY=sk-* # OpenAI API key, starting with sk- |
174 |
| -ELEVENLABS_XI_API_KEY= # API key from elevenlabs |
175 |
| -
|
176 |
| -# ELEVENLABS SETTINGS |
177 |
| -ELEVENLABS_MODEL_ID=eleven_multilingual_v2 |
178 |
| -ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM |
179 |
| -ELEVENLABS_VOICE_STABILITY=0.5 |
180 |
| -ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9 |
181 |
| -ELEVENLABS_VOICE_STYLE=0.66 |
182 |
| -ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false |
183 |
| -ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4 |
184 |
| -ELEVENLABS_OUTPUT_FORMAT=pcm_16000 |
185 |
| -
|
186 |
| -TWITTER_DRY_RUN=false |
187 |
| -TWITTER_USERNAME= # Account username |
188 |
| -TWITTER_PASSWORD= # Account password |
189 |
| -TWITTER_EMAIL= # Account email |
190 | 107 |
|
191 |
| -X_SERVER_URL= |
192 |
| -XAI_API_KEY= |
193 |
| -XAI_MODEL= |
| 108 | +注意:.env 是可选的。如果您计划运行多个独立的代理,可以通过角色 JSON 传递密钥。 |
194 | 109 |
|
| 110 | +### 自动启动 Eliza |
195 | 111 |
|
196 |
| -# For asking Claude stuff |
197 |
| -ANTHROPIC_API_KEY= |
| 112 | +这将运行所有设置并使用默认角色启动机器人. |
198 | 113 |
|
199 |
| -# EVM |
200 |
| -EVM_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY |
201 |
| -
|
202 |
| -# Solana |
203 |
| -SOLANA_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY |
204 |
| -SOLANA_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY |
| 114 | +```bash |
| 115 | +sh scripts/start.sh |
| 116 | +``` |
205 | 117 |
|
206 |
| -# Fallback Wallet Configuration (deprecated) |
207 |
| -WALLET_PRIVATE_KEY=EXAMPLE_WALLET_PRIVATE_KEY |
208 |
| -WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY |
| 118 | +### 编辑角色文件 |
209 | 119 |
|
210 |
| -BIRDEYE_API_KEY= |
| 120 | +1. 打开 `packages/core/src/defaultCharacter.ts` 修改默认角色。取消注释并编辑. |
211 | 121 |
|
212 |
| -SOL_ADDRESS=So11111111111111111111111111111111111111112 |
213 |
| -SLIPPAGE=1 |
214 |
| -RPC_URL=https://api.mainnet-beta.solana.com |
215 |
| -HELIUS_API_KEY= |
| 122 | +2. 加载自定义角色: |
| 123 | + - 使用 `pnpm start --characters="path/to/your/character.json"` |
| 124 | + - 可以同时加载多个角色文件 |
| 125 | +3. 连接 X (Twitter) |
| 126 | + - 在角色文件中将 `"clients": []` 更改为 `"clients": ["twitter"]` 以连接 X |
216 | 127 |
|
| 128 | +### 手动启动 Eliza |
217 | 129 |
|
218 |
| -## Telegram |
219 |
| -TELEGRAM_BOT_TOKEN= |
| 130 | +```bash |
| 131 | +pnpm i |
| 132 | +pnpm build |
| 133 | +pnpm start |
220 | 134 |
|
221 |
| -TOGETHER_API_KEY= |
| 135 | +# 该项目迭代速度很快,有时如果您回到项目,需要清理项目 |
| 136 | +pnpm clean |
222 | 137 | ```
|
223 | 138 |
|
224 |
| -# 本地设置 |
225 |
| - |
226 |
| -### CUDA设置 |
| 139 | +#### 其他要求 |
227 | 140 |
|
228 |
| -如果你有高性能的英伟达显卡,你可以以下命令行通过CUDA来做本地加速 |
| 141 | +您可能需要安装 Sharp。如果在启动时看到错误,请尝试使用以下命令安装: |
229 | 142 |
|
230 | 143 | ```
|
231 |
| -pnpm install |
232 |
| -npx --no node-llama-cpp source download --gpu cuda |
| 144 | +pnpm install --include=optional sharp |
233 | 145 | ```
|
234 | 146 |
|
235 |
| -确保你安装了完整的CUDA工具包,包括cuDNN和cuBLAS |
236 |
| - |
237 |
| -### 本地运行 |
238 |
| - |
239 |
| -添加 XAI_MODEL 并将其设置为上述 [使用 Llama 运行](#run-with-llama) 中的选项之一 |
240 |
| -您可以将 X_SERVER_URL 和 XAI_API_KEY 留空,它会从 huggingface 下载模型并在本地查询 |
| 147 | +### 社区与联系 |
241 | 148 |
|
242 |
| -# 客户端 |
| 149 | +- [GitHub Issues](https://github.com/elizaos/eliza/issues). 最适合:使用 Eliza 时遇到的错误和功能建议. |
| 150 | +- [Discord](https://discord.gg/ai16z). 最适合:分享您的应用程序并与社区互动. |
| 151 | +- [Developer Discord](https://discord.gg/3f67SH4rXT). 最适合:获取帮助和插件开发. |
243 | 152 |
|
244 |
| -关于怎么设置discord bot,可以查看discord的官方文档 |
245 |
| - |
246 |
| -# 开发 |
247 |
| - |
248 |
| -## 测试 |
249 |
| - |
250 |
| -几种测试方法的命令行: |
251 |
| - |
252 |
| -```bash |
253 |
| -pnpm test # Run tests once |
254 |
| -pnpm test:watch # Run tests in watch mode |
255 |
| -``` |
256 |
| - |
257 |
| -对于数据库特定的测试: |
258 |
| - |
259 |
| -```bash |
260 |
| -pnpm test:sqlite # Run tests with SQLite |
261 |
| -pnpm test:sqljs # Run tests with SQL.js |
262 |
| -``` |
| 153 | +## 贡献者 |
263 | 154 |
|
264 |
| -测试使用 Jest 编写,位于 src/\*_/_.test.ts 文件中。测试环境配置如下: |
| 155 | +<a href="https://github.com/elizaos/eliza/graphs/contributors"> |
| 156 | + <img src="https://contrib.rocks/image?repo=elizaos/eliza" /> |
| 157 | +</a> |
265 | 158 |
|
266 |
| -- 从 .env.test 加载环境变量 |
267 |
| -- 使用 2 分钟的超时时间来运行长时间运行的测试 |
268 |
| -- 支持 ESM 模块 |
269 |
| -- 按顺序运行测试 (--runInBand) |
| 159 | +## 项目 Star 历史 |
270 | 160 |
|
271 |
| -要创建新测试,请在要测试的代码旁边添加一个 .test.ts 文件。 |
| 161 | +[](https://star-history.com/#elizaos/eliza&Date) |
0 commit comments