从 0 实现一个 Agent

专栏目录 · Python · 不依赖 Agent 框架

先做出能聊天的机器人,再给它套上 Harness(运行时),然后才往里面挂工具循环、Skill 和 RAG。模型是脑子,Harness 是会话、权限、轨迹和循环;工具、Skill、检索都是挂到 Harness 上的能力。

用户 → Harness(会话 / 循环 / 权限 / 轨迹)
  ├ 聊天(模型)
  ├ 工具(行动)
  ├ Skill(专项流程)
  └ RAG(资料)

阶段一 · 聊天机器人

只会说话。先把 API、多轮、人设和流式输出做稳,作为后面所有能力的底板。

  1. 00

    路线图:我们要造的零件

    聊天、Harness、Loop、Skill、RAG 各解决什么,本专栏最终产物是什么。

    撰写中
  2. 01

    接通大模型

    一次 chat completion:发消息、拿回复、token 与上下文长度。

    撰写中
  3. 02

    多轮对话

    把历史带上。为什么不能每次都开一个新聊天。

    撰写中
  4. 03

    System prompt

    人设、边界、输出习惯。后面 Skill 会按需覆盖或补充它。

    撰写中
  5. 04

    流式输出

    打字机效果,为 Harness 的事件流做准备。

    撰写中
  6. 05

    本阶段产物:CLI 聊天机器人

    一条命令能聊。还不会用工具,但会话是完整的。

    撰写中

阶段二 · Harness

给聊天套上运行时:会话托管、取消与超时、日志和轨迹。后面的循环、Skill、RAG 都注册进这个壳,而不是各写一套。

  1. 06

    什么是 Harness

    模型和 Harness 的分工。为什么「智能」很大一块其实在运行时。

    撰写中
  2. 07

    会话、取消、超时

    一次 run 的生命周期:开始、打断、结束、落盘。

    撰写中
  3. 08

    事件与轨迹

    把文本、工具、错误打成统一事件,给人和调试看。

    撰写中
  4. 09

    权限位先留好

    谁能读文件、谁能上网。工具章再接线,概念先放进 Harness。

    撰写中

阶段三 · 循环与工具

在 Harness 里挂上 Agent Loop:模型可以要工具,运行时执行,再把观察塞回去,直到停。

  1. 10

    从聊天到办事

    工具和聊天回复的差别。模型如何「伸手」。

    撰写中
  2. 11

    第一次 function calling

    工具清单、参数 Schema、解析 tool_calls。

    撰写中
  3. 12

    Agent Loop 挂进 Harness

    思考 → 调工具 → 观察 → 再思考。步数上限写在运行时里。

    撰写中
  4. 13

    实用工具与安全

    读文件、HTTP、计算。白名单、超时、参数校验。

    撰写中
  5. 14

    失败与死循环

    工具报错、编造工具名、同一工具空转。重试和人工确认。

    撰写中

阶段四 · Skill

Skill 不是新工具,是按需加载的专项说明书(可附脚本)。Harness 负责发现、挑选、读入,避免把所有流程塞进 system prompt。

  1. 15

    Skill 是什么

    和 system prompt、工具、RAG 的边界:流程手册 vs 行动接口 vs 资料。

    撰写中
  2. 16

    发现与加载

    SKILL.md 的名字和说明先给模型看,真正用到再读全文。

    撰写中
  3. 17

    写第一个 Skill

    例如「整理会议纪要」或「按仓库规范改代码」。让 Harness 在匹配时注入。

    撰写中
  4. 18

    Skill 里的脚本

    纯指令 vs 附带可执行步骤。脚本仍走工具通道,由 Harness 执行。

    撰写中

阶段五 · RAG

让 Harness 能查你自己的材料。检索是一种能力,不是另起一个机器人。

  1. 19

    为什么要 RAG

    模型没读过你的文件。检索和微调、加长上下文的差别。

    撰写中
  2. 20

    最小切片与向量检索

    切块、嵌入、取回 top-k。先跑通,不追求花哨。

    撰写中
  3. 21

    检索接进 Harness

    作为工具调用,或在进模型前注入。两种接法各自的代价。

    撰写中
  4. 22

    引用与防编造

    答案必须能指回片段。材料里没有的要说未提及。

    撰写中

阶段六 · 合成

五块拼成一个能聊、能办事、能加载 Skill、能查资料的 Agent。用固定题做回归。

  1. 23

    组装最终 Agent

    同一套 Harness 上同时挂工具、Skill、RAG。配置和开关。

    撰写中
  2. 24

    评测

    会不会停、会不会选对工具、会不会加载对 Skill、会不会瞎编资料。

    撰写中
  3. 25

    附录:框架是别人的 Harness

    什么时候才值得换现成框架,以及对照我们自己写过的零件。

    撰写中