如果你最近关注AI编程助手,可能会发现一个现象:很多工具都在强调“智能体”能力,但真正能让你理解其核心原理的却不多。我们常常被各种复杂的框架、抽象的概念和庞大的工程结构所包围,以至于产生一个错觉:智能体开发一定很复杂,需要学习大量新知识。

但事实可能恰恰相反。今天我们要聊的 Claude Code ,它最核心的智能体循环机制,其内核代码可能比你想象的要简单得多——简单到只有大约30行,核心就是一个 while True 循环加上对 Bash 命令的调用。这个设计揭示了一个关键认知: 智能体的本质,很多时候就是一个能自主思考、执行、再思考的循环系统 。它并不神秘,其基础逻辑甚至可以用最朴素的编程思维来构建。

这篇文章将为你彻底拆解这个“30行内核”背后的设计思想。我们不会停留在概念层面,而是会:

  1. 从零开始,带你理解什么是“智能体循环”(Agent Loop)。
  2. 深入Claude Code的简化内核,看它如何用 while True Bash 实现自主任务执行。
  3. 提供完整的、可运行的代码示例,让你亲手搭建一个微型智能体。
  4. 分析这种设计的优势、局限以及在实际开发中需要注意的“坑”。
  5. 探讨如何基于这个核心,扩展出更强大、更实用的智能体应用。

无论你是想入门智能体开发,还是已经在使用各类AI编程工具但想知其所以然,这篇文章都将提供一个清晰、可操作的视角。你会发现,理解核心原理后,无论是使用Claude Code、Cursor还是其他AI智能体,你都能更得心应手。

1. 智能体开发:我们到底在解决什么问题?

在深入代码之前,我们必须先回答一个根本问题:为什么要做“智能体”开发?它解决了传统AI工具(比如普通的代码补全或问答机器人)的什么痛点?

想象一个典型的开发场景:你需要修复一个Bug。传统的AI助手可能这样工作:

  1. 你问:“我的Spring Boot应用启动时报 BeanCreationException ,怎么办?”
  2. AI根据你的描述,给出一段可能的解决方案代码。
  3. 你手动复制这段代码,粘贴到IDE中,尝试运行。
  4. 如果不行,你再描述新的错误,AI再给出建议...如此循环。

这个过程的核心问题是: 人类是“执行循环”的主体 。AI只负责“思考”(生成建议),而“执行”(运行命令、修改文件、查看结果)和“观察”(判断执行结果是否成功)都需要开发者手动完成。这极大地限制了效率,尤其是在处理复杂、多步骤的任务时。

智能体(Agent)要解决的,正是将“思考-执行-观察”这个循环自动化。 一个真正的智能体应该能够:

  • 思考(Reasoning) :分析目标,规划步骤。
  • 执行(Acting) :自主执行规划好的动作,比如运行Shell命令、读写文件、调用API。
  • 观察(Observing) :获取执行结果(标准输出、错误码、文件变化等),作为下一轮思考的输入。

这个 “思考-执行-观察”循环(Reasoning-Acting-Observation Loop) ,就是智能体最核心的运行机制。Claude Code的“30行内核”精彩地诠释了这一点:它用一个简单的 while True 循环,不断驱动大语言模型(LLM)完成这个循环,直到任务达成或无法继续。

所以,智能体开发的首要目标,不是追求框架的复杂性,而是 构建一个稳定、可靠且高效的自主循环系统 。理解了这一点,我们再去看Claude Code的实现,就会豁然开朗。

2. 核心概念拆解:Agent、Skill与循环

在拆解代码之前,我们先明确几个关键概念,避免后续讨论产生歧义。

智能体(Agent) 在本文语境下,Agent特指一个 能够理解目标、规划步骤、执行动作并从中学习的软件实体 。它不是一个静态的函数,而是一个拥有“循环”能力的动态程序。Claude Code本身就是一个运行在你本地环境中的AI编程智能体。

技能(Skill) Skill是Agent能够执行的基本操作单元。例如:

  • 文件操作技能 :读取、写入、创建、删除文件。
  • Shell命令技能 :在终端中执行 ls , cd , git , npm install 等命令。
  • 代码理解技能 :分析代码结构、查找函数定义、理解错误日志。 一个强大的Agent往往集成了多种Skill。在Claude Code的简化模型中,最核心的Skill就是 执行Bash命令

