Some content in this article was created with AI assistance. Please verify as needed.

本文关注大模型的用户使用,整理一下大模型与 Agent 工具的基础知识。

大模型分类

大模型可以按定位分类:

  • 旗舰模型
  • 日常模型
  • 低成本模型
  • 多模态模型
  • …

还可以按开放程度可以分类:

  • 闭源模型:只能通过官方产品、API、云平台或聚合平台访问。通常能力领先、产品体验完整,但版本和价格由厂商控制。
  • 开放权重模型:公开权重和主要架构信息,但训练数据、训练代码和完整训练流程通常不公开。优点是可私有部署、可固定版本、可微调。
  • 完全开源模型:尽量公开训练代码、数据处理、权重和复现流程,多见于研究社区。

常见概念

  • 上下文窗口:指模型一次调用能看到的 token 总量,包括输入、历史对话、工具结果、文件内容和系统提示等
    • 由于长对话每次会把之前所有对话内容都提交,在内容长度接近上下文窗口时,需要使用 Agent 工具对之前的对话内容进行压缩(手动压缩或自动触发)
    • 越强的大模型,支持的上下文窗口越大。但是实际使用中,长对话的效果还是会显著变差
  • 结构化输出:指要求大模型的输出是结构化的,通常是指定的 JSON 格式,用户提供 schema 约束
  • Function Calling:让模型以结构化方式调用外部函数或 API,模型只需要理解用户提供的函数接口,把自己的意图反馈为函数接口的调用需求即可,函数的实际调用通常是由用户侧的 Agent 工具负责完成的。

Agent Loop

不是所有 AI 工具都算 Agent。普通聊天更像“输入 prompt -> 生成回答”;Agent 则要让模型进入一个可重复的任务循环:看状态,决定下一步,调用工具,读取结果,再继续判断。

简化一下:LLM 负责决策,工具负责执行,环境返回结果;这个循环一直跑到任务完成,或者需要人接手。

1
2
3
4
5
6
7
8
+---------+      +-----------+      +--------+
| User | ---> | Agent | ---> | Tool |
| goal | | policy | | action |
+---------+ +-----+-----+ +---+----+
^ |
| observation |
+----------------+
loop until done

Agent 和普通工具调用的区别,不是能不能调一次 API,而是能不能把多次工具调用组织成闭环:前一步结果会影响下一步计划和动作。

Agent 的经典框架是 ReAct (Reason + Act):模型一边推理,一边行动。论文和早期框架里常写成:

1
Thought -> Action -> Observation -> Thought -> Action -> Observation -> ...

现实产品通常不会把 Thought 原样暴露出来,但循环结构还在。可以按四步看:

  1. Observe:收集用户目标、已有上下文、文件、搜索结果、日志、测试输出和工具返回。
  2. Plan / Reason:判断目标、拆分步骤、选择工具、估计风险,必要时调整计划。
  3. Act:执行一个动作,例如读文件、改代码、跑命令、查网页、调 API、操作浏览器。
  4. Check:检查动作结果是否推进了目标;如果失败,就根据 observation 修正下一步。

这个 loop 才是 Agent 的核心。一次工具调用只是 function calling,多轮 观察 -> 推理 -> 行动 -> 反馈 才像 Agent。

Agent 的各种能力也围绕这个 loop 展开:

  • 上下文获取服务于 Observe,让模型知道当前状态。
  • 任务规划服务于 Plan,让模型决定下一步而不是随机试。
  • 工具调用服务于 Act,把决策变成外部动作。
  • 验证交付服务于 Check,判断动作是否真的有效。
  • 状态管理让 loop 能跨 session、checkpoint、compact 继续。
  • 权限控制限制 Act 的边界,避免错误动作造成过大副作用。
  • 协作分工让复杂 loop 可以拆给 subagent 或后台任务。

AGENTS.md

很多工具支持 AGENTS.md、CLAUDE.md 或类似文件。本质上就是稳定、可复用、低成本的项目上下文。

常见用途包括:

  • 说明项目背景和目录结构。
  • 规定编码风格、测试命令、构建命令。
  • 说明哪些目录可以修改,哪些不能动。
  • 规定提交、分支、PR 习惯。
  • 说明危险操作限制。
  • 告诉 agent 什么时候应该使用特定 skill 或工具。

项目规则不宜太长。对 agent 最有用的是目标、边界、命令、验证方式和禁止事项。

MCP

MCP (Model Context Protocol) 是工具和上下文协议,用来把外部能力用相对统一的方式暴露给 agent。

比较适合:

  • 数据库、知识库、企业系统接入。
  • 浏览器、设计工具、项目管理工具接入。
  • 多个 agent 客户端复用同一个工具 server。
  • 需要权限、资源列表和结构化参数的场景。

Skills

Skills 可以看作给 agent 用的可复用说明包。常见内容包括:

  • SKILL.md:入口说明。
  • scripts/:可选脚本。
  • assets/:模板或静态资源。
  • references/:详细参考资料。

好处是渐进式披露:agent 先看到名称和简介(SKILL.md 的头部元数据),模型觉得需要时再读详细说明。

Skill 适合封装:

  • 固定工作流程。
  • 项目约定。
  • 领域知识。
  • 输出模板。
  • 可复用脚本。
  • 检查清单。

Session

session 记录一次连续任务里的对话历史、工具调用、观察结果和中间决策。

session 很像一条单链表:每轮用户输入、模型输出、工具调用和工具结果都会追加成新的节点。因为历史是可追加的数据结构,很多 Agent 工具自然可以支持 fork、branch、resume、share、checkpoint、compact 等操作。

通常提供 session 的回滚操作,但是注意这里的回滚是独立于项目中的实际内容,后者的回滚仍然需要依赖 Git 或其他版本控制系统。