为什么代理不是链?

Why agent is not a chain?

提问人:AnikinNN 提问时间:10/27/2023 最后编辑:AnikinNN 更新时间:10/27/2023 访问量:22

问:

在LangChain中有两个概念:

  1. 代理

建议使用剂的流程为:

prompt = SomePrompt()
llm_chain: Chain = LLMChain(prompt)
tools = [...]
agent: Agent = SomeAgent(llm_chain, tools)
agent_executor: Chain = AgentExecutor(agent)

将 Agent 作为单独的类而不是从 Chain 类继承的原因是什么?

为什么我们需要包裹在里面?llm_chain: Chainagent: Agentagent_executor: Chain

预期的体系结构是:

class Agent(Chain):
   def _call(self, *args, **kwargs):
      while True:
         action = self.plan()
         if isinstance(action, ActionTool):
            self.run_tool(plan)
         elif isinstance(action, ActionFinish):
            return action.result

   def plan():
      # as it is done in actual implementation of Agent
      pass
          

但我不明白我们为什么把和分开AgentExecutorAgent

python 架构 开源 langchain py-langchain

评论

0赞 InsertCheesyLine 10/31/2023
这个问题最好在langchain github上问

答: 暂无答案