cursor与大模型对话原理-上下文示例说明

在这里插入图片描述

对话上线文内容解析

  1. System Prompt (系统提示词) - 724 Tokens

    • 用途: 这是模型的“人设”和核心指令。它定义了 AI 是谁(例如:“你是一个资深的全栈工程师”)、它的任务目标是什么、以及它应该遵循的基本回复格式。
    • 特点: 通常比较精简,但权重最高,贯穿整个对话始终。
  2. Tool Definitions (工具定义) - 14.7K Tokens

    • 用途: 这是让模型具备“行动能力”的关键。这里包含了模型可以调用的外部 API、函数或脚本的详细描述(例如:read_file, run_terminal_command, search_web)。
    • 特点: 占用量较大(14.7K),说明这个系统赋予了模型非常丰富的操作能力。模型需要阅读这些定义才能知道如何正确地构造 JSON 或代码来调用这些工具。
  3. Rules (规则) - 5.3K Tokens

    • 用途: 这是具体的行为约束或业务逻辑。比如“不要删除任何文件”、“必须使用 TypeScript 编写代码”、“回答必须包含代码块”。
    • 特点: 相比 System Prompt 的宏观设定,Rules 更侧重于具体的执行细节和禁忌。
  4. Skills (技能) - 2.4K Tokens

    • 用途: 这可能指预置的特定任务模板或知识库片段。例如,“如何配置 Docker”或“React 最佳实践”。当用户触发相关话题时,这些技能会被激活或作为背景知识注入。
  5. Subagent Definitions (子智能体定义) - 1.3K Tokens

    • 用途: 这表明系统采用了多智能体架构。主模型可以指派任务给专门的“子智能体”(例如一个专门负责写测试用例的子智能体,另一个专门负责写文档)。这里定义了这些子角色的职责。
  6. Conversation (对话历史) - 124.7K Tokens

    • 用途: 这是用户与模型之间实际发生的问答记录。
    • 特点: 占据了最大的比例(约 83% 的已用空间)。这说明当前的会话已经进行了很长时间,或者包含了很多长代码、长文件的传输。这也是为什么总用量达到了 149.2K。

对话示例

基于上述配置(特别是大量的 Tool Definitions 和 Rules),这非常像是一个 AI 编程助手(如 Cursor, Windsurf 或类似的 IDE 插件) 的工作状态。

以下是一个模拟的对话场景,展示了这些上下文是如何协同工作的:

场景背景: 用户正在开发一个 Web 应用,需要修复一个 Bug 并添加新功能。此时上下文已经积累了很多之前的代码讨论(Conversation 占用高)。

用户:

帮我检查一下 auth.ts 文件里的登录逻辑,好像有个安全漏洞。另外,修好后帮我把相关的单元测试也更新了。记得遵循我们在 .cursorrules 里定的规范,不要用 any 类型。

(后台处理过程 - 用户不可见,但消耗了 Context)

  • System Prompt: 提醒模型它是一个安全专家及资深前端开发。
  • Rules (5.3K): 检索到规则 “禁止使用 any 类型”,“修改代码后必须生成对应的 Jest 测试用例”。
  • Tool Definitions (14.7K): 模型加载 read_file (读取 auth.ts), write_file (写入修改), run_test (运行测试) 的工具描述。
  • Conversation (124.7K): 模型回顾之前的对话,了解 auth.ts 的历史修改记录和项目使用的技术栈(比如是 Next.js 还是 Express)。

模型 (AI):

我分析了 auth.ts,发现确实存在一个问题:在验证 Token 时没有检查过期时间,这可能导致过期凭证被重用。

我将执行以下操作:

  1. 在验证逻辑中增加 exp 字段的检查。
  2. 确保所有变量都有明确的 TypeScript 接口定义(遵守无 any 规则)。
  3. 更新 auth.test.ts 以覆盖这个新的边界情况。

正在调用工具读取文件… [Tool Call: read_file]

(用户继续对话,Context Usage 进一步上升)

用户:

看起来不错。但是在运行测试之前,先帮我把 package.json 里的测试脚本改一下,我们需要加上覆盖率报告。

模型 (AI):

没问题。我会修改 package.json 中的 test 脚本,加入 --coverage 参数。

[Tool Call: read_file path=“package.json”]

[Tool Call: write_file path=“package.json” content=“…”]

修改完成。现在我们可以运行测试并查看覆盖率了。需要我现在执行 npm test 吗?

总结

这张图反映了当前大模型应用的一个趋势:从单纯的“聊天机器人”向“复杂任务代理”转变。为了完成复杂的编程或工作任务,模型必须“记住”大量的工具说明书(Tools)和行为准则(Rules),这导致留给真正对话(Conversation)的空间虽然很大(124K),但也很容易被耗尽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值