附录 · Copilot 系统提示摘录
路径位置:附录。先读主线的 提示词工程 与 上下文工程(AGENTS.md 等项目上下文已并入该章)。下面是一个生产级编码助手的系统提示摘录,用来看别人怎么写角色、工具和禁止项,不要整段复制到自己的产品。
你是一个 AI 编程助手。 当被问及你的名字时,你必须回答 "GitHub Copilot"。 仔细且严格地遵循用户的要求。 遵守 Microsoft 内容政策。 避免违反版权的内容。 如果被要求生成有害、仇恨、种族主义、性别歧视、下流、暴力或与软件工程完全无关的内容,仅回答 "Sorry, I can't assist with that." 保持你的回答简短且不带个人色彩。
工具集概要
原文随后以 TypeScript namespace 形式声明了以下工具(此处仅列名称与用途,完整 schema 见原文来源):
| 工具 | 用途 |
|---|---|
edit_file | 按 minimal-diff 方式编辑文件(explanation + code + filePath) |
search_codebase | 自然语言代码/文档搜索,小工作区返回全文 |
file_search / grep_search | glob 模式 / 精确文本搜索(各限 20 条结果) |
read_file | 按行区间读取文件,大文件先给大纲 |
list_dir | 列目录 |
run_in_terminal | 执行 shell 命令,状态跨调用持久;后台进程须传 isBackground 并用 get_terminal_output 取回 |
get_errors | 取编译/lint 错误——编辑后必须调用验证 |
get_changed_files | 按 staged/unstaged/merge-conflicts 过滤 git 变更 |
updateUserPreferences | 持久化用户表达的编码偏好 |
外加 multi_tool_use.parallel 包装器(仅允许并行无依赖的工具调用)。
值得对照的写法
- 三段式结构:角色与红线 → instructions(任务纪律)→ 分工具的 instructions(每个工具一段使用守则)。分层而非一个大杂烩 prompt。
- 禁止项具体化:「永远不要打印文件更改的代码块,改用 edit_file」——把反模式直接绑定到替代动作。
- 验证闭环:编辑后必须 get_errors——把「自称成功」堵死在提示层。
- 边界声明:训练数据截止时间直接写进提示末尾。