首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏XINDOO的专栏

    Agent设计模式——第 5 章:工具使用(函数调用

    工具使用模式概述 到目前为止,我们讨论的 Agent 模式主要涉及编排语言模型之间的交互和管理 Agent 内部工作流中的信息流(链式、路由、并行化、反思)。 工具使用模式通常通过一种称为函数调用的机制实现,使 Agent 能够与外部 API、数据库、服务交互,甚至执行代码。 为什么: 工具使用模式(通常通过函数调用实现)为此问题提供了标准化解决方案。它的工作原理是以 LLM 可以理解的方式向其描述可用的外部函数或"工具"。 经验法则: 当 Agent 需要突破 LLM 的内部知识并与外部世界交互时,使用工具使用模式。 视觉摘要: ** ** 图 2:工具使用设计模式 关键要点 工具使用(函数调用)允许 Agent 与外部系统交互并访问动态信息。 它涉及定义具有 LLM 可以理解的清晰描述和参数的工具

    1.9K10编辑于 2025-10-27
  • 来自专栏JAVA乐园

    调用像链子,责任链模式

    0x01:责任链模式简介 在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上进行传递,直到链上的某一个对象决定处理此请求。 责任链模式的UML类图如下: ? 0x02:责任链模式实现 在工作中,免不了需要进行报销。现在与报销这个业务流程来实现责任链模式。 throws IOException, ServletException { //省略 } //省略 } 在使用Filter时,如果需要交给下一个Filter处理,都会调用如下一段代码 如果想深入了解 HandlerExecutionChain 类的调用关系,可以跟踪一下 DispatcherServlet 类的 doDispatch() 方法。

    49910发布于 2021-01-06
  • 来自专栏一条IT

    创建者模式——链式调用

    哈喽,大家好,我是一条~ 之前的《白话设计模式》因为工作被搁置,如今再次启航,并搭配「框架源码解析」一起食用,将理论与实战完美结合。 对设计模式不是很熟悉的同学可以先看一下《23种设计模式的一句话通俗解读》,全面的了解一下设计模式,形成一个整体的框架,再逐个击破。 上期原型模式发布以后,收到了粉丝的感谢,一条创作的动力更足了。 今天我们一块看一下「建造者模式」,同样是创建型设计模式。 定义 「官方定义」 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 链式调用 相信大家在开发中都遇见过这样的代码,像链子一样可以一直调用下去。 那么如何实现「链式建造者」呢? lombok为我们提供了「建造者模式」的快速实现(@Builder),要应用到实际编码中。

    79350发布于 2021-10-12
  • 来自专栏Java呓语

    外观模式(封装交互,简化调用

    我想说设计模式应着重理解其思想,而非特定模式下的结构实现。 其也体现了外观模式(也称作 门面模式)的本质:封装交互,简化调用。 总结 外观模式的本质:封装交互,简化调用。 ? 因为子系统并不知道,调用它的是外观类还是客户端类。 引入外观类是为了解耦与子系统的关联,但并不限制客户端直接调用子系统。 不建议在外观类中增加子系统的功能,因为这并不符合外观模式封装交互,简化调用的本质。建议直接扩展子系统的功能。 当子系统功能发生改变时,可能需要修改外观类以适应子系统功能的变化,导致外观模式不符合开闭原则。你可以通过抽象外观类,一定程度上缓解该问题。

    58020发布于 2018-08-21
  • 来自专栏陈纪庚

    Javasript设计模式之链式调用

    这种调用方式就是链式调用。 我们可以从上述代码看出来,如果不使用链式调用的话,那么我们会增加很多重复的代码,而且特别冗余。而通过链式调用,我们可以节省很多代码,并且代码看起来更加优雅和整洁。 那么,接下来,我们来讨论下如何实现一个支持链式调用的库。 了解过原型链的人都知道,由构造函数生成的实例都可以访问其原型对象的属性和方法,因此,我们让定义在原型对象的方法最后都返回this(调用该方法的实例),就可以对原型方法进行链式调用。 而我们只需要让类所有的方法都返回this值,就可以让该类变化一个支持方法链式调用的类。而如果要让取值器方法也支持链式调用,就可以在取值器里使用回调的方式来解决这个问题。

    87210发布于 2018-09-10
  • 来自专栏全栈程序员必看

    使用axis调用WebService,Java WebService调用工具

    文章目录 WebService 简介 概述 使用 axis 调用 WebService 引入依赖 WebService 调用工具类 WebService 简介 概述 能使得运行在不同机器上的不同应用无须借助附加的 groupId> <artifactId>commons-discovery</artifactId> <version>0.2</version> </dependency> WebService 调用工具类 javax.xml.rpc.ParameterMode; import java.util.List; import java.util.Map; import java.util.Set; /** * WebService - 工具类 第二个方法适用于调用 WebService后,返回的值为 String 类型。 参数详解: methodName:函数名。需要调用的 WebService 的函数名称。 params:参数。 调用 WebService 时需传入的参数。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    2.4K160编辑于 2022-11-02
  • 来自专栏李维亮的博客

    JavaScript设计模式 --- 方法的链式调用

    (function (factory) { if (typeof define === "function" && define.amd) { define([ "jquery" ], factory); } else { factory(jQuery); } }(function ($) { $.fn.slides = function (options) { var settings = $.extend({

    88830发布于 2021-07-09
  • 来自专栏Java架构师必看

    scala的trait实现调用模式

    scala的trait实现调用模式 大家好,我是架构君,一个会写代码吟诗的架构师。 今天说一说scala的trait实现调用模式,希望能够帮助大家进步!!! trait实现调用模式 我们如果要开发一个支付功能,往往需要执行一系列的验证才能完成支付。 责任链模式 trait调用链 类继承了多个trait后,可以依次调用多个trait中的同一个方法,只要让多个trait中的同一个方法在最后都依次执行super关键字即可。 类中调用多个tait中都有这个方法时,首先会从最右边的trait方法开始执行,然后依次往左执行,形成一个调用链条。 定义pay方法 打印"准备支付" 调用父特质的handler方法 添加main方法 创建PaymentService对象实例 调用pay方法 参考代码: trait HandlerTrait

    58210编辑于 2021-12-08
  • 来自专栏软件开发-青出于蓝

    Dubbo集群调用模式之Mergeable实现

    ."); } } return new RpcResult(result); }     1.首先得到服务提供者列表,遍历服务提供者,对每个服务提供者调用服务,这个调用过程是封装在 else { throw new RpcException("There is no merger to merge result."); } }     重点是使用多线程,调用服务提供者

    83920发布于 2019-04-15
  • 来自专栏二猫の家

    简易理解设计模式之:建造者模式——学习使用“链式调用

    介绍: 建造者模式属于创建型模式。将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 buildPartB()、buildPartC()的顺序不同,可能会产生不同的结果) • 不同配置的构建对象,产生不同结果时(用不同的ConcreteBuilder构建对象,会产生不同的结果) 个人理解: 这个模式比较多用于链式调用分步组装对象 例子: 在这个模式我觉得最大区别于其它创建型模式的特点就是链式调用和多变的构造方法,为了更简单理解,首先带大家从传统的方法去实现一个简易计数器说明这个模式的用法,然后再用一个大众化的例子去创建一个UI控件 multiply(4).divide(2).add(3).getResult(); System.out.println("输出一个数:" + result); } 输出一个数:5 我们清楚了解到链式调用就是建造者模式的一个重要特点 例子2着重于简化创建复杂对象,模式隐藏了这种复杂的构建过程,大家可以尝试理解一下。 总结 • 这个模式的比较多用于通过链式调用分步组装对象,本质还是创建一个对象。

    79420编辑于 2022-11-30
  • 来自专栏马超的博客

    开源:LLMCompiler高性能工具调用框架

    它还通过减少对 LLM 的调用次数来节省 Tokens 使用的成本。实现 灵感来自《An LLM Compiler for Parallel Function Calling》。   LLMCompiler 基于用户指令执行工具调用时其实可以理解为 LLM 帮用户做了类似 SQL 生成执行计划的过程,只不过这里生成的计划是一个 DAG,DAG描述了工具之间的调用关系和参数依赖传递逻辑 当 Agent 需要调用大量工具时,此实现非常有用。如果您需要的工具超过 LLM 的上下文限制,您可以基于此工具扩展代理节点。将工具分为不同的 代理并组装它们以创建更强大的 LLMCompiler。 另外已经有案例是在生产级应用中得到验证的,这个案例中配置了大约 60 种工具,与 Few-shot 搭配时准确率超过 90%。 for Parallel Function Calling[2] • 部分参考代码: LLMCompiler From Github[3] 引用链接 [1] TOC: 开源:LLMCompiler高性能工具调用框架

    52700编辑于 2025-02-21
  • 基于 MCP 协议的 LLM 工具调用

    代码调用 6. 总结 文章主要讲解了如何使用 MCP(Model Context Protocol)与大型语言模型(LLM)结合来实现工具调用,以及如何搭建一个简单的应用来展示这一过程。 1. 通过加载 MCP 工具并创建反应式代理(react agent)来处理用户请求。 使用 Server-Sent Events (SSE) 实现流式响应,模拟实时对话效果。 对话测试 只需要启动 fastapi服务,然后再web端调用 可以看到,模型有一定的概率能找到相应的 tool 进行调用 5. 二者关系 MCP 中的 tool 是具体的工具实现,function calling 是调用这些工具的方式。 MCP 是协议规范,定义了 LLM 和工具之间的通信方式;function calling 是 LLM 的能力,利用 MCP 协议调用工具。 二者紧密协作,共同实现复杂的应用场景。

    19210编辑于 2026-03-25
  • 来自专栏python前行者

    python调用java代码的工具jpype

    文章目录 jpype简介 安装 使用 小试牛刀 使用命令行方式打jar包 调用jar包方法 问题1:shutdownJVM停止后restart失败的情况 问题2:只能调用静态方法 问题3:调用其他包方法 调用jar包main方法 java命令行方式运行jar包 jpype简介 JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程 调用jar包方法 import os import jpype def java_class_func(jar_path, class_name, func_name, jvm_path=None 解决:用静态方法调用类方法 问题3:调用其他包方法 if __name__ == '__main__': java_class_func1(r"D:\mycode\javacode\jsf_hf_demo \hf\target\hf-0.1.jar com.dubbo.testjsf.Get22 #jar中调用MANIFEST.MF配置的入口class的main函数 java -jar .

    1.2K10编辑于 2023-12-25
  • 来自专栏java和python

    java 实现 调用Linux命令工具

    目录 1 代码实现 1 代码实现 public class CommandUtil { public static String execuCmd(String cmd) { System.out.println("执行命令[ " + cmd + "]"); Runtime run = Runtime.getRuntime(); try { Process process = run.exec(cmd);

    1.6K20编辑于 2022-08-14
  • 来自专栏FreeBuf

    Java方法完整调用链生成工具

    以下实现了一个工具,能够批量生成指定Java方法向下的完整调用链,对于关注的Java方法,能够生成其向下调用的方法信息,及被调用方法再向下调用的方法,直到最下层被调用的方法。 以下为使用该工具生成的调用Mybatis的SqlSessionUtils类的部分方法向上完整调用链(方法参数太长,已省略): ? 2.2. 使用该工具生成指定方法向上调用链的功能,生成调用指定Mapper接口向上的调用链,能够根据“!entry!”找到入口方法。 引入组件 在使用该工具前,首先需要在对应的项目引入该工具组件的依赖,将其引入到test模块或使用provided类型,可以避免发布到服务器中。 该工具会主要从方法调用关系表中逐级查询数据,生成完整的方法调用链。 6. 其他功能 6.1.

    6.4K50发布于 2021-07-28
  • 来自专栏sktj

    python guimixin 消息调用 工具dialog封装

    """ ############################################################################### a "mixin" class for other frames: common methods for canned dialogs, spawning programs, simple text viewers, etc; this class must be mixed with a Frame (or a subclass derived from Frame) for its quit method ############################################################################### """

    44960编辑于 2022-05-13
  • 来自专栏AIGC

    【Research Proposal】基于提示词方法的智能体工具调用研究——智能体工具调用检测方法

    尤其是在智能体调用外部工具时,优化提示词的设计可以显著提升工具调用的效果和性能。 本文将详细探讨提示词方法在智能体工具调用中的应用,重点分析智能体工具调用检测方法及其在提升任务执行效率方面的作用。 下图是课题所使用的智能体调用检测工具,其中APIBench是用于单模态智能体工具调用检测,ToolBench用于多模态智能体工具调用检测。 智能体工具调用的挑战与需求 工具调用的复杂性 智能体工具调用的目标是通过合理选择并执行外部工具,以提高任务完成度。 智能体工具调用检测方法 1. APIBench:单一工具调用评估框架 APIBench是一个专门用于评估智能体在单一工具调用中表现的评估框架。 通过对不同工具调用的测试,研究人员可以分析智能体是否能够根据任务需求灵活选择工具,并且在工具调用时是否高效。

    59410编辑于 2025-02-24
  • 来自专栏气象杂货铺

    工具推荐|ESMValTool地球系统模式评估工具

    这将促进和改进ESM评价,使其超越最新技术水平,目的是支持CMIP和单个模式中心的活动。 因此,只要用户提供一定量的输入即可,此工具能够: 建立正确的输入和输出参数以及结构化的工作流程; 获取正确的数据; 执行工作流; 输出所需的数据和图片等。

    55620编辑于 2022-09-23
  • 来自专栏好奇心Log

    工具推荐|ESMValTool地球系统模式评估工具

    这将促进和改进ESM评价,使其超越最新技术水平,目的是支持CMIP和单个模式中心的活动。 因此,只要用户提供一定量的输入即可,此工具能够: 建立正确的输入和输出参数以及结构化的工作流程; 获取正确的数据; 执行工作流; 输出所需的数据和图片等。

    1.1K10发布于 2021-03-25
  • 来自专栏逆向技术

    保护模式-第五讲-门-调用

    保护模式-第五讲-门-调用门 一丶长调用与短调用 1.1 长跳转 与长调用 在上一讲 实现了利用 长跳转 来实现了段间的跳转 jmp far 0x00xx:xxxx地址 并且构造段描述符. 那么如果想实现跨段调用. 就必须要用长调用调用 本质就是 call 与 ret的组合. 只不过有些许不同 因为会堆栈产生影响 call far 指令来实现长调用 1.1.1短调用调用本质就是 call + ret组合. 查看如下堆栈图: ? 在我们正常调用的时候对战图就会如上. 不过结构确实 门描述符 结构 也就说.长调用 最终调用在哪里. 是由调用们(段描述符)来指定的. 而不是EIP执行的. 所以说 EIP是废弃的 跨段不提权的意思: 我们经过上面引出了 长调用. 调用们中的记录的段选择子是提权的 所以我们看下堆栈 ? 分别记录了 返回地址 调用者的CS 调用者的ESP 调用者的SS 2.6 构造有参调用门 之前讲的调用们是无参数的.

    2.1K10发布于 2020-07-15
领券