
【免费下载链接】gentle-aiGentle-AI configures the AI coding agents you already use: Claude Code, Cursor, OpenCode, Codex, Pi, and more. Choose persistent memory, Organic-Driven Development, curated skills, MCP servers, personas, and optional bounded review. Open source, no agent lock-in.项目地址https://gitcode.com/gh_mirrors/ge/gentle-ai点击查看免费下载导读persona-neutral-residual.md是 Gentle-AI 为 Claude Code 等支持输出风格Output Style通道的 Agent 准备的Neutral中立残余 Persona由于语气、语言与教学哲学已经由每个会话都会加载的output-style-neutral.md提供这份系统提示文件刻意省略了语气类内容只保留提交规范、响应长度契约、验证纪律、技能按需加载等工具层与工作流层指令避免同一份系统提示中重复出现互相冲突的语气规则。阅读本文后你将理解 Gentle-AI 为什么把 Persona 拆分为残余指令 输出风格两层、残余文件中每一条规则的实际约束力以及它们如何被 persona 注入组件 在安装与同步时精确写入各 Agent 的系统提示文件。一、什么是残余 Persona设计动机与适用场景在 Gentle-AI 的 Persona 系统中一个完整的对话人设通常包含两块内容语气/语言/教学哲学如用大写强调重点先说问题再说方案直接且富有热情等属于如何说话工具与工作流指令如提交信息规范、响应长度上限、提问纪律、验证纪律、技能按需加载等属于做什么与如何工作。对于 Claude Code 这类实现了输出风格能力的 AgentGentle-AI 会把语气类内容单独装入output-style-*.md文件并通过设置项outputStyle使其每个会话都自动加载详见 output-style-neutral.md 与 output-style-gentleman.md。此时系统提示中的 Persona 区块就不再需要重复语气内容——这份只承载工具与工作流指令的文件就是残余 Personaresidual persona。源码中这一决策被显式命名为residualChannelinject.gofunc residualChannel(adapter agents.Adapter) bool { return adapter.SupportsOutputStyles() || adapter.Agent() model.AgentKimi }当 Adapter 支持输出风格SupportsOutputStyles()时语气由独立风格通道负责Persona 区块可以安全地降级为残余版本Kimi 是显式例外其KIMI.md会无条件同时 includepersona.md与output-style.md两个 Jinja 模块因此 Kimi 也使用残余版 Personakimi/persona-neutral-residual.md。二、Rules残余 Persona 的核心行为契约残余 Persona 的第一部分Rules定义了 Agent 在所有会话中必须遵守的通用工作纪律可归纳为四个维度。1. 提交与署名规范Never add Co-Authored-By or AI attribution to commits. Use conventional commits only.禁止在提交信息中写入Co-Authored-By或其他 AI 署名提交信息必须遵循 Conventional Commits如feat:、fix:、refactor:约定。这与仓库自身的治理实践一致——本仓库文档如 CONTRIBUTING.md同样强调规范的提交格式避免 AI 署名污染提交历史。2. 响应长度契约Response-length contractDefault to short answers. Start with the minimum useful response, expand only when the user asks or the task genuinely requires it.长度契约包含四条相互关联的规则规则要求默认短回答先给出最小有用的回复用户追问或任务确需时才扩展单问题原则一次最多问一个问题问完后立即 STOP 等待拒绝选项轰炸除非存在带实质权衡的真实分叉否则不罗列选项菜单、穷举列表或多方案长度不确定时选择更短的回复这四条规则在残余文件中重复出现是因为它们属于跨语气的行为硬约束——无论当前激活的是 Gentleman 还是 Neutral 输出风格回复长度纪律都不应改变。对应的语气版表述可对比 output-style-neutral.md其中同样声明了Default to short answersAsk at most one question at a time, then STOP。3. 验证纪律Verification DisciplineNever agree with user claims without verification. First say youll verify in the users current language, then check code/docs. If user is wrong, explain WHY with evidence. If you were wrong, acknowledge with proof.这是残余 Persona 中最具分量的规则其完整闭环是不未经验证就同意用户的任何技术主张先用用户当前语言声明我会验证再查阅代码/文档/测试等证据若用户有误用证据解释为什么错误并给出正确路径若自己错了承认错误并指向证据提出替代方案时附带权衡Always propose alternatives with tradeoffs when relevant陈述技术结论前先验证不确定就先调查。该纪律在输出风格文件中也有镜像表述output-style-neutral.md可见验证优先是 Gentle-AI 各 Persona 共同信奉的底层原则。三、Expertise领域专长声明残余 Persona 的 Expertise 区块声明了 Agent 应具备的领域能力基线Clean/Hexagonal/Screaming Architecture, testing, atomic design, container-presentational pattern, LazyVim, Tmux, Zellij.包括整洁架构/六边形架构/Screaming Architecture、测试实践、原子设计atomic design、容器-展示组件模式container-presentational pattern以及 LazyVim、Tmux、Zellij 等开发者工具链。这份专长清单与 generic/persona-neutral.md 完全一致说明它不随输出风格变化属于中性人设的固定背景知识声明。四、Contextual Skill Loading强制的按需技能加载残余 Persona 中唯一的全大写标记段落是技能加载纪律原文明确标注其强制性Theavailable_skillsblock in your system prompt is authoritative — it lists every skill installed for this session.Self-check BEFORE every response: does this request match any skill inavailable_skills? If yes, read the matching SKILL.md BEFORE generating your reply. This is a blocking requirement, not optional context. Skipping it is a discipline failure.关键语义可拆解为三点权威来源available_skills区块是唯一权威的技能清单它列出本会话已安装的全部技能前置自检每次回复前必须检查请求是否命中某个技能——命中则先读取对应 SKILL.md 再作答这是阻塞性要求而非可选上下文多技能并行匹配多个技能可同时适用需同时依据文件上下文扩展名、路径和任务上下文用户实际在问什么进行匹配违反即纪律失败跳过该步骤被明确定义为discipline failure纪律失败。这一设计对应仓库的 skills 组件 与 skillregistry以及 assets/skills 目录下 30 个内置技能文件。运行时available_skills由安装组件注入到 Agent 的会话上下文中Persona 则负责在行为层面强制先读技能、再作答。五、Persona Voice语气归属声明文件最后一部分明确划清了职责边界Your conversational tone, language rules, and teaching philosophy are defined by the active output style (Gentleman/Neutral), which loads every session. This section carries only tooling and workflow directives — it does not restate tone.会话的语气、语言规则、教学哲学由当前激活的输出风格定义且每个会话都会加载本文件只承载工具与工作流指令刻意不重复语气。这正是残余二字的精髓Persona 管工具与工作流Output Style 管语气与教学两者通过outputStyle设置项各自独立加载从而避免在同一份系统提示中出现互相重复甚至互相冲突的语气声明。六、源码级实现注入链路如何选择残余 Persona残余文件不是孤立的静态文本而是由 persona 注入组件 在安装/同步时按策略选配的动态资产。1. 资源选择链路neutralPersonaContentinject.go按 Agent 与通道能力分派资源func neutralPersonaContent(agent model.AgentID, residualContentAvailable bool) string { if agent model.AgentHermes { return assets.MustRead(hermes/persona-neutral.md) } if residualContentAvailable { switch agent { case model.AgentClaudeCode: return assets.MustRead(claude/persona-neutral-residual.md) case model.AgentKimi: return assets.MustRead(kimi/persona-neutral-residual.md) } } return assets.MustRead(generic/persona-neutral.md) }Claude Code因为支持输出风格通道residualChannel为真注入残余版即本文讲解的文件Kimi因KIMI.md无条件双 include 而显式豁免同样使用残余版Hermes 与其他 Agent分别使用 Hermes 专属版或 generic/persona-neutral.md 全量版含 Personality、Persona Scope、Language、Tone、Philosophy、Behavior 等完整语气段落。由此可推断残余版是对具备独立语气通道的 Agent 的优化形态而全量版是其余 Agent 的兜底。2. 输出风格的资源计划Persona 选择同时决定输出风格文件的管理计划resources.govar managedOutputStyles []OutputStyle{ {Name: Gentleman, File: gentleman.md, AssetPath: claude/output-style-gentleman.md}, {Name: Neutral, File: neutral.md, AssetPath: claude/output-style-neutral.md}, }选择 Neutral 时资源计划会写入neutral.md风格文件、把outputStyle设置项设为Neutral并退役移除旧的 Gentleman 风格文件retired: []string{managedOutputStyles[0].File}保证切换后不会残留旧风格的加载入口。3. 标记区块注入与幂等注入过程使用!-- gentle-ai:persona --/!-- /gentle-ai:persona --标记区块见 section_test.go 的测试用例已存在的同标记区块会被替换而非重复追加旧版无标记的遗留 Persona 文本会被自动剥离StripLegacyPersonaBlock见 inject.go文件写入采用原子写入WriteFileAtomic天然幂等——内容未变化时不产生写操作。这意味着gentle-ai install与gentle-ai sync可以反复执行而不会把残余 Persona 重复堆积进系统提示文件。七、如何启用 Neutral 残余 Persona残余 Persona 由安装命令按 Persona 选择自动注入无需手工拷贝文件。典型用法来自 install.go 的参数定义gentle-ai install --persona neutral --agent claude参数说明参数作用取值示例--persona选择人设决定注入哪套 Persona 与输出风格gentleman、neutral、custom--agent指定目标 AgentClaude Code 会触发残余版选择claude、cursor、opencode等--scope安装范围global、workspace环境变量GENTLE_AI_INSTALL_SCOPE--channel发行渠道stable、beta、nightly环境变量GENTLE_AI_CHANNEL--dry-run预览将要写入的内容—值得注意的细节neutral与gentleman是规范 Persona ID见 types.go遗留别名gentleman-neutral-artifacts会被normalizePersona归一化为neutral测试见 persona_language_contract_test.gocustom表示用户保留自己的配置注入器会直接跳过Persona 写入inject.go安装后Claude Code 的系统提示中会出现由!-- gentle-ai:persona --包裹的残余内容同时settings.json获得outputStyle: Neutral覆盖inject.go两者共同构成完整的中性人设。八、残余版与全量版的取舍对照为便于读者理解为何不同 Agent 拿到不同形态的 Persona将 claude/persona-neutral-residual.md 与 generic/persona-neutral.md 对比如下内容区块残余版Claude Code全量版Generic 兜底Rules提交规范、长度契约、验证纪律✅ 完整保留✅ 完整保留Expertise架构与工具链专长✅ 保留✅ 保留Contextual Skill Loading✅ 保留含纪律失败强约束✅ 保留Personality / Persona Scope❌ 省略交给输出风格✅ 完整Language / Tone / Philosophy / Behavior❌ 省略交给输出风格✅ 完整Persona Voice职责边界声明✅ 明确指向输出风格❌ 无此区块结论清晰残余版不是内容更少而是职责更聚焦——把语气外包给每次会话必加载的output-style-neutral.md系统提示里只留下不会因风格切换而失效的硬性工作纪律。这种分层设计既避免了同义指令重复占用上下文也保证了切换输出风格时工作流规则依然稳定生效。延伸阅读output-style-neutral.mdNeutral 语气的完整定义长度契约、验证纪律、语言规则、教学行为output-style-gentleman.mdGentleman 语气的完整定义供对照两种风格边界inject.go残余通道判定、资源分派、标记区块注入与 JSON 设置合并的完整实现resources.go输出风格资源计划与退役清理逻辑install.go--persona等安装参数的 CLI 定义persona-language-contract_test.goPersona ID 归一化与语言契约的测试佐证赞分享【免费下载链接】gentle-aiGentle-AI configures the AI coding agents you already use: Claude Code, Cursor, OpenCode, Codex, Pi, and more. Choose persistent memory, Organic-Driven Development, curated skills, MCP servers, personas, and optional bounded review. Open source, no agent lock-in.项目地址https://gitcode.com/gh_mirrors/ge/gentle-ai点击查看免费下载相关推荐Gentle-AI Neutral 输出风格全解析如何用中性专业人格为 Claude Code 定义对话与产出物语言契约Gentle AI Neutral 输出风格全解析如何用中性专业人格为 Claude Code 定义对话与产出物语言契约 Gentle AI 通过嵌入式资产文Haystack DeepEvalEvaluator 集成指南用 DeepEval 框架评估 RAG 管线的忠实度与上下文质量Haystack DeepEvalEvaluator 集成指南用 DeepEval 框架评估 RAG 管线的忠实度与上下文质量 本文以 Haystack 官方Gentle-AI Neutral Persona 完整指南人设规则、产物边界与源码注入机制Gentle AI Neutral Persona 完整指南人设规则、产物边界与源码注入机制 本文以 Gentle AI 仓库内置的 中性人设资产 https上一篇QFramework命令系统详解如何用CQRS模式构建高内聚游戏架构 下一篇Ripple列表渲染优化Key机制与TrackedArray性能对比创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考