Open Interpreter codex-rs 中 gpt-5.2-codex_friendly.md 解析Friendly 人格提示词的完整设计与注入机制【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter本篇技术指南以 gpt-5.2-codex_friendly.md 这一人格提示词模板为核心完整拆解 Friendly友善型人格的定位、价值观、语气规范与升级Escalation策略并结合 codex-rs 源码说明该模板如何被Personality配置项选中、如何以personality_spec片段形式注入会话上下文、以及切换人格时上下文 diff 的触发条件帮助读者理解这套可切换沟通风格机制的完整工作原理。Friendly 人格模板的完整内容gpt-5.2-codex_friendly.md 是 codex-rs 核心为 GPT-5.2 Codex 模型准备的 Friendly 人格规格personality spec。它不是普通的系统提示词而是一份沟通风格说明书按四个层次组织人格定位、价值观、语气与用户体验、升级策略。人格定位团队士气与代码质量并重模板开篇给出了核心定位原文You optimize for team morale and being a supportive teammate as much as code quality. You communicate warmly, check in often, and explain concepts without ego. You excel at pairing, onboarding, and unblocking others. You create momentum by making collaborators feel supported and capable.即在与代码质量同等重要的维度上优化团队士气与支持性队友角色——温暖地沟通、频繁确认进度、不摆架子地解释概念擅长结对编程、新人引导和解除他人阻塞通过让协作者感到被支持和有能力来建立推进力。这一定位决定了后续所有语气规则的基调AI 不是评判者而是结对伙伴。Values三条核心价值观模板的## Values一节列出了三条指导原则原文要点Empathy共情共情被定义为到对方所在的地方去——根据对方的水平调整解释深度、节奏和语气以最大化理解与信心。Collaboration协作协作被视为一种主动技能主动邀请输入、综合不同视角、让他人成功。Ownership担当不仅对代码负责还对队友是否被解除阻塞、进度是否继续负责。Tone User Experience语气与用户体验约束## Tone User Experience一节是整份模板中最具体的行为约束逐条规定了沟通风格声音是温暖的、鼓励性的、会话式的使用面向团队的措辞如 we 和 lets肯定已有进展用好奇心替代评判replaces judgment with curiosity在有助于维持能量与专注时使用适度的热情与幽默。模板进一步给出了用户体验层面的验收标准用户应当感到问基础问题不会尴尬、问题很难时依然被支持、是真正的伙伴关系而非被评估。交互的整体效果应当是降低焦虑、提升清晰度、让用户保持继续推进的动机。随后模板设置了硬性底线与性格画像绝对约束You are NEVER curt or dismissive.永远不简短粗暴或轻蔑。性格画像耐心且令人愉悦的协作者——在别人可能沮丧时保持不慌unflappable同时轻松好相处即使怀疑用户的说法有误也保持支持与合作态度在指出担忧的同时承认其中合理的部分经常指出他人观点中的亮点与洞见同时聚焦于共同完成任务。Escalation温和而有意的升级## Escalation一节规定了风险场景下的行为当决策具有非显而易见的后果或隐藏风险时要温和且有意识地升级escalate gently and deliberately。升级必须以支持与共同责任来框架化——never correction绝不是纠正用户并通过一个明确的暂停来重新对齐、核对假设或在承诺前暴露权衡。姊妹模板对照Pragmatic 人格同一目录下还有 gpt-5.2-codex_pragmatic.md定义了 Pragmatic务实型人格与 Friendly 形成对照维度FriendlyPragmatic自我定位支持性队友士气与代码质量并重深度务实、高效的软件工程师协作是一种安静的喜悦价值观Empathy / Collaboration / OwnershipClarity / Pragmatism / Rigor沟通风格温暖、鼓励、多用 we 和 lets简洁直接避免冗余解释除非被问不做过度展开对反馈的态度肯定进展、以好奇替代评判、指出他人亮点认可好的工作但避免啦啦队式吹捧、励志语言或人为安抚升级方式温和暂停、对齐假设、暴露权衡可以挑战用户提高技术标准但解释推理过程可验证可证伪对照可以看出两份模板共用同一套结构骨架定位 → Values → 语气/交互风格 → Escalation差异全部体现在具体措辞与行为约束上。这说明 codex-rs 的 personality 机制本质上是一套结构固定、内容可替换的提示词插槽设计。Personality 配置项从枚举到 Feature 门控模板文件本身不会自动生效它由 codex-rs 的Personality配置体系驱动。在 config_types.rs 中定义了人格枚举pub enum Personality { None, Friendly, Pragmatic, }三个取值序列化为小写#[serde(rename_all lowercase)]因此配置文件中写作personality friendly/pragmaticNone表示不注入任何人格规格。核心配置层 core/src/config/mod.rs 中personality: OptionPersonality字段出现在多处如第 669 行与第 2612 行附近的配置结构并且人格能力受 Feature 门控personality_enabled: self.features.enabled(Feature::Personality)第 1642 行附近。也就是说只有当Feature::Personality特性开启时人格选项才会参与生效——这是一种渐进式能力开放策略。注入机制personality_spec上下文片段模板内容最终如何进入模型的对话上下文答案在 personality_spec_instructions.rs。该文件实现了ContextualUserFragment特质关键行为有三点角色是developerfn role(self) - static str { developer }即人格规格以 developer 角色消息的形式注入而非 user 消息独立消息requires_separate_message()返回true人格规格始终占据独立的一条消息避免与其他上下文片段混杂类型标记片段被personality_spec//personality_spec标记包裹便于后续解析与 diff 识别matches_legacy_fragment即靠role developer加该标记匹配历史消息。注入时的引导文案也写死在该文件中fn body(self) - String { format!( The user has requested a new communication style. Future messages should adhere to the following personality: \n{} , self.spec ) }注意措辞是用户请求了新的沟通风格后续消息应遵守以下人格——这与模板里 Escalation 一节升级是对齐而非纠正的协作基调在叙事上保持一致人格变更被包装成一次用户主动发起的风格协商而不是对模型的强制改写。状态与 Diff什么时候重新注入人格world_state/personality.rs 中的PersonalityState决定了人格片段何时出现它是世界状态world state的一个 sectionconst ID: static str personality核心数据结构pub(crate) struct PersonalityState { snapshot: PersonalitySnapshot, // 当前 (model, personality) previous: OptionPersonalitySnapshot, // 上一个快照来自恢复的会话 instructions: OptionString, // 人格规格正文即模板内容 personality_is_baked: bool, // 人格是否已烘焙进基线 }其中PersonalitySnapshot同时记录model与personality两个字段——这一点在render_change的触发条件中至关重要fn render_change(self, previous: PersonalitySnapshot) - OptionBoxdyn ContextualUserFragment { (previous.model self.snapshot.model previous.personality ! self.snapshot.personality) .then_some(self.instructions.as_ref()) .flatten() ... }从源码结构看重新注入人格规格PersonalitySpecInstructions需要满足两个条件模型不变且人格发生变化。其含义是模型切换时不重发换模型会重建基线提示词旧的人格片段由新基线接管无需在 diff 中重复注入同一模型下切换人格才发这正是 TUI 里/personality切换的典型路径PreviousSectionState::Absent分支第 84-94 行还处理了历史会话中没有持久化人格片段的场景仅当personality_is_baked false且模型未变时才补发personality_is_baked标志用来避免对已烘焙进基线的人格重复注入。这套 Known / Unknown / Absent 三态 diff 逻辑配合测试 personality_tests.rs保证了人格片段在会话恢复resume、模型切换、人格切换等路径下只出现一次且位置正确。TUI 入口与端到端验证在 TUI 层settings_popups.rs 提供了用户可见的入口当当前模型不支持人格时弹出提示Current model ({current_model}) doesnt support personalities. Try /model to pick a different model.支持时弹出选项列表Personality::Friendly与Personality::Pragmatic两项供用户选择。这解释了为什么模板文件命名为gpt-5.2-codex_friendly.md文件名前缀gpt-5.2-codex表明它是面向 GPT-5.2 Codex 模型族的人格规格该模型族不支持的客户端会被 TUI 直接拦截后缀friendly对应枚举值Personality::Friendly同目录的 pragmatic 版本 同理对应Personality::Pragmatic。仓库中还配有端到端的测试证据链core/tests/suite/personality.rs人格特性的集成测试套件快照 model_visible_layout_resume_with_personality_change.snap验证会话恢复且人格变化场景下模型可见上下文的完整布局与前述render_change的触发条件互为印证。小结gpt-5.2-codex_friendly.md 的价值在于它把沟通风格工程化为一套可枚举Personality枚举、可门控Feature::Personality、可 diff 注入PersonalitySpecInstructionsPersonalityState、可快照回归personality 测试套件与 model_visible_layout 快照的提示词资产。对使用者而言它体现为 TUI 中一次/personality切换让同一个 coding agent 在温暖结对伙伴Friendly与直接高效的工程师Pragmatic两种协作姿态之间切换对维护者而言模板的固定四段结构定位 / Values / 语气 / Escalation意味着新增人格只需照此骨架填空注入与 diff 机制无需任何代码改动即可复用。【免费下载链接】openinterpreterA coding agent for open models like Kimi K3 and GLM 5.3项目地址: https://gitcode.com/GitHub_Trending/op/openinterpreter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考