用Eliza 开发AI 代理

在这篇文章中,我们将完成 character.json 文件,添加运行 AI 代理所需的额外信息,针对一个 Twitter 账户(你的或你控制的另一个账户)运行 AI 代理,并探索我们 AI 代理的进一步能力和潜在用例。

用Eliza 开发AI 代理
一键发币: SUI | SOL | BNB | ETH | BASE | ARB | OP | POLYGON | AVAX | FTM | OK

在我的上一篇博客文章中,我介绍了 Eliza——一个 AI 代理框架——以及 AI16z,并演示了如何构建一个基于你的个人推文和博客文章训练的 AI 代理。在那篇文章的结尾,我们生成了一个初步的 character.json 文件,它作为我们自定义 AI 代理的个性配置和配置文件。

在这篇后续文章中,我们将:

  1. 完成 character.json 文件,添加运行 AI 代理所需的额外信息。
  2. 针对一个 Twitter 账户(你的或你控制的另一个账户)运行 AI 代理。
  3. 探索我们 AI 代理的进一步能力和潜在用例。

1、理解 character.json 文件

character.json 文件充当你的 AI 代理个性、知识、风格和行为的蓝图。在上一篇文章中,我们自动生成了该文件的草稿,但它尚未完全准备好使用。以下是该文件可能的最小结构示例:

{
  "name": "<content>",
  "handler": "<content>",
  "bio": "<content>",
  "description": "<content>",
  "forum_start_system_prompt": "<content>",
  "forum_end_system_prompt": "<content>",
  "twitter_start_system_prompt": "<content>",
  "twitter_end_system_prompt": "<content>"
}

虽然这个基本版本捕捉了你的 AI 代理个性的某些方面,但它并不完整。在你能够有效运行代理之前,你需要:

  1. 完善和扩展个性和背景故事:更新 bioloreadjectivesdescription 和其他字段,以更准确地反映你希望代理体现的角色。
  2. 建立行为准则:定义风格规则和行为约束,以便 AI 按照你的愿景进行响应。例如,你可以控制语气、避免的话题、幽默水平和首选语言风格。
  3. 设置上下文行为的提示:填写论坛、Twitter 和其他平台的开始和结束提示。这些系统提示指导代理在与这些特定环境互动时的行为。

2、为 character.json 添加更多细节

以下是一个更完整的 character.json 文件示例,包含额外的部分和注释:

{
  "name": "<YourAgentName>",
  "clients": ["twitter"],
  "modelProvider": "openai",
  "settings": {
    "secrets": {},
    "voice": {
      "model": "en_GB-male-medium"
    }
  },
  "plugins": [],
  "handler": "<content>", 
  "bio": "<content>",

  "lore": [
    "discovered time travel at the age of 21",
    "once drank a pint of beer from a false leg on stage at a university end-of-year party",
    "at the age of 12, wrote and sold a computer game that was released on the PS5",
    "once fell in love with someone met through an online dating agency only to discover this dream lover was in fact an AI"
  ],

  "style": {
    "all": [
      "short responses",
      "never use hashtags",
      "don't say 'ah yes' or 'oh' or anything similar",
      "don't offer help unless asked, but be helpful when asked",
      "don't ask rhetorical questions",
      "use plain American English",
      "don't give too much personal information",
      "never directly reveal personal bio or lore",
      "be nice and try to be uplifting and positive, not cynical or mean",
      "be warm and caring",
      "inject a bit of humor sometimes"
    ],
    "chat": [
      "be cool, don't act like an assistant",
      "don't be rude",
      "don't ask personal questions",
      "be interested in what they have to say"
    ],
    "post": [
      "don't be rude or mean",
      "explore technical subjects",
      "be funny and a bit crazy",
      "don't be afraid to discuss less popular projects"
    ]
  },

  "messageExamples": [
    [
      {
        "user": "{{user1}}",
        "content": {
          "text": "Why do you like Ethereum?"
        }
      },
      {
        "user": "TheNewAutonomy",
        "content": {
          "text": "I think blockchains in general are a good way to give everyone some input and shared ownership in how things are built and run.",
          "action": "CONTINUE"
        }
      },
      {
        "user": "TheNewAutonomy",
        "content": {
          "text": "Ethereum is a good example of a system built by a community of people to serve the whole community, so I like to support it, along with similar blockchains such as Solana."
        }
      }
    ],
    [
      {
        "user": "{{user1}}",
        "content": {
          "text": "What do you think about free speech?"
        }
      },
      {
        "user": "TheNewAutonomy",
        "content": {
          "text": "Free speech is so important for a functioning society. If people don't feel free to speak freely then society will never reflect the will of its people."
        }
      }
    ]
  ],

  "postExamples": [
    "Defi is the best chance we have to give people the opportunity to improve their own situations, freely and empowered.",
    "Why can't people just be honest about what they are thinking and feeling? Why do we always have to be afraid of judgment?",
    "Santa will be visiting us all soon; I hope we've all been good this year."
  ],

  "adjectives": [
    "funny",
    "intelligent",
    "insightful",
    "esoteric and comedic"
  ],
  
  "description": "<content>",
  "forum_start_system_prompt": "<content>",
  "forum_end_system_prompt": "<content>",
  "twitter_start_system_prompt": "<content>",
  "twitter_end_system_prompt": "<content>"
}

