Agent工具调用中无限重试死循环的根因与修复
Agent 工具调用中无限重试死循环的根因与修复——技术复盘问题现象Agent 在执行任务时调用某个工具后进入死循环——不断以相同或微调参数重试同一个工具调用每次返回相似结果但仍继续重试Token 快速消耗任务卡死无法推进。典型日志[Turn 3] tool_call: search_database(query用户订单) [Turn 4] tool_call: search_database(query用户订单 2026) [Turn 5] tool_call: search_database(query用户订单 2026年) [Turn 6] tool_call: search_database(query用户 订单 2026 年) ...直到 context window 耗尽排查过程检查工具返回内容工具返回了 {“error”: “no results found”, “hint”: “try different keywords”}这个 hint 本身就是诱因——它在引导 Agent 换关键词重试。检查 Agent 的 System PromptPrompt 中写了如果工具返回错误请分析原因并重试但没有给重试次数上限。检查工具实现工具在无结果时返回 HTTP 200 错误描述而不是返回空数组 []。Agent 无法区分真的没数据和查询方式有问题。统计同类问题发现 24% 的失败任务都有类似的重试模式平均浪费 8-12 轮对话。根因分析三重原因叠加层面问题工具层错误返回格式不标准hint 字段诱导 LLM 继续尝试Prompt 层没有最大重试次数约束没有空结果即停止的规则编排层缺少工具级 circuit breaker没有重试计数和熔断机制核心矛盾LLM 天然倾向于再试一次可能就行了而工具的错误信息恰好给了它这个理由。解决方案Layer 1工具返回规范化python错误时返回明确的 STOP 信号不包含诱导性 hintdef tool_response(status, dataNone, errorNone):return {“status”: “empty” if not data else “ok”,“data”: data or [],“total”: len(data) if data else 0}❌ 不再返回 {“error”: “no results”, “hint”: “try different keywords”}Layer 2Prompt 硬约束在 System Prompt 中加入工具调用规则同一工具同一参数最多重试 2 次超过则报告用户而非继续尝试收到空结果data[]且total0立即停止换策略而非换参数单个任务工具调用总次数不超过 20 轮Layer 3编排层熔断器pythonclass ToolCircuitBreaker:definit(self, max_retries3, window_turns5):self.max_retries max_retriesself.window_turns window_turnsself.call_history []def check(self, tool_name, params_hash): recent [c for c in self.call_history[-self.window_turns:] if c[tool] tool_name and c[params_hash] params_hash] if len(recent) self.max_retries: return False, 检测到重复调用已自动跳过请报告用户或更换策略 return True, None复盘总结维度教训设计原则工具的错误信息要终结歧义而非产生歧义。模糊的 hint 是毒药防御性编程永远不要信任 LLM 会自己停下来。重试上限必须写在 Prompt 代码两层监控意识应该对工具调用轮次设置告警单任务 20 轮 → 人工介入可迁移性这个模式同样适用于 API 调用、数据库查询、文件操作等所有工具一句话总结让工具说清楚为什么停比告诉 Agent 怎么继续更重要。Prompt 是柔性约束代码是刚性约束两层都要做。#Agent #技术复盘 #AI工程 #工具调用 #死循环调试

相关新闻

基于大数据爬虫+Python主流汽车价格分析可视化系统的设计与实现开题报告

基于大数据爬虫+Python主流汽车价格分析可视化系统的设计与实现开题报告

一、课题研究背景 随着国内汽车消费市场持续扩张,汽车品牌、车型迭代速度不断加快,不同配置、版本、地区的汽车价格存在动态波动差异,各大汽车资讯平台、电商交易平台每日积累海量的车型参数、售价数据、优惠信息、销量数据与用户评价数据&am…

2026/7/9 1:59:44阅读更多 →
大模型对话界面实战:流式输出与 Markdown 渲染的工程落地

大模型对话界面实战:流式输出与 Markdown 渲染的工程落地

大模型对话界面实战:流式输出与 Markdown 渲染的工程落地 一、Token 逐字吐出背后的体验博弈 敲下回车的那一刻,3 秒空白让人想关掉。这事我见过太多团队栽进去。某头部客服 SaaS 去年复盘过一次,灰度时段就因为首字延迟从 800ms 涨到 4 秒…

2026/7/9 1:54:44阅读更多 →
小实验-MPLS VPN Option A(锐捷设备)

小实验-MPLS VPN Option A(锐捷设备)