智能体循环(Agent Loop) 这是本文的核心。它描述了Agent如何通过循环迭代推进任务。一个标准的循环包含以下步骤:

  1. 接收目标 :获取用户指令(如“修复这个bug”)。
  2. 思考与规划 :LLM分析当前状态(上下文、文件内容、上一步结果)和最终目标,决定下一步做什么。这可能生成一个Shell命令,或一个代码修改计划。
  3. 执行动作 :Agent调用对应的Skill(如运行生成的Shell命令)。
  4. 观察结果 :捕获动作的执行结果(输出、错误、文件系统的变化)。
  5. 评估与迭代 :将观察结果作为新的上下文,结合原始目标,判断任务是否完成。如果未完成,回到第2步继续思考。

这个循环会一直持续,直到任务被标记为完成、遇到无法解决的错误,或达到最大迭代次数。Claude Code的 while True 循环,就是对这个过程最直接的代码表达。

Bash/Shell Bash是大多数类Unix系统(Linux, macOS)的默认命令行解释器。它是Agent与操作系统交互的 桥梁 。通过Bash,Agent可以:

  • 浏览文件系统 ( ls , cd , pwd )
  • 运行构建工具 ( npm run build , mvn compile , go test )
  • 操作版本控制 ( git add , git commit )
  • 启动、停止服务 ( docker-compose up , systemctl restart )
  • 安装依赖 ( pip install , brew install )

将LLM的“思考”输出转化为Bash命令并执行,再将Bash的输出作为“观察”反馈给LLM,就构成了一个完整的、可作用于真实世界的循环。

3. 环境准备:运行你的第一个智能体循环

理论需要实践来验证。在深入Claude Code的简化内核前,我们先搭建一个可以运行类似Agent循环的极简环境。这个环境将帮助我们理解最基础的交互流程。

核心环境要求:

  1. Python 3.8+ :我们将用Python编写控制循环的逻辑。
  2. OpenAI API密钥(或兼容API) :用于调用大语言模型。本文示例将使用OpenAI的GPT模型,你也可以替换为任何兼容OpenAI API格式的模型服务(如DeepSeek、Ollama本地模型等)。
  3. 类Unix命令行环境(Bash) :Linux、macOS或Windows下的WSL/Git Bash。这是Agent执行命令的舞台。

步骤1:创建项目目录并初始化 打开你的终端,执行以下命令:

# 创建一个新的项目目录
mkdir simple_agent_loop && cd simple_agent_loop

# 创建虚拟环境(推荐,避免包冲突)
python -m venv venv

# 激活虚拟环境
# 在 macOS/Linux 上:
source venv/bin/activate
# 在 Windows Git Bash 上:
# source venv/Scripts/activate

# 创建主要的Python脚本文件
touch simple_agent.py

步骤2:安装必要的Python包 我们需要 openai 库来调用模型API,以及 python-dotenv 来管理环境变量(安全地存储API密钥)。

pip install openai python-dotenv

步骤3:设置API密钥(安全第一!) 永远不要将API密钥硬编码在代码中。我们使用 .env 文件来管理。

# 创建 .env 文件
touch .env

用文本编辑器打开 .env 文件,填入你的OpenAI API密钥:

# .env 文件内容
OPENAI_API_KEY=sk-your-actual-openai-api-key-here

重要安全提醒

  • 确保 .env 文件已被添加到 .gitignore 中,避免意外提交到代码仓库。
  • 如果你使用Git,立即创建 .gitignore 文件: echo -e "venv/\n.env\n__pycache__/" > .gitignore

环境准备就绪。接下来,我们将进入最激动人心的部分:亲手编写那个传说中的“30行内核”。

4. 内核揭秘:30行代码实现智能体循环

现在,让我们揭开Claude Code简化版内核的神秘面纱。下面的 simple_agent.py 文件实现了一个最基础的、具有“思考-执行-观察”循环的智能体。

请将以下代码复制到 simple_agent.py 中:

# simple_agent.py
import os
import subprocess
import sys
from openai import OpenAI
from dotenv import load_dotenv

# 1. 加载环境变量,获取API密钥
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def execute_bash_command(command):
    """执行Bash命令并返回结果。"""
    try:
        # 使用subprocess运行命令,捕获输出和错误
        result = subprocess.run(
            command,
            shell=True,
            capture_output=True,
            text=True,
            encoding='utf-8',
            errors='ignore' # 避免编码问题导致崩溃
        )
        # 返回标准输出、标准错误和返回码
        return {
            "stdout": result.stdout,
            "stderr": result.stderr,
            "returncode": result.returncode,
            "success": result.returncode == 0
        }
    except Exception as e:
        return {
            "stdout": "",
            "stderr": str(e),
            "returncode": -1,
            "success": False
        }

