V8 仓库 Gemini Prompt 模板体系:@ 导入语法、模块化组织与实战配置
2026/9/20 15:48:13 网站建设 项目流程
  • 语言运行时
  • 编译器
  • JIT编译
  • 解释器
  • 内存管理

【免费下载链接】v8

The official mirror of the V8 Git repository

项目地址:https://gitcode.com/gh_mirrors/v81/v8
点击查看免费下载

本篇技术指南围绕 V8 官方镜像仓库gh_mirrors/v81/v8agents/prompts/templates/目录下的 prompt 模板机制展开,系统讲解如何通过@<path>语法把提示片段导入GEMINI.md、如何独立或组合使用模板、如何借助仓库内的安装脚本自动生成子 Agent 配置,以及如何验证导入结果。读完本文,你将掌握在 V8 仓库中为 Gemini CLI 搭建模块化系统指令(System Instruction)的完整流程,并理解其背后的目录组织与源码实现。

一、模板目录是什么:可复用的 Prompt 片段

在 V8 仓库中,agents/prompts/templates/README.md 对模板目录做了精确定义:

These are prompt snippets that can be used independently or added to a base prompt to provide specific context and functionality.

即:agents/prompts/templates/下的文件是一组prompt 片段(prompt snippets),既可以独立使用,也可以作为基础 prompt 的附加部分,为 Agent 提供特定的上下文与功能。当前仓库中该目录实际包含两个文件:

  • agents/prompts/templates/README.md:模板机制的说明文档(即本指南的主体来源);
  • agents/prompts/templates/modular.md:名为 "Gemini Workspace for V8" 的模块化模板,是仓库中唯一的可导入模板示例。

这种"片段化 + 组合"的设计思路,是为了避免把海量上下文一次性塞进单个 prompt,而是按需加载:Agent 需要理解 V8 目录结构时导入v8-structure技能说明,需要调试时导入调试工作流,需要提交代码时导入 CL 规范,从而实现"轻量系统指令 + 按需扩展上下文"的工程化 Prompt 管理。

模板与 Skills / Rules 的分工

