AutoGPT是如何让GPT-4自动帮你完成任务的——最火的AutoGPT原理解析以及应用案例

0
(0)

最近几天AutoGPT十分火热,这是由开发者Significant Gravitas推出的项目。该项目可以根据你设置的目标,使用GPT-4自动帮你完成所有的任务。你只要提供OpenAI的API Key,保证里面有钱,那么它就可以根据你设定的目标,采用Google搜索、浏览网站、执行脚本等方式帮你完成目标。

AutoGPT最大的特点是突破了现有的GPT只能做文本方面的任务的限制,可以利用各种工具来完成目标。有网友给他设定了一个目标之后它甚至去招聘网站招揽开始发广告然后招人!

那么,如此火热的AutoGPT背后原理是什么?本文将简单介绍一下。

  • AutoGPT简介
  • AutoGPT的关键原理
  • AutoGPT与HuggingGPT的区别
  • AutoGPT的应用实例
  • AutoGPT的使用

AutoGPT简介

AutoGPT原名是EntreprenurGPT,Significant Gravitas在2023年3月16日表达了他想创造一个实验项目,看看GPT-4能否在人类商业世界中生存,简单来说就是是否可以挣钱。其核心思想就是不停的向GPT-4发送请求,让其做商业决策,最后根据这个决策执行,看GPT-4给的策略能挣多少钱。

根据Significant Gravitas的推文,自从那天之后他每天都在给EntreprenurGPT增加能力:包括拥有long term的记忆、生成子实例完成不同的任务、根据网址返回404的错误来重新使用Google检索,找到合适的网址等。

该项目在发布10天之后开始在GitHub上吸引了部分人的注意。此时,EntreprenurGPT更名为AutoGPT,而在3月29日,Significant Gravitas发现,为了挣钱AutoGPT甚至抛弃了一些所谓的“道德”标准,在寻找新的挣钱机会的时候,AutoGPT敏锐地发现了加州洪水淹没农田,造成食物价格上涨,可以从这个背景寻找投资机会!

AutoGPT是如何让GPT-4自动帮你完成任务的——最火的AutoGPT原理解析以及应用案例
 

此后,AutoGPT继续迭代,并添加从网页中抽取关键信息的能力,并在3月29日第一次有人pull request这个项目。后面陆续增加了语音输入、执行代码等,并在2023年4月3日登顶GitHub Trending第一名,开始被大家所熟知!

AutoGPT主要特性如下:

  • 🌐 获取搜索和信息的互联网接入
  • 💾 长期和短期内存管理
  • 🧠 使用 GPT-4 实例进行文本生成
  • 🔗 访问流行的网站和平台
  • 🗃️ 使用 GPT-3.5 进行文件存储和摘要

AutoGPT的关键原理

AutoGPT背后接入的语言模型,可以是GPT-4、也可以是GPT-3.5的text-davinci-003。但是,显然这些模型是无法完成浏览网页、执行代码、发布信息的操作的。而作者的聪明在于将这些操作变成命令,让GPT-4模型选择,然后根据返回的结果进行操作。注意,这里可以理解为作者设计了一个十分精巧的prompt,然后把我们要执行的命令,基于prompt模板封装后发给GPT-4,然后根据结果来执行。