def main_agent_loop(initial_goal):
    """智能体的主循环。"""
    # 初始化对话历史和系统提示
    conversation_history = [
        {"role": "system", "content": "你是一个有帮助的编程助手,可以执行Bash命令来解决问题。请根据用户目标和当前上下文,决定下一步要执行的Bash命令。你只能输出一个有效的Bash命令,不要输出任何解释。如果任务完成,请输出 'DONE'。"}
    ]
    conversation_history.append({"role": "user", "content": f"目标:{initial_goal}"})

    # 2. 核心:While True 循环
    step = 0
    while True:
        step += 1
        print(f"\n=== 步骤 {step} ===")

        # 3. 思考:调用LLM,获取下一步行动(一个Bash命令)
        try:
            response = client.chat.completions.create(
                model="gpt-4o-mini", # 可使用 gpt-4, gpt-3.5-turbo 等
                messages=conversation_history,
                temperature=0.1, # 低随机性,确保命令准确
                max_tokens=150
            )
            # 提取模型生成的“行动”
            action = response.choices[0].message.content.strip()
        except Exception as e:
            print(f"调用模型失败: {e}")
            break

        print(f"模型建议的行动: {action}")

        # 4. 终止条件判断:模型认为任务完成
        if action.upper() == "DONE":
            print("模型认为任务已完成。")
            break

        # 5. 执行:运行模型生成的Bash命令
        print(f"执行命令: {action}")
        result = execute_bash_command(action)

        # 6. 观察:构建执行结果的描述
        observation = f"命令 `{action}` 执行完毕。\n"
        observation += f"返回码: {result['returncode']}\n"
        if result['stdout']:
            observation += f"标准输出:\n{result['stdout']}\n"
        if result['stderr']:
            observation += f"标准错误:\n{result['stderr']}\n"
        observation += f"执行成功: {result['success']}"

        print(observation)

        # 7. 将执行结果(观察)添加到历史,作为下一轮思考的上下文
        conversation_history.append({"role": "assistant", "content": action})
        conversation_history.append({"role": "user", "content": observation})

        # 简单的循环保护,防止无限循环(实际项目会更复杂)
        if step > 20:
            print("已达到最大步数(20),强制退出循环。")
            break

    print("\n智能体循环结束。")

if __name__ == "__main__":
    # 获取用户输入的目标
    if len(sys.argv) > 1:
        goal = " ".join(sys.argv[1:])
    else:
        goal = input("请输入智能体的目标(例如:'列出当前目录的文件'): ")
    main_agent_loop(goal)

代码逐段解析:

  1. 环境与依赖 :导入必要的库,加载API密钥。这是与LLM通信和执行命令的基础。
  2. execute_bash_command 函数 :这是智能体的“手”。它使用Python的 subprocess 模块安全地执行Shell命令,并捕获所有输出(标准输出、标准错误)和返回码。 errors='ignore' 参数是为了处理可能出现的编码问题,增强鲁棒性。
  3. main_agent_loop 函数 :智能体的“大脑”和循环控制器。
    • 初始化 :设置一个 conversation_history 列表,包含系统提示(定义助手角色和行为约束)和用户初始目标。这个历史记录是LLM的“工作记忆”。
    • while True: :这就是那个核心循环。只要没有遇到终止条件,它就持续运行。
    • 思考(LLM调用) :将当前的对话历史发送给LLM,请求它生成下一步的Bash命令。系统提示严格要求模型“只输出一个有效的Bash命令”,这引导模型进行“行动规划”。
    • 行动判断 :检查模型输出是否为“DONE”,这是模型主动终止循环的信号。
    • 执行 :调用 execute_bash_command 函数执行生成的命令。
    • 观察 :将命令执行的结果(输出、错误、成功与否)格式化为一段文本描述。
    • 记忆更新 :将本轮生成的“行动”(命令)和执行“观察”(结果)追加到对话历史中。这样,在下一轮循环中,LLM就能基于完整的上下文(初始目标+所有已执行步骤+结果)进行决策,实现状态的持续传递。
    • 循环保护 :一个简单的计数器,防止因模型逻辑错误导致无限循环。

