autogpt 的确揭露了使用 gpt 的正确姿势,原来的我太把 gpt 当成算力有限的人了,以为输出不好那就是我 prompt的问题,我必须把每一步prompt 都写好才行,而忘了他的本质也是一台超大的计算机!
一旦智力来源从人类变成计算机之后,最合理的用法的确是让他用算力来进行递归recursive操作(学过算法导论的同学应该get 到)。
递归过程的每一步用的都是同一个算法,计算机只需要自顶向下不断重复,把堆栈里的结果一步步回溯上去,就能得到最终的答案了。
比如算5!,人的思维本能还是拆成 1x2x3x4x5,而计算机递归的思路是,先把它变成5x4!,发现计算不出结果那就再把 4!拆成 4x3!,一步一步最后拆到 2x1!,接下来就是倒推所有的结果,由于知道了1!,就能算出 2!,然后3!,4!,5!,结果就出来了。
递归不需要你去自底向上的去穷举 1×2×3×4×5 一共要有几个步骤,每个步骤应该怎么做,递归只需要你自顶向下的设计同一个算法,然后计算机自顶向下不断重复就行了。
agentgpt 的递归思路更巧妙,直接在 prompt里面写,如果ai觉得需要创建子任务,就继续创建,如果不需要,就返回:
You are an AI task creation agent.
You have the following objective {goal}.
You have the following incomplete tasks {tasks} and have just executed the following task {lastTask} and received the following result {result}.
Based on this, create a new task to be completed by your AI system ONLY IF NEEDED such that your goal is more closely reached or completely reached.
Return the response as an array of strings that can be used in JSON.parse() and NOTHING ELSE
gpt 是计算机!不是人,要以编程的思维来用它。