资讯动态

一份简洁直白的样式文件

发布时间:2026/9/15 22:59:27 来源:尧图企业网站定制
一份简洁直白的样式文件【免费下载链接】qwen-codeAn open-source AI coding agent that lives in your terminal.项目地址: https://gitcode.com/GitHub_Trending/qw/qwen-code请用三句话以内回答简单问题涉及高风险操作时给出完整内容不要压缩错误信息。保存为 ~/.qwen/output-styles/my-terse.md 后它就是一个名为 my-terse、描述为「一份简洁直白的样式文件」的自定义样式keep-coding-instructions 由于没有同名内置样式而默认为 false详见下文第五节。 --- ## 三、目录布局与加载范围只有两个目录只扫顶层 设计上**刻意保持简单**没有策略/托管层policy/managed level、不做额外目录扫描、不递归。任何一层额外能力都伴随独立的信任故事而当前这些都不是让该功能变得有用的必要条件。 加载器 loadOutputStylesFromDir(dir, source, confineTo) 接收一个目录和一个来源标签因此未来若确实需要增加层级每层只需一次调用[output-style-files.ts](https://link.gitcode.com/i/11e0806f4da20a6e5bc67bdbf8a110a3)。加载行为细节 - 目录不存在ENOENT时返回空列表不报错 - 只读取目录**直接**子级中 *.md 结尾的文件按文件名排序读取 - 同名大小写不敏感文件只保留先读到的那个后到的会被跳过并记录日志 - 单个文件解析失败不影响其他文件继续加载逐个 try/catch。 目录拼接与重复加载的防护在 [loadOutputStyleCatalog](https://link.gitcode.com/i/7b28bc713a265e1818fa58c9e037828a) 中如果项目的 .qwen/output-styles 解析后与用户级目录是**同一目录**例如 QWEN_HOME 被重定向则跳过项目级避免同一批文件被加载两次并被标记成 (project)。 --- ## 四、优先级项目 用户 内置按名称大小写不敏感 样式按名称大小写不敏感合并优先级为 **project user built-in**与 SkillManager 的技能合并语义一致 - 自定义文件可以**遮蔽shadow内置样式名** - 用户把文件命名为 concise.md得到的就是自己的文件——这是最不令人意外的行为也与技能的行为一致。 合并过程在 [loadOutputStyleCatalog](https://link.gitcode.com/i/ad446230f486473514a25383782f5ac6) 中实现先按 project → user → built-in 顺序把样式写入 Map后者覆盖前者最后按「内置、用户、项目」的顺序输出这个顺序就是选择器展示的顺序。 一个重要的设计细节**提示词中使用的名称是定义里的名称而不是文件名**。headless无头运行时的 Learning 规则以内置定义为准见第七节因此用户自己的 Learning.md 不会因为名称撞车而在 headless 运行中被丢弃。 --- ## 五、keep-coding-instructions精确控制被省略的提示词段 该字段决定样式是否**保留基础提示词中的软件工程工作流指导段**。设计要点 - **默认继承被遮蔽的内置样式的值**一个什么都不声明的文件如果遮蔽了内置样式如重写 concise.md会自动继承该内置样式的 keepCodingInstructions 值Concise 等内置样式均为 true见 [output-styles.ts](https://link.gitcode.com/i/222c2a8db2a386d3951b9ac124c55ce2)。这样改写措辞不会静默删除内置样式携带的软件工程指导。 - **没有同名内置样式的文件默认为 false**它被假定为描述「与编码无关」的内容直到它声明相反。 - 被省略的**恰好只有**软件工程工作流指导段安全规则safety rules与工具指导tool guidance无论如何都会保留——样式永远不会关掉这些。 声明值在解析器自己的语境中读取[resolveKeepCodingInstructions](https://link.gitcode.com/i/8c1d00834daee19894612492c85226df)YAML 回退解析器产出字符串因此 True 以 True 到达只有 true / true 才算真其他任何值都会被报告并按 false 处理。 ### 实战示例一个「教学讲解」风格的样式文件 markdown --- name: teach description: 每次改动后附带一段面向初学者的解释 keep-coding-instructions: true --- 在完成每次代码改动后追加一段 What I changed 小节用 2-3 个要点解释改动背后的设计决策 引用本代码库的具体文件避免泛泛而谈的通用编程知识。保存到~/.qwen/output-styles/teach.md后通过/output-style teach即可启用且由于显式声明keep-coding-instructions: true基础提示词中的软件工程指导不会被丢弃。六、信任模型与安全边界样式文件只能「读取自身」样式文件正文会原样进入系统提示词因此一个链接就是潜在的数据外泄向量exfiltration vectorproject/.qwen/output-styles/notes.md - ~/.aws/credentials这样的符号链接可以被提交进 git、在git clone后依然存在并且只需用户启动 CLI 就会触发读取。设计采用与readLoopTaskFile守护同一 sink 的既有实现完全一致的安全策略实现在 resolveStyleFileToRead情形项目级文件project用户级文件user符号链接symlink一律拒绝——仓库作者不拥有机器上的文件链接命名敏感文件不是他们需要的任何场景允许但目标必须仍在用户自己的根目录内~/.qwen/output-styles/x.md - ~/dotfiles/x.md是常见的 dotfiles 布局硬链接hard linknlink 1拒绝拒绝符号链接祖先symlinked ancestor拒绝——通过realpath校验规范路径lstat只看最终组件是看不到的拒绝同上具体机制项目文件用fs.lstat检查不跟随最终组件符号链接不会被当作普通文件读到两者都检查nlink 1——硬链接会让一个指向敏感文件的链接看起来像普通常规文件读取前用fs.realpath求规范路径再与confineTo项目根或用户根的规范路径做isWithinRoot校验从而把「符号链接祖先」也一并拦截。用户级文件的约束根目录是主目录而不是~/.qwen因为~/.qwen/output-styles/x.md - ~/dotfiles/x.md是正常的 dotfiles 布局必须继续可用显式设置QWEN_HOME环境变量时约束根随全局目录一起迁移getUserOutputStylesRoot。项目样式与工作区信任两侧双重把关项目样式文件本质上是「一份被检入仓库的提示词」因此只有在工作区被信任时才被读取CLI 侧仅当isWorkspaceTrusted成立时才把项目根传给 catalog对应 output-style-utils.ts 中config.isTrustedFolder() ? config.getProjectRoot() : undefined的调用消费侧信任门禁在样式被消费处再次检查而不仅仅在读取处。后一点很关键如果会话中途撤销信任IDE companion 可就地改变判定无需重启项目样式会从提示词中消失而不是残留在本次会话的其余部分。七、headless 运行与 Arena 对等体不盲目继承展示样式7.1 headless 下的Learning处理Learning内置样式会把一段代码交给用户写然后等待用户回复headless无头运行无法收到回复因此该样式在 headless 下会被丢弃。这一规则是唯一事实来源single source of truth系统提示词与每轮提醒共同查询它保证会话永远不会被提醒一个其提示词并不携带的样式resolveEffectiveOutputStyle规则按定义definition而非显示名称判定——用户自己的Learning.md不携带内置 Learning 的「等待回复」指令如果按名称丢弃会导致 headless 运行在名称解析成功却无任何警告的情况下静默失去样式。7.2 Arena 对等体不盲目继承样式Arena 对等体arena peers是全新的 headless 编码 Agent它遵循与主会话相同的提示词覆盖与 headless 规则绝不会继承一个会丢弃其工作所依赖的编码指令的样式。也就是说keep-coding-instructions: false的展示类样式不会被传播给依赖编码指导的 Arena 对等体。八、按需重读无缓存、无 watcher、坏文件只跳过不致命8.1 读取时机Catalog 在三个时机被读取启动时解析设置项或--output-style标志选择器打开时/output-style name给出名字时。两次小目录读取成本很低且意味着新增文件无需重启即可生效。不过对当前生效样式文件的手工编辑仍需要重新选择一次因为提示词只在应用apply时重建。8.2 坏文件处理策略跳过而非致命以下情形会被写入 debug 日志然后跳过其余文件继续加载空正文保留名default或非法名称过长、含控制字符非文本文件UTF-16 或二进制超过大小上限的文件。大小上限为MAX_OUTPUT_STYLE_FILE_BYTES 25_000字节output-style-files.ts与LOOP_TASK_FILE_MAX_BYTES——即注入系统提示词的文件文本的家庭上限——保持一致达到这个大小的样式文件在会话的每次请求中已约耗费 6k tokens。该上限在实际读取到的字节上强制执行readBoundedStyleFile 只读上限1字节超出即为超限信号而不是依赖一个可能被文件随后撑大的stat结果。另外启动时对未知的设置值已应用「不锁死no-lockout」规则一个无法解析的general.outputStyle值不会让 CLI 无法启动。8.3 名称与描述的安全清洗样式名称会被回显到系统提示词标题与选择器行中因此拒绝含控制/格式字符\p{Cc}、\p{Cf}——它们可以隐藏或重排文本的名称名称长度上限 64 字符default为保留名validateOutputStyleName。描述的两个来源声明值与正文推导值都来自不受信任的文件并被直接渲染进选择器行因此统一做清洗sanitizeDescription剥离 ANSI 转义与控制字符、剥离格式字符覆盖 C0/C1 与\p{Cf}包括能重排行序的 U202E、压缩空白为单行并截断到 120 字符上限。8.4 HTML 注释在截断处被剥离正文被截取时HTML 注释会被丢弃!-- ... --与同级.qwen/rules/加载器对同一 sink 的处理一致给人类看的注释不会喂给模型。九、实战设置、标志与命令三种启用方式9.1 配置文件设置项general.outputStyle在配置文件的general分类下schema 定义见 settingsSchema.ts{ general: { outputStyle: Concise } }要点值为字符串内置样式名如Concise、Explanatory或自定义样式的名字——即其 frontmattername缺省时为去掉.md的文件名——来源为~/.qwen/output-styles或.qwen/output-styles不设置即为默认样式default无样式该设置requiresRestart: true普通的通用设置编辑不会重建运行中的系统指令/output-style命令拥有单独的实时更新路径设置项未采用静态枚举因为样式列表包含用户/项目自定义条目选择权交给/output-style选择器--bare与--safe-mode下只有内置样式可用。9.2 命令行标志--output-style与设置项等价的命令行标志。解析是大小写不敏感的因此--output-style concise也能命中内置的Concise。9.3/output-style命令内置命令output-style-command.ts支持 interactive、non_interactive、acp 三种模式无参数 交互模式打开选择器对话框/output-style裸调用不自动选中任何项与/effort同理无参数 非交互/ACP报告当前样式与可用列表带参数/output-style name直接切换/output-style default清除样式回到默认未知名称返回错误并列出可用项--bare与--safe-mode下命令被拒绝提示输出样式不可用。应用选择时applyOutputStyleSelection若项目设置文件拥有general.outputStyle键且当前会话不允许写入工作区设置则拒绝写入写入作用域由「谁拥有该键」决定项目设置文件拥有则写 Workspace 作用域否则写 User 作用域写入后调用config.setOutputStyle(style)并刷新系统指令refreshSystemInstruction()——因为样式位于已绑定的系统指令的稳定层必须重建才能让改动到达模型反馈消息会诚实提示各种「已保存但暂不生效」的情形系统提示词被--system-prompt或QWEN_SYSTEM_MD替换、工作区未受信任、headless 下 Learning 被跳过等若样式来源与写入作用域不匹配把个人样式写进项目设置、或把项目样式写进用户设置会附加说明「其他读取该设置文件的人将无法解析该名称」。9.4 选择器与打开时快照选择器钩子针对它展示过的列表来解析选择设计文档「The picker resolves against the list it showed」保持打开时加载的 catalog而不是重新读取因此选项不会在光标下被换掉。副作用是选择器打开后文件被删除仍会从打开时的快照应用持久化的名称在下次启动时会告警并回退到默认样式。当 catalog 不再包含当前生效样式时生效样式会被追加进列表保证标记真实可信并且一次回车不会把default持久化覆盖到一个活跃样式上。十、样式在系统提示词中的渲染应用样式时applyOutputStyle样式段被追加到基础提示词末尾# Output Style: name 样式正文原样【免费下载链接】qwen-codeAn open-source AI coding agent that lives in your terminal.项目地址: https://gitcode.com/GitHub_Trending/qw/qwen-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价