SSD Nodes Learn Hosting plans →
指南 Matt Connor作者: Matt Connor · 更新于 2026-08-28

从零学习 AI Agent:六阶段实战路线

用六个阶段从零掌握 AI agent:先理解工具调用,再亲手编写约 30 行循环,逐步加入工具、记忆、循环设计与安全,每阶段都完成一个可运行组件。

分六个阶段学习

要从零开始学习 AI agent,请按顺序完成以下六个阶段:概念、编写第一个循环、工具、记忆、循环设计和安全。每个阶段都要亲手构建一个东西。提前跳过阶段是最常见的停滞原因,因为框架会隐藏你正需要了解的部分。

AI agent 是一个允许调用工具的语言模型循环。这句话概括了整个主题。后续内容只是说明循环包含哪些部分、工具可以访问哪些对象,以及循环出错时如何停止。如果你能向其他人解释这个循环,就说明你已经掌握了核心内容。如果你只能说出一些框架名称,就还没有掌握。

下面的计划假设你通过构建来学习。阅读一个阶段,构建其中的小组件,故意让它出错,然后继续下一阶段。只读过但没有实际完成的阶段,就不算完成。

开始第 1 阶段前的实际要求

实际的前置要求很少,比大多数课程页面列出的要求还少。

  • 您能以编写 50 行脚本的水平读写 Python 或 TypeScript。
  • 您熟悉 Linux shell:安装软件包、编辑文件、读取日志。
  • 您拥有托管模型的 API key,或拥有能够运行本地模型的机器。

要求只有这些。您不需要机器学习理论,也不需要训练过模型。Agent 工作不涉及梯度或训练数据。只有在您决定自行运行模型时,显卡才有用。这属于另一项技能,之后可以通过 在 VPS 上托管 Ollama 以自行托管 LLM 学习。

人们低估了 shell 部分的难度。Agent 经常因权限、路径、环境变量以及静默退出的进程而失败。如果看到涉及 PATH 或文件模式的堆栈跟踪就想关闭终端,请先用一个周末学习 Linux 基础知识。这样可以为您节省之后一个月的时间。

阶段 1:什么是代理,以及它不是什么

先发起一次 API 调用,不要使用循环。发送提示词,打印回复,然后查看响应中的 token 计数。现在,你已经了解了成本单位和延迟单位。

然后学习工具调用,这是整个领域中唯一真正的新概念。您需要向模型描述一个函数,包括函数名、功能说明,以及用于定义输入的 JSON(JavaScript 对象表示法)架构。模型不会执行任何操作。它会返回结构化请求:使用这些参数调用 run_command。您的代码执行该函数,将输出作为消息发回,然后再次请求模型。模型负责读取文本并生成文本,是一个规划器。真正执行操作的是您这边的代码。在开始比较不同设计后,交换过程中的这部分代码有一个名称:代理框架。它将循环、工具和权限封装在模型周围,而模型本身不具备这些能力。

聊天机器人返回一次回复后就结束。代理会重复这一交互,直到模型不再请求调用工具。重复过程就是两者的全部区别,也正因如此,它们的故障模式也不同。聊天机器人可能只给出一次错误答案。代理则可能根据错误答案连续执行多次操作,直到有人发现问题。

第 2 阶段:自己编写循环,只写一次

不要从框架开始。先编写大约 30 行 Python,让这个程序的结构由你自己掌握。

sudo apt update && sudo apt install -y python3-venv
python3 -m venv ~/agent
source ~/agent/bin/activate
pip install anthropic
export ANTHROPIC_API_KEY=your-key-here
import subprocess
import anthropic

client = anthropic.Anthropic()

tools = [{
    "name": "run_command",
    "description": "Run a read only shell command and return its output.",
    "input_schema": {
        "type": "object",
        "properties": {"command": {"type": "string"}},
        "required": ["command"],
    },
}]

messages = [{"role": "user", "content": "How much disk space is free here?"}]

while True:
    response = client.messages.create(
        model="claude-opus-5",
        max_tokens=4096,
        tools=tools,
        messages=messages,
    )
    if response.stop_reason != "tool_use":
        break
    messages.append({"role": "assistant", "content": response.content})
    results = []
    for block in response.content:
        if block.type == "tool_use":
            done = subprocess.run(
                block.input["command"], shell=True,
                capture_output=True, text=True, timeout=10,
            )
            results.append({
                "type": "tool_result",
                "tool_use_id": block.id,
                "content": done.stdout or done.stderr,
            })
    messages.append({"role": "user", "content": results})

print(next(b.text for b in response.content if b.type == "text"))

