MCP终极指南 - 番外篇:抓包分析 Cline 与模型的交互协议(内含 Agent 的实现原理)
By 马克的技术工作坊
Summary
Topics Covered
- Full Video
Full Transcript
大家 好 今天 我们 来 聊聊 mcph ost 是 如何 与 模型 进行 沟通 的 之前 我们 出 的 mcp 终极 指南 的
基础 篇 和 进阶篇 里面 都 提到 过 mcp 只 规定 了 mcph ost 与 mcps erver 之间 的 沟通 协议 并
没有 对模型 的 输入 和 输出 格式 提出 要求 因此 不同 的 mcph ost 就 可能 会 用 不同 的 格式 来 与 模型
沟通 比如 client 用 的 就是 xml 在 本期 视频 中 我 将 以 client 为例 给 大家 演示 一下 mcph
ost 是 如何 与 模型 进行 沟通 的 为了 让 大家 能够 彻底 理解 我 将 截获 模型 的 输入 和 输出 为 大家 展示
client 与 模型 交互 的 具体 细节 在 视频 的 结尾 我 还 会 给 大家 讲解 如何 构建 HT 常用 的 react 模式
以及 client 用 的 这种 xml 协议 与 react 模式 之间 的 关系 让 大家 能够 透过 现象 看 本质 我们 的
目标 不是 单纯 的 了解 client 的 xml 协议 而是 通过 学习 这个 协议 来 了解 如何 编写
一个 像 client 一样 能够 与 模型 持续 交互 的 程序 好话 不多 说 让 我们 赶快 开始 吧 我们 还是 用 之前
这个 叫做 Weat her 的 mcpS erver 举例 这是 我们 基础 片 里面 提到 过 的 交互 图 我们 今天 要
了解 的 就是 这 一部分 的 内容 既然 要 了解 Client 和 模型 是 如何 交互 的 我们 就 最好 能够 抓取 到 Client 发给
模型 的 请求 和 模型 给 Client 返回 那 怎么 才能 做到 这 一点 呢 很 简单 我们 原来 不是 Client 与 Open
Router 直接 沟通 吧 现在 我们 不 这么 做 了 我们 起 一个 本地 服务器 作为 中间人 无论是 Client 发送 请求 给
模型 还是 模型 返回 答案 给 Client 都 要 先 经过 这个 本地 服务器 才行 本地 服务器 在 接收 到
Client 的 请求 和 模型 的 返回 之后 会 把 具体 的 内容 写入 到 一个 日志 文件 中 这样 我们 查询 文件 的 内容 就
可以 知道 Client 与 模型 说 了 些 什么 Client 支持 连接 我们 的 本地 服务器 吗 答案 是 肯定 的 Client
的 API Prov ider 中 除了 常见 的 Open AIDe epSe qOpe nRou ter 等 模型 提供商 之外 还有
一种 特殊 的 选项 叫做 OpenAI Comp atible 它 的 意思 是 对应 模型 提供商 虽然 不是 OpenAI 但是 它
的 API 完全 兼入 OpenAI 的 格式 我们 选择 它 之后 把 本地 服务器 的 地址 填到 Base URL 里面
然后 再 填好 API KeyM odel ID 等 信息 就 可以 了 剩下 要 做 的 事情 就是 去 编写 本地 服务器 并且
确保 本地 服务器 的 输入 和 输出 符合 OpenAI 的 格式 规范 我 已经 按照 这个 思路 把 本地 服务器
的 代码 写 好 了 你 可以 在 我 的 Github 仓库 中 找到 对应 的 原代码 仓库 的 地址 就是 这样 的 这段 代码
不是 很长 就是 一段 Python 脚本 我 先 给 大家 简要 说明 一下 这个 脚本 子 干什么 最 上面 的
Appl ogger 是 用来 写 日志 的 它 的 这个 Mess age 就是 要 写 的 日志 内容 它会 把 Mess age 写入 到
指定 的 log 文件 中 这里 则 是 定义 了 两个 变量 其中 一个 叫做 App 是 用 Fast API 生成 的 Fast
API 是 Python 的 一个 Web 开发 框架 用于 快速 生成 外部 应用 我们 后面 会 使用 这个
App 变量 快速 定义 一个 POST 的 接口 而 这个 logger 则 是 用 了 我们 前面 所说 的 Appl ogger
生成 的 用于 记录 模型 的 请求 和 返回 所有 的 日志 内容 都 会 记录 到 llm 的 log 文件 中 再 往后
我们 就 使用 App 定义 了 一个 POST 的 接口 路径 是 - chat - comp leti onsC lient 会 去
请求 这个 路径 并且 把 具体 的 模型 请求 放入 到 POST BODY 里面 在 这个 接口 内部 我们 首先
获取 了 Client 发给 模型 的 请求 并且 记录 到 了 日志 文件 中 之后 则 都 是 处理 模型 返回 的 代码 了 我们
首先 打 了 一行 日志 作为 标记 后面 的 这 一段 看起来 有点 复杂 它 写 的 这么 复杂 是因为 它 要 处理
模型 的 流失 返回 结果 对应 这 里面 的 Acce ptText - Inve ntSt ream 也 就是 要求 模型 使用
流失 返回 这个 流失 返回 的 专业名词 叫做 Serv erSe ndIn vents 简称 SSE 鉴于 很多 人 可能
不太 清楚 SSE 是 什么 我 这里 简单 解释一下 一般 情况 下 我们 使用 HTTP 访问 一个 网站 的 时候
我们 的 浏览器 会 发送给 目标 服务器 一个 请求 比如说 要 请求 一个 HTML 网页 一个 图片 一个
JSJo bber 之类 的 目标 服务器 会 返回 对应 的 结果 一去 一回 一次 交互 就 完成 了 这个 交互方式 有个
缺陷 它 处理 不了 服务器 连续 发回 多次 想要 的 情况 比如 我们 经常 用 的 大 模型 聊天 页面
模型 的 结果 都 是 几个 字 几个 字 的 返回 只是 一去 一回 的话 显然 无法 做到 这种 效果 所以
目前 主流 的 大 模型 聊天 一面 用 的 都 是 SSE 它 的 特点 是 浏览器 只 需要 请求 一次 服务器 接收 到
请求 之后 会 连续 发送 多次 响应 每次 想要 的 内容 都 是 几个 字 而 浏览器 接到 几个 字 就 显示 几个 字
这样 用户 就 可以 及时 接收 到 模型 的 返回 出来 几个 字 就 看 几个 字 体验 就 会 好 很多 等到 所有 的
结果 都 显示 完毕 之后 服务器 会 发送 一个 完成 的 标识 浏览器 接收 到 标识 之后 关闭 SSE 连接
页面 显示 模型 回答 完毕 整个 流程 就 结束 了 知道 了 原理 之后 我们 再 回来 看 代码 这里 是 请求 了
Open Rooter 的 接口 把 Client 的 请求 转发给 了 Open Rooter 再 之后 这 里面 的 每 一个 Line 就 代表
服务器 的 一次 返回 我们 把 这些 返回 记录下来 然后 这 里面 的 Yield 就 会 把 这个 响应 再 发回 给 Client 比如说
假如 模型 最终 的 完整 返回 信息 是 纽约 明天 的 温度 是 24 摄氏度 那么 这 里面 的 EU 就 可能 会 执行 6
次 分别 是 EU 的 纽约 EU 的 明天 的 EU 的 温度 EU 的 是 EU 的 24 摄氏度 最后 在 EU 的 一个 结束 的 标识符
说实话 这 里面 的 代码 确实 是 有点 复杂 而且 是 用 了 一些 Python 的 语法 堂 在 别的 编程语言 里面 不 一定 会
见到 如果 你 现在 还 没 完全 理解 的话 我 建议 你 先 不用 管 知道 个 大概 意思 就行 我们 不是 来学 python
的 而且 我 后面 会 给 你 展示 实际 的 sse 返回 结果 每 一条 消息 都 有 那个 时候 我们 会 再 详细 解释一下 代码 的
最后 则 是 启动 本地 服务器端 口 是 8000 这个 就是 整个 代码 的 结构 了 简单 来说 就是 先 记录 请求 再
记录 返回 给 整个 过程 画 一个 流程图 的话 就是 这个 样子 的 Client 请求 我们 本地 服务器 的 -
chat - comp leti ons 接口 我们 记录 Client 的 请求 把 请求 转发给 Open Rout erOp enRo
uter 处理 请求 返回 结果 本地 服务器 接收 到 结果 之后 把 它 记录 到 文件 之中 再 返回 给 Client 当然
正如 前面 所说 由于 使用 了 SSEO penR outer 会 连续 发送 多个 消息 但 我们 对 每个 消息 的 处理过程
都 是 一样 的 先 发给 中转 服务器 中转 服务器 写入 日志 再 转发给 Clie ntOp enRo uter 的 每 一个
返回 都 是 如此 为 加持 你 的 记忆 我 再 重复 一次 先 发给 中转 服务器 中转 服务器 写入 日志 然后 再 转发给
climb 如此 循环 下去 这样 当 整个 对话 结束 的 时候 我们 就 可以 到 日志 文件 里面 去 找 我们 所 需要
的 内容 了 一共 是 包含 两 部分 分别 是 模型 的 请求 和 模型 的 返回 这个 就是 我们 的 整个 流程 了 本地 服务器
有 了 下面 我们 要 做 的 事情 就是 启动 并且 使用 它 首先 进入 到 项目 目录 里 执行 python -
mvenv .
venv 新建 一个 虚拟环境 使用 虚拟环境 是 为了 防止 我们 后续 安装 的 依赖 影响 到 系统 虚拟环境 创建 好
了 之后 我们 执行 source .
venv 并 acti vate 启动 这个 虚拟环境 然后 再 执行 pip - requ irem ents .
txt 安装 相关 的 依赖 我们 的 依赖 非常简单 只有 fast api UVCORN 和 HTTPX 其中 Fast API
用于 定义 POST 接口 UVCORN 用于 运行 服务器 HTTPX 用于 向 Open Router 发起 HTTP 请求 安装 好
了 依赖 之后 我们 再 执行 Pyth onLM logger . py
. py 就 可以 启动 我们 的 本地 服务器 了 可以 看出 端口 是 8000 然后 我们 来到 Client 这里 点击
配置 API prov ider 选择 OpenAI comp atib leba seul 填 http - loca lhost -
8000 另外 API key 和 mode lid 与 open router 保持 相同 因为 我们 会 把 这些 信息 都
转发给 open router 最后 确保 plan mode 和 act mode 全部 都 改好 之后 我们 点击 save
然后 随便 打个招呼 试试 好 了 回复 完毕 我们 打开 日志 文件 可以 发现 里面 已经 有 内容 了
而且 格式 跟 我们 想 的 一样 这个 是 模型 的 请求 这个 是 模型 的 返回 日志 的 内容 还是 挺 多 的 这个 对话
没有 用到 任何 的 MCP server 或者 是 外部 工具 比较简单 很 适合 我们 先 对模型 的 请求 和 返回 的 格式 做 一下
分析 后面 我们 还会 让 模型 用下 MCP server 那个 时候 的 日志 内容 也 会 跟 这种 简单 的 情况
差不多 只是 会 多出 一些 调用 mcp2 的 地方 我们 先 把 这种 简单 的 情况 诺 懂 后面 调用 mcp2 的 链路 就 会
好 懂 很多 那 下面 我们 就 来 仔细 看 一下 这个 日志 文件 里面 到底 写 了 些 什么 我们 首先 来看
一下 模型 请求 这里 是 我们 要用 的 模型 deep seek 这里 是 消息 列表 里面 主要 存放 了 client
发给 模型 的 请求 以及 模型 的 回答 这是 其中 的 第一个 消息 它 的 roll 写 的 是 system 对应 的
含义 就是 system prompt 也 就是 系统 提示 词 它 的 功能 主要 是 设定 模型 需要 提前 感知 到 的 一些
消息 比如说 模型 需要 扮演 的 角色 模型 可以 用 的 工具 列表 模型 返回 结果 的 格式 等等 这些 都
是 client 写 的 别 看 这 里面 的 cont ent 只有 一行 我 把 自动 换行 打开 大家 就 知道 这有
读窝场 了 可以 看出 这个 不是 一般 的 场所 有 的 内容 都 被 放到 了 一个 字符串 里面 看起来 不是 很 方便
我来 给 大家 提取 出来 格式化 一下 格式化 之后 是 这个 样子 的 一共 有 626 行 而且 有些 行 还 很长 再 看看
总 字符 数 总计 是 48671 个字符 我 不 知道 大家 看到 这个 是 什么 反应 反正 是 我 第一次 看到 的
时候 都 震惊 了 这些 可 都 是 要 发给 模型 GEM token 的 这 都 是 白花花 的 银子 那 这么 多字 到底 写 了 些
什么 呢 它 是 英文 的 看起来 还是 有些 吃力 我 再 给 大家 转化成 中文 我们 先来 把 所有 的 内容 都 折叠
起来 只 显示 小标题 看看 这 段 消息 的 基本 框架 小标题 包括 工具 使用 格式 工具 列表 工具 使用
示例 工具 使用指南 已 连接 的 MCP 服务器 然后 还有 两个 函数 分别 是 write to file 和
repl ace in file 看起来 分别 用于 写入 文件 和 替换 文件 内容 都 是 很 常用 的 功能 然后 是
Client 告诉 模型 如何 选择 合适 的 工具 一些 自动 格式化 方面 的 注意事项 工作 流程 方面 的 提示
再就是 首选 语言 了 有 一点 大家 注意 一下 这里 所说 的 工具 跟 MCP 的 工具 并非 完全 是 一 回事 它 这里
所说 的 工具 一共 是 包含 两 部分 的 内容 一个 是 Client 内置 的 工具 比如 写入 文件 替换 文件 内容
读取 文件 运行 中断 命令 等 还有 一个 才 是 MCP 工具 比如说 我们 之前 常用 的 天气 预告 和
气象 预警 所以 模型 在 这里 是 可以 用到 这 两种 工具 的 讲完 了 工具 我们 再 回来 继续 看 一下 Client
给出 的 System Prompt 大家 也 都 看到 了 这里 的 内容 非常 多 我们 逐行 逐具 分析 是 不 可能 的 我 能 做 的 就是
给 大家 大 提过 一遍 并 着重 讲 一下 其中 重要 的 内容 首先 是 工具 的 使用 格式 Client 规定 了 工具 调用
请求 必须 要 使用 XML 格式 传递 外层 写 工具 的 名称 内层 写 参数 的 名称 和 参数值 比如 一个 读取
文件 内容 的 工具 外层 写 的 就是 read fault 里面 的 path 就是 参数 名 了 src - min . js
. js 就是 参数值 它 代表 的 意思 就是 我要 使用 read fault 这个 工具 去 读取 src - min
. js
. js 这个 文件 的 内容 有些 同学 可能 还是 不太 明白 模型 是 怎么 使用 这个 XML 的 我们
来 举个 具体 点 的 例子 假如 用户 的 问题 是 src - main . js
. js 这个 文件 写 了 什么 Client 会 把 这个 问题 发送给 模型 模型 接到 问题 后 发现 他 需要 先 调用
reform 这个 工具 来 读取 main . js
. js 的 文件 内容 于是 他 就 按照 System Prompt 里面 给出 的 这个 XML 格式 向 Client 请求 读取 这个
文件 的 内容 Client 接到 请求 后 读取 了 main . js
. js 的 内容 并且 返回 给 了 模型 模型 再 往后 就 可以 自己 总结 出 答案 了 不过 那 就是 后面 的 事情 了 流程图
里 也 就 不 给 大家 展示 了 所以 大家 也 都 看到 了 只要 是 模型 按照 Client 规定 的 这种 XML 格式 返回
Client 就 可以 帮助 模型 调用 各种 他 想要 调用 的 工具 那 到底 有 哪些 工具 可以 用 呢 模型 是 怎么 知道
读取 文件 用 的 工具 名是 read file 呢 很 简单 Client 在 下 一部分 也 就是 工具 这 一部分 会 给 模型
详细 解释 有 哪些 工具 可以 用 它 也 会 告诉 模型 每个 工具 的 名称 参数 格式 用途 等等 这类 的
信息 我们 来 仔细 看 一下 比如 Exec uteC ommand 用于 执行 终端 命令 它 的 参数 一共 是 包含 两 部分
一个 是 命令 内容 一个 是 是否 需要 用户 同意 有 一些 命令 可能 会 对系统 产生 影响 比如说 是 删除
文件 安装文件 等等 一般 情况 下 这 都 要 经过 用户 的 同意 才 能够 继续 在 后面 就是 其他 的 工具 了 这里 我
大概 过 一遍 其中 大部分 工具 我们 在 本期 视频 里面 都 用 不到 我 说 一遍 是 为了 让 你 能够 对 Client
的 工具 用途 有个 大致 的 概念 和 感觉 比如说 是 read file 用来 读取 文件 的 内容 writ efile
用来 写入 文件 内容 repl acei nfile 用于 替换 文件 内容 sear chfi les 用于 搜索
文件 list files 用来 列举 当前 项目 录中 的 文件 列表 list code defi niti onna mes
用来 列举 指定 目录 顶层 原代码 文件 中 使用 到 的 定义 名称 比如说 是 类 函数 方法 等 这个 工具
有点 绕 我们 也 不 细说 了 不 重要 你 不 明白 没有 关系 还有 一个 是 Brow serA ction 这个 我们 也 跳 过
我们 要 重点 看 的 是 后面 的 UseMCP Tool 这是 用来 使用 MCP 工具 的 这个 与 我们 息息相关 所以 请 大家
打起精神 来 它 的 参数 一共 是 分成 三个 第一个 是 Serv erName 也 就是 MCP 服务器 的 名称 第二个 是
Tool Name 是 MCP 工具 的 名称 第三个 是 argu ments 是 mcp 工具 的 输入 比如说 这个
xml 它 代表 模型 想要 调用 weat her 这个 mcp server 下 的 gap fore cast 工具 使用
工具 时 的 参数 为 lati tude 41.7 128 long itude - 74.006 在 下面 的 Access MCP Reso
urce 是 用来 获取 MCP 资源 的 填入 MCP 服务器 和 资源 的 URI 就行 我们 的 教程 暂时 不 涉及
MCP 资源 所以 这个 略过 在 后面 的 Ask Follow - up Ques tion 是 模型 向 用户 提问 的 时候 所 使用 的
工具 也 不是 特别 重要 我们 也 略过 在 后面 是 Atte mpt Comp letion 这个 我们 后面 会 用到
所以 请 大家 重点 留意 一下 这个 工具 用于 返回 最终 结论 比如 模型 调用 了 一系列 的 工具
之后 他 可能 会 认为 自己 已经 完成 了 用户 给出 的 任务 或者 已经 知道 了 用户 问题 的 答案 此时 他
就 会 把 最终 的 结论 放到 Atte mpt Comp letion 的 Result 参数 里面 Client 接到 这个 XML
标签 之后 就 会 把 Result 里面 的 结论 给 显示 出来 对话 到 这里 就 结束 了 举个 具体 点 的 例子 比如 用户 的
问题 是 纽约 明天 的 天气 怎么样 模型 可能 接到 问题 之后 会 先电 我们 的 Gate Fore cast 的
MCP 工具 用 的 就是 我们 前面 所说 的 UseM CP2 这个 标签 Client 接到 请求 之后 调用 了 MCP
server 中 对应 的 函数 并且 给 模型 返回 了 结果 模型 接到 工具 的 调用 结果 之后 稍微 总结 了 一下
然后 把 它 的 总结 结果 放到 了 Atte mptC ompl etion 的 Result 标签 里面 之后 Client 就 会
把 这个 Resu lts 里面 的 内容 原封不动 的 给 用户 查看 作为 整个 对话 的 总结 到此为止 Client 的 回答
就算 是 结束 了 你 可能 还有 个 问题 如果 模型 使用 了 Use MCP Tool 之后 发现 还是 没有 解决
用户 的 问题 怎么办 很 简单 模型 继续 使用 别的 工具 就 好 了 这个 可能 是 另外 一个 MCP 工具
像是 这样 当然 也 可以 使用 Client 的 内置 工具 比如说 是 读取 文件 写入 文件 等等 模型 可以
一直 这么 调用 下去 直到 他 认为 他 拿到 了 最终 答案 为止 到 那个 时候 模型 就 可以 使用 atte
mpt comp letion 返回 最终 的 结论 了 所以 从 这里 也 可以 看出 atte mpt comp letion 基本上 是 标志
着 回答 的 结束 看 完 了 交互 流程 我们 再 回头 看 一下 atte mpt comp letion 的 参数 列表 除了 result
之外 atte mpt comp letion 还有 一个 参数 叫做 comm and 它 存储 的 是 一条 命令 用于
展示 最终 的 结果 这个 参数 是 可选 的 而且 我们 也 用 不到 所以 暂时 就 忽略 掉 不过 这 里面 要 注意 一下
Client 提到 过 模型 在 使用 Atte mpt Comp letion 这个 工具 之前 必须 要 先 使用 Thin king 标签 来
思考 一下 实际上 不 只是 在 使用 Atte mpt Comp letion 之前 需要 Thin king 模型 做 任何 事情
之前 都 会 使用 Thin king 标签 来 思考 这 相当于 是 Client 强行 让 模型 思考 有利于 提高 模型 决策 的
准确率 所以 再 回到 刚才 的 这个 图 里面 实际上 这个 图 并 不 特别 准确 模型 在 使用 usem cp2 之前
会先 加上 thin king 标签 把 它 的 思考 过程 放到 标签 里面 而 在 最后 使用 atte mpt comp
letion 之前 也 会 使用 thin king 标签 思考 一下 说 了 这么 多 你 可能 还 觉得 有些 抽象 我们 不如
看个 具体 的 例子 比如 我们 之前 经常 问 的 这个 经典 问题 纽约 明天 的 天气 怎么样 问完 问题
之后 这里 就是 thin king 的 内容 了 对应 的 XML 就是 这个 样子 的 注意 这 两边 的 内容 是 一样 的
模型 先 思考 一下 而 这里 则 是 usem cp2 的 内容 对应 的 XML 是 这个 样子 的 注意 两边 的 信息 也 是 对
等 的 这个 是 mcp 服务器 这个 是 mcp 工具 这个 则 是 参数值 了 在 后面 的 resp onse
则 是 client 返回 给 模型 的 工具 执行 结果 而 拿到 结果 之后 模型 还是 照样 先 thin king 了 下
对应 的 XML 就是 这个 样子 的 同样 这 两者 的 内容 是 完全一致 的 最后 感觉 自己 已经 得到 了 答案 之后
模型 就 显示 出 了 最终 的 总结 这个 总结 所 对应 的 XML 就是 我们 前面 所说 过 的 Atte mpt Comp
letion 注意 看 这 两者 的 内容 也 是 完全 一样 的 由于 接到 了 Atte mpt Comp leti onCl ient 就 认为
本次 任务 完成 了 所以 他 就 结束 了 对话 从 这个 流程 里面 我们 也 可以 看出 模型 返回 了 什么 Client
其实 就 会 显示 什么 你 在 界面 上 所 看到 的 大部分 东西 都 是 模型 返回 的 结果 在 后面 就是 别的 工具 了 比如说
New task Play mode resp ond 之类 的 我们 都 不 细看 了 不是 很 重要 然后 这 一部分 是 工具 使用 实例 是
给 模型 看 的 一些 例子 我们 也 直接 跳过 工具 使用指南 这 里面 其实 也 不是 特别 的 重要 我们 也 跳 过
然后 后面 我们 来到 了 比较 重要 的 这 一部分 是 已 连接 的 MCP 服务器 它会 把 用户 在 Client 上 配置
好 的 MCP 服务器 和 每个 MCP 服务器 所 包含 的 MCP 工具 都 列举 出来 供 模型 选用 具体来说 就是
对应 了 这 一部分 的 配置 内容 你 看 我 这 里面 配置 了 一个 MCP 服务器 叫做 Weat her 在 System
Prompt 里面 我们 也 能 找到 Weat her 这个 MCP 服务器 之前 可能 有些 同学 不是 特别 清楚
Client 是 如何 告诉 模型 有 哪些 MCP 服务器 和 MCP 工具 可用 的 现在 应该 是 比较清楚 了 Client
其实 就是 在 这个 地方 告诉 模型 的 当然 光是 列举 出 MCP 服务器 是 没有 用 的 模型 还 需要 知道
每个 MCP 服务器 下面 有 哪些 MCP 工具 可用 这些 信息 Client 也 都 列举 在 了 下面 比如说 我们
这边 有 两个 可用 的 MCP 工具 分别 是 叫做 GetA lerts 和 GetF orec ast 你 看 Client 把 每个
MCP 工具 的 用途 参数 和 Inpu tSch ema 都 给 了 出来 其中 用途 和 参数 列表 用于 帮助 模型
判断 何时 去 调用 MCP 工具 而 Inpu tSch ema 则 是 告诉 模型 调用 MCP 工具 的 时候 参数 要
以 什么样 的 格式 给出 Inpu tSch ema 本质 上 是 一个 JSON Sche maJSON Schema 的 具体 含义 我们 在
MCP 终极 指南 的 进阶 片 里面 已经 讲过 了 建议 还 没有 看过 的 小伙伴 可以 看 一下 这里 就 不再 重复 了
再 往后 的 内容 就是 一些 比较 有用 的 工具 一些 给 模型 看 的 运行 指南 首选 语言 Plan Mode 和
Act Mode 的 区别 等等 这些 对于 我们 来说 其实 都 不是 很 重要 这里 就 不再 讲 了 前面 我们 讲完 了
System Prompt 后面 我们 来看 一下 用户 的 请求 也 就是 这 一部分 的 内容 可以 看到 用户 请求 一共 是
分成 了 两个 部分 第一 部分 是 用户 的 原始 问题 也 就是 我们 的 Hi 可以 看到 Hi 被 放在 了 一个
Task 标签 里面 这里 的 Task 是 在 告诉 模型 这 就是 你 要 完成 的 任务 当然 严格来说 目前 的 Hi 并 不能
算作 是 一个 任务 第二 部分 则 是 把 当前 的 系统 环境 构置 给 了 模型 辅助 模型 来 做 决策 这 里面 的 系统
环境 也 是 用 XML 来 表示 的 放在 一个 字符串 里面 看着 不太 清楚 我来 给 大家 格式化 一下 格式化
之后 是 这个 样子 的 可以 看到 里面 写 了 目前 可见 的 一些 文件 打开 的 tab 当前 的 时间 等等 一系列
的 信息 都 会 放在 这 里面 这些 都 是 给 模型 的 一些 辅助 信息 看 完 了 用户 请求 我们 再 来看
一下 剩下 的 配置 部分 这 里面 的 temp erat ure 是 来 控制 模型 的 确定性 的 这个 值越 小 模型 就 更 倾向
于 选择 概率 更 高 的 词语 输出 的 结果 就 更加 的 稳定 保守 重复性 强而 更 大 模型 就 更 倾向 于 选择 概率 更
低 的 词语 输入 出 的 结果 就 越 多样化 越 富有 想象力 但 也 不 一定 合理 一般 情况 下 我们 也 不大用 管 这个
配置 Stream True 就 代表 流逝 输出 了 也 就是 我们 前面 所说 的 使用 SSE 的 方式 主量 返回 不 知道
大家 还记 不 记得 SSE 是 什么 我来 帮助 大家 复习 一下 简单 来说 SSE 就是 一次 请求
多次 响应 每次 响应 会 携带 一部分 模型 的 回答 这里 则 是 代表 把 使用量 也 返回 回来 不 重要 我们 也
不管 了 到 这个 地方 请求 就 终于 结束 了 后面 就是 返回 了 下面 我们 就 来看 一看 模型 到底 返回 了
一些 什么 东西 正如 前面 所说 模型 采用 的 是 SSE 的 方式 主量 返回 的 这 里面 的 每 一行 都
代表 模型 的 一次 返回 第一行 的 内容 是 冒号 Open Router Proc essing 这个 是 什么 东西 看起来 好像 是
在 告诉 我们 Open Router 正在 处理 我们 的 请求 没错 就是 这个 意思 在 SSE 的 返回 结果 里面
如果 某 一行 以 冒号 开头 的话 那 就 代表 这 一行 是 注释 这根 代码 里面 的 注释 是 类似 的 并 不 携带 什么
有效 的 内容 在 SSE 中 注释 的 主要 作用 是 保持 连接 说 的 通俗 一点 他 就是 在 告诉 调用 方 我 再 处理 你们 的
请求 了 可能 是 需要 点 时间 不要 急 不要 断开连接 哦 如果 没有 这 几行 注释 而 等待时间 又 过长 的话 我们 的 客户端
也 就是 助长 服务器 很 有 可能 会 因为 超时 而 断开连接 注意 啊 保持 连接 的 关键 是 在于 发送 了 注释 至于
这个 注释 的 内容 到底 是 什么 其实 不是 很 重要 比如说 我们 即使 是 把 这 里面 的 open router proc
essing 换成 了 什么 ABC 他 下 一次 又 发 了 一个 xyz 这些 都 是 可以 的 因为 注释 的 内容 是 无所谓 的 这
里面 写 什么 都 可以 达到 同样 的 效果 也 就是 保持 连接 几行 注释 之后 我们 就 拿到 了 实际 的 数据 了
也 就是 data 后面 的 这 一段 JSON 如果 大家 仔细 看 一下 的话 就 可以 发现 这些 JSON 的 内容 基本上
是 一模一样 的 比如说 ID 都 是 这些 Prov ider 都 是 这些 Model 都 是 这些 什么 不 一样 我们 往
后来 翻一翻 好 出现 不 一样 的 地方 了 就是 这个 Cont entC ontent 包含 的 就是 模型 实际 返回 的 内容
Cont ent 的 值 是 增量 返回 的 意思 就是说 每次 返回 的 都 是 完整 内容 的 一部分 我们 把 每 一行 的
cont ent 拼 起来 就 可以 发现 模型 实际 返回 的 就是 这么 一段话 了 所以 你 可以 发现 我们 虽然 只
请求 了 服务器 一次 但是 我们 拿到 了 这么 多 的 响应 每个 响应 都 携带 着 一部分 的 信息 Client 接收 到 这些
信息 之后 会 给 用户 挨个 的 展示 出来 这里 就是 这 段 模型 返回 结果 所 对应 的 Client 展示 页面 最后 的
thin king 内容 就 放到 了 这 里面 askf ollow up ques tion 的 内容 就 放到 了 这里 askf ollow up
ques tion 我们 之前 在 system prom pts 里面 见过 顾名思义 就是 模型 给 用户 问 问题 用 的 标签 我们 只
打了个 招呼 模型 不 知道 我们 要 干什么 所以 要 问 我们 才行 前面 我们 对 client 打了个 招呼 并且 分析 了
下 整个 链路 所 发生 的 事情 下面 我们 不妨 试试 让 client 调用 一个 mcp 工具 并且 看看 日志
里面 会 记录 什么 首先 重启 一下 我们 的 中转 服务器 我们 执行 的 还是 跟 之前 一样 的 命令 中转
服务器 每次 在 启动 的 时候 都 会 自动 清空 日志 文件 这样的话 之前 的 日志 就 不会 残留 在 里面 了 方便 我们
分析 然后 我们 需要 配置 上 我们 之前 用过 的 Weat her mcp 服务器 是 在 这个 地方 配置 的
大家 可以 看到 我 这里 已经 配置 好 了 所以 就 不再 给 大家 重复 配置 了 Weat her 这个 MCP 服务器
在 我们 MCP 终极 指南 的 基础 篇 和 进阶篇 里面 都 有 提到 我 已经 重复 过 很 多次 了 这里 也 就 不再 给 大家
赘述 了 这 就是 官方 的 一个 MCP 服务器 我们 用 它 来 获取 某个 地区 的 天气预报 紧接着 我们 兴起 一个
对话 然后 在 这 里面 问 一下 我们 的 经典 问题 纽约 明天 的 天气 怎么样 跟 之前 一样 Client 找到 了 我们 的
mcp server 并且 发现 了 其中 的 Gate Fore cast 工具 是 可以 解决 这个 问题 的 我们 同意 调用
工具 执行 完毕 模型 先是 思考 了 一段话 然后 给出 了 最终 的 答案 到 这里 整个 任务 就算 是 结束 了
随后 我们 就 来到 日志 文件 里面 一 开始 的 请求 除了 这个 问题 之外 别的 都 跟 我们 之前 分析 的
链路 是 一模一样 的 由于 我们 之前 已经 分析 过 了 所以 我 这 里面 也 就 不再 重复 分析模型 请求 了 我们 重点
来看 一下 模型 的 返回 模型 的 返回 一 开始 是 一段 注释 就是 这 里面 的 冒号 Open Rout erPr oces
sing 这 跟 我们 之前 分析 的 链路 也 是 一样 的 这段 注释 就是 为了 保持 模型 和 我们 服务器之间 的 连接
防止 超时 断开 注释 本身 并 不 包含 什么 有效 的 信息 后面 的 这些 data 才 是 有效 的 信息 我们 来
仔细 看 一下 data 里面 到底 写 了 些 什么 东西 当然 我们 之前 也 说 过 data 的 前面 这 一部分
其实 也 是 没有 什么 太 大用处 的 因为 每 一条 消息 都 是 一样 的 我们 要 重点 看 的 是 每 一条 消息 里面 的 cont
ent 它 的 值 是 增量 返回 的 每 一条 消息 都 不 一样 我们 把 每 一个 消息 的 值 都 拼接 在 一起 就 可以 知道
模型 到底 返回 了 些 什么 东西 可以 看出 它 一 开始 是 给出 了 两个 空 字符串 没有 什么 有效 的 内容
我们 可以 忽略 前 两条 消息 后面 紧接着 一个 thin king 的 标签 表示 模型 马上 就要 开始
思考 了 那 thin king 标签 之后 就是 具体 的 思考 内容 了 这么 看 很 不 方便 我来 帮 大家 把 这 几条
消息 都 给 偏接 起来 让 大家 看 一下 完整 的 模型 返回 是 什么 样子 的 可以 看出 模型 的 回答 一共 是 分为 了
两个 部分 第一个 部分 是 Thin king 也 就是 模型 思考 这个 跟 之前 一样 模型 做 任何 事情 之前 都
要 在 Thin king 标签 里面 思考 一番 这个 是 Client 在 System Prompt 里面 要求 的 我们 在 讲
System Prompt 的 时候 也 提过 这点 第二 部分 则 是 模型 决定 调用 我们 的 GAP Fore cast 工具 来 获取
纽约 未来 几天 的 天气 这 里面 的 标签 是 Use MCP2 我们 之前 在 讲 Client 的 System Prompt 的 时候
讲过 这个 标签 还 说 过 这个 标签 很 重要 大家 应该 都 还 记得 吧 这段 XML 的 意思 就是说 他 想要 调用
Weat her 这个 MCP 服务器 下面 的 GAP Fore cast 工具 参数 是 这个 Client 用 指定 的 参数 down
了 指定 的 MCP 服务器 之后 会 再次 对模型 发起 请求 这个 就是 第二次 请求 的 内容 了 前面 的 部分 是
跟 第一次 请求 一样 有 System Prompt 用户 的 问题 和 环境 信息 等 内容 因为 模型 是 没有 任何 记忆 的
所以 我们 必须 把 前面 发生 过 的 事情 也 告诉 模型 这样 模型 才 能够 更好 地 做出 判断 后面 这 段 内容
的 Row 设置 为了 Assi stant RO 是 角色 , assi stant 就是 助手 , 其实 也 就是 模型 的 意思
RO 设置 成 了 assi stant 代表 的 意思 就是说 这 段 消息 的 提供者 是 模型 这 里面 的 内容 都 被 放在 了
一个 字符串 里面 换行符 也 被 换成 了 - n , 看起来 很 不 方便 我来 给 大家 把 这段 文本 抽取
出来 , 放到 一个 文件 里面 并 做 一下 格式化 这样 看得 更 清楚 一些 这 段 内容 是不是 很 熟悉 呢 模型
先 思考 了 下 如何 获取 纽约 的 天气 然后 就 请求 调用 mcp 工具 这 段 我们 之前 好像 见 过 对 就是
之前 模型 流逝 返回 结果 中 的 cont ent 的 完整 内容 一模一样 别看 这段 内容 之前 是 模型
返回 的 如果 你 不 把 这段 内容 再次 发给 模型 的话 模型 可 记不清 楚 之前 到底 发生 了 些 什么 因为
模型 是 没有 任何 记忆 的 再 往后 的 这个 消息 呢 Row 是 user 代表 消息 是 用户 提供 的 里面 的 内容
分为 三个 部分 第一个 表示 后面 将会 展示 MCP 工具 的 电用 结果 第二个 则 是 结果 的 具体内容
我 把 里面 的 杠恩 换成 换航 服给 大家 看 一下 是 什么 样子 的 可以 看出 这 一段 的 返回 与 Client 回答 中
的 这 一部分 的 内容 是 一模一样 的 第三 部分 就是 当前 的 环境 信息 了 比如说 打开 的 Tab
当前 时间 之类 的 这些 我们 之前 也 讲 过 这里 就 不再 重复 了 总结 一下 Client 一 开始 是 发送 了
System Prompt 然后 发送 了 用户 的 问题 紧接着 发送 了 模型 的 工具 电用 请求 最后 发送 了 工具 的 电用
结果 其实 只有 工具 的 调用 结果 是 新 的 消息 前面 的 都 是 历史 消息 这些 历史 消息 就是
为了 告诉 模型 之前 发生 过 什么 事情 知道 了 请求 内容 我们 就 紧急 着 看 一下 模型 到底 返回 了
些 什么 模型 接到 了 调用 的 结果 之后 依然 是 做 了 流逝 的 返回 跟 之前 一样 前面 的 这 一部分 我们 都
不 看 我们 要 看 的 就是 这 里面 cont ent 的 内容 当然 现在 是 流逝 返回 我们 这么 看 不是 很 方便
所以 我 把 它 的 结果 放到 了 这个 文件 里面 这样 大家 看 的 会 更 清楚 一些 可以 看到 整个 结果
依然 是 分成 了 两个 部分 第一个 部分 还是 Thin king 模型 还是 在 Thin king 标签 里面 思考 了
一番 然后 在 认为 自己 已经 拿到 了 答案 之后 在 Atte mptC ompl etion 标签 里面 返回 了 答案
Client 接到 了 模型 的 返回 之后 是 在 这个 地方 显示 了 thin king 的 内容 在 这个 地方 显示 了 atte mpt
comp letion 的 内容 因为 接到 了 atte mpt comp letion 所以 对话 就 到此结束 了 我们 再来 画个
流程图 给 大家 复习 一下 整个 流程 首先 我们 问 了 一个 问题 纽约 明天 的 天气 怎么样 模型 返回 的
答案 其中 包含 两个 xml 标签 一个 是 thin king 代表 模型 先 思考 了 一番 另外 一个 是 Use
MCP Tool 表示 模型 想要 使用 Weat her 这个 MCP 服务器 下面 的 Gate Fore cast 工具
Client 根据 这个 请求 调用 了 对应 的 工具 之后 把 工具 的 结果 返回 给 了 模型 模型 接到 结果 之后 做
了 第二次 回复 这个 回复 同样 是 包含 两个 XML 标签 其中 第一个 还是 Thin king 思考
过后 模型 认为 自己 已经 得到 了 答案 因此 就 把 最终 的 结论 放到 了 Atte mpt Comp letion 里面
返回 给 了 Client 整个 过程 就 到此结束 了 假如 说 我们 把 问题 换 一下 后面 加上 一句 把 结果 写入 到
resu lts . md
. md 文件 中 此时 会 发生 什么 呢 前面 这部分 都 一样 模型 在 拿到 mcp 工具 调用 结果 之后 也 会 照例
使用 thin king 去 思考 一番 但是 思考 过后 他会 发现 任务 还 没有 完成 因为 结果 还 没有
写入 到 文件 中 所以 呢 此时 他 不会 着急 使用 atte mpt comp letion 总结 他会 再次 请求 调用
工具 只不过 这次 电用 的 工具 是 Client 的 内置 工具 write to file 这个 工具 用于 写入 文件
内容 它会 把 写入 的 文件 路径 和 内容 放到 这个 工具 的 参数 里面 Client 接到 这个 工具 的 电用
请求 之后 会 向 指定 的 文件 中 写入 指定 内容 写 完后 通知 模型 写入 成功 这个 时候 模型 才 会 返回
thin king 和 atte mpt comp letion 告诉 Client 任务 执行 完成 了 实际上 如果 我们 仔细 看
一下 就 会 发现 在 每 一轮 的 工具 电用 过程 中 Client 与 模型 的 交互 是 有 固定 的 模式 的 首先 是 Thin king
也 就是 思考 然后 是 获取 或 改变 外部环境 比如说 是 获取 天气 信息 写入 文件 读取 文件 之类 的 我们
暂时 给 这 一步 起个 名字 叫做 行动 模型 拿到 行动 的 结果 之后 对 这个 结果 做 了 观察 之后 它 又 重复
了 一遍 这个 流程 思考 行动 观察 在 最后 一流 的 思考 之后 模型 会 发现 它 已经 完成 任务 了 它 就
会 给出 最终 答案 思考 行动 观察 这 三个 中文 词 对应 的 英文名 分别 是 Thou ght , Action ,
Obse rvat ion 它们 可是 React 思想 中 最 重要 的 三个 词 你 没准 会 问 什么 是 Reac tReact 是
2022 年 的 一篇 论文 所 提出 来 的 一个 词 它 是 Reas oning 和 Acting 两个 单词 的 合体 这篇
论文 在 当时 可谓 是 铭记 一时 因为 它 所 提出 的 这个 React 理念 可以 在 不 需要 人 干预 的 情况 下 让 模型
自主 思考 自主 调用 各类 外部 工具 从而 完成 用户 的 诉求 就 像 我们 的 Client 一样 说白了
这 就是 一个 Agent 什么 是 Agent 简单 来说 Agent 就是 一种 能 持续 思考 持续 调用 外部 工具
直至 解决 用户 问题 的 一个 程序 所以 从 某种意义 上 来说 Client 就是 一个 Agent 而且 本质 上 Client
也 是 根据 react 的 思想 来 构建 它 的 Agent 的 流程 的 那 意思 就是说 React 用 的 也 是 Client 这种
XML 格式 来 与 模型 沟通 的 咯 非 也 非 也 大家 要 明白 , XML 只是 数据传输 的 一个 格式 而已 , React
是 个 思想 , 它 并 不 跟 某个 格式 绑定 。
React 的 精髓 在 我们 前面 所 提到 的 Sought , Action , Obse rvat ion 这 三个 词 。
实际上 在 这篇 论文 中 作者 并 没有 使用 XML 也 没有 使用 JSON 他 使用 了 近乎 于 纯 文本
的 方式 实现 了 类似 Cly 的 效果 。 我们
。 我们 还是 拿出 之前 Client 与 模型 交互 的 流程图 那 假如 说 我们 希望 Client 是 用 reacts 论文 中 提到 的
格式 而 不是 我们 之前 研究 过 的 那种 XML 格式 这个 流程图 该 怎么 改 呢 我们 来 一个 一个 看 首先 看
模型 的 第一个 回答 它 原来 返回 的 不是 thin king 标签 吗 现在 要 换成 thou ght 冒号 后面 接 具体 的
思考 内容 紧接着 下 一步 不是 usem cb2 吗 那 我们 需要 换成 action 冒号 后面 接 需要 调用 的
工具 名称 和 参数 工具 调用 完毕 之后 返回 的 结果 前面 也 要 加上 obse rvat ion 然后 后面 的
流程 也 是 照样 改掉 thin king 改成 thou ght 调用 工具 时 使用 action 我们 假设 right to
fall 工具 的 执行 结果 是 一个 字符串 字符串 的 内容 是 写入 成功 这 一行 的 内容 就 应该 是 obse rvat ion
写入 成功 在 接到 成功 的 提示 之后 模型 会 再次 使用 thou ght 进行 思考 最终 用 一个 特殊 的
标记 Fina lAns wer 来 给出 最终 的 总结 并 结束 此次 对话 当然 这里 还要 提 一点 想要 模型
这么 返回 的话 我们 也 要 给 模型 一个 配套 的 System Prompt 还 记得 我们 之前 看过 的 Client 的 那个
System Prompt 吗 那个 System Prompt 告诉 了 模型 具体 的 返回 格式 工具 带用 示例 可用 工具 列表
等等 信息 如果 要 改成 Thou ghtA ctio nObs erva tion 这种 格式 的话 我们 也 需要 有 一个
类似 的 System Prompt 比如说 是 这个 这 里面 是 说明 了 返回 格式 这 里面 是 给出 了 工具 调用 示例 这
里面 给出 了 注意事项 这 里面 给出 了 工具 列表 之后 模型 就 会 按照 指定 的 格式 返回 了 当然 由于 Client
并 没有 给出 修改 System Prompt 的 地方 它 的 格式 是 写 在 代码 里面 的 所以 我们 实际上 其实 是 没有
办法 让 Client 按照 这种 格式 与 模型 进行 沟通 的 这 里面 只是 给 大家 一个 视力 而已 不过 话说回来
这种 视力 并 不是 没有 任何 意义 的 比如说 假设 我们 自己 想 写 一个 agent 我们 是 完全 可以 使用
这种 thou ght action obse rvat ion 的 格式 的 实际上 我 现在 就 可以 用 一个 开源 的 模型 给 你 举个
例子 首先 我用 Olama 启动 Google 的 一个 模型 jama3 然后 我们 找到 之前 演示 过 的 那个 react
的 system prompt 在 它 的 最后 加上 模型 要 解决 的 问题 然后 把 整个 内容 作为 模型 输入 直接 给
到 模型 大家 注意 其实 System Prompt 和 用户 问题 要 分开 给 模型 的 不过 Olama 设置 System Prompt 有点
麻烦 演示 过多会 增加 这个 视频 的 复杂度 不利于 理解 所以 我 就 把 System Prompt 和 用户 问题 合在一起
直接 给 到 模型 了 效果 其实 差不多 的 我们 回车 看看 模型 会 返回 什么 可以 看到 模型 返回 了 两 部分
的 内容 一个 是 Sought 一个 是 Action 符合 我们 的 要求 之后 按照 正常 流程 我们 应该 有段 代码 去
解析 Action 中 的 内容 将 里面 的 工具 和 参数 提取 出来 然后 调用 这个 工具 就 像 Client 接到
模型 返回 的 UseM CP2 的 时候 那样 做 不过 因为 我们 现在 是 人工 测试 并 没有 什么 代码 所以
我们 这里 直接 假设 调用 工具 的 事情 已经 做 完 了 并且 拿到 了 工具 的 结果 我们 把 工具 结果 的
前面 加上 Obse rvat ion 一起 返回 给 模型 模型 拿到 工具 结果 之后 再次 返回 了 thou
ght 和 action 要求 使用 write to file 工具 写入 文件 照例 我们 假设 写入 已经
完成 了 返回 给 模型 写入 完成 的 消息 最后 模型 还是 先 思考 一下 发现 任务 已经 完成 之后 就
输出 了 final answer 整个 流程 就 结束 了 从 这个 流程 可以 看出 thou ght action obse rvat ion
这个 格式 可以 用来 编写 agent 只是 你 要 注意 了 我 并 不 建议 你 使用 这种 格式 因为 这种
格式 远远 没有 xml 那种 精确 当然 我们 前面 所 演示 的 那个 交互 流程 也 可以 用 XML 来 浮显
我们 用 的 Jama3 模型 大小 是 4B 的 难以 产出 符合 格式 的 XML 因此 这次 我们 就 用 Deep
seq 来 举例 先 找到 之前 演示 过 的 Client 的 System Prompt 最后 加上 用户 的 问题 纽约 明天 的
天气 怎么样 结果 写入 到 resu lts . md
. md 文件 中 然后 我们 把 整个 文件 的 内容 复制粘贴 给 Deep seqD eepseq 返回 了 两 部分 的 内容 一个 是
Thin king 一个 是 Use MCP Tool 跟 我们 在 Client 那里 见到 的 一模一样 如果 是 Client 的话 他 就 会
去 调用 Gap Fore cast 这个 工具 了 因为 我们 在 模拟 运行 所以 呢 我们 直接 假设 工具 调用
完成 了 返回 结果 给 模型 告诉 他 纽约 明天 的 天气 模型 接到 工具 调用 结果 之后 返回 了 Thin
king 和 Right to File 两个 标签 要求 写入 文件 同样 我们 模拟 写入 成功 的 消息
模型 最后 返回 了 Atte mpt Comp letion 整个 流程 就 结束 了 注意 Atte mpt Comp letion 之前 呢
应该 还有 个 Thin king Deep Seek 失误 了 没有 把 那 部分 返回 给 我们 这点 你 知道 就 好 了 所以 大家 也
都 看到 了 XML 呢 与 我们 之前 所 讲 的 那种 Sought Action Obse rvat ion 本质 上 都 是 一样 的
都 遵循 React 的 模式 而且 模型 都 能 理解 只是 从 逻辑 上 来讲 XML 的 效果 更好 因为 它 的 表达 更为
精确 但 这 也 不 代表 大家 就 一定 要 使用 XML 来 返回 数据 实际上 你 可以 使用 任何 格式 比如
JSON 就是 一个 很 好 的 选择 只要 这个 格式 本质 上用 的 是 react 的 模式 那 都 是 可以 的 所以
做 一个 类似 client 这样 的 agent 需要 什么 呢 首先 我们 需要 告诉 模型 返回 结果 的 格式 是 用 我们
前面 提到 的 thou ght action obse rvat ion 这样 的 格式 还是 用 client 这样 的 XML 格式 还是 说
使用 JSON 呢 哪 一个 都行 但 一定 要 明确 告知 模型 其次 我们 还 需要 告诉 模型 可用 的 工具
列表 最后 我们 还 需要 告诉 模型 一定 要 使用 react 模式 也就是说 每次 回答 的 时候 都 要 先 思考
一下 思考 之后 再 接上 一个 工具 对央 请求 或者 是 最终 答案 我们 把 这些 要求 写入 到 System
Prompt 里面 再 加上 一个 用户 问题 作为 出发 整个 agent 就 可以 跑 起来 了 今天 的 视频 就
到此结束 了 别忘了 点赞 关注 我们 下次 再见 拜拜
Loading video analysis...