一个能让自主智能体协同工作以完成任务的框架。
你需要至少 Node 10 版本。
npm install
将项目根目录下的 .env.template 文件重命名为 .env,并填入你的密钥:
OPENAI_API_KEY=... # 从 https://platform.openai.com/account/api-keys 获取
# 以下配置使智能体能够进行网络搜索:
GOOGLE_SEARCH_ENGINE_ID=... # 在 https://cse.google.com/cse/all 创建自定义搜索引擎
GOOGLE_API_KEY=... # 从 https://console.cloud.google.com/apis/credentials 获取
AGENT_DELAY=... # 可选,每次智能体行动后的延迟(毫秒)
你还需要为你的 Google Cloud 账户启用 Google Custom Search API,例如:https://console.cloud.google.com/apis/library/customsearch.googleapis.com
启动程序:
npm run start [# of agents] [gpt-3.5-turbo|gpt-4]
通过控制台与智能体交互。你输入的任何内容都将作为消息发送给当前所有智能体。
启动新智能体后,你经常会看到它们犯一些错误并产生报错:
help 命令了解操作参数之前,就尝试使用某个操作% ff9d7713-0bb0-40d4-823c-5a66de48761b)这是它们学习自我操作过程中的正常适应期。它们通常会从这些错误中学习并恢复,不过 gpt-3.5-turbo 智能体有时会陷入无尽的错误循环,无法找出问题所在。强烈建议不要让智能体无人值守,因为这种无限循环会快速消耗你的令牌(尤其是当它们卡在像 writeFile 这样高令牌消耗的操作上时)。
每个智能体将其状态存储在 .store 目录下。例如,智能体 1 拥有:
.store/1/memory
.store/1/goals
.store/1/notes
你可以简单地删除这些文件中的任何一个,或者整个智能体文件夹(或整个 .store 目录),以在运行之间选择性地清除你想要的任何状态。否则,智能体将在重启时从上次离开的地方继续。
这样做的一个好处是,当你想调试某个智能体遇到的问题时,可以删除其内存中问题发生点之后的事件,修改代码,然后重启它们,从而有效地重放那个时刻,直到你修复了错误。你也可以要求智能体实现一个功能,一旦它们完成,你可以重启,告诉它们你已经加载了该功能,并要求它们进行测试。