常见大模型
主流模型及其特点
💡 LLM是如何工作的?
🌍 国外模型
Claude Opus 4.7
Anthropic推理能力顶尖,复杂任务处理专家
GPT-5.5
OpenAI最新一代GPT,多模态与逻辑全面提升
Gemini
Google原生多模态,搜索与工具集成
🇨🇳 国内模型
Kimi k2.6
月之暗面超长上下文,文件与网页解析能力突出
MiniMax 2.7
MiniMax多模态创作,语音与视频生成能力强
GLM 5.1
智谱AI清华背景,中文理解与代码能力优秀
Qwen
阿里云开源生态完善,代码与数学推理顶尖
DeepSeek
深度求索开源模型,推理与代码能力顶尖,性价比高
单句问答 vs 多轮对话
对比"不累加上下文"和"累加上下文"的效果差异
❌ 不累加上下文
每次只发送当前一条消息
✓ 累加上下文
每次发送完整的对话历史
❌ 不累加上下文 - JSON请求
每轮请求的 messages 内容
1
请求:"3 + 5 等于多少?"
{
"messages": [
{ "role": "user", "content": "3 + 5 等于多少?" }
]
}
✓ 正确:模型理解问题并计算
2
请求:"再加 2 呢?"
{
"messages": [
{ "role": "user", "content": "再加 2 呢?" }
]
}
✗ 错误:模型不知道"加"到什么上
3
请求:"再乘以 3 呢?"
{
"messages": [
{ "role": "user", "content": "再乘以 3 呢?" }
]
}
✗ 错误:模型不知道"乘"什么
✓ 累加上下文 - JSON请求
每轮请求的 messages 内容
1
请求:"3 + 5 等于多少?"
{
"messages": [
{ "role": "user", "content": "3 + 5 等于多少?" }
]
}
✓ 正确:模型理解问题并计算
2
请求:"再加 2 呢?"
{
"messages": [
{ "role": "user", "content": "3 + 5 等于多少?" },
{ "role": "assistant", "content": "3 + 5 = 8" },
{ "role": "user", "content": "再加 2 呢?" }
]
}
✓ 正确:模型知道结果是8,8+2=10
3
请求:"再乘以 3 呢?"
{
"messages": [
{ "role": "user", "content": "3 + 5 等于多少?" },
{ "role": "assistant", "content": "3 + 5 = 8" },
{ "role": "user", "content": "再加 2 呢?" },
{ "role": "assistant", "content": "8 + 2 = 10" },
{ "role": "user", "content": "再乘以 3 呢?" }
]
}
✓ 正确:模型知道结果是10,10×3=30
💡 核心原理
多轮对话的关键在于每次请求时把完整的对话历史放入 messages 数组,模型才能理解上下文中"再"的含义!左侧因不累加历史,第2、3轮都答错;右侧累加历史,全部正确~
🎭 System 提示词的作用
给AI设定"角色"和行为规范
什么是 System 提示词?
角色设定
定义AI扮演的角色(如程序员、翻译、助手)
定义AI扮演的角色(如程序员、翻译、助手)
行为规范
告诉AI应该如何回答、遵循什么规则
告诉AI应该如何回答、遵循什么规则
风格控制
设定输出的语言风格、格式偏好
设定输出的语言风格、格式偏好
边界限制
规定AI不能做什么、回答哪些问题
规定AI不能做什么、回答哪些问题
JSON 传参示例
📋 API 请求格式
system
{
"model": "claude-sonnet-4-6",
"messages": [
{ "role": "system", "content": "你是一位资深Python开发工程师,擅长代码优化和调试。回答时请提供具体的代码示例,并解释关键步骤。" },
{ "role": "user", "content": "如何优化这个for循环?" },
{ "role": "assistant", "content": "可以使用列表推导式..." },
{ "role": "user", "content": "能给出具体例子吗?" }
]
}
规则文件(如 CLAUDE.md)就是通过 System 提示词传递的!
每次对话时,规则文件的完整内容会被注入到 messages 数组的 第一条 system 消息 中,让AI了解项目规范、代码风格等上下文信息。
有 vs 无 System 提示词的区别
❌ 无 System
AI默认是"通用助手"角色
回答风格随机,可能不符合预期
需要每次在对话中重新说明需求
✓ 有 System
AI持续扮演指定角色
回答风格统一、专业
一次设定,全对话生效,更高效
🔧 MCP Tool 参数调用
让Agent能够调用外部工具完成任务
什么是 MCP Tool?
工具调用能力
让AI不仅能对话,还能执行实际操作(读文件、查数据库、调用API)
让AI不仅能对话,还能执行实际操作(读文件、查数据库、调用API)
标准化协议
MCP(Model Context Protocol)定义了统一的工具调用格式
MCP(Model Context Protocol)定义了统一的工具调用格式
交互循环
AI决定调用工具 → 执行工具 → 返回结果 → AI继续处理
AI决定调用工具 → 执行工具 → 返回结果 → AI继续处理
安全可控
工具调用需要用户确认,避免危险操作
工具调用需要用户确认,避免危险操作
Tool 调用 JSON 示例
📋 Tool 调用流程
tool_use
{
"model": "claude-sonnet-4-6",
"messages": [
{ "role": "user", "content": "读取 config.json 文件内容" },
{ "role": "assistant",
"content": [
{ "type": "tool_use", "id": "toolu_01", "name": "read_file",
"input": { "path": "config.json" } }
]
},
{ "role": "user",
"content": [
{ "type": "tool_result", "tool_use_id": "toolu_01",
"content": "{ \"app_name\": \"Demo\", ... }" }
]
},
{ "role": "assistant", "content": "文件内容显示app_name为Demo..." }
],
"tools": [
{ "name": "read_file", "description": "读取文件内容",
"input_schema": { "type": "object",
"properties": { "path": { "type": "string", "description": "文件路径" } },
"required": ["path"]
}
}
]
}
Tool 调用工作流程
用户提问
→
AI决定调用Tool
→
执行Tool操作
→
返回Tool结果
→
AI生成最终回答
Claude Code 内置工具也是通过 tools 字段传递的!
Claude Code 自带的 Read、Edit、Glob、Grep、Bash 等工具,在每次API请求时都会通过 tools 数组 传递给模型,让AI知道有哪些工具可以调用。
Read
Edit
Glob
Grep
Bash
WebFetch
...
📊 Agent 上下文传递方式总结
规则文件、工具、技能是如何传递给模型的
| 内容类型 | 传递位置 | 角色/字段 | 触发时机 |
|---|---|---|---|
| 规则文件(CLAUDE.md) | messages 数组 |
system | 每次对话开始时注入 |
| 内置工具(Read/Edit等) | tools 数组 |
tools | 每次API请求时传递 |
| Skills 技能 |
注册:系统内部告知
注入:
messages 数组
|
user |
① 注册:传递 name + description
② 注入:调用 /skill 时注入具体内容
|
📋 完整 API 请求结构示意
{
"model": "claude-sonnet-4-6",
"messages": [
{ "role": "system", "content": "【规则文件】CLAUDE.md内容...
可用技能列表:
- frontend-design: 创建前端界面
- security-review: 安全审查代码
- init: 初始化项目配置
..." },
{ "role": "user", "content": "之前的对话历史..." },
{ "role": "assistant", "content": "之前的AI回复..." },
{ "role": "user", "content": "【技能注入】执行frontend-design技能的具体指令内容..." },
{ "role": "user", "content": "当前用户问题" }
],
"tools": [
{ "name": "Read", "description": "读取文件", "input_schema": {...} },
{ "name": "Edit", "description": "编辑文件", "input_schema": {...} },
{ "name": "Glob", "description": "文件搜索", "input_schema": {...} }
]
}
Skills 注册与注入机制
① 注册阶段
会话开始时,系统将所有可用技能的 name + description 告知模型,让AI知道有哪些技能可以调用。
② 注入阶段
当用户使用 /skill-name 时,技能的具体指令内容会作为一条 user 消息 注入到对话中。
🤖 Agent 编码时的上下文管理
从理论到实践:如何高效管理对话历史
❌ 问题:上下文无限增长
Token限制
模型有最大上下文长度(如200K tokens),超出会报错
模型有最大上下文长度(如200K tokens),超出会报错
成本飙升
每次请求都发送完整历史,API费用随对话轮数线性增长
每次请求都发送完整历史,API费用随对话轮数线性增长
响应变慢
模型处理超长上下文需要更多时间,用户体验下降
模型处理超长上下文需要更多时间,用户体验下降
信息冗余
很多早期对话内容已无关紧要,却被重复发送
很多早期对话内容已无关紧要,却被重复发送
✓ 解决方案:智能上下文管理
上下文压缩
用AI总结早期对话,保留关键信息,减少token占用
用AI总结早期对话,保留关键信息,减少token占用
滑动窗口
只保留最近N轮对话,超出部分自动丢弃
只保留最近N轮对话,超出部分自动丢弃
重要信息提取
识别并持久化存储关键决策、代码结构等
识别并持久化存储关键决策、代码结构等
文件系统辅助
将代码、文档写入文件,上下文只保留引用
将代码、文档写入文件,上下文只保留引用
Agent 的上下文管理工作流
接收用户请求
→
加载必要上下文
→
调用LLM生成
→
执行工具操作
→
更新上下文状态