拓扑图:CE1配置:CE1#sh runBuilding configuration...Current configuration: 1099 bytesversion RG-NSE-Route(V1.06)hostname CE1interface GigabitEthernet 0/0ip address 12.1.1.1 255.255.255.0!interface Loopback 0ip address 1.1.1.1 255.255.25…

2026/7/9 1:54:44阅读更多 →
Function Calling Schema 演进:新增参数时别让旧调用全部失效

Function Calling Schema 演进:新增参数时别让旧调用全部失效

Function Calling Schema 演进:新增参数时别让旧调用全部失效 一、今天的上线让三个月前写的所有 Agent 都报错了 给工具加一个新参数,看起来是很小的改动。在 JSON Schema 里加一行 "new_param": {"type": "string"}。…

2026/7/9 2:54:47阅读更多 →
茶叶商城销售系统

茶叶商城销售系统

代码地址:源码市场 1 开发技术论述 1.1 Spring boot框架 Spring Boot的开发团队来自美国的Pivotal公司,是2013年研发的免费、轻量级、开源的系统框架。它集合、默认了许多框架的使用方法,是基于原有的框架的功能的又一次进化,所…

2026/7/9 2:54:47阅读更多 →
Hotkey Detective:Windows热键冲突检测的终极免费解决方案

Hotkey Detective:Windows热键冲突检测的终极免费解决方案

Hotkey Detective:Windows热键冲突检测的终极免费解决方案 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…

2026/7/9 2:54:47阅读更多 →
YOLO26涨点改进| CVPR 2026|卷积创新改进篇| 轻量化改进!引入YOLO-ULM中轻量D3C2f模块,含二次创新D3C3k2模块,助力小目标检测、图像分类、图像分割任务,高效涨点

YOLO26涨点改进| CVPR 2026|卷积创新改进篇| 轻量化改进!引入YOLO-ULM中轻量D3C2f模块,含二次创新D3C3k2模块,助力小目标检测、图像分类、图像分割任务,高效涨点

一、本文介绍 🔥本文给大家介绍使用 YOLO-ULM中轻量D3C2f模块 改进YOLO26网络模型,D3C2f 通过特征切分与聚合结构保留 C2f 的高效梯度流动和特征复用能力,同时在 D3 Block 中级联 33 深度可分离卷积、77 大核深度卷积和 33 深度可分离卷积,既扩大模型感受野、增强高层语义…

2026/7/9 2:54:47阅读更多 →
企业网络管理私有云落地实战:告别传统机房乱象,筑牢内网安全底座

企业网络管理私有云落地实战:告别传统机房乱象,筑牢内网安全底座

从事企业网络运维管理多年,我最深的感触就是:传统机房的物理化运维模式,早已跟不上现代企业的发展节奏。 早些年,中小型企业的网络架构十分简单,几台物理服务器、一台核心交换机、独立的防火墙,就能支撑公…

2026/7/9 2:54:47阅读更多 →
数据库设计方法:从需求到表结构

数据库设计方法:从需求到表结构

数据库设计方法:从需求到表结构一句话总结:数据库设计遵循"需求分析 → 概念结构设计(E-R 图) → 逻辑结构设计(关系模式) → 物理结构设计(索引/存储)"四步流程&#xff…

2026/7/9 2:49:47阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/8 5:12:14阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/8 7:00:12阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/9 2:47:07阅读更多 →
Three.js 着色器光效教程

Three.js 着色器光效教程

着色器光效 Shader Light ▶ 在线运行案例 案例合集: 三维可视化功能案例(threehub.cn)开源仓库github地址: https://github.com/z2586300277/three-cesium-examples400个案例代码: 网盘链接 你将学到什么 ShaderMaterial 自…

2026/7/9 0:04:37阅读更多 →
如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南

如何5分钟掌握CS2智能库存管理:开源工具CASEMOVE终极指南 【免费下载链接】casemove A dedicated desktop app that enables you to move items in and out of storage units in CS2. 项目地址: https://gitcode.com/gh_mirrors/ca/casemove 还在为CS2存储单…

2026/7/9 0:04:37阅读更多 →
GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a vs MySQL 8.0:ALTER TABLE语法与限制的5点关键差异对比

GBase 8a与MySQL 8.0:ALTER TABLE语法差异深度解析与实战指南1. 两种数据库的ALTER TABLE能力全景对比在数据库架构设计和运维过程中,表结构变更(DDL操作)是不可避免的需求。GBase 8a作为国产分析型数据库代表,与开源M…

2026/7/9 0:04:37阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/8 6:59:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/8 13:42:39阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/8 13:42:39阅读更多 →