news 2026/4/18 8:15:02

组合多个工具链

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
组合多个工具链

day38:组合多个工具链

组合多个工具链

定义:

组合多个工具链 = 让 Agent 能在一次任务中,按需调用多个 Tool / Chain,并把中间结果作为上下文继续使用

解决的问题是: 真实任务≠单一工具可以完成

示例:

  • 用户问:「根据这篇小说,总结人物关系,并判断谁是悲剧核心人物」

  • 实际需要:

    • 文本解析 / 检索(RAG / GraphRAG)

    • 人物关系分析(图谱/规则)

    • 推理判断(LLM)

    • 结构化输出

这就必须 多工具协作。


核心概念拆解

Tool ≠ Chain ≠ Agent(你必须分清)

概念本质举例
Tool一个能力函数搜索、计算、查天气
Chain固定流程的工具组合Prompt → LLM → Parser
Agent动态决策调用工具先搜再算 or 先算再搜

组合多个工具链:Agent 在执行过程中,调用多个 Chain / Tool,并把结果串起来


工具链组合的 3 种典型模式

  1. 串行(Sequential)
输入 → Tool A → Tool B → Tool C → 输出

示例:

  • 文本 → 实体抽取 → 关系整理 → 总结

特点:

  • 简单

  • 可预测

  • 适合确定流程


  1. 条件分支(Router)
→ Tool A 输入 → 判断 → Tool B

示例:

如果是「数学问题」→ Calculator 如果是「事实问题」→ Search 如果是「总结」→ RAG
  1. Agent 动态组合
Agent ├─ decide → Tool A ├─ decide → Tool B ├─ decide → Tool C └─ synthesize answer

特点:

  • 非固定顺序

  • 可多轮调用

  • 可失败重试


Demo

fromlanggraph.prebuiltimportcreate_react_agentfromlangchain_core.toolsimportToolfromlangchain_openaiimportChatOpenAI llm=ChatOpenAI(model="qwen-plus-latest",api_key="sk-YOUR-key",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",temperature=0.7)defsummarize_text(text:str)->str:prompt=f"请用不超过5句话总结以下文本:\n{text}"returnllm.invoke(prompt).content summary_tool=Tool(name="SummarizeText",func=summarize_text,description="用于对长文本进行摘要。")# 人物关系抽取defextract_relations(text:str)->str:prompt=f""" 请从以下文本中抽取人物关系,用列表输出: 格式:人物A - 关系 - 人物B 文本:{text}"""returnllm.invoke(prompt).content relation_tool=Tool(name="ExtractRelations",func=extract_relations,description="从文本中抽取人物关系")# 关系分析defanalyze_relations(relations:str)->str:prompt=f""" 根据以下人物关系,判断: 1. 谁是核心人物? 2. 是否存在悲剧冲突? 关系:{relations}"""returnllm.invoke(prompt).content analysis_tool=Tool(name="AnalyzeRelations",func=analyze_relations,description="分析人物关系并给出判断")tools=[Tool(name="SummarizeText",func=summarize_text,description="用于对长文本进行摘要。"),Tool(name="ExtractRelations",func=extract_relations,description="从文本中抽取人物关系"),Tool(name="AnalyzeRelations",func=analyze_relations,description="分析人物关系并给出判断")]agent=create_react_agent(llm,tools)defmain():text=""" 张三深爱李四,但李四被迫嫁给王五。 王五性格暴躁,经常伤害李四。 最终张三为救李四而死。 """# 将文本作为输入传递给代理result=agent.invoke({"messages":[("user",f"请分析这段故事的人物关系,并判断悲剧核心人物是谁。故事内容:{text}")]})print(result["messages"][-1].content)if__name__=="__main__":main()# 根据分析,悲剧核心人物是**李四**。## 理由如下:# - 所有关键关系均以她为枢纽:张三的深爱与牺牲、王五的强迫婚姻与暴力伤害,皆围绕她展开;# - 她身陷多重结构性压迫——情感自主权被剥夺(被迫嫁)、人身安全受威胁(被伤害)、成为他人牺牲的动因(张三为其而死),却无主动解局之力;# - 张三之死虽具强烈悲壮感,但其行为逻辑完全由对李四的爱与拯救欲驱动;王五的暴行也以李四为直接对象。因此,李四是悲剧能量的汇聚点与承受体,是命运不可逆性的最深刻体现。## ✅ 结论明确:**李四为本故事的悲剧核心人物。**
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 22:10:29

iOS自动化测试神器:iOS-Tagent终极使用指南

你是否曾经为iOS自动化测试的复杂配置而头疼?面对设备连接失败、证书签名问题、环境搭建困难等挑战,很多开发者望而却步。今天,我将为你介绍一款强大的iOS自动化测试工具——iOS-Tagent,让你在3分钟内快速搭建完整的测试环境&…

作者头像 李华
网站建设 2026/4/18 1:09:15

二维码生成器完全指南:从入门到精通

二维码生成器完全指南:从入门到精通 【免费下载链接】qrcode-generator QR Code Generator implementation in JavaScript, Java and more. 项目地址: https://gitcode.com/gh_mirrors/qr/qrcode-generator 在数字化时代,二维码已经成为连接线上与…

作者头像 李华
网站建设 2026/4/18 6:29:58

3步搞定PDF字体兼容:PDF补丁丁字体嵌入终极指南

你是否曾经在不同设备上打开同一份PDF文件时,发现中文字体显示异常,甚至变成空白方块?这通常是因为PDF文件创建时没有嵌入必要的字体资源。PDF补丁丁的字体嵌入功能正是为解决这一痛点而生,通过智能检测和自动嵌入,确保…

作者头像 李华
网站建设 2026/4/18 6:29:16

索尼相机逆向工程终极指南:快速解锁隐藏功能的完整教程

索尼相机逆向工程终极指南:快速解锁隐藏功能的完整教程 【免费下载链接】Sony-PMCA-RE Reverse Engineering Sony Digital Cameras 项目地址: https://gitcode.com/gh_mirrors/so/Sony-PMCA-RE Sony-PMCA-RE是一个专为索尼相机用户设计的逆向工程工具集&…

作者头像 李华
网站建设 2026/4/17 7:16:27

PaddlePaddle平台如何实现跨平台模型迁移?

PaddlePaddle平台如何实现跨平台模型迁移? 在如今AI应用遍地开花的时代,一个训练好的深度学习模型如果只能跑在实验室的GPU服务器上,那它的价值几乎为零。真正决定成败的,是能否把模型高效、稳定地部署到千差万别的实际场景中——…

作者头像 李华