AutoGPT vs LangChain Agent:两大Agent框架深度对比与选型指南
AutoGPT vs LangChain Agentï¼ä¸¤å¤§Agentæ¡æ¶æ·±åº¦å¯¹æ¯ä¸éåæå
å¼è¨ï¼AI Agent浪潮ä¸çæ¡æ¶ä¹äº
2023年以æ¥ï¼ä»¥AutoGPTåLangChain为代表çAI Agentæ¡æ¶è¿ éå´èµ·ï¼æä¸ºå¤§æ¨¡ååºç¨è½å°çæ ¸å¿åºç¡è®¾æ½ãæ ¹æ®GitHubæ°æ®ï¼AutoGPTå¨åå¸çç两个æå ææ æ°çªç ´15ä¸ï¼åä¸åå²çºªå½ï¼èLangChainä½ä¸ºææ©ç³»ç»åå°è£ LLMåºç¨å¼åæµç¨çæ¡æ¶ï¼å·²æä¸ºä¼ä¸çº§Agentå¼åçé»è®¤éæ©ã对äºå¼åè èè¨ï¼å¦ä½å¨è¿ä¸¤å¤§æ¡æ¶ä¸ååºæ£ç¡®éåï¼ç´æ¥å½±å项ç®çææ¯è·¯çº¿åé¿æç»´æ¤ææ¬ãæ¬æå°ä»æ¶æè®¾è®¡ãæ ¸å¿è½åã代ç å®è·µãéç¨åºæ¯ç维度ï¼å¯¹ä¸¤è è¿è¡æ·±åº¦å¯¹æ¯åæã
ä¸ãæ¶æè®¾è®¡ç念对æ¯
1.1 AutoGPTï¼èªä¸»ä»£ççèå¼é©å½
AutoGPTçæ¶ææ ¸å¿å´ç»"èªä¸»ä»£çï¼Autonomous Agentï¼"è¿ä¸ç念æå»ºã宿¨¡æäººç±»è§£å³é®é¢çæç»´è¿ç¨ï¼èµäºå¤§è¯è¨æ¨¡åæç»å¾ªç¯çå³çè½åââæ¥æ¶ç®æ ãæè§£ä»»å¡ãæ§è¡æä½ãè§å¯ç»æãåæä¿®æ£ï¼ç´è³ç®æ è¾¾æãå ¶æ ¸å¿æ¶æå å«ä»¥ä¸ç»ä»¶ï¼
- ä»»å¡éåï¼Task Queueï¼ï¼éç¨ä¼å 级éå管çå¾ æ§è¡çä»»å¡ï¼æ¯æä»»å¡çå¨ææ·»å ä¸è°åº¦
- é¿æè®°å¿ï¼Long-term Memoryï¼ï¼éè¿åéæ°æ®åºï¼å¦ChromaãPineconeï¼åå¨åå²ä¸ä¸æï¼çªç ´å次对è¯çTokenéå¶
- å·¥å ·éï¼Toolsï¼ï¼éææç´¢å¼æãæä»¶æä½ãä»£ç æ§è¡ãAPIè°ç¨çå¤é¨å·¥å ·
- èªå¾ªç¯æºå¶ï¼Self-loopï¼ï¼éè¿
whileå¾ªç¯æç»è¿ä»£ï¼ç´å°æ»¡è¶³ç»æ¢æ¡ä»¶
# AutoGPTæ ¸å¿å¾ªç¯ä¼ªä»£ç 示æ
class AutoGPT:
def run(self, goal: str):
while not self.should_terminate():
# 1. ä»è®°å¿åä»»å¡éåè·åä¸ä¸æ
context = self.memory.get_relevant_context(goal)
# 2. çææèï¼Thoughtï¼
thought = self.llm.generate_thought(goal, context)
# 3. çæè¡å¨ï¼Actionï¼
action = self.llm.generate_action(thought)
# 4. æ§è¡è¡å¨å¹¶è·åè§å¯ç»æ
observation = self.execute_action(action)
# 5. å°è§å¯ç»æåå
¥è®°å¿
self.memory.add(f"Action: {action}\nObservation: {observation}")
# 6. è¯ä¼°æ¯å¦å®æç®æ
if self.is_goal_achieved(goal, observation):
break
1.2 LangChain Agentï¼é¾å¼ç¼æçå·¥ç¨åæ¹æ¡
LangChainçAgentæ¶æåä½ç°äº"ç»åä¼äºç»§æ¿"ç设计å²å¦ãå®ä¸è¿½æ±å®å ¨èªä¸»ç代çï¼èæ¯å°å¤§æ¨¡ååºç¨æå为å¯å¤ç¨ç"é¾ï¼Chainï¼"å"å·¥å ·ï¼Toolï¼"ï¼éè¿æç¡®çé ç½®åç¼æå®ç°ç¹å®åè½ãå ¶æ¶æå屿¸ æ°ï¼
- 模åå±ï¼Modelsï¼ï¼ç»ä¸å°è£ åç§LLMæ¥å£ï¼OpenAIãAnthropicãæ¬å°æ¨¡åçï¼
- æç¤ºå±ï¼Promptsï¼ï¼æä¾æç¤ºæ¨¡æ¿ç®¡çãå°æ ·æ¬ç¤ºä¾ãè¾åºè§£æçåè½
- æ°æ®å±ï¼Data Connectionsï¼ï¼å è½½å¨ãåå²å¨ãåµå ¥ãåéåå¨ç宿´RAGæµæ°´çº¿
- é¾å±ï¼Chainsï¼ï¼å°å¤ä¸ªç»ä»¶ä¸²è为å¯å¤ç¨ç工使µ
- 代çå±ï¼Agentsï¼ï¼å¨é¾çåºç¡ä¸å¢å å·¥å ·éæ©åå³çé»è¾
# LangChain Agentæ ¸å¿æ¶æç¤ºæ
from langchain import OpenAI, LLMChain, PromptTemplate
from langchain.agents import initialize_agent, Tool
from langchain.tools import DuckDuckGoSearchRun
# å®ä¹å·¥å
·
search = DuckDuckGoSearchRun()
tools = [
Tool(
name="web_search",
func=search.run,
description="ç¨äºæç´¢äºèç½è·åææ°ä¿¡æ¯"
)
]
# åå§åAgentï¼ä½¿ç¨ReActæ¡æ¶ï¼
llm = OpenAI(temperature=0)
agent = initialize_agent(
tools,
llm,
agent="zero-shot-react-description",
verbose=True
)
# æ§è¡ï¼ä¸æ¬¡è°ç¨ï¼ä¸æ¬¡å³çé¾ï¼
agent.run("2024å¹´ææ°ç人工æºè½ææ¯è¶å¿æ¯ä»ä¹ï¼")
äºãæ ¸å¿è½å对æ¯
2.1 ä»»å¡åè§£ä¸è§åè½å
| 维度 | AutoGPT | LangChain Agent | |------|---------|-----------------| | ä»»å¡åè§£ | èªå¨éå½åè§£ï¼çæåä»»å¡å表 | ä¾èµå¼åè æ¾å¼å®ä¹ChainæAgentç±»å | | è§åçç¥ | å ç½®ç®æ 导åçè§åå¨ | éè¿ä¸åçAgentç±»åï¼ReActãPla
更多推荐



所有评论(0)