使用 python3 agent.py 运行。正常运行时,程序会输出一个段落,列出你的文件系统及其可用空间。这是因为模型请求了 df -h,你的代码执行了该命令,第二轮处理又将这张表转换成了句子。如果没有任何输出,说明循环在收到文本块之前就结束了。在循环中加入 print(response.stop_reason),观察这些值如何变化。

现在故意让它出错。删除 tool_use_id 行并读取错误信息,因为没有匹配 id 的工具结果会被 API 拒绝,这是初学者最常见的错误。提出一个需要执行两个命令的问题,观察循环运行两次。提出一个无法完成的问题,观察它是放弃还是无限循环。

需要注意这个示例存在一个问题。它通过 shell=True 将模型输出直接传入 shell。在可随时重建的临时机器上这样做可以接受,但在其他环境中都不应这样做。第 6 阶段会修复这个问题。循环背后的概念将在在 VPS 上构建自己的 AI 代理中进一步介绍。

第 3 阶段:代理尚未拥有的工具

您的 run_command 工具可以正常工作,但实际代理还需要访问系统外部资源的工具,例如工单系统、数据库和代码仓库。为每个服务、每个代理分别编写专用包装器无法扩展。

业界最终采用的方案是 Model Context Protocol(MCP)。MCP 服务器通过标准传输方式提供一组工具,任何支持 MCP 的代理都可以直接使用,无需编写自定义胶合代码。参考文件系统服务器只需运行一条命令:

npx -y @modelcontextprotocol/server-filesystem /home/you/projects

这要求系统已安装 Node,并且目录参数是该服务器唯一会访问的路径。这是安全模型的简化体现:边界由服务器决定,而不是由模型决定。将客户端指向该服务器后,您的代理即可获得文件读取和写入能力,而这些功能无需由您自行编写。在服务账户下正确运行这些服务器,并了解传输方式的相关说明,请参阅 在 VPS 上运行供 AI 编程代理使用的 MCP 服务器。如果需要连接真实数据而不是临时目录的第二个服务器,自行托管 openGym(训练记录跟踪器)提供了一个只读服务器。您可以借此练习询问自己的训练历史,同时不会赋予代理任何可能造成破坏的权限。

本阶段的要点是:工具设计才是真正的工作。描述含糊时,模型会自行猜测。工具返回四万字符会污染上下文窗口。能够删除内容的工具最终一定会删除内容。

第 4 阶段:记忆,主要就是文件

初学者通常会在这里使用向量数据库。至少现在不要这样做。

Agent 在两次调用之间不会保留记忆。每次都要重新发送完整对话,因此长会话的每轮成本高于短会话。记忆因此分为两个问题。第一个问题是当前上下文窗口能容纳哪些内容。对此,可以通过生成摘要、裁剪旧的工具输出,以及缓存提示词的稳定前缀来管理,从而只需支付其中一小部分费用。第二个问题是重启后仍能保留哪些内容,这属于存储问题。

对于第二个问题,在几乎所有第一个项目中,一个 Agent 可以读写的普通 Markdown 文件都比向量数据库更合适。为它提供一个文件,说明文件格式,并要求它在开始前读取该文件,在学到新信息后更新该文件。这样可以获得大部分收益,还能直接打开文件,查看 Agent 当前记录的内容。只有当这些笔记无法继续放入上下文窗口时,才使用嵌入和检索。不要提前使用。

阶段 5:循环就是产品

到这一步,您已经可以构建一个在您监控时正常工作的 agent。阶段 5 的目标,是让它在无人监控时也能正常工作。

以下 4 个问题决定了无人值守的 agent 是否可以安全地独立运行。什么会触发它,确保它不会无故运行。它在哪个边界内运行,确保错误的影响范围有限。如何验证结果,因为让 agent 自己给作业评分,它总会判定通过。什么预算会停止它,可以按 token 数量或实际运行时间限制。刻意设计这 4 项,是 循环工程,以及该定义涵盖的内容 所述的规范。

练习:取出您的阶段 2 agent,为它分配一个需要 4 或 5 个步骤的任务,并添加严格的迭代上限。然后移除上限,观察无限循环如何消耗您的 token 预算。先用较小的预算执行一次,避免日后在较大预算下意外执行。

第 6 阶段:安全性、密钥和成本

此阶段不是可选项。之所以放在最后,只是因为只有构建出可运行的系统后,您才能切身体会其中的风险。

让 agent 使用独立的非特权用户运行。不要使用 root,也不要使用您自己的账户。这样即使发生问题,影响范围也只是一个目录,而不是整台机器。不要让模型接触凭据,因为上下文窗口中的任何内容都可能通过工具调用被原样引用出来。应按照 避免让 AI agent 接触密钥 中的说明,通过辅助程序使用作用域受限且短时有效的令牌。为支出设置硬上限,因为无人值守的循环会在每次迭代时产生费用。在始终运行的 VPS 上控制 AI agent 成本 介绍了用于控制成本的上限和批处理方法。

