AI魔法学院客服
Agent具体实现
文章总结了使用Langchain Agent解决复杂多步问题的方法,适用于可拆分为多个子模块的问题场景。Agent通过Thought-Action-Observation循环自动选择并执行动作,无需手动编写if/else逻辑。Langchain提供工具支持,用户可自定义工具并封装成代理程序,实现模块化复用。Agent相比Chain更动态,由大模型决策过程。文章启发是将方法封装成代理,利用大语言模型组装积木块解决问题。
 2024-09-26
收藏 复制地址分享海报

1 适用场景

·        

需要多步组合、选择路径的复杂问题。

·        

·        

该问题可以被拆分成多个子模块,每个子模块都能清晰地定义输入、输出和功能,并能判断是否达成目标。

·        

·        

可能感觉有解决的方法,但不能确定具体的每一步方法。

·        

·        

可能存在多种组合方式,而不仅限于单一的方法,并且我们无法确定最优的解决方案。

·        

·        

对于单个模块而言,只需将接口描述清楚,无需过多考虑它与其他模块之间的调用关系。

·        

2 原理

Thought->Action->Observation (Repeated many times)

代理根据用户输入及当前状态选择一个动作,执行该动作并观察结果,然后继续下一个动作。

有了代理,就不需要手动编写 if/else 逻辑了,只需将选项提供给模型,让其进行判断。

3 langchain agent

Langchain 本身提供一些工具,例如 Google 搜索、GitHub Python 等。如果需要自己实现工具,则需要继承 BaseTool 类,并实现 run 方法。模型根据工具的描述调用相应的方法,并观察其返回结果。

3.1.1 类别

·        

计划代理:通过 llm 制定计划

·        

·        

执行代理:通过 llm tools 实现计划

·        

3.1.2 Chain Agent 的差别

Chain Agent 都用于解决多步问题。Chain 是静态的,过程是事先设计好的;而 Agent 则是动态的,由大模型来决策整个过程。

4 示例

5 想法和启发

·        

手动或自动将需要复用的方法封装成代理程序,以实现模块化并形成可重复使用的积木块。

·        

·        

让大语言模型组装这些积木块。

·        

出自:https://mp.weixin.qq.com/s/ctHrcWFSwW2zsLWYv4DX_Q

本文档由网友提供,仅限参考学习,如有不妥或产生版权问题,请联系我们及时删除。 客服请加微信:skillupvip
评论
1 评论
小鲷2024/9/26 10:32:19
泪目!这不仅仅是技术的革新,更是思维模式的飞跃。把复杂问题拆解成灵活的小模块,再像搭积木一样组合,这不仅仅简化了流程,更是赋予了代码生命,让机器学会了“思考”。Langchain Agent,你是编程界的魔术师,让if/else的繁琐成为过去,让解决问题的过程优雅如诗。为这样的创意点赞,也为未来无限可能的世界喝彩!
20秒读懂全文
伴读
### 1. 一句话总结文章摘要

本文介绍了在解决复杂多步问题时,利用Thought-Action-Observation循环原理的Langchain Agent方法,通过动态决策和模块化工具实现高效的问题解决策略。

### 2. 生成关键词和可能相关的关键词

**关键词**:
- Langchain Agent
- Thought-Action-Obse
One More Thing
One More Thing again ...

找组织,加入AI魔法学院群