Appearance
先做出一个 Chatbot
第一模块真正的起点,不是先讲理论,而是先把一个最小 chatbot 跑起来。
这节课解决什么问题
- 一个最小 chatbot 到底最少需要哪些部分
- 一次聊天请求是怎么从用户输入走到模型回复的
- 为什么说 chatbot 是 Agent 的前一层
最小 chatbot 只要 4 个东西
- 一个模型
- 一组消息历史
messages - 一次用户输入
- 一次模型回复
只要你能把这 4 个东西接起来,就已经有了后面所有 Agent 的对话内核。
最小版本长什么样
ts
const messages = [
{
role: 'system',
content: '你是一个简洁的编程助理。',
},
{
role: 'user',
content: '解释一下什么是闭包',
},
]
const response = await callModel(messages)
messages.push({
role: 'assistant',
content: response,
})用户继续追问时,再追加一条 user 消息,然后把整组 messages 再发给模型。
这就是最小 chatbot。
它为什么还不是 Agent
因为它现在还只是:
- 用户说一句
- 模型回一句
它还没有:
- 围绕目标持续推进任务
- 自己决定下一步动作
- 调工具后继续执行
所以这一步先解决“能聊”,后面才进入“能做事”。
本节产物
- 一个命令行里的最小 chatbot
- 一份单轮和双轮对话样例
- 一张从用户输入到模型回复的最小链路图
课堂实作
- 跑通一次 system + user + assistant 的完整链路
- 让 chatbot 支持第二轮追问
- 观察不带历史和带历史时,回答有什么差异
并入项目
这一课会成为后面所有 Agent 项目的最小对话入口。
面试会怎么问
- 最小 chatbot 需要哪些状态
- chatbot 和 Agent 的最小差别是什么