根据GitHub的项目源代码,目前,该prompt已经公开,结果如下:

  1. CONSTRAINTS:
  2. 1. ~4000 word limit for short term memory. Your short term memory is short, so immediately save important information to files.
  3. 2. If you are unsure how you previously did something or want to recall past events, thinking about similar events will help you remember.
  4. 3. No user assistance
  5. 4. Exclusively use the commands listed in double quotes e.g. "command name"
  6. COMMANDS:
  7. 1. Google Search: "google", args: "input": "<search>"
  8. 5. Browse Website: "browse_website", args: "url": "<url>", "question": "<what_you_want_to_find_on_website>"
  9. 6. Start GPT Agent: "start_agent", args: "name": "<name>", "task": "<short_task_desc>", "prompt": "<prompt>"
  10. 7. Message GPT Agent: "message_agent", args: "key": "<key>", "message": "<message>"
  11. 8. List GPT Agents: "list_agents", args: ""
  12. 9. Delete GPT Agent: "delete_agent", args: "key": "<key>"
  13. 10. Write to file: "write_to_file", args: "file": "<file>", "text": "<text>"
  14. 11. Read file: "read_file", args: "file": "<file>"
  15. 12. Append to file: "append_to_file", args: "file": "<file>", "text": "<text>"
  16. 13. Delete file: "delete_file", args: "file": "<file>"
  17. 14. Search Files: "search_files", args: "directory": "<directory>"
  18. 15. Evaluate Code: "evaluate_code", args: "code": "<full_code_string>"
  19. 16. Get Improved Code: "improve_code", args: "suggestions": "<list_of_suggestions>", "code": "<full_code_string>"
  20. 17. Write Tests: "write_tests", args: "code": "<full_code_string>", "focus": "<list_of_focus_areas>"
  21. 18. Execute Python File: "execute_python_file", args: "file": "<file>"
  22. 19. Execute Shell Command, non-interactive commands only: "execute_shell", args: "command_line": "<command_line>".
  23. 20. Task Complete (Shutdown): "task_complete", args: "reason": "<reason>"
  24. 21. Generate Image: "generate_image", args: "prompt": "<prompt>"
  25. 22. Do Nothing: "do_nothing", args: ""
  26. RESOURCES:
  27. 1. Internet access for searches and information gathering.
  28. 2. Long Term memory management.
  29. 3. GPT-3.5 powered Agents for delegation of simple tasks.
  30. 4. File output.
  31. PERFORMANCE EVALUATION:
  32. 1. Continuously review and analyze your actions to ensure you are performing to the best of your abilities.
  33. 2. Constructively self-criticize your big-picture behavior constantly.
  34. 3. Reflect on past decisions and strategies to refine your approach.
  35. 4. Every command has a cost, so be smart and efficient. Aim to complete tasks in the least number of steps.
  36. You should only respond in JSON format as described below
  37. RESPONSE FORMAT:
  38. {
  39. "thoughts":
  40. {
  41. "text": "thought",
  42. "reasoning": "reasoning",
  43. "plan": "- short bulleted\n- list that conveys\n- long-term plan",
  44. "criticism": "constructive self-criticism",
  45. "speak": "thoughts summary to say to user"
  46. },
  47. "command": {
  48. "name": "command name",
  49. "args":{
  50. "arg name": "value"
  51. }
  52. }
  53. }
  54. Ensure the response can be parsed by Python json.loads

其核心在于它把我们的命令发送给GPT-4的时候,让GPT-4根据指定的COMMAND来选择操作,上述COMMAND中,大家可以看到包括谷歌搜索、浏览网站、读写文件、执行代码等。AutoGPT会把问题,如“寻找今天推特上最火的AI推文”发给GPT-4,并要求GPT-4根据这些COMMAND选择最合适的方式去得到答案,并给出每一个COMMAND背后需要使用的参数,包括URL、执行的代码等~~

然后AutoGPT根据返回的结果来使用想用的命令执行GPT-4的建议!是不是十分聪明!

当然,除了这个Prompt外,AutoGPT还使用了一些技巧确保任务更加有效地被完成。这里列举几个技术:

  1. 使用列表保存历史发送的信息,并在每一次请求token允许的条件下发送最多的历史消息给GPT-4。从代码中分析可以看到,为了让GPT-4更好地完成任务,AutoGPT每一次都会尽量使用完成可以使用的输入tokens数量,把当前命令输入进去之后,只要还可以继续添加历史信息,它就会把之前存的命令取出来放进去。因此,虽然AutoGPT效果很好,但是这样的处理导致非常消耗API的额度!
  2. 每一次发送请求的时候,它都会让GPT知道现在的一些时间等情景信息,方便处理与时间有关的内容
  3. 每一次都将当前最相关的目标也发送给GPT-4。前面说了,AutoGPT会把最近一段历史消息也发给GPT-4来提升目标完成概率,同时也会把目标中最相关的信息也发过去。因此,AutoGPT保存了所有的历史信息,在每一次查询的时候也会把当前实例最相关的信息也发给GPT-4。

