• 元宇宙:本站分享元宇宙相关资讯,资讯仅代表作者观点与平台立场无关,仅供参考.

技术解读 Eliza 工作原理:Provider 和 Action

  • 2024年12月30日 17:36

作者:0xhhh来源:X,@hhh69251498

Eliza原理介绍这个系列会分成三部分来写:

Provider和Action的运行原理

Evaluator的运行原理

ElizaMemory的设计思想

当前是第一篇文章主要介绍:Provider和Action的运行原理1.Eliza的架构如下,主要分为3个部分

最上层抽象成了Provider和Evaluator以及Action,分别对应人类获取信息的能力(眼睛获取视觉信息,耳朵获取听觉信息等等),以及人类根据信息的执行能力(比如通过市场信息判断BTC未来还有),还有Evaluator只类似人类的思考能力,通过思考从海量的信息中提取知识从而形成个人的认知。

最下层是不同的AIModel:目前Eliza框架支持了市面上大多数的AIModel,比如openai,claude,gemini,gork,xai等等,这个类似人类的大脑是所有做出决策的关键处理模块。

memory则是让通过Eliza框架启动的AiAgent拥有跳出ContentLimitation限制的能力,因为AI既可以在Provider阶段把从环境中获取的信息和Action执行后结果的信息压缩之后存储进入Memory之中;并且也可以通过Evaluator提取跟人类对话或者其他任意交互过程中一些关键信息(这个会在下一个Thread里详细介绍)

比如下面的例子:

HowtoinvokeProvider(Eliza框架内AI如何通过Provider获取信息)?

目前Eliza框架内对于Provider,虽然有提供对应的接口抽象,但是目前Provider的调用方式并不是模块化的,还是有特定的Action根据自己的信息需求直接调用对应的Provider进行获取,关系图如下:

WhyNeedAction?(Eliza框架为什么需要抽象出Action?)

假如我跟AI说:我的私钥

0xajahdjksadhsadnjksajkdlad12612

这里面有10个sol,你能不能帮我买100个Ai16z的Tokens。

Claude的回复如下:

因此我们可以把AI给予的代码封装成Eliza的一个Action,并且给一些Prompt的Example,来帮助AI理解什么时候我该调用这个Action。

(而且在真实的使用场景里我们想做的操作比这个要复杂很多,比如一笔Swap交易我们希望有滑点限制,那么这些条件限制交给AI大模型去完成的时候我们其实很难保证执行过程后每一个要素都可以满足我们的要求)。

HowtoInvokeAction?(Eliza框架如何让AI调用Action)

下面就是Eliza框架中,一个在用来让AIModel在Pumpfun中创建一个memeTokens并且买入一定价值的该memeTokens的PromptExample,当我们在对应的Action中给出这些Example之后,AIAgent就知道,之后跟人类的交互过程中出现类似的内容的时候就会因为我们提供的这类PromtExapmle知道要调用执行哪个Action。

Eliza框架Action具体执行了什么?

https://github.com/elizaOS/eliza/blob/main/packages/plugin-solana/src/actions/pumpfun.ts#L279

具体还是以PumpfunAction的这个例子来解释,它的流程如下:

从WalletProvider和TokenProvider获取信息

生成创建MemeToken以及购买MemeToken的交易

对交易进行签名并发送到链上

调用callback函数对Action执行后的结果进行处理。

其实核心就是两部分,一部分就是从Provider获取信息,然后生成要执行动作的操作函数。

怎么让AGI理解它调用的Action做了什么?

这个问题如果没有解决,那么我们就无法让AI理解并执行有关联性的任务。

答案如下:我们执行Action之后会用文本来总结这个动作产生了什么结果,并且把这个结果加入到AI的memory之中。

细节如下:Action的Handle函数第四个参数是一个callback函数,我们会把callback函数定义成把执行结果加入到AIModel的Memory模块中。

callback函数的定义如下:

Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM