🧠 LLM 大语言模型

从基础概念到多轮对话,探索AI的无限可能

常见大模型

主流模型及其特点

💡 LLM是如何工作的?

🌍 国外模型

Claude Opus 4.7

Anthropic

推理能力顶尖,复杂任务处理专家

深度推理 数学代码 链式思考

GPT-5.5

OpenAI

最新一代GPT,多模态与逻辑全面提升

文本生成 多模态 通用智能

Gemini

Google

原生多模态,搜索与工具集成

多模态原生 搜索集成 超长上下文

🇨🇳 国内模型

Kimi k2.6

月之暗面

超长上下文,文件与网页解析能力突出

200K+上下文 文件阅读 网页解析

MiniMax 2.7

MiniMax

多模态创作,语音与视频生成能力强

多模态创作 语音合成 角色扮演

GLM 5.1

智谱AI

清华背景,中文理解与代码能力优秀

中文理解 代码生成 智能体

Qwen

阿里云

开源生态完善,代码与数学推理顶尖

开源生态 代码能力 数学推理

DeepSeek

深度求索

开源模型,推理与代码能力顶尖,性价比高

开源 深度推理 高性价比

单句问答 vs 多轮对话

对比"不累加上下文"和"累加上下文"的效果差异

❌ 不累加上下文

每次只发送当前一条消息

U
3 + 5 等于多少?
AI
3 + 5 = 8
U
再加 2 呢?
AI
2
U
再乘以 3 呢?
AI
3

✓ 累加上下文

每次发送完整的对话历史

U
3 + 5 等于多少?
AI
3 + 5 = 8
U
再加 2 呢?
AI
8 + 2 = 10
U
再乘以 3 呢?
AI
10 × 3 = 30

❌ 不累加上下文 - 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不能做什么、回答哪些问题

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)
📋
标准化协议
MCP(Model Context Protocol)定义了统一的工具调用格式
🔄
交互循环
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),超出会报错
💰
成本飙升
每次请求都发送完整历史,API费用随对话轮数线性增长
🐢
响应变慢
模型处理超长上下文需要更多时间,用户体验下降
🗑
信息冗余
很多早期对话内容已无关紧要,却被重复发送

✓ 解决方案:智能上下文管理

📝
上下文压缩
用AI总结早期对话,保留关键信息,减少token占用
🎯
滑动窗口
只保留最近N轮对话,超出部分自动丢弃
🔍
重要信息提取
识别并持久化存储关键决策、代码结构等
📂
文件系统辅助
将代码、文档写入文件,上下文只保留引用

Agent 的上下文管理工作流

接收用户请求
加载必要上下文
调用LLM生成
执行工具操作
更新上下文状态