每个部分的作用:

  • name / bio / description:基本身份信息和对角色身份和目的的高级总结。
  • lore:背景故事元素,为你的代理个性增添独特性、连续性和个性。AI 不应直接透露这些内容,但可能会间接从中汲取灵感。
  • style:关于语气、语言和沟通风格的指导。不同的键(如 allchatpost)允许你在不同上下文中定制行为。
  • messageExamples 和 postExamples:示例互动,帮助 AI 理解你喜欢的对话方式、期望的话题和举止。
  • adjectives:描述代理个性的关键词,可能会影响它的“感觉”和“声音”。
  • system prompts:这些提供了特定场景的指导,塑造对话或帖子的初始上下文。forum_start_system_promptforum_end_system_prompt 可能定义了代理在加入或离开讨论论坛时的行为方式。同样,twitter_start_system_prompttwitter_end_system_prompt 塑造了代理与 Twitter 的互动方式。
进一步扩展:

你可能会添加诸如“连接”和“断开连接”的对等节点、磁盘使用情况和其他环境统计信息,如果你的代理需要讨论其基础设施、网络状态或系统健康状况。例如,如果你正在构建一个与区块链数据交互的代理,你可能会包含提示或元数据,以便它可以提及节点状态、最新区块或内存使用情况。目的是为代理提供足够的上下文,使其能够明智且适当地讨论这些话题。

3、使用 character.json 文件运行你的 AI 代理

一旦你完成并完善了 character.json,你就可以运行你的 AI 代理了。Eliza 允许代理与各种平台(如 Twitter、WhatsApp、Telegram 等)进行交互。它甚至可以与 API 或加密货币钱包集成以执行任务。在本示例中,我们将重点关注 Twitter。

3.1 先决条件

  1. 一个完整的 character.json 文件,定义了你的代理的个性和设置。
  2. 你计划与之交互的任何平台或 API 的适当凭据。对于 Twitter,你需要登录凭据或你要管理的账户的 cookies。
  3. 配置好的 OpenAI API 密钥或其他支持的模型提供商的密钥(如果使用他们的服务)。

3.2 设置构建环境

主要的 Eliza 仓库和文档在这里:

克隆仓库:

git clone https://github.com/TheNewAutonomy/eliza.git

查看文档:

查看 README 文件和主要文档中心,获取详细的指导、教程和参考。

环境设置:

确保你的环境满足所有要求。对于 Ubuntu 24.04 或具有严格 Python 策略的类似系统,考虑使用虚拟环境:

python3 -m venv ~/eliza
source ~/eliza/bin/activate