这不到100行的代码(核心循环逻辑约30行),完整地实现了一个可运行的、具备自主性的智能体原型。它虽然简单,却包含了智能体最本质的要素。

5. 运行与实战:让你的智能体动起来

让我们用几个具体的任务来测试这个智能体,观察它是如何通过循环一步步达成目标的。

任务1:探索性任务 - 查看系统信息

# 在项目根目录下运行
python simple_agent.py “告诉我当前系统的信息,比如操作系统类型和内核版本”

预期交互过程:

  1. 智能体接收目标:“告诉我当前系统的信息...”。
  2. 第一轮思考:LLM可能会生成命令 uname -a
  3. 执行并观察:运行 uname -a ,将系统信息输出作为观察结果。
  4. 第二轮思考:LLM看到系统信息已输出,可能认为任务已完成,生成 DONE
  5. 循环结束。

任务2:多步骤任务 - 创建一个简单的Python项目

这是一个更有趣的测试,需要智能体进行规划。

python simple_agent.py “在当前目录下创建一个名为‘my_app’的Python项目,包含一个main.py文件,文件内容打印‘Hello, Agent!’,然后运行它看看是否成功。”

可能的执行序列(取决于模型的具体输出):

  1. mkdir my_app (创建目录)
  2. cd my_app (进入目录)
  3. echo “print(‘Hello, Agent!’)” > main.py (创建并写入文件)
  4. python main.py (运行脚本)
  5. DONE (任务完成)

你会看到智能体自动执行了这些命令,并最终输出了“Hello, Agent!”。这就是自主循环的力量。

任务3:修复型任务 - 处理一个错误

我们先手动制造一个“错误”:

