本文介绍了如何使用 ai16z 的 Eliza 框架创建一个 AI Agent,特别是针对 Twitter 平台的集成。文章详细讲解了 Eliza 的安装、配置、主要功能、Twitter 连接设置、LLM 模型配置以及如何自定义 AI 角色。此外,还提供了高级用法、安全建议、参考资料以及故障排除等内容,帮助读者快速上手并构建自己的 AI Agent。
这是我的上一篇 AI 开发技巧文章的第二部分, 详细介绍了 AI 代理的新趋势,深入探讨了用例和当前场景以及可用的开发库。
如果你没有看过,请查看这里:AI 代理 + 加密货币:下一个热门技术热潮?
🔥 AI 代理 + 加密货币:下一个热门技术热潮? \ \ AI 代理炒作周期在 AI/开源开发者和加密货币社区中变得紧张 \ \ medium.com
在本文中,我们将安装并构建一个使用 Eliza AI 框架的 AI 代理, 详细介绍其主要功能、与 Twitter 的集成、LLM 模型配置以及自定义 AI 角色。
⚠️ 更新(2025 年 2 月 19 日): 他们更改了他们的 github 帐户,我正在尝试修复文章中的所有链接,它们应该在下面修复,但是如果你遇到损坏的链接,主仓库是:https://github.com/elizaOS/eliza
对于新手/非开发者: 你也可以尝试这个! 但是这可能需要更长的时间,因为你需要一个 Github 帐户和一些你不太熟悉的少量开发内容,但这完全没问题(没有硬核编程)。
到最后,你将为你自己的 Twitter、Telegram 或 Discord 创建自己的自主 AI 代理。 发挥创意! 你是老大! AI 代理可以用于商业、营销、社交/社区营销、金融和交易、回答客户问题等!
让我们深入研究 ai16z 的 Eliza框架, 它使用 Typescript 和 Python,并用 15-20 分钟创建一个 AI 代理。
⚠️ 更新(2025 年 2 月 19 日): 他们更改了他们的 github 帐户,我正在尝试修复文章中的所有链接,它们应该在下面修复,但是如果你遇到损坏的链接,主仓库是:https://github.com/elizaOS/eliza
准备好你的 VSCode、Cursor 或任何你正在使用的 IDE。
我们将详细检查特性, 但让我们通过在 5 分钟内安装和构建来获得一个“快速胜利”。
我们需要从 Eliza github 目录克隆。
## 创建一个工作目录,我首先创建了一个 aiagents 文件夹
$ mkdir aiagents
$ cd aiagents/
$ git clone https://github.com/elizaOS/eliza.git
接下来,我们要下载最新版本
## 更改为 eliza 项目目录
$ cd eliza/
## 检出最新版本
## 建议检出最新版本
$ git checkout $(git describe --tags --abbrev=0)
## 使用 IDE 编辑文件,或使用 nano 或 vim
$ code .
git checkout 的输出,版本可能因你执行此操作的时间而异:
现在我们需要从 package.json 安装(你应位于 eliza/ 目录中):
$ pnpm install
这将安装我们需要的所有软件包。
接下来,我们将需要构建以确保安装正确。
$ pnpm build
如果这对你来说很好,请跳过此步骤,但这是我第一次运行它时实际上遇到了一些小错误。
WARN Unsupported engine: wanted: {“node”:”23.3.0"} (current: {“node”:”v21.7.3",”pnpm”:”9.12.3"})
你至少需要使用 node 23.3。 如果你使用的是 macOS、Windows 或 Linux,则错误可能会有所不同。
因此,要解决 macOS 上的此问题:
$nvm install
Output:
Downloading and installing node v23.3.0...
Downloading https://nodejs.org/dist/v23.3.0/node-v23.3.0-darwin-arm64.tar.xz...
Computing checksum with sha256sum
Checksums matched!
Now using node v23.3.0 (npm v10.5.0)
(可选,如果出现错误) 我确实有另一个小错误, 即我笔记本电脑上的 nvm 未在我的当前 bash shell 环境中设置,并且我还有一个竞争的 node.js 也全局安装了,我必须删除它。 我删除了全局的那个,并且通过在我的 IDE bashrc 代码 ~/.bashrc
中编辑并在 ~/.bashrc
中添加此代码可以轻松解决 shell 问题
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
$ nvm use 23
Now using node v23.3.0 (npm v10.5.0)
$ node -v
v23.3.0
并且... 我们又回到了完成事情的状态。
🥰 感谢阅读! … 🔥 请鼓掌并分享这篇文章,谢谢! 🚀
让我们从安装开始,如果你没有正确的 node 版本,你可能需要重做(pnpm 就像 npm 但更快/更高效,但你可以使用 npm):
$ pnpm i
现在我们构建
$ pnpm build
所以这很好。
让我们快速绕道一下,提醒我们为什么要这样做。
我们可以用 ai16z 的 Eliza 做什么?
在我们继续进行快速入门之前 - 我们可以在这里做什么?
让我们查看主要功能,从主要 GitHub 页面释义:
出于安全考虑,我强烈建议为你的代理创建一个新的 Twitter 帐户,而不是使用你的常规帐户。
仅用于演示,我们需要将密码放入 .env 文件中, 这不是 好的**安全**做法,除非用于本次演示。😁 你也可以尝试使用下面的 cookie 方法(更安全一点),但是目前存在一些问题,我尚未进一步调查。
仅将此临时方法用于测试演示。 重复,不要将你的 Twitter 密码以纯文本形式永久存储在本地 .env 文件中,尤其是现有或更大的 Twitter 帐户或长期使用的密码... 这对于该 Twitter 帐户来说存在安全风险。
好的,现在你有一个新的 AI 代理 gmail 和 X/Twitter 帐户,并且密码已设置
接下来,我们必须设置机器人以能够自动登录到 Twitter。
将你的 .env.example
文件复制到 .env
cp .env.example .env
仅在 .env 中进行更改, 这是 Eliza 代理软件使用的配置文件(不是 .env.example)。 此外,请确保此 .env 位于你的 .gitignore 文件中(它应该已经在其中),这样你就不会错误地将它与你的密码一起提交到 github。
在此部分中,对于 X/Twitter,你只需在 .env 文件中编辑这些内容:TWITTER_USERNAME、TWITTER_PASSWORD、TWITTER_EMAIL
## Twitter/X 配置
TWITTER_USERNAME= # 帐户用户名
TWITTER_PASSWORD= # 帐户密码
TWITTER_EMAIL= # 帐户电子邮件
✅ 提示:或者... 相反,一种更安全的方法,但可能需要更多的工作才能使其正确工作,即通过从 Chrome 开发工具获取 cookie 并将其放在此处来使用此方法:
TWITTER_COOKIES= # 帐户 cookie
你不需要两者都使用,可以使用密码或 cookie。
你还可以在同一文件中调整发布间隔。
## 发布间隔设置(以分钟为单位)
POST_INTERVAL_MIN= # 默认值:90
POST_INTERVAL_MAX= # 默认值:180
POST_IMMEDIATELY=
接下来,让我们连接我们正在使用的 AI 模型。
在同一 .env 文件中,找到包含各种 AI 提供商配置的部分。
我正在使用 OpenAI,但你可以使用许多其他方法和 LLM,它是非常可配置的。 例如,有些人使用 Anthropic Claude,另一些人使用具有免费 API 端点的 Gaia,还有一些人使用 OpenRouter,它就像 LLM 的中介 API 平台,因此你可以切换它们。
在 OpenAI 平台中,我为此项目创建了一个 API 密钥(从 项目 标题下创建项目)。
OpenAI 限制和警报
✅ 提示:对于大规模生产,OpenRouter 非常适合轻松更改为许多不同的 LLM。
但这就是我使用 OpenAI 所做的,我将其保留在 gpt-40-mini 上并插入了我的密钥:
## AI 模型 API 密钥
OPENAI_API_KEY= # OpenAI API 密钥,以 sk- 开头
XAI_MODEL=gpt-4o-mini
进入角色配置文件。
我们需要复制并创建一个新的角色文件。
角色目录位于此处:eliza/characters/
你将看到一些已经在其中的示例。
你会注意到它们有一些共同的元素。 你可以编辑这些内容,以便为 LLM 提供一些关于如何进行帖子和交互的背景信息。
这是 Trump 的一个,扫描一下并查看一些设置选项:
✅ 提示:所有角色组件的说明都在这里:https://ai16z.github.io/eliza/docs/core/characterfile/
将该文件复制到一个新文件中,用于你要创建的角色,然后删除所有库存角色内容并添加你自己的内容。
✅ 提示:你可以使用 ChatGPT 或其他 AI 来帮助你填写此内容!
一旦你填写完所有内容,我还将我的 modelProvider 更改为 openai(查看其他文档)“modelProvider”: “openai”,
"modelProvider": "openai",
✅ 提示:如果你将其保留为空数组 []
,它将只在你的终端上打开一个聊天,这对于测试和调试很有用。
✅ 提示:此外,完成后,我建议将所有其他角色文件移动到存档目录,并从角色目录中删除。 我注意到代理似乎将其他角色记住了,并且它在某个时候导致了我的 OpenAI 错误(Token太多)。 我尚未对此进行调查。
🥰 感谢阅读! … 🔥 请鼓掌并分享这篇文章,谢谢! 🚀
现在我们必须更新 typescript 文件以确保调用正确的角色。
老实说,我还没有玩过很多(截至 12 月 14 日),似乎有很多选项,但我只是让它工作并进入了其他方面... 所以这可能是一个很好的领域来探索更多。
我可以告诉你我做了什么,它主要与 Nader Dabit 视频 相关... 在本文中,我观看了 3 个不同的视频,自己完成了它并添加了我自己的经验和技巧!
以下是我所做的文件更新,正如 Nader Dabit 的视频中所建议的那样:
agent/src/mainCharacter.ts
import {
Character,
ModelProviderName,
defaultCharacter,
Clients,
} from "@ai16z/eliza";
export const mainCharacter: Character = {
...defaultCharacter,
name: "your_character_name",
modelProvider: ModelProviderName.OPENAI,
clients: [Clients.TWITTER],
// Add more customizations here
};
你将需要查看类型提示和文档以输入你的提供程序,我的提供程序是 modelProvider: ModelProviderName.OPENAI,
然后我们需要将此 mainCharacter
导入到主 index.ts 中 - 在大约第 50 行的导入末尾添加此行
agent/src/index.ts
import { mainCharacter } from "./mainCharacter";
在此部分中,将 defaultCharacter 替换为 mainCharacter(应该在第 188 行左右)
if (loadedCharacters.length === 0) {
elizaLogger.info("No characters found, using default character");
loadedCharacters.push(mainCharacter);
}
在第 481 行左右,将 defaultCharacter 替换为 let characters = [mainCharacter];
let characters = [mainCharacter];
if (charactersArg) {
characters = await loadCharacters(charactersArg);
}
一旦我们完成了所有这些操作,它就非常简单了!
我们所要做的就是
pnpm start
在某个时候,我遇到了一个错误,我发现如果我正在使用一个代理,那么通过命名该代理角色从 CLI 启动它会更容易。
因此,如果你在使正确的角色工作时遇到任何问题:
pnpm start --characters="characters/mycharactername.character.json"
将 mycharactername.character.json
替换为你的角色名称文件。 这可以确保你被定向到正确的角色。
你应该在 cli 中看到一些诊断消息,例如:
✅ 记住,如果你将字符文件中的提供程序留空为 []
,那么它将不会连接到 twitter,它只会显示为你的终端窗口中处于活动状态的代理。
✅ 这将创建一个仅限本地的服务器,你需要保持 cli 打开才能使其持续运行,如果你关闭笔记本电脑或 cli 窗口,它将停止运行。
✅ 对于生产, 你可以将其部署到应用程序托管服务(如 Vercel)或云托管,以便它可以在云中独立运行。
我遇到的其他错误:
我为营销创意创建的 AI 代理之一是 🤖1DayOS,并且仍然需要进行微调,而不是这样做,我正在写这篇文章😁!!!! https://x.com/1DayOSAI
1DayOS 营销代理 - https://x.com/1DayOSAI
上面的快速入门教程应该能很好地开始!
该文档提供了一些高级用法的技巧,因为我们只完成了入门的基础知识。
以下是你还可以探索的更多项目,请参阅 高级:
ImageDescriptionService
进行复杂的图像分析,支持本地和云处理、CUDA 加速和 GIF 帧提取,从而实现详细的图像描述。Eliza 的自主加密货币交易系统还提供了几个高级功能,我没有时间详细检查这一点,但对于交易者和金融应用程序来说,它看起来很棒:
该文档涵盖了要采取的其他秘密/安全措施:https://elizaos.github.io/eliza/docs/guides/secrets-management/
文档中涵盖的内容:
以下是一些可以帮助你深入了解更多细节并解决问题的资源:
我的部分研究来自这些教程... 我跳过了几个教程 + 文档 + 我自己的试验和错误... 来研究这篇文章。
[🚀 注意:哎呀!!! 😅我忘记 Nader 还在他的标题中提到了“15 分钟”(因为我的标题最初是这样)... 我不是 _故意_使用相似的标题,一定是潜意识的,从标题中删除了 😅]
以下是我解决的一些错误,没有什么大问题,主要与我自己的环境或错误有关,但这些可能会帮助你。
node -v
进行检查,并在进行 node.js 配置更改时重新启动你的终端窗口。pnpm cache clean
并重新运行 pnpm install
和 pnpm build
暂时就这样,我希望你喜欢这篇文章。
我们将在这个充满魅力且快速增长的领域做更多的事情。
🥰 感谢阅读! … 🔥 请鼓掌并分享这篇文章,谢谢! 🚀
在 SystemsArchitect.io 商店 查看我的云工程电子书, 所有这些电子书对于部署 Solana 应用程序和支持离链应用程序/云基础设施的 AI 代理也可能很有用:
https://store.systemsarchitect.io/
🔥 AI 代理 + 加密货币:下一个热门技术热潮? \ \ AI 代理炒作周期在 AI/开源开发者和加密货币社区中变得紧张 \ \ medium.com
我是一名云架构师、高级开发人员和技术负责人,喜欢使用创新解决方案解决高价值挑战。
我总是乐于讨论项目。 如果你需要帮助,有机会或只是想聊天,你可以通过 csjcode at gmail 与我联系。
我在软件开发领域工作了 20 多年,既有 企业 环境,如 NIKE 和最初的 MP3.com,也有像 FreshPatents、SystemsArchitect.io、API.cc 和 Instantiate.io 这样的 初创公司。
我的经验范围从 云电子商务、API 设计/实施、 无服务器、用于开发的 AI 集成、内容管理、前端 UI/UX 架构 和登录/身份验证。 我会举办技术讲座、教程并分享架构软件的文档。 之前还持有 AWS 解决方案架构师认证。
云电子书商店— 以超值的价格查看云架构师和工程书籍,“云指标”(800 多页)和“云审计”(800 多页)等 — https://store.systemsarchitect.io
云审计最佳实践:21 项必备 AWS 服务(850 多页) \ \ 本云最佳实践指南旨在帮助你为你的应用程序和云执行多种类型的云审计... \ \ store.systemsarchitect.io
🤖 AI 开发技巧 #6:AI 生成复杂的数据库查询和列表
分步说明:从我们的数据库模式中 AI 生成的更复杂的查询
AI 开发技巧 #6:AI 生成复杂的数据库查询和查询列表 \ \ 分步说明:从我们的数据库模式中 AI 生成的更复杂的查询 \ \ medium.com
- 原文链接: medium.com/ai-dev-tips/c...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!