学习笔记17《LangChain实战课:探索自治代理(Autonomous Agents)》
课程概览
在LangChain实战课的最新一课中,我们探索了自治代理(Autonomous Agents)的世界,这些代理能够独立执行任务,并持续追求长期目标。
自治代理简介
自治代理的设计初衷是能够独立地执行任务,并持续地追求长期目标。在LangChain的代理、工具和记忆这些组件的支持下,它们能够在无需外部干预的情况下自主运行。
模拟代理 vs 自治代理
- 模拟代理:在模拟环境中进行角色扮演,模拟特定场景或行为。
- 自治代理:在真实世界中独立执行任务,追求长期目标。
知名自治代理项目
AutoGPT
- 开源的自主AI代理,基于OpenAI的GPT-4语言模型。
- 自动链接多个任务,实现用户设定的大目标。
- 与互联网集成,提供实时数据访问。
- 技术特点:短期记忆管理、多模态输入处理。
BabyAGI
- 自主任务驱动AI系统,使用OpenAI的GPT-4语言模型。
- 根据设定的目标生成、组织、确定优先级以及执行任务。
- 利用Pinecone向量搜索存储和检索任务结果。
HuggingGPT
- 工作流程包括任务规划、模型选择、任务执行和响应生成。
- 根据用户请求自动生成计划,并使用外部模型处理多个复杂的AI任务。
实战演练:BabyAGI的实现
通过LangChain完成一个BabyAGI的实现,自动创建、优先级排序和执行任务。
导入相关库
import os
from collections import deque
from typing import Dict, List, Optional, Any
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.embeddings import OpenAIEmbeddings
from langchain.llms import BaseLLM, OpenAI
from langchain.vectorstores.base import VectorStore
from pydantic import BaseModel, Field
from langchain.chains.base import Chain
from langchain.vectorstores import FAISS
import faiss
from langchain.docstore import InMemoryDocstore
初始化向量存储和嵌入模型
embeddings_model = OpenAIEmbeddings()
embedding_size = 1536
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(embeddings_model.embed_query, index, InMemoryDocstore({}), {})
定义任务生成链
class TaskCreationChain(LLMChain):
# 省略具体实现...
定义任务优先级链
class TaskPrioritizationChain(LLMChain):
# 省略具体实现...
定义任务执行链
class ExecutionChain(LLMChain):
# 省略具体实现...
定义BabyAGI主类
class BabyAGI(Chain, BaseModel):
# 省略具体实现...
主执行部分
if __name__ == "__main__":
OBJECTIVE = "分析一下北京市今天的气候情况,写出鲜花储存策略。"
llm = OpenAI(temperature=0)
verbose = False
max_iterations: Optional[int] = 6
baby_agi = BabyAGI.from_llm(llm=llm, vectorstore=vectorstore,
verbose=verbose,
max_iterations=max_iterations)
baby_agi({"objective": OBJECTIVE})
总结
本节课中我们介绍了Auto-GPT、BabyAGI以及HuggingGPT,这些自治代理的代表,旨在创建更加普适和强大的算法,这些算法能够处理各种任务,并在没有明确编程指令的情况下自我改进。
思考题
- 阅读AutoGPT的细节,并构造自己的AI代理。
- 阅读HuggingGPT的细节,并构造自己的AI代理。
期待在留言区看到你的分享,如果觉得内容对你有帮助,也欢迎分享给有需要的朋友!最后如果你学有余力,可以进一步学习下面的延伸阅读。