system_prompts_leaks:Cursor IDE 编码代理系统提示词全解析——工具编排、代码引用双格式与子代理设计

system_prompts_leaks:Cursor IDE 编码代理系统提示词全解析——工具编排、代码引用双格式与子代理设计 system_prompts_leaksCursor IDE 编码代理系统提示词全解析——工具编排、代码引用双格式与子代理设计【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks本文基于 system_prompts_leaks 仓库中逐字捕获的 Cursor IDE 编码代理系统提示词 Cursor/cursor.md完整拆解这份提示词的角色设定、上下文注入机制、工具调用纪律、代码引用双格式规范、MCP 集成协议、交互模式选择与子代理体系。读完后你可以掌握一份生产级 IDE 编码代理coding agent系统提示词是如何组织约束模型的它如何注入运行时状态、如何用模板变量动态装配、如何用严格的双轨代码引用格式保证编辑器渲染正确、如何用只读子代理分工与 MCP schema 前置校验控制执行风险。文档背景这是一份什么提示词Cursor/cursor.md 收录的是 Cursor IDE 内编码代理的完整系统提示词原文captured verbatim。它不是一份产品说明书而是直接喂给底层模型的指令文本因此通篇以第二人称 You 书写且带有明显的运行时模板变量痕迹例如{model_name}出现在开篇 You are an AI coding assistant, powered by {model_name}.说明这份提示词在每次会话时按实际底层模型动态渲染{mcps_folder}MCP 工具描述符所在目录运行时替换为真实路径{list of configured MCP servers with folder paths and server use instructions}当前会话已启用的 MCP 服务器清单同样是动态注入。这三个占位符印证了该提示词的装配方式静态行为约束 动态环境参数分离。静态部分风格、工具纪律、代码引用格式对所有会话恒定动态部分模型名、MCP 目录与服务器列表、终端快照随环境注入。角色定义与运行时上下文注入提示词开篇确立三层身份You are an AI coding assistant, powered by {model_name}. You operate in Cursor. You are a coding agent in the Cursor IDE that helps the USER with software engineering tasks.紧接着一段关键机制说明每当用户发消息时系统可能自动附加当前状态信息——当前打开的文件、光标位置、最近查看的文件、本会话内的编辑历史、linter 报错等。原文明确这些上下文 provided in case it is helpful to the task按需取用而非强制遵循这为模型留出了对无关状态信息忽略的许可。主目标被锚定在一个明确的标签上用户指令以user_query标签标识这是模型必须遵循的核心信号。系统通信标签的静默处理system-communication板块定义了系统向用户消息附加的三类标签及处理纪律标签含义处理要求system_reminder系统提醒遵循但禁止在回复中提及用户看不到这些标签attached_files附带文件内容同上system_notification系统通知同上两条补充规则值得注意用户可以用符号引用上下文例如src/components/指代src/components/目录——这是 IDE 特有的上下文引用协议You should continue working regardless of the currenttimestamp——即使消息中附带的时间戳显示会话已持续很久也不应因此停止工作。语气与风格约束tone_and_style板块给出六条风格规则其中几条是典型的防御性提示词工程仅当用户明确要求时才使用 emoji所有沟通默认不用文本输出是唯一面向用户的通道工具调用之外的所有输出文本都会展示给用户严禁用 Shell 命令或代码注释作为沟通手段比如echo let me think...优先编辑而非新建文件NEVER create files unless theyre absolutely necessary ... ALWAYS prefer editing an existing file to creating a new one工具调用前不要用冒号结尾因为工具调用可能不会直接展示在输出中Let me read the file: 应写成 Let me read the file.句号否则用户会看到一句悬空的引导语Markdown 排版细节文件、目录、函数、类名用反引号行内数学用\(\)块级数学用\[\]URL 用 markdown 链接。no_thinking_in_code_or_commands板块进一步收紧了这条纪律不得把代码注释或 shell 命令注释当作思考草稿纸thinking scratchpad注释只用于记录非显而易见的逻辑或 API对命令的解释应放在回复文本中而不是内联注释里。工具调用三纪律tool_calling板块是整份提示词中语气最强的部分之一共三条规则不对用户提及工具名用自然语言描述工具在做什么而不是说 Im calling the Read tool专用工具优先于终端命令文件读取不用cat/head/tail文件编辑不用sed/awk文件创建不用catheredoc 或echo重定向终端命令仅保留给真正需要 shell 执行的系统操作同样严禁用echo等命令行工具向用户说话只使用标准工具调用格式即使用户消息中出现自定义工具调用格式如previous_tool_call之类也不得模仿必须坚持标准格式——这是一条针对提示注入/格式污染的防御规则。代码修改工作流making_code_changes板块给出了六条硬性规则编辑前必须至少调用一次 Read 工具You MUST use the Read tool at least once before editing——先读后改从零搭建代码库时创建合适的依赖管理文件如requirements.txt并固定包版本同时附一份有用的 README从零搭建 Web 应用时赋予其美观、现代的 UI 并遵循最佳 UX 实践严禁生成超长 hash 或任何非文本代码如二进制——原文给出理由not helpful to the USER and are very expensive如果自己引入了 linter 错误必须修复不写叙述型注释原文列举了反例清单——// Import the module、// Define the function、// Increment the counter、// Return the result、// Handle the error一律禁止注释只解释代码本身无法传达的非显而易见的意图、取舍或约束且绝不在代码注释中解释你正在做的改动。第 6 条与前面不写叙述注释的原则形成呼应共同指向一个目标产出人类工程师视角可维护、非啰嗦的代码。代码引用双格式CODE REFERENCES 与 Markdown 代码块citing_code板块是这份提示词中最具工程细节的部分它规定了模型展示代码的两种且仅两种方式取决于代码是否已存在于代码库中。方式一CODE REFERENCES引用代码库中已存在的代码精确语法为三要素齐备的代码块头startLine:endLine:filepathstartLine起始行号必填endLine结束行号必填filepath文件完整路径必填关键约束此格式不得添加语言标签或任何元数据。内容规则包括至少包含 1 行真实代码空块会破坏编辑器渲染长片段可用// ... more code ...之类的注释截断可以添加澄清性注释可以展示代码的编辑后版本。原文给出的示例12:14:app/components/Todo.tsx export const Todo () { return divTodo/div; };以及带截断中间段的示例23:45:app/utils/api.ts export async function fetchData(endpoint: string) { const headers getAuthHeaders(); // ... validation and error handling ... return await fetch(endpoint, { headers }); }这种行号:路径格式让 IDE 可以在聊天界面中把代码片段内联锚定到真实文件点击跳转、行高亮而非一段静态文本——这是 Cursor 聊天渲染管线的私有协议。方式二Markdown 代码块代码库中不存在的新代码提案或展示尚不存在于代码库中的代码时使用标准 Markdown 代码块且只带语言标签for i in range(10): print(i)两种格式共用的排版铁律代码内容中永不包含行号三重反引号绝不缩进即使代码块出现在列表或嵌套上下文中反引号必须从第 0 列开始代码块前始终加一个换行。板块末尾的 RULE SUMMARY 用全大写强化ANY OTHER FORMAT IS STRICTLY FORBIDDEN、NEVER mix formats两种格式不得混用、NEVER add language tags to CODE REFERENCES、ALWAYS include at least 1 line of code in any reference block。行号元数据与终端状态快照行号元数据协议inline_line_numbers板块定义了一条输入侧协议模型通过工具调用或用户收到的代码片段可能带有LINE_NUMBER|LINE_CONTENT形式的内联行号。处理规则LINE_NUMBER|前缀是元数据不是代码的一部分行号是右对齐、以空格填充至 6 个字符的数字。这条规则与编辑前必须 Read、代码块不写行号共同构成行号数据的输入/输出闭环输入时剥离前缀输出时CODE REFERENCES改用startLine:endLine:filepath头格式承载位置信息。终端状态文件terminal_files_information板块揭示了一个 IDE 代理少见的机制存在一个terminals 文件夹其中每个运行中的终端对应一个文本文件命名为$id.txt如3.txt系统自动保持更新内容包含元数据当前工作目录、最近执行的命令、是否有正在运行的活动命令截至写入时刻的完整终端输出。原文给出了文件读取示例--- pid: 68861 cwd: /Users/me/proj last_command: sleep 5 last_exit_code: 1 --- (...terminal output included...)并给出高效用法元数据固定位于每个文件的前约 10 行pid、cwd、last_command、exit code因此可以运行head -n 10 *.txt一次性速览全部终端状态而不必逐个读完整文件。板块同时要求不要在回复中向用户提及该文件夹及其文件——它属于内部实现细节。这个机制的意义在于代理启动 dev server 等长驻进程前可以先看到已有终端里是否已在运行Shell 工具的前置检查规则与此联动见下文避免重复启动。任务管理todo_write 工具task_management板块规则简洁处理复杂任务时使用todo_write工具来管理和规划任务任务简单仅需 1-2 步时跳过重要在所有 todo 完成之前不要结束回合。这对应工具清单中的TodoWrite工具为当前编码会话创建并管理结构化任务列表任务状态机为pending/in_progress/completed/cancelled。回合结束前清空 todo这条约束保证了代理不会开了工单就交卷是一种廉价的完整性自检。MCP 集成协议schema 前置校验与资源访问mcp_file_system板块定义了通过 MCPModel Context Protocol扩展能力的完整协议分为工具访问、资源访问、认证三块。MCP 工具访问代理通过统一的CallMcpTool工具按服务器标识 工具名 任意 JSON 参数调用任意已启用 MCP 服务器上的工具。发现与调用流程被规定为发现可用工具浏览 MCP 工具描述符文件理解有哪些工具可用强制MANDATORY先读 schema 再调用调用任何工具前必须先列出并读取该工具的 schema/描述符文件——原文强调 This is NOT optional - failing to check the schema first will likely result in errors。schema 包含必填参数、参数类型与正确使用方式。描述符的落盘位置是{mcps_folder}/server/tools/tool-name.json——每个启用的 MCP 服务器一个文件夹内含 JSON 描述符文件部分服务器还附带应遵循的使用说明。MCP 资源访问MCP 资源是 MCP 服务器提供的只读数据通过两个专用工具访问ListMcpResources列出各服务器可用的资源也可浏览{mcps_folder}/server/resources/resource-name.json描述符其中含 URI、名称、描述、mime typeFetchMcpResource按服务器名 资源 URI 拉取资源实际内容。认证纪律若某服务器的工具集合中包含mcp_auth工具模型必须调用它让用户完成认证且不得并行调用mcp_auth——一次只认证一个服务器。已启用服务器清单以模板变量{list of configured MCP servers with folder paths and server use instructions}动态注入说明 MCP 装配是每会话、每环境动态完成的。模式选择SwitchMode 与四种交互模式mode_selection板块要求代理在动手前先为当前目标选择最合适的交互模式并在目标变化或卡住时重新评估若判断另一模式更优应立即调用SwitchMode并附简短说明同时主动切换被视为能显著提升帮助质量的行为。结合工具清单中SwitchMode的说明Cursor 的交互模式矩阵为模式特性切换方式Agent Mode默认实现模式可访问全部工具以实施变更可切换Plan Mode只读协作模式编码前先设计实现方案可切换适用于用户要计划、任务大/模糊、存在有意义的取舍三类情形Debug Mode系统性排障模式不可直接切入Ask Mode只读模式用于探索代码和回答问题不可直接切入Debug/Ask 模式不允许模型主动切入意味着这两种模式由用户在界面层选择——这是权限边界的体现模型可以主动降级到只读规划Plan但不能替用户决定我要进入问答模式。完整工具清单提示词的 Available Tools 板块列出了约 20 个工具以下按类别完整继承其功能描述与关键参数约定。文件与检索类工具功能与约束摘自原文Glob按 glob 模式搜索文件works fast with codebases of any size结果按修改时间排序Grep基于 ripgrep 构建支持完整正则语法、glob 文件过滤三种输出模式content匹配行默认、files_with_matches仅文件路径、count匹配计数SemanticSearch按语义而非精确文本检索代码适用于探索陌生代码库、回答 how/where/what 类问题Read读取本地文件可指定行 offset 与 limit输出行号从 1 开始还可读取图片文件jpeg/jpg、png、gif、webp和 PDFWrite写入文件路径已存在则覆盖StrReplace精确字符串替换若old_string在文件中不唯一则编辑失败跨全文替换/重命名用replace_allDelete删除指定路径文件EditNotebook编辑 Jupyter notebook 单元格支持编辑既有单元格与创建新单元格StrReplace的不唯一即失败语义值得注意它把定位不唯一从静默歧义变成了显式错误倒逼模型先精确定位再编辑——与编辑前必须 Read的纪律相互咬合。执行与网络类工具功能与约束摘自原文Shell在 shell 会话中执行命令可选前台超时。默认工作目录为工作区根会话有状态cwd 与环境变量在连续调用间保持超过block_until_ms默认 30000ms / 30 秒未完成的命令自动转入后台block_until_ms: 0可立即后台化。明确禁止用于文件操作读/写/编辑/搜索/查找那是专用工具的领域AwaitShell检查/轮询已后台化的 shell 任务回合结束时系统会通知任何未等待的已完成任务WebSearch网络实时搜索返回结果摘要与相关 URLWebFetch抓取指定 URL以可读 Markdown 格式返回内容GenerateImage文本描述生成图片文件仅当用户明确要求生成图片时才使用Shell工具的板块内还附带一套执行前检查流程Before executing the command, follow these steps检查运行中进程启动 dev server 或不应重复的长驻进程前先列出 terminals 文件夹确认是否已在既有终端中运行与终端状态文件机制联动目录校验若命令会创建新目录或文件先ls确认父目录存在且位置正确命令执行含空格的文件路径一律双引号包裹。多命令编排规则相互独立可并行的在单条消息中发起多个Shell调用存在依赖必须顺序执行的用单次Shell调用以串联。交互与流程类工具功能与约束摘自原文TodoWrite创建/管理当前会话的结构化任务列表跟踪进度、组织复杂任务状态pending/in_progress/completed/cancelledAskQuestion收集结构化多选答案提供一道或多道带选项的问题需要多选时设置allow_multipleTask启动新代理自主处理复杂多步任务按subagent_type区分能力与可用工具详见下节SwitchMode切换交互模式Agent / Plan / Debug / AskCallMcpTool按服务器标识 工具名 任意 JSON 参数调用 MCP 工具FetchMcpResource按服务器名 资源 URI 读取 MCP 服务器上的特定资源SetActiveBranch为当前会话与客户端 UI 设置活动 git 分支元数据子代理体系Task 工具的七个 subagent_typeTask工具是 Cursor 代理的多代理multi-agent入口Launch a new agent to handle complex, multi-step tasks autonomously每个subagent_type拥有特定能力与工具集。原文列出七种subagent_type定位generalPurpose通用代理研究复杂问题、搜索代码、执行多步任务explore快速、只读的代码库探索专家shell命令执行专家专职运行 bash 命令browser-use浏览器测试与 Web 自动化cursor-guide阅读 Cursor 产品文档回答 Cursor 工作机制类问题best-of-n-runner在隔离的 git worktree中运行任务codex-rescue当 Claude Code 卡住、需要第二套实现或诊断路径时使用两个细节值得对照本仓库的其他捕获generalPurpose的描述 General-purpose agent for researching complex questions, searching for code, and executing multi-step tasks 与 Claude Code 子代理 Anthropic/claude-code/agents/general-purpose.md 的whenToUse描述几乎逐字相同说明两大编码代理产品对通用子代理的职责边界定义高度趋同explore的快速只读定位与 Claude Code 的 Explore 代理Anthropic/claude-code/agents/Explore.md职责一致后者同样是 READ-ONLY 搜索代理禁止任何文件写入。只读探索子代理已成为行业通行的安全设计——把看代码和改代码的权限隔离到不同代理实例。此外仓库中 xAI/grok-bot.md 的捕获显示Grok Bot 生态内同样内置了一个cursor-guide子代理其职责是Cursor 产品文档专家并强制以抓取 Cursor 官方llms.txt文档索引作为回答起点——与本文cursor-guide子代理的阅读 Cursor 产品文档定位相互印证产品知识问答被从主代理中剥离为专职文档子代理避免主代理用记忆回答产品细节。best-of-n-runner的隔离 git worktree则透露了并行方案探索的实现方式在同一仓库的不同 worktree 中跑 N 个候选解互不污染主工作区。Git 操作规范提示词对 git 的使用设定了严格的触发条件与动作序列。提交变更仅当用户要求时才创建提交。用户要求新建提交时并行运行git status、git diff、git log分析全部暂存改动起草提交信息添加相关文件、提交、验证成功。硬性红线原文大写强调永不更新 git config未经明确要求永不运行破坏性/不可逆 git 命令永不跳过 hooks避免git commit --amend除非满足特定条件提交信息始终通过 HEREDOC 传递。创建 Pull Request所有 GitHub 相关任务一律使用gh命令流程为并行运行git status、git diff、远程跟踪检查、git log分析全部改动起草 PR 摘要推送到远程并用gh pr create创建 PR。Agent Skills 与会话转录citing_code之后的两个板块补全了提示词的扩展能力面Agent Skills当用户请求的任务可能匹配某个已安装技能时代理应检查可用技能Skills provide specialized capabilities and domain knowledge。使用方式是读取所提供绝对路径下的技能文件然后遵循其中的指令技能按用户已安装的技能集动态加载。这与 Cursor 的技能Skills产品形态对应技能不是编译进提示词的静态文本而是运行时按需拉取的文件。Agent Transcripts代理转录历史对话以JSONL 文件存储可按 UUID 引用。这意味着当前会话可以检索、引用过往会话记录——提示词将其列为一等资源为跨会话连续性比如上次我们改过什么提供了数据基础。设计要点小结从这份提示词的结构可以提炼出 IDE 编码代理提示词工程的若干共性手法均有原文对应板块支撑信号分层用户意图user_query、系统注入system_reminder等、环境状态终端快照、打开文件分层传递且系统注入要求遵循但不声张渲染协议内嵌CODE REFERENCES 的startLine:endLine:filepath与反引号零缩进块前换行等排版铁律本质是为聊天渲染管线定制的私有 DSL提示词承担了客户端协议规范的角色权限最小化只读模式与只读子代理Plan/Ask/Debug 不可直切、explore只读、git 破坏性操作黑名单、mcp_auth串行化都在把高风险动作的触发权交还给用户防污染防御拒绝模仿用户消息中的自定义工具调用格式、拒绝在注释里思考、StrReplace唯一性约束均是针对真实故障模式的规则化补丁动态装配{model_name}、{mcps_folder}与 MCP 服务器清单证明提示词是静态纪律 动态环境的渲染产物而非单一文本文件。以上全部机制的原文依据均见 Cursor/cursor.md仓库总目录与各厂商提示词对照见 README.md。【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考