首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • LangChain4j 工具调用实战

    今天我们就来给 AI 装上一套工具箱,让它能够从博客园实时获取最新技术文章。 什么是工具调用? 简单来说,工具调用就是让 AI 能够"借用"外部能力。 AI 决定调用工具 → 4. 程序执行工具 → 5. 结果返回给 AI → 6. 完整的调用链路 如果想深入理解工具调用的每一步,看这个时序图就对了: Jsoup(网页抓取)CnblogsArticleToolChatModel(LLM)LangChain4j框架AiCodeHelperService 用户发起请求(步骤 1-4):Test 调用 Service,Service 转发给 LangChain4j 框架 2. AI 分析意图(步骤 5-7):LLM 分析用户问题,决定需要调用 cnblogsSearch 工具 3. 工具执行(步骤 8-17):Tool 用 Jsoup 抓取博客园页面,解析数据 4.

    41110编辑于 2026-04-29
  • 来自专栏啄木鸟软件测试

    安全测试工具(连载4)

    2 专业测试工具 2.1 CSRFTester CSRFTester是一款CSRF漏洞的测试工具。 此工具的测试原理如下:它使用代理抓取浏览器中访问过的连接以及表单等信息,通过在CSRFTester中修改相应的表单等信息,重新提交,相当于一次伪造客户端请求,如果被测试的请求成功被网站服务器接受,则说明存在 当然此款工具也可以被用来进行CSRF攻击。本书介绍的CSRFTester版本为V1.0。 启动CSRFTester,在命令行总显示127.0.0.1:8008被使用,如39所示。 ? 案例4:电子商务登录功能CSRF测试 打开CSRFTester,设置浏览器代理为:127.0.0.1:8008,点击【Start Recording】按键,在浏览器页面输入电子商务登录页面的IP地址,

    90010发布于 2019-12-12
  • 来自专栏菩提树下的杨过

    longchain4j 学习系列(3)-工具调用(Tool Calling)

    超出这个数据范围的问题,靠模型自身是无法解答的,得依赖各种外挂工具来增强体验。参考下图: 这一节,我们来学习longchain4j 如何让大模型能利用工具外挂增强自身。 对于新手而言,请再默念一遍:大模型本身并没有调用外部工具的能力,但是理解上下文后,能表达调用工具的意图。 因此,让AI加上工具外挂的思路是: 帮我回答个问题,如果你搞不定,我这里有一堆工具(及工具使用说明书),你可以告诉我,想用哪个工具 根据你选择的工具,我帮你调用它,然后把工具的结果告诉你 有了工具加持后的结果 * 该方法会构造一个包含订单状态查询意图的用户消息,并利用工具调用机制让AI决定是否需要调用订单状态查询工具。 * 如果AI请求调用工具,则执行工具并再次与AI交互以生成最终响应。 59-61行,第2次请求模型时,把工具调用的结果,一并发给模型。

    85110编辑于 2025-10-01
  • LangChain4j 实战:RAG、工具调用、护轨与 SSE 流式输出

    这篇LangChain4j实战就是把桥搭起来——RAG知识库、工具调用、Guardrail护轨、可观测性、SSE流式输出,五个能力一次讲清。点个收藏,我们开始。 三、工具调用ToolCalling:把Java方法变成模型的手ToolCalling(工具调用):让大模型在回答时调用你准备好的Java方法。 你完全不用管调用循环——工具方法的名称和@Tool描述,就是给模型看的说明书,写得越清楚,调用得越准。 有个坑要提前说:模型是自主决定调不调用、调哪个的,所以有副作用的操作(下单、改库、发消息)别直接给@Tool,要么加人工确认,要么在方法里做权限校验。工具即入口,入口即攻击面。 护轨是生产上线的安全底裤,输入输出都要挂,别指望模型自律。五、可观测性:看懂每次调用模型调用本质也是接口调用,该有的日志、指标、链路追踪一样不能少。

    26210编辑于 2026-08-28
  • 来自专栏菩提树下的杨过

    longchain4j 学习系列(4)-mcp调用

    继续学习langchain4j,以下是langchain4j 调用MCP的示例: 1、添加pom依赖 1 <dependency> 2 <groupId>dev.langchain4j</groupId > 3 <artifactId>langchain4j-mcp</artifactId> 4 <version>1.1.0-beta7</version> 5 </dependency> 调用MCP /** * 直接获取订单状态信息 * * @param orderId 订单ID,用于查询指定订单的状态 * @return ResponseEntity mcpClient = initSseClient("http://localhost:8070/sse"); // 构建AI助手服务,配置聊天模型和工具提供者 McpToolProvider.builder().mcpClients(mcpClient).build()) .build(); // 调用

    1.2K10编辑于 2025-11-25
  • 来自专栏零域Blog

    安全工具

    整理一些我自己常用的安全工具分享给大家: 信息收集 dnsmap dnstracer nmap zenmap traceroute ncat smbclient smtpscan 流量劫持 tcpdump sslsniff 内网嗅探 dsniff ettercap wireshark 代码审计 RIPS Jetbrains WIFI airodump-ng aircrack airmon reaver 综合类工具 BackTrack 5(这里面几乎集齐了所有安全工具!) tcptraceroute dnsmap Hping2 sqlscan Nikto Nessus Snort ARPWatch W3af sqlmap 反编译 JD 辅助类 fbd 各类弱口令库 社工库 安全后台

    45820编辑于 2022-03-16
  • 来自专栏kali blog

    网络共享安全扫描工具 enum4linux 使用教程

    Enum4linux是一个用于枚举来自Windows和Samba系统的信息的工具。 工具特性 RID循环(当Windows 2000上的RestrictAnonymous设置为1时) 用户列表(当Windows 2000上的RestrictAnonymous设置为0时) 组成员信息列表 通常自动找到) -n 做一个nmblookup(类似于nbtstat) -v 详细输出,显示正在运行的完整命令(net,rpcclient等) 牛刀小试 常规扫描 enum4linux -v 192.168.123.1 列出用户名 enum4linux -U 192.168.123.1 列出Windows共享,再次您还可以指定用户名和密码-u-p enum4linux -S 192.168.123.1

    53610编辑于 2025-11-17
  • BUG Report: DeepSeek V4 思考模式与工具调用兼容性问题

    一、问题描述使用WorkBuddy连接DeepSeekV4系列模型(deepseek-v4-pro/deepseek-v4-flash)时,当AI响应涉及工具调用(tool_calls),WorkBuddy 错误现象对话在第一轮正常,AI正确触发工具调用并返回结果后,后续轮次立即报错错误码:HTTP400BadRequest不涉及工具调用的纯文本对话不受影响旧模型deepseek-chat/deepseek-reasoner WorkBuddy当前行为WorkBuddy在处理多轮工具调用时,未正确保存和回传reasoning_content字段。该字段在第二轮请求时丢失,触发了DeepSeekV4的400校验失败。 三、复现步骤在WorkBuddy中配置自定义模型,API地址指向DeepSeek官方API选择模型ID为deepseek-v4-pro或deepseek-v4-flash发起一段需要工具调用的对话(例如 预计受影响范围:所有通过WorkBuddy使用DeepSeekAPI且涉及工具调用场景的用户。

    6K10编辑于 2026-04-26
  • 来自专栏DeepSeek 实战工坊

    【DeepSeek 实战】打造全能编程助手:DeepSeek V4 Agent 开发与工具调用

    打造全能编程助手:DeepSeek V4 Agent 开发与工具调用 摘要: Agent(智能体)是大模型应用的高级形态。 本文详解如何利用 DeepSeek V4 的 Function Calling 能力,构建能够自主调用外部工具的编程助手。 强大的 Function Calling 能力使其能够理解工具的功能描述,并在需要时主动调用。 定义工具 Schema 首先,我们需要告诉 DeepSeek V4 有哪些工具可用,以及每个工具的参数格式。 工具调用陷入死循环 现象: Agent 反复调用同一个工具,无法完成任务。 原因: LLM 未能正确理解工具返回的结果。

    1.7K10编辑于 2026-06-03
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】空安全 ② ( 手动空安全管理 | 空安全调用操作符 ? | let 函数结合空安全调用操作符使用 )

    文章目录 一、手动空安全管理 二、空安全调用操作符 ? 三、let 函数结合空安全调用操作符使用 一、手动空安全管理 Kotlin 语言中 , 变量类型 分为 可空类型 和 非空类型 , 默认状态 下 , 变量是 非空类型 的 , 如果使用 类型? 二、空安全调用操作符 ? 在 Kotlin 语言中 , 调用 可空类型变量 的 成员 时 , 可以使用 " 安全调用操作符 " 也就是 ? 进行调用 , 使用格式如下 : 可空类型变量?. 成员 使用了 安全调用操作符 之后 , 在调用变量成员前 , 会自动进行 空值检查 , 如果该变量为空 , 则会 跳过后面的 成员调用 , 继续执行下一行代码 ; 代码示例 : 在下面的代码中 , 调用 count() } 三、let 函数结合空安全调用操作符使用 如果想要在 变量 原有基础上 , 继续执行其它操作 , 可以使用 let 标准函数 ; 安全调用操作符 经常与 let 标准函数 一起使用

    1.2K20编辑于 2023-03-30
  • 来自专栏云云众生s

    开源安全工具与商业安全工具的对决

    开发者不希望使用碎片化的工具,也不希望获得太多警报或仪表盘。相反,他们需要对安全工具的结果质量有极高的信任。 他们不想要分散的工具,太多的警报或仪表板,他们需要对其安全工具结果的质量有极大的信任,并且需要保持在不断的上下文和流程中以应对需要解决的任务。 多年来,开发者也在进化。 在构建一个真正可行的安全编排平台时,我们有幸进行了大量研究——是的,研发中经常被忽略的那个关键部分——我们想探索商业工具与开源工具的世界,并了解为用户提供什么以提升我们作为一个行业的水平。 瑞士军刀式安全 我们在安全行业已经走过了漫长的道路,左移安全是众所周知的,现在可以使用出色的工具来覆盖现代软件堆栈的许多层面。 这使我们现在可以将安全能力提升到一个新的水平,并为安全世界解锁急需的开发者体验——安全体验。开发者是新的工具决策者,如果我们不优化系统中的人,我们将使我们的安全计划注定失败。

    65110编辑于 2024-03-28
  • MCP-FLOW:小模型工具调用准确率99.2%超越GPT-4o

    实验证明,基于该方案微调的模型在工具调用准确率上显著超越现有大型模型,为LLM智能体掌握真实世界工具提供了可行路径。 AI工具调用困境 面对1166个真实世界工具,最先进的AI模型正确率不足40%。 当GPT-4o需要在数千个MCP工具中准确选择并调用时,其表现甚至不如专门训练的小模型。 研究团队发现,现有方法仅覆盖不到20个服务器,依赖人工标注且无法动态更新。 即使在更具挑战性的100工具场景中,Qwen3-4B仍保持81.7%的工具准确率,而GPT-4o和Claude-4-Sonnet分别降至72.3%和68.3%。 使用MCP-Flow生成初始函数调用后,Qwen3-4B的任务成功率从10.68%提升至21.36%,实现100%的相对提升。 应用前景与未来方向 该研究通过自动化流程构建了覆盖1,166个服务器、11,536个工具的大规模MCP数据集,将小模型的工具调用准确率提升至99.2%,显著超越GPT-4o等大型模型。

    37600编辑于 2026-05-18
  • 来自专栏nginx遇上redis

    安全工具Snort

    在本文中,我们将了解Snort是什么以及如何配置它。Snort是最流行的IPS(入侵防御系统)和IDS(入侵检测系统)方法之一。

    2.1K20发布于 2019-10-15
  • 来自专栏低级Java知识传播者

    Feign源码解析4:调用过程

    今天看下在实际Feign调用过程中的一些源码细节。 { @GetMapping("/echo/{message}") String echo(@PathVariable("message") String message); } 调用代码 message); } 完整解析 动态代理 这里的echoService此时的类型其实是jdk动态代理,内部有一个字段,就是实现了jdk的InvocationHandler接口: 实际逻辑如下,会根据被调用的 总结 我们把整体的feign调用的脉络梳理了一遍,下篇继续loadbalancer的部分,那里也是有点坑的。 用讲师的话来结个尾:啥也不是,散会!

    95810编辑于 2024-01-17
  • 来自专栏Vehicle攻城狮

    Simulink Tutorial 4:函数声明及调用

    3、言归正传 废话不多说 继续Simulink的第四篇教程,这次楼主主要介绍函数声明及调用。函数是我们在编程中经常碰到的,它可实现一定的功能设计,也叫做子程序。 由主函数调用其他函数,其他函数也可以互相调用,同一个函数可以被一个或多个函数调用任意多次。 Simulink如何实现如下函数的声明和调用? void Add(void) { z = x + y; } 其实使用Simulink实现如上代码方式有多种,下面楼主主要介绍两种。 及图形函数创建如下模型; 然后进入Model Explorer中创建信号变量等数据并进行如下设置: 配置完成后,即可生成所需代码,如下: 开工第一天简单写了点,主要介绍了使用Simulink如何实现函数定义和调用

    1.3K30编辑于 2022-04-19
  • 来自专栏创作特训营

    EdgeOne Makers 沙箱与工具调用深度解析:安全隔离与能力开放的最佳平衡

    背景与挑战使用感受:沙箱是Agent安全运行的生命线。在评估EdgeOneMakers时,我最关心的是沙箱的安全性——它能不能安全地执行用户提供的代码?工具调用链路是否可能被滥用? 注册模型可用工具展开代码语言:PythonAI代码解释defhandler(context):"""注册工具供模型调用模型通过自然语言触发工具,所有操作在沙箱中隔离执行"""return{'system_prompt :模型有时会以错误的顺序调用工具(先在文件不存在时读取文件),导致链路中断。 file_size}bytes),无法直接读取"#3.读取文件content=sandbox.read_file(path)returncontent3.会话沙箱复用导致状态污染问题:同一对话中,前一次工具调用的临时文件影响后一次调用 在Agent工具调用链路中,如何平衡安全限制和功能完备性?你遇到过哪些沙箱安全相关的真实事故?是如何解决的?总结体验:EdgeOneMakers的沙箱设计是我见过最务实的Agent安全方案。

    51500编辑于 2026-07-14
  • 来自专栏后端技术探索

    api安全授权调用--OAuth协议详解!

    (1)"云冲印"为了后续的服务,会保存用户的密码,这样很不安全。 (2)Google不得不部署密码登录,而我们知道,单纯的密码登录并不安全。 (4)用户只有修改密码,才能收回赋予"云冲印"的权力。但是这样做,会使得其他所有获得用户授权的第三方应用程序全部失效。 (4)User Agent:用户代理,本文中就是指浏览器。 (5)Authorization server:认证服务器,即服务提供商专门用来处理认证的服务器。 知道了上面这些名词,就不难理解,OAuth的作用就是让"客户端"安全可控地获取"用户"的授权,与"服务商提供商"进行互动。

    1.4K20发布于 2018-08-09
  • 来自专栏Python机器学习算法说书人

    安全的数据库图形管理工具(4):SQL语句(2)

    8)-1,占用空间是实际长度+4)。 整数 整数就比较简单了,整数有以下几类TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,分别占用1字节,2字节,3字节,4字节,8字节。 (4*8-1)-1,BIGINT的表示范围是-2(8*8-1) ~ 2(8*8-1)-1。 大部分浮点数无法精确表示,浮点数可以精确表示的也就只有0.5=1/2,0.25=1/4……如果是0.1=1/10这就没有办法精确表示了,为什么呢? 因此我们可以把字段给抽象成一个类,这个类的构造方法必须有2个必选参数,4个默认参数。

    1.2K20发布于 2019-07-26
  • Agent设计模式(4):Tool Use模式——构建安全的多工具Agent

    Tool Use的本质:让Agent写代码执行操作 先搞清楚一个概念:Tool Use不是"让Agent调用工具",而是"让Agent写代码调用工具"。 Agent不是直接调用工具,而是写Python代码,代码里调用工具。 这样做的好处有三个: 第一,工具定义在代码库,不在上下文。 限制:工具不能做什么 参数:每个参数的详细说明 返回值:返回数据的结构 异常:可能抛出的错误 ▪ 原则4:工具要有安全的默认值 ✅ 正确的设计: from typing import List, Optional 可用工具: {chr(10).join(tool_descriptions)} 使用方法: 1. 思考用户需要什么 2. 决定使用哪个工具 3. 写Python代码调用工具 4. 一句话带走:Tool Use的核心不是"调用工具",而是"写代码调用工具"。安全、标准化、可扩展,是构建多工具Agent的三个关键。 你用过哪些工具调用方案?遇到过哪些坑?评论区聊聊。

    88210编辑于 2026-05-09
  • 来自专栏气象杂货铺

    Basemap工具函数(4)

    map.drawcoastlines() for lon in range(0, 360, 20): for lat in range(-60, 90, 30): map.tissot(lon, lat, 4, 就像调用 basemap 实例一样 checkbounds 如果为True,将检查 xin 和 yin 是否在 xout 和 yout 边界内。 就像调用 basemap 实例一样 checkbounds 如果为True,将检查 xin 和 yin 是否在 xout 和 yout 边界内。

    2.1K10发布于 2020-04-21
领券