模块 05 · 用大模型做东西

智能体

先想清楚要不要用智能体,再从零手写一个:工具设计、规划与自我检查、记忆、多智能体、MCP 和安全,最后让 RepoBot 学会自己翻源码。

各课

  1. 01
    智能体和工作流:先想清楚要不要用智能体

    智能体是让模型自己决定下一步做什么。同样三个问题,固定流程 1 次调用就答对了,智能体要 3 到 4 次。讲清楚两者的区别、智能体的代价,以及一份判断要不要用智能体的清单。

    30 分钟 · 进阶
  2. 02
    手写一个智能体循环

    不用任何框架,一百多行代码写一个智能体:工具注册、调用循环、停止条件、错误处理。先用一个按剧本出牌的假模型离线测试,再换成真模型,看它自己决定查什么。

    50 分钟 · 进阶
  3. 03
    工具怎么设计

    同样三个工具,名字和说明写得含糊,模型 30 次只选对 14 次;写清楚之后 30 次全对。讲清楚工具的名字、说明、参数、返回值和报错信息分别该怎么写。

    35 分钟 · 进阶
  4. 04
    规划和自我检查

    同一个多步任务,比较直接做、先列计划再做、做完之后自我检查三种办法。先列计划多花了一倍的钱,效果差不多;自我检查真的找出了两处出处错误,但花了四倍的钱。

    40 分钟 · 进阶
  5. 05
    记忆

    智能体的短期记忆就是消息列表,长期记忆要自己存下来、需要时再取出。给智能体加上"记住"和"回想"两个工具,演示它在一次全新的对话里用上了上次记住的事实。

    35 分钟 · 进阶
  6. 06
    多个智能体一起干活

    让一个主管智能体拆分任务,交给三个上下文独立的工人智能体并行完成,再汇总结果。和单个智能体比,词元少了三分之一,主管的上下文只有 472 个词元。讲清楚多智能体真正的价值和代价。

    40 分钟 · 进阶
  7. 07
    MCP:给智能体接工具的标准插座

    用官方 Python SDK 写一个最小的 MCP 服务器,把查 httpx 文档的两个工具放进去;再写一个客户端连接它,并让 DeepSeek 通过 MCP 调用这些工具回答问题。

    45 分钟 · 进阶
  8. 08
    智能体的安全问题

    做一个真实可复现的间接提示词注入实验:网页里藏着给 AI 的"指令"。一个模型从不上当,另一个在提示词明确禁止的情况下仍有 4 次中招,只有程序层面的确认机制全部拦住了。

    45 分钟 · 进阶
  9. 09
    项目:会翻源码的答疑助手

    把 RepoBot 改成一个智能体:先查文档,文档里没有就去翻 httpx 的源码。v2 答不上来的默认值、异常逻辑,v3 都能答对,并注明源码的文件和行号。

    60 分钟 · 进阶

智能体就是一个循环:模型决定下一步做什么,程序去执行,结果交还给模型,直到它觉得可以回答了。这个模块不用任何框架,从这个循环出发,一点点加上真实系统需要的东西。

每一课都有对比实验,而且结果不总是"更高级的办法更好":同样的问题,固定流程 1 次调用就答对了,智能体要花 4 倍的钱;先列计划多花了一倍的钱,结论没有变化;而工具的说明写清楚,选对工具的比例就从 47% 升到了 100%。

为什么是这个顺序

第 1 课先回答"要不要用",这是最重要的判断。第 2 课手写循环,后面每一课都在这个循环上加东西。第 3 到 5 课分别讲影响智能体效果最大的三件事:工具、做事的方式(规划和检查)、记忆和上下文。第 6 课从一个智能体扩展到多个。第 7 课讲 MCP,让你写的工具能被各种智能体使用。第 8 课讲安全,智能体能动手,就一定要讲安全。第 9 课把这些装进 RepoBot。

学完的标准

  • 拿到一个需求,能判断该用一次调用、工作流还是智能体,并说出理由。
  • 不用框架,写出一个带工具注册、错误处理、步数上限的智能体循环,并能用脚本模型离线测试它。
  • 能为一组工具写出清楚的说明书,并用实验验证模型选对工具的比例。
  • 能写一个最小的 MCP 服务器,并在自己的智能体里接入它的工具。
  • 能说出间接提示词注入是怎么发生的,以及为什么"在提示词里叮嘱模型"不够,需要在程序层面做限制。
  • RepoBot v3 能回答只有源码里才有答案的问题,并注明源码的文件和行号。

本模块的代码