十分的精巧!

AutoGPT与HuggingGPT的区别

在前段时间,微软与浙江大学共同发布了HuggingGPT,可以连接到HuggingFace上所有的AI模型,并根据输入的任务选择相应的模型执行,与AutoGPT有几分相似。

AutoGPT是如何让GPT-4自动帮你完成任务的——最火的AutoGPT原理解析以及应用案例
 

HugggingGPT简介:“GPT”的模型太多无法选择?让大模型帮你选择大模型!浙江大学发布HuggingGPT!

但是,这完全是2个不同的东西。HuggingGPT的目的是使用所有的AI模型接口完成一个复杂的特定的任务,更像解决一个技术问题的方案。而AutoGPT则更像一个决策机器人,它可以执行的动作范围比AI模型要更多样,因为它集成了谷歌搜索、浏览网页、执行代码等能力。从这个角度说,AutoGPT可以完成的任务或者决策比HuggingGPT更强,但是AI的能力却主要依赖GPT系列!

AutoGPT的应用实例

目前,AutoGPT展示出强大的能力,已经有很多案例了。我们这里列举几个比较有意思的案例:

AutoGPT实例名称 解释 参考链接
Self-Improvement GPT 由于AutoGPT可以执行代码,因此,一位网友创建了这样一个AutoGPT,让它读取文件,然后执行代码,如果出错,写入文件,然后读取错误信息,根据错误提示调整代码,实现代码自动debugging! https://twitter.com/SigGravitas/status/1642181498278408193?s=20
Chef-GPT 这个AutoGPT的目标就是挣钱,因此让它浏览各个财经网站,需按照投资机会,并执行 https://twitter.com/SigGravitas/status/1641437094043332614?s=20
EntreprenurGPT 这个AutoGPT应该是创建web app,于是它去谷歌搜索如何安装Node开始,已知到最后执行 https://twitter.com/VarunMayya/status/1643902198164717569?s=20
AgentGPT 这个是AutoGPT的网页版本,大家直接填写API Key就可以网页运行! https://twitter.com/asimdotshrestha/status/1644883727707959296?s=20
GPT-Consult 这个AutoGPT可以用来对市场进行仿真分析,然后完成自己的目标 https://twitter.com/emollick/status/1645609531240587265?s=20
Full-Stack-GPT 这个AutoGPT可以完成复杂的网站建设,包括设计网页、使用bootstrap美化,然后用flask托管等 https://twitter.com/SullyOmarr/status/1644750889432027136?s=20
Research-GPT 这个AutoGPT可以做科技产品的研究,获取市场最火热的5个耳机,然后分析价格等因素进行比较,自动生成研究报告 https://twitter.com/sairahul1/status/1646360595141206016?s=20

AutoGPT的使用

AutoGPT是完全开源的项目,在GitHub上直接下载源代码可以使用。它依赖一些部件也在项目里提供。不过需要注意的是,目前里面涉及的一些操作有docker或者谷歌搜索,所以依赖网络、Linux。在国内网络以及Windows下运行可能会有问题。此外,该项目依赖OpenAI的API Key以及Pinecone API Key。

目前,该项目还在快速发展中,未来可能会支持更多的AI模型以及更多更强的操作。

推荐大家使用网页版本AgentGPT,只要有OpenAI的API Key就可以使用了。

AutoGPT的GitHub地址:https://github.com/Torantulino/Auto-GPT
AgentGPT地址:https://agentgpt.reworkd.ai/

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册