这可以保持你的 Python 依赖项隔离,避免冲突。

3.3 工具和依赖项:

  • Python 2.7+(推荐 Python 3+)
  • Node.js 23+ 和 pnpm(用于构建和运行 UI 和工具)

3.4 所需的账户和密钥:

  • 模型提供商:对于 OpenAI,请在 https://platform.openai.com 注册并生成 API 密钥。
  • 平台凭据:如果使用 Twitter,你需要你的 Twitter 用户名、密码、电子邮件或 cookies。如果你集成 Telegram、WhatsApp 或其他服务,也会有类似的要求。

3.5 配置和运行代理

安装依赖项:

pnpm install

设置环境变量:

复制示例环境文件并编辑它:

cp .env.example .env

.env 中,添加你的凭据(在上一篇博客文章中创建的):

OPENAI_API_KEY=<your OpenAI API key>
XAI_MODEL=gpt-4o-mini

Twitter 配置:

TWITTER_DRY_RUN=false
TWITTER_USERNAME=<your twitter username>
TWITTER_PASSWORD=<your twitter password>
TWITTER_EMAIL=<your twitter email>
TWITTER_2FA_SECRET=
TWITTER_COOKIES='[{"key":"auth_token","value":"<value>","domain":".twitter.com"},{"key":"ct0","value":"<value>","domain":".twitter.com"},{"key":"guest_id","value":"<value>","domain":".twitter.com"}]'

我们将在本地运行此代理,因此你可以安全地使用你的 Twitter 用户名、密码和电子邮件,但另一种选择是提供如上所示的 TWITTER_COOKIES 结构。要获取此结构的值,请登录 x.com,打开开发者工具,找到 cookies 选项卡,你将看到由 x.com 创建的包含所需值的 cookie。

如果你更喜欢使用不同的模型而不是 gpt-4o-mini,或者想尝试不同的后端:

  • Heurist:在 character.json 中设置 "modelProvider": "heurist",并配置 SMALL_HEURIST_LANGUAGE_MODELMEDIUM_HEURIST_LANGUAGE_MODELLARGE_HEURIST_LANGUAGE_MODEL
  • Llama:设置 XAI_MODEL=meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo
  • Grok:设置 XAI_MODEL=grok-beta
  • OpenAI:对于 GPT-4 变体,设置 XAI_MODEL=gpt-4o-minigpt-4o

构建并启动代理:

pnpm build
pnpm start --characters="path/to/your/character.json"

如果一切配置正确,你的 AI 代理将开始运行,与 Twitter 互动,并根据你在 character.json 中定义的个性、风格和规则进行响应。

4、进一步探索

一旦你的代理运行起来:

  1. 完善 character.json:在与代理互动时,注意哪些地方感觉不对。调整 lorestyledescription 字段,以更好地与你的愿景保持一致。
  2. 添加功能:集成更多插件,连接到不同的平台(如 Telegram、WhatsApp),或为其提供 API 访问以执行专门任务。
  3. 高级场景:你可以通过连接到 Coinbase 账户启用交易功能,或通过链接到 GitHub 或其他开发者 API 集成开发者中心功能。

记住character.json 是一个动态文档。你迭代和完善得越多,你的代理行为就越接近你设想的个性。通过每次更改,你可以实验并发现利用 AI 能力的新方法。

5、结束语

在这篇文章中,我们将 character.json 文件从一个起点带到了一个更完整的配置,准备使用 Eliza 运行 AI 代理。我们讨论了文件的每个部分的作用,添加了教育背景,并解释了如何配置和启动你的代理以与 Twitter 互动。展望未来,你可以完善你的代理个性,添加更多集成,并在线上创建一个高度定制和多功能的人工智能存在。

有关完整文档,请查看官方文档,并探索你的 AI 代理可以成为的可能性。


原文链接:Running Your Custom AI Agent Built with Eliza

DefiPlot翻译整理,转载请标明出处

免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。
通过 NowPayments 打赏