> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 修复智能体的死循环
- URL: https://www.hubwiz.com/blog/fix-the-agent-s-infinite-loop/
- Published: 2026-01-30T08:26:10.000Z
- Updated: 2026-01-30T08:26:10.000Z
- Description: 我们的智能体陷入了 4 分钟的无限循环。
- Author: admin
- Tags: AGENT, #Import 2026-10-14 14:41

我们的智能体陷入了 4 分钟的无限循环。

这是它的运行方式：

```python
for i in range(10000):
    result = agent.query_database("找出所有收入大于 100 万的用户")
    for user in result:
        send_email_campaign(user)

```

每一轮都触发一个新问题："这个用户年收入超过 100 万吗？"——但答案永远只是"是的"。

为什么会这样发生？我们检查了代码，并发现了根本原因：**我们的智能体没有"思维链"——它没有内部对话来追踪自己的行为。**

## 1、问题

这个问题并不新鲜——它是"回复哥"问题的一个经典变体。

当你构建智能体时，你经常会遇到以下问题：

- **循环陷阱**：智能体不断触发相同的操作循环。
- **没有工作记忆**：每个新提示都是独立处理的，没有上下文意识。
- **状态跟踪失败**：智能体忘记了它在做什么或它为什么这样做。

循环是如何发生的

我们的循环以 4 分钟的旋转开始，当时智能体决定执行"数据库查询"任务：

1. **第一轮（0:00）**：查询数据库
2. **第二轮（1:30）**：……又是查询数据库
3. **第三轮（3:00）**：……查询数据库
4. **第四轮（4:00）**：……查询数据库
5. **第 N 轮**：……查询数据库

在 4 分钟内，智能体向数据库发送了超过 14,000 次查询。

这个循环暴露了一个根本问题：**缺乏内部对话和自我纠正机制**。

智能体没有问过自己："等等，我刚才查过这个了吗？"

这是"回复哥"问题——但更危险的是，因为它发生在真实的 AI 系统（如 LLM 智能体、自主编码智能体等）中。

## 2、循环陷阱与真实 AI 系统

在 LLM 智能体中，这个问题非常真实。例如：

- **ReAct** 智能体会卡在"观察-思考-行动"循环中
- **AutoGPT** 循环：智能体不断向工具发送命令，而没有明确的目标
- **工具使用死循环**：智能体因为一个 bug 不断调用相同的工具

我们的智能体需要一种"内部对话"机制来：

1. **追踪对话历史**：记住什么发生了、为什么发生以及它是否有效
2. **自我纠正**：检测重复或无效行为
3. **目标意识**：理解它正在试图实现什么
4. **终止条件**：知道何时停止或改变策略

## 3、如何修复 4 分钟循环

我们实施了几个解决方案，将循环时间从 4 分钟减少到几秒钟：

### 3.1 添加对话历史

我们添加了一个 `conversation_history` 机制。智能体现在可以：

```python
class Agent:
    def __init__(self):
        self.conversation_history = []  # 内部对话
        
    def query_database(self, query):
        # 检查对话历史，避免重复
        last_query = self.get_last_database_query()
        
        if last_query and query.similar_to(last_query):
            self.log(f"跳过重复查询: {query}")
            return "最近已经查询过了"
            
        # 正常执行并记录
        result = self.database.execute(query)
        self.add_to_history(f"数据库查询: {query}", result=result)
        return result

```

**效果**：智能体现在会记住它刚刚问过什么。

### 3.2 状态标记

我们添加了显式状态跟踪：

```python
class Agent:
    def __init__(self):
        self.current_task = None  # 当前正在执行的任务
        self.task_stack = []       # 任务栈
        
    def execute_task(self, task):
        # 检查循环
        if self.is_in_loop(task):
            self.log(f"检测到循环: {task}")
            return
            
        # 正常执行
        self.task_stack.append(task)
        result = self.execute(task)
        
        # 弹出任务
        self.task_stack.pop()
        return result

```

**效果**：智能体现在知道自己何时陷入循环并可以跳出。

### 3.3 反射机制

最有效的修复是**反思**——在执行操作之前问自己"这是个好主意吗？"

```python
class Agent:
    def should_execute(self, action):
        # 反思：这有意义吗？会导致循环吗？
        if not self.is_reasonable(action):
            return False
            
        return True
        
    def execute(self, action):
        if self.should_execute(action):
            return self.perform(action)
        else:
            self.log(f"跳过可能有害的操作: {action}")

```

**效果**：智能体现在执行之前会检查自己的行为。

### 3.4 上下文窗口优化

我们改进了系统提示以提供更清晰的上下文：

```python
SYSTEM_PROMPT = """
你是一个智能助手。你的任务是：
1. 回答用户问题
2. 维护对话历史，避免重复
3. 在执行操作前反思是否合适
4. 追踪你的任务状态

对话历史（最近 10 条）：
{self.conversation_history}

当前任务：
{self.current_task}

重要：你有一个内部记忆。利用它来避免重复工作。
"""

```

### 4、修复后的性能

实施这些改进后，我们的智能体性能大幅提升：

| 指标      | 修复前          | 修复后   | 改进       |
| ------- | ------------ | ----- | -------- |
| 数据库查询次数 | 14,000+/4 分钟 | \~300 | 减少 98.6% |
| 响应时间    | \~10 秒       | \~2 秒 | 提高 80%   |
| 循环次数    | 无限           | 0     | 消除循环     |

## 5、关键教训

从这次调试中，我们学到了关于构建 AI 智能体的几个重要教训：

1. **内部对话至关重要**：没有它，智能体就像失忆一样
2. **状态跟踪不可或缺**：你需要知道智能体"认为"它正在做什么"
3. **反思胜于盲目执行**：在行动前暂停，思考后果
4. **测试边缘情况**：循环通常在边界条件时触发
5. **日志和可观察性**：没有可见性，你无法调试

现在我们的智能体运行更加可靠。但我们将继续改进：

- **更好的对话模型**：长期记忆而不是短期历史
- **规划能力**：多步规划而不仅仅是反应式
- **工具使用优化**：智能地选择和组合工具
- **错误恢复**：从失败中学习并恢复

## 6、结束语

4 分钟循环是一个简单的问题，但它揭示了构建智能体的一个深刻真理：**没有内部对话，任何外部输入都可以导致灾难性行为。**

我们的修复展示了，通过添加几个关键机制——对话历史、状态跟踪、反思和更好的提示工程——我们可以将一个失控的智能体转变为可靠的助手。

---

原文链接: [Our Agent Had a 4-Minute Loop — How We Fixed It](https://medium.com/data-science-collective/our-agent-had-a-4-minute-loop-heres-how-we-fixed-it-40a8142ef1a9?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处