如果您的 agent 运行在 harness 中,而不是您自行编写的脚本中,那么此阶段的部分内容属于配置而非代码。值得安装的 DeepSeek Harness 插件 介绍了许多相同的功能,包括预算上限、工具权限规则和注入扫描。

成本需要一个具体数字。截至 2026 年 7 月,Claude Opus 5 的费用为每百万个输入令牌 $5、每百万个输出令牌 $25。聊天频繁的 agent 反复发送不断增长的对话内容时,单个任务就可能处理数十万个令牌。提示缓存以及用于常规步骤的小型模型,对成本计算的影响远大于任何提示词调整。

提示注入也属于此阶段。如果您的 agent 会读取网页、问题跟踪器或收件箱,那么编写这些文本的人也在向您的 agent 编写指令。Web 搜索通常是最先打开这扇门的工具。让 agent 使用您自己的 SearXNG 实例 同时说明了配置方式及其产生的注入面。防御措施不是编写更巧妙的系统提示词,而是建立边界。无法删除代码仓库的 agent,就不会被诱导去删除代码仓库。

应当遵循哪份路线图?

选择一套课程并完成,不要从六套课程中各学一点。Microsoft ai-agents-for-beginners 仓库是最完整的免费课程,包含十八节课。截至 2026 年 7 月,该仓库已获得超过 70,000 个 star,并且与上述阶段清晰对应。热门 agent 仓库汇总适合用来了解现有项目,但不适合作为课程大纲,因为按 star 排序的列表反映的是受欢迎程度,而不是教学顺序。

需要实际项目进行练习时,编程 agent 是最佳起点:反馈即时,工具明确,错误也容易撤销。在 VPS 上运行编程 AI agent会完整介绍一个端到端示例。如果您更想研究现成系统,而不是从零开始构建,最佳自托管 AI agent中的对比会展示多个项目如何以不同方式实现同一个循环。

需要多长时间?

对于已经具备编程经验的人,第 1 和第 2 阶段需要一个晚上。第 3 阶段需要一个周末,其中大部分时间用于了解工具说明,而不是协议本身。第 4 和第 5 阶段需要几周的实际使用时间,因为只有观察代理遗忘某些内容,才能了解它会遗忘什么。第 6 阶段不会真正结束,因为每增加一项能力,都会重新引出相关问题。

连续利用晚间时间投入两个月,大多数人就能构建出一个可运行、边界明确且有用的代理。花费一年的人,通常是在持续阅读,而不是动手构建。

FAQ

构建 AI 代理需要了解机器学习吗?

不需要。构建代理意味着通过 API 调用模型,并将模型的工具请求连接到实际函数。这属于普通的应用程序开发。您不需要接触训练、梯度或数据集。决定代理能否正常工作的技能包括工具的架构设计、错误处理和 Linux 权限。只有在您继续微调模型时,机器学习理论才会变得相关;那是另一类工作,前置要求也不同。

我应该从 LangChain 或 CrewAI 这样的框架开始吗?

先手写一个原始循环,再采用框架。框架会用一个配置对象替代第 2 阶段中的 30 行代码。了解它替代了什么之后,这样做很方便;在此之前则容易造成困惑。当代理行为异常时,您需要直接分析消息列表和工具结果。如果从未见过这些内容,排查会困难得多。自己写过一个循环后,框架可以节省时间,而不是隐藏工作机制。

学习 AI 代理需要多少费用?

如果设置上限,费用会低于大多数人的预期。一个托管 API 密钥和一台小型 VPS 就能覆盖这 6 个阶段。真正的风险不是每小时费用,而是无界循环在您睡觉时为每次迭代持续计费。第 1 天就为 API 账户设置严格的支出上限,为编写的每个循环添加迭代次数上限,并在常规步骤中使用更便宜的模型。在本地运行模型可以免除 token 费用,但需要满足硬件要求。

AI 代理和聊天机器人有什么区别?

聊天机器人只回答一次。代理会重复执行一个循环:模型请求工具,您的代码运行工具,结果返回给模型,然后模型决定下一步操作。这种重复执行使代理能够通过多个步骤完成任务,也正因为如此,代理需要聊天机器人不需要的边界限制。聊天机器人给出错误答案时,结果是一段错误的文字。代理给出错误答案时,结果是一段错误的文字,以及它针对该答案执行的操作。

#ai-agents#learning#curriculum#mcp#自托管