# 在终端中执行
echo “print(‘Hello” > broken.py # 创建一个语法错误的Python文件

然后让智能体去处理:

python simple_agent.py “检查当前目录下的broken.py文件是否有语法错误,并尝试修复它。”

智能体可能会执行 python -m py_compile broken.py 来检查语法,发现错误后,再读取文件内容,分析错误,最后生成正确的文件内容并写入。这个过程完全由循环驱动。

运行结果分析要点:

  • 观察决策链 :注意看模型是如何根据上一步的结果来决定下一步行动的。例如,执行 cd my_app 成功后,后续的文件操作命令才会在正确的目录下执行。
  • 关注错误处理 :如果模型生成了一个无效命令(如 some_nonexistent_command ),我们的 execute_bash_command 函数会捕获错误,并将错误信息(stderr)反馈给模型。模型在下一轮就有机会纠正自己。
  • 理解上下文的重要性 :对话历史确保了模型不会“失忆”。它知道之前做过什么,结果如何,这是实现多步骤任务协同的关键。

通过这几个例子,你应该能直观感受到 while True + Bash 这个简单组合所蕴含的自动化潜力。它让AI从一个被动的“建议者”变成了一个主动的“执行者”。

6. 从原型到实用:核心优化与扩展方向

我们实现的30行内核是一个伟大的起点,但它距离一个像Claude Code那样稳定、强大的生产级工具还有很大差距。下面我们来分析其中的关键挑战和优化方向,这也是智能体开发中的核心工程问题。

6.1 安全性:最大的挑战与底线

允许AI自动执行Bash命令是极其危险的行为。一个恶意的提示词或模型的错误判断,可能导致 rm -rf / (删除根目录)或类似灾难性命令的执行。

必须实施的防护措施:

  1. 命令过滤与沙箱

    • 建立命令黑名单/白名单。例如,永远禁止执行 rm dd mkfs > /dev/sda 等危险命令。
    • 使用容器(Docker)或虚拟机创建一个隔离的沙箱环境,让智能体在其中运行,限制其对宿主机的访问。
    # 简单的命令过滤示例(非常基础,实际需要更复杂)
    DANGEROUS_PATTERNS = [‘rm -rf’, ‘:(){ :|:& };:’, ‘mkfs’, ‘dd if=’, ‘> /dev/’]
    def is_command_safe(command):
        for pattern in DANGEROUS_PATTERNS:
            if pattern in command:
                return False
        return True
    # 在execute_bash_command前调用
    
  2. 权限最小化 :以非root、低权限用户身份运行智能体进程。

  3. 人工确认(人机回环) :对于高风险操作(如修改生产环境文件、安装系统包),可以设计为暂停循环,等待用户确认后再执行。

6.2 可靠性:让循环更稳定

  1. 更好的终止条件 :仅靠模型输出“DONE”不可靠。需要更复杂的任务完成判定:
    • 目标检验 :让LLM根据原始目标和当前状态(如文件内容、命令输出)判断是否真正完成。
    • 多轮无进展退出 :如果连续多轮循环没有产生新的有效状态变化(如文件未修改、命令输出重复),应主动退出。
  2. 错误处理与回退
    • 区分命令执行错误(如 command not found )和业务逻辑错误。
    • 实现简单的回退机制,例如,当某一步失败时,尝试让模型提出另一种方案,而不是直接崩溃。
  3. 上下文管理 :我们的简单示例将全部历史记录发送给LLM,这可能导致token数超限。需要实现:
    • 历史总结 :定期将冗长的历史压缩成简洁的摘要。
    • 关键信息提取 :只保留与当前决策最相关的历史片段。

6.3 能力扩展:超越Bash命令

Bash命令是强大的,但并非万能。一个实用的智能体需要更多Skill:

  1. 文件读写Skill :直接读写文件内容,而不是全部通过 cat echo 。这允许模型直接编辑代码、配置文件等。
  2. 网络请求Skill :调用HTTP API来获取信息或触发远程操作。
  3. GUI/浏览器自动化Skill :通过工具如Selenium处理Web应用。
  4. 专用工具集成 :集成 git 进行版本控制操作,集成 docker 进行容器管理等。

这些Skill可以抽象为统一的“工具调用(Tool Calling)”接口。LLM(如GPT-4)支持函数调用(Function Calling),可以很好地与这套体系结合。模型在思考时,可以选择要调用的工具(函数),并生成调用参数,由Agent来执行对应的函数。

6.4 工程化:框架与架构

当Skill增多、逻辑变复杂后,就需要一个框架来管理。这就是为什么会有 Agent Harness 、LangChain、AutoGen等框架。它们提供了:

  • 技能(Tools)的标准注册与管理机制
  • 更复杂的循环控制逻辑 (ReAct, Plan-and-Execute等)。
  • 记忆(Memory)的持久化与向量化检索
  • 多智能体(Multi-Agent)的协作与通信

我们的 while True + Bash 内核,可以看作是这些框架最核心、最本质的抽象。理解了这个内核,再学习这些框架,你会清楚地知道每一层封装到底在解决什么问题。

7. 常见问题与排查指南

在实践过程中,你可能会遇到以下问题。这里提供排查思路和解决方案。

问题现象 可能原因 排查方式 解决方案
运行脚本后立即报错 ModuleNotFoundError: No module named ‘openai’ Python依赖未安装或虚拟环境未激活。 1. 检查终端提示符前是否有 (venv) 标识。
2. 运行 `pip list
grep openai`。
错误 AuthenticationError Invalid API Key API密钥未正确设置或加载。 1. 检查 .env 文件是否存在且格式正确(无多余空格)。
2. 检查 OPENAI_API_KEY 变量名是否拼写正确。
3. 在Python中临时打印 os.getenv(‘OPENAI_API_KEY’) 的前几位(勿打印完整密钥)。
1. 确保 .env 文件与 simple_agent.py 在同一目录。
2. 确认密钥有效且未过期。
3. 重启终端或IDE,确保环境变量已加载。
模型生成的命令不执行,或执行了但无输出 1. 命令本身是无效的。
2. 模型输出了多余的解释文本,导致命令解析失败。
3. 系统路径或权限问题。
1. 打印出模型生成的原始 action 字符串,检查是否被引号包裹或包含换行符。
2. 检查 execute_bash_command 函数返回的 result 字典内容。
1. 优化系统提示词,更严格地要求模型“只输出命令”。
2. 在代码中添加清洗逻辑,例如 action = action.split(‘\n’)[0].strip(‘\’\”’)
3. 对于需要交互的命令(如 sudo ),需特殊处理。
智能体陷入无限循环,重复执行相同或无效命令 1. 模型无法从错误结果中学习到正确路径。
2. 任务本身模糊或无法完成。
3. 上下文历史过长或混乱,导致模型“迷失”。
1. 观察每轮循环中 conversation_history 的增长情况。
2. 检查模型是否收到了完整的错误信息。
1. 加强循环保护,设置更小的最大步数(如10)。
2. 在系统提示词中增加对无效命令的警告和指导。
3. 实现上下文窗口滑動或总结,只保留最近N轮对话。
执行涉及文件路径的命令时失败(如 cd 后文件操作仍在原目录) subprocess.run 每个命令都在独立的子进程中执行,进程间的状态(如工作目录)不保留。 打印每次执行命令前的当前工作目录 ( os.getcwd() )。 1. 对于需要保持状态的连续命令,将它们组合成一个脚本或使用 && 连接: cd my_app && echo “test” > file.txt
2. 更高级的方案:在Agent内部维护一个“虚拟工作目录”状态,并在生成命令时自动补全路径。
中文或特殊字符在输出中显示为乱码 终端、Python、子进程间的编码不一致。 检查 execute_bash_command 函数中 encoding errors 参数。 1. 确保使用 utf-8 编码。 errors=’ignore’ 可防止崩溃,但可能丢失信息。对于中文环境,可尝试 encoding=’gbk’ (Windows) 或 encoding=’utf-8’ (Linux/macOS)。
2. 设置环境变量: env={‘PYTHONIOENCODING’: ‘utf-8’} 传递给 subprocess.run

8. 最佳实践与进阶建议

基于以上分析和实践,如果你想深入智能体开发或构建更可靠的应用,以下建议值得参考:

1. 从简单任务开始,逐步增加复杂度 不要一开始就让智能体处理复杂的项目搭建。从“列出文件”、“查看进程”等只读、无害的命令开始,逐步引入文件创建、内容修改等操作。这有助于你调试循环逻辑和模型提示词。

2. 精心设计系统提示词(System Prompt) 系统提示词是智能体的“宪法”,决定了它的行为模式。除了要求输出命令,还应明确:

  • 角色与边界 :“你是一个在安全沙箱中运行的助手,禁止执行任何破坏性命令。”
  • 思考格式 :鼓励模型以“思考:... 命令:...”的格式输出,便于解析。
  • 错误处理指导 :“如果命令执行失败,请分析错误信息并尝试另一种方法。”
  • 完成标准 :“当你确信用户目标已达成时,请输出‘DONE’。”

3. 实现强大的解析与验证层 不要完全信任模型的原始输出。在模型输出和命令执行之间,应加入一个解析与验证层:

  • 提取命令 :使用正则表达式或解析库从模型回复中精确提取命令部分。
  • 语法检查 :对提取的命令进行基础语法和安全检查。
  • 参数校验 :对于高风险参数(如文件路径、URL)进行白名单校验。

4. 采用成熟的框架作为基础 对于严肃的项目,强烈建议基于现有框架开发,而不是从头再造轮子。

  • LangChain : 生态丰富,工具链齐全,适合快速构建原型和复杂应用。
  • AutoGen : 微软出品,专注于多智能体对话与协作,场景强大。
  • Agent Harness (根据热搜词推测): 可能是一个专注于测试、评估和编排智能体的框架。使用框架能帮你处理记忆、工具调用、循环控制等复杂问题,让你更专注于业务逻辑。

5. 建立评估与监控体系 智能体的行为具有一定不可预测性。在生产环境或重要任务中使用时,必须建立监控:

  • 日志记录 :详细记录每一轮循环的模型输入、输出、执行命令、执行结果。
  • 操作回放 :保存完整的会话历史,便于事后审计和问题复现。
  • 关键操作确认 :对于文件删除、数据覆盖、网络请求等操作,实现“二次确认”机制。

6. 理解成本与性能 每次循环都意味着一次LLM API调用。复杂的任务可能导致数十次调用,成本不容忽视。同时,循环的耗时(思考+执行)直接影响用户体验。在设计中需要考虑:

  • 本地模型 :对于简单、确定性的任务,可以考虑使用本地运行的轻量级模型(如通过Ollama运行Llama 3、Qwen等)。
  • 循环优化 :避免让模型在明显失败的方向上反复尝试,及时中断无意义的循环。

从30行的概念验证到企业级应用,智能体开发之路充满了工程挑战。但万变不离其宗,其核心依然是那个优雅而强大的 “思考-执行-观察”循环 。理解了这个核心,你就掌握了打开智能体开发大门的钥匙。无论是使用Claude Code这样的成熟产品,还是基于LangChain构建自己的智能体,你都能清晰地看到技术脉络,做出更明智的设计和调试决策。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