值得强调的是,templates/目录只是 prompt 体系的入口之一。从 agents/prompts/README.md 可以看到整个体系的分层:

  • prompts(本目录):面向 Gemini CLI 的公共 prompt(common.md)与模板 prompt(templates/);
  • rules(agents/rules/:强制性的行为规则,如 framework.md(Agent 编排框架)、execution-constraints.md(执行约束)、v8-best-practices.md(最佳实践)等;
  • skills(agents/skills/:可随时调用的参考知识,如 v8-structure(目录结构)、v8-commands(构建/调试命令)、v8-testing(测试指南)等;
  • agents(agents/agents/:专门化的子 Agent 定义(Researcher / Builder / Tester / Debugger)。

模板文件的作用,就是把上述 skills、rules 与子 Agent 的入口以"可导入的 prompt 片段"形式统一组织起来。

二、核心机制:@<path>导入语法

模板能被系统指令吸收的关键在于 Gemini CLI 的@导入语法。按照 agents/prompts/templates/README.md 的说明,可以在GEMINI.md中通过@<path>引用任意 prompt 文件:

@agents/prompts/common.md @agents/prompts/templates/<example.md>

上面的示例展示了组合使用的场景:把公共 prompt 与某个模板文件同时导入。其中:

  • agents/prompts/common.md是 V8 面向 Gemini 的公共基础 prompt,内容涵盖关键命令(tools/dev/gm.py quiet x64.debug teststools/run-tests.py ...git cl format等)、目录结构速览(src/test/include/out/各子目录职责)、构建配置说明(release / debug / optdebug 的区别)、调试诊断 flag(--trace-opt--trace-deopt--trace-gc--allow-natives-syntax)、测试套件(unittests / cctest / mjsunit)以及提交规范与常见陷阱;
  • agents/prompts/templates/<example.md>则是模板占位符,实际使用时替换为具体模板文件名,例如 agents/prompts/templates/modular.md。

独立使用的场景则只导入模板本身,不附加公共 prompt:

@agents/prompts/templates/<example.md>

这种用法适合模板本身已经自带完整上下文、无需基础 prompt 的情况。

导入路径的语义

注意上述代码块中的路径以仓库根为起点(agents/prompts/...),即相对仓库根目录的路径。如果你在仓库根目录创建GEMINI.md,那么@agents/prompts/common.md即可正确解析到agents/prompts/common.md文件。这与模板文档内部引用其他文件的方式保持一致——例如 agents/prompts/templates/modular.md 中引用的 v8-understanding 技能、agents/agents/researcher/等路径同样是以仓库根为起点。

三、仓库中的唯一模板:modular.md 深度解析

agents/prompts/templates/modular.md 的标题是 "Gemini Workspace for V8",它是一份完整的"模块化规则"模板,也是安装脚本自动生成的GEMINI.md的默认导入对象(见下文第四节)。该模板的内容结构如下:

3.1 总体定位与核心提示(Hints)

模板开头说明它是 "the workspace configuration for V8 when using Gemini",并建议理解 V8 概念与结构时参考 v8-understanding 技能。随后给出了三条贯穿全篇的关键提示:

  1. 你是资深 C++ 开发者(expert C++ developer);
  2. 正确性优先:V8 面向用户运行不可信代码(untrusted code),正确性 bug 通常会导致终端用户的安全问题,因此代码必须绝对正确、无 bug;
  3. 性能优先:V8 为 Web 提供 JavaScript 与 WebAssembly 运行支持,优化 V8 时必须追求最佳性能。

这三条提示界定了 Agent 在 V8 中工作时的角色与价值取向,是后续所有行为规则的基调。

3.2 Subagents Setup:安装脚本入口

模板指明,要使用仓库中的子 Agent,需要根据环境运行对应的安装脚本:

  • Gemini CLI:运行vpython3 agents/scripts/install_for_gemini_cli.py,在.gemini/agents/下生成子 Agent 文件;
  • Jetski:运行vpython3 agents/scripts/install_for_jetski.py,在.agents/agents/下创建符号链接。

这两个脚本的具体实现将在第五节详述。

3.3 Workspace Subagents:四个专门化子 Agent

模板将详细信息的入口指向 agents/agents/ 目录下的四个子 Agent,按需使用:

  • Researcher:探索代码库、查找信息,见 agents/agents/researcher/;
  • Builder:编译 V8,见 agents/agents/builder/;
  • Tester:运行测试与基准测试,见 agents/agents/tester/;
  • Debugger:使用 GDB 调查崩溃,见 agents/agents/debugger/。

以 Researcher 为例,其定义由两个文件组成:agents/agents/researcher/agent.json(元数据:name、description、config_path)与 agents/agents/researcher/config.yaml(自定义 Agent 的 system prompt 段落与工具清单)。config.yaml 中的system_prompt_sections以"标题 + 内容"的结构化方式定义指令,tool_names则声明该 Agent 可用的工具(如view_filegrep_searchlist_dirsearch_webmcp_*)。

3.4 Workspace Skills & Rules:知识索引

模板列出了一系列按需引用的 skills 与 rules,全部指向仓库内以仓库根为起点的相对路径:

主题入口文件
目录结构agents/skills/v8-structure/SKILL.md
关键命令agents/skills/v8-commands/SKILL.md
测试指南agents/skills/v8-testing/SKILL.md
最佳实践agents/rules/v8-best-practices.md
环境配置agents/skills/v8-setup/SKILL.md
Git CL 规范agents/rules/git-cl.md
Torque 指南agents/skills/torque/SKILL.md
问题驱动调试agents/skills/workflow-debugging/SKILL.md
通用调试agents/skills/workflow-general-debugging/SKILL.md
性能评估agents/skills/workflow-perf/SKILL.md
Agent 评估agents/skills/agent-evaluation-framework/SKILL.md
Agent 自改进agents/skills/agent-self-improvement/SKILL.md
V8 开发工作流agents/skills/v8-workflow/SKILL.md

这套索引让 Agent 在遇到具体任务时能快速定位权威参考,而不是依赖模型自身的模糊记忆。例如 v8-structure 技能(agents/skills/v8-structure/SKILL.md)的 frontmatter 中带有namedescription字段,description 明确写明了该技能适用的场景("Maps the V8 dir/folder structure, component locations, and local documentation"),便于 Agent 按语义匹配。

3.5 Coding and Committing:编码与提交规范

模板要求在编码与提交时遵守以下约束:

  • 始终遵循所修改代码周围的风格约定,否则遵循 Chromium 的 C++ 风格指南;
  • 使用git cl format自动格式化改动;
  • 提交遵循 agents/rules/git-cl.md 中的约定;
  • 最佳实践与常见陷阱参考 agents/rules/v8-best-practices.md。

3.6 Agent Framework:强制编排规则

模板最后定义了 Agent 框架的强制要求:

  • 强制编排(Mandatory Orchestration):在 V8 中执行任何任务时,Agent 必须扮演 Orchestrator(编排者)角色,使用agents/agents/中定义的专门化子 Agent;
  • 必须遵守 agents/rules/framework.md 与 agents/rules/execution-constraints.md 中的规则;
  • 这样做的目的是保证任务执行的效率(efficiency)、并行性(parallelism)与一致性(consistency)。

这一节揭示了整个 prompt 体系的设计哲学:模板不是简单的文本拼接,而是一套"编排层 + 执行层"的 Agent 架构描述。

四、从模板到系统指令:GEMINI.md 的创建流程

模板机制落地的完整流程,记录在 agents/prompts/README.md 中,分为三步:

第 1 步:在仓库根目录创建本地、不被版本跟踪的GEMINI.md文件。

第 2 步:使用@语法导入相关 prompt。例如只导入公共 prompt:

@agents/prompts/common.md

更完整的做法是同时导入公共 prompt 与模板(与第一节的组合示例一致),使 Agent 既拥有基础能力,又具备模块化的扩展上下文。

第 3 步:验证导入是否成功。在 gemini-cli 中运行/memory show命令,确认 prompts 已正确导入。

导入的已知限制

agents/prompts/README.md 明确记录了一个已知问题:

All imports must be scoped to the current prompt file. a/prompt.md can import a/prompt2.md or a/b/prompt3.md, but cannot import c/prompt4.md.

所有导入必须限定在当前 prompt 文件所在的目录范围之内a/prompt.md可以导入a/prompt2.mda/b/prompt3.md,但不能导入c/prompt4.md(跨目录兄弟节点)。这意味着你无法用..跳转到无关目录去导入 prompt,组织模板时必须保持目录结构的层级关系,这一限制对设计自己的模板目录具有直接指导意义。

五、源码视角:安装脚本如何落地模板与子 Agent

模板与子 Agent 的落地并非全靠手工,仓库提供了两个自动化安装脚本,其源码逻辑值得拆解。

5.1 install_for_gemini_cli.py:生成 .gemini/agents/

agents/scripts/install_for_gemini_cli.py 的核心逻辑如下:

  1. 确定目标目录repo_root / ".gemini" / "agents",若该目录是符号链接则先移除;
  2. 遍历agents/agents/下的每个子目录,要求同时存在agent.jsonconfig.yaml,否则跳过;
  3. 读取配置:从agent.jsonnamedescription;从config.yamlcustom_agent节点取system_prompt_sectionstool_names
  4. 拼接 system prompt:将每个 section 以# {title}+ 内容的形式拼成 Markdown body;
  5. 工具名映射:把通用工具名映射为 Gemini CLI 的工具名——view_fileread_filerun_commandrun_shell_commandlist_dirlist_directorysearch_webgoogle_web_searchcall_mcp_tool则被跳过,其余工具名原样保留;
  6. 生成子 Agent 文件:以frontmatter(name / description / kind: local / tools / model: inherit)+ body的格式写出{name}.md.gemini/agents/
  7. 自动创建 GEMINI.md:若仓库根目录尚不存在GEMINI.md,则自动写入一行@[Modular Rules](https://link.gitcode.com/i/dd53d496a5288969d769d49657658d62),把 agents/prompts/templates/modular.md 作为默认导入模板。

从这段源码可以确认几个关键事实:子 Agent 的最终形态是带 YAML frontmatter 的 Markdown 文件;工具权限由config.yaml中的tool_names声明并映射;而模板目录的modular.md正是安装脚本钦定的默认模板。

5.2 install_for_jetski.py:创建 .agents/ 符号链接

agents/scripts/install_for_jetski.py 采用不同的落地方式:

  1. 目标目录为repo_root / ".agents",若它是指向agents的符号链接则先移除,再确保其为真实目录;
  2. 清理.agents/下失效的顶层符号链接;
  3. 遍历agents/顶层条目:对于agentsskillsrulesplugins之外的条目直接创建符号链接;对于这四个特殊目录,则在.agents/下建真实目录,再对其内部每个子项逐一创建符号链接(skills还会额外链接共享的git-cl-helper技能);
  4. 与 Gemini CLI 脚本相同,若GEMINI.md不存在则写入@[Modular Rules](https://link.gitcode.com/i/dd53d496a5288969d769d49657658d62)

两个脚本殊途同归:一个生成实体文件,一个生成符号链接,但最终都确保GEMINI.md指向同一个模板入口。这也印证了模板机制与安装流程的深度耦合:模板不仅是给模型看的文本,还是自动化脚本的配置输入

六、实战建议与贡献指南

6.1 推荐的启用流程

综合上述机制,在 V8 仓库中启用完整 prompt 体系的标准流程是:

  1. 运行vpython3 agents/scripts/install_for_gemini_cli.py(Gemini CLI)或vpython3 agents/scripts/install_for_jetski.py(Jetski),自动生成子 Agent 配置并创建默认GEMINI.md
  2. 若希望叠加公共 prompt,编辑根目录GEMINI.md,在模板导入行之外追加@agents/prompts/common.md
  3. 在 gemini-cli 中运行/memory show验证所有导入均已生效;
  4. 按需让 Agent 通过模板索引加载 skills 与 rules(如调试时加载 workflow-debugging,提交时加载 git-cl)。

6.2 新增模板的注意事项

agents/prompts/README.md 对贡献者给出了两条明确约束:

  • 谨慎修改common.md:它被广泛使用,任何改动都影响所有依赖它的 prompt,因此必须格外小心;
  • 新模板放入template/目录:想分享新 prompt 时,应添加到agents/prompts/templates/(即本指南所讲的模板目录),而不是直接改动公共文件。

同时结合已知的导入作用域限制,新增模板时务必保证它能被目标GEMINI.md所在目录合法引用(即模板与导入方处于同一目录子树内)。

七、小结

V8 仓库以agents/prompts/templates/为枢纽,构建了一套层次分明的 Gemini prompt 工程体系:@<path>语法负责按需导入,modular.md模板充当"模块化规则"的默认入口,四个专门化子 Agent 承接编排执行,安装脚本则把这份设计自动落盘为GEMINI.md.gemini/agents/。理解这套机制,不仅能让你在 V8 开发中更高效地驾驭 Gemini CLI,也为设计自己的 Agent prompt 组织方案提供了可复用的范本。

进一步阅读:模板机制的总入口见 agents/prompts/README.md,公共基础 prompt 见 agents/prompts/common.md,模板示例见 agents/prompts/templates/modular.md,四个子 Agent 定义见 agents/agents/ 目录。

  • 语言运行时
  • 编译器
  • JIT编译
  • 解释器
  • 内存管理

【免费下载链接】v8

The official mirror of the V8 Git repository

项目地址:https://gitcode.com/gh_mirrors/v81/v8
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询