CHAPTER 12 · PROMPT CONTEXT
PromptContext:可检查的渲染输入
PromptContext 保存 Agent 专属的模板输入。它通过 Serde derive 获得序列化能力,再交给 ToolBridge::render_prompt() 完成渲染。
课程目标
准确识别 PromptContext 字段、TemplateOverride 三种变体与渲染职责,删除不存在的上下文字段和方法。
准确识别 PromptContext 字段、TemplateOverride 三种变体与渲染职责,删除不存在的上下文字段和方法。
核心视觉 · 教学化渲染管线
真实字段分组
版本与模板
versionprompt_modeaudienceprompt_bodysystem_promptbuild_timestamp_utcsystem_prompt_label配置与身份
agents_md_filespersona_summariesrole_instructionspersona_instructionsmemory_enabledmemory_global_pathmemory_workspace_path用户运行环境
os_nameshell_pathworking_directorycurrent_dateis_non_interactiveTemplateOverride
None
标准模板
Primary 使用标准 base template,Subagent 使用对应的紧凑模板。
Codex
Apply-patch profile
源码注释定义为 apply-patch profile prompt template,按需解密。
Custom(String)
调用方模板
由调用方提供完整自定义模板字符串。
真实源码证据
crates/codegen/xai-grok-agent/src/prompt/context.rs
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PromptContext {
pub version: u32,
pub prompt_mode: PromptMode,
pub audience: PromptAudience,
pub prompt_body: Option<String>,
pub system_prompt: TemplateOverride,
pub agents_md_files: Vec<AgentConfigFile>,
pub persona_summaries: Vec<String>,
pub build_timestamp_utc: String,
pub memory_enabled: bool,
// ...其余路径、身份与运行环境字段
}
pub struct PromptContext {
pub version: u32,
pub prompt_mode: PromptMode,
pub audience: PromptAudience,
pub prompt_body: Option<String>,
pub system_prompt: TemplateOverride,
pub agents_md_files: Vec<AgentConfigFile>,
pub persona_summaries: Vec<String>,
pub build_timestamp_utc: String,
pub memory_enabled: bool,
// ...其余路径、身份与运行环境字段
}
crates/codegen/xai-grok-agent/src/prompt/context.rs
#[derive(Debug, Clone, PartialEq, Eq,
Serialize, Default)]
pub enum TemplateOverride {
#[default]
None,
Codex,
Custom(String),
}
Serialize, Default)]
pub enum TemplateOverride {
#[default]
None,
Codex,
Custom(String),
}
事实校正:字段清单以结构体定义为准。可序列化能力来自
Serialize 与 Deserialize derive,源码未额外定义专用 JSON 转换方法。工具描述由渲染路径结合 ToolBridge 处理。源码快照说明:本页依据本地同步副本核对。该副本没有
.git 元数据,因此不声称对应某个 commit 版本。课堂练习
从字段推断 section
把 agents_md_files、memory_enabled、os_name、role_instructions 分别映射到可能的 prompt section。随后检查哪些字段使用 skip_serializing_if,说明空值如何减少持久化输出。
Takeaway:PromptContext 是可序列化的渲染输入,TemplateOverride 决定基础模板,ToolBridge 与 TemplateRenderer 完成最终渲染。字段与能力都应按 derive 和真实定义描述。