4 篇文章带有标签 “templates”

WorkBuddy Prompt 模板文件

本文件研究了 /Applications/WorkBuddy.app/Contents/Resources/app.asar.unpacked/resources/templates 目录下的全部 *.tpl 模板(12个文件),每个文件作为独立章节,原文(含 Jinja 占位符与 XML 标签)原样保留在代码块中。 基于你提供的 WorkBuddy Prompt 模板文件,以下是其整体架构与各模板关系的思维导图(Mermaid 格式):

mindmap
  root((WorkBuddy Prompt 模板))
    分类与概览
      共12个模板
      分类:模式提醒 / 系统提醒 / 身份上下文 / 主Prompt
      主Prompt分4个场景:Ask·编码 / Ask·通用 / Craft·编码 / Craft·设计 / 专家·编码 / 专家·通用 / 通用Craft
    模式提醒片段
      ask-mode-reminder
        Ask模式硬性规则:只读·不编辑·不运行命令
        建议切换至Craft
      craft-mode-reminder
        Craft模式能力激活:可自由编辑与创建文件
        直接执行任务
    系统提醒片段
      system-reminder
        占位标签
        运行时由系统注入提醒
    身份上下文模板
      user-context-expert-identity
        专家模式身份注入
        含BOOTSTRAP.md / USER.md
        聚焦产品身份与语气占位
      user-context-identity
        通用身份注入
        含SOUL.md / IDENTITY.md / USER.md
        用户自定义指令与语气风格覆盖
    主Prompt·Ask模式
      workbuddy-ask-prompt
        纯对话场景
        只读工具·不可编辑
        可视化工具(read_me / show_widget)
        MCP配置引导
      workbuddy-ask-coding-prompt
        Ask + 编码场景
        与ask-prompt同源
        强调代码库上下文与只读分析
    主Prompt·Craft模式
      workbuddy-prompt
        通用Craft默认主提示
        能力总览·Agent循环·结果呈现
        自动化任务与技能管理
      workbuddy-craft-coding-prompt
        Craft + 编码场景
        Agent循环·任务管理工具
        技能积累与反思(SkillManage)
        自动化(automation_update)
        可视化与多模态生成
      workbuddy-craft-design-prompt
        Craft + 设计场景
        智能设计助手角色
        画布三段式回复格式
        文生UI·截图验证
        目标节点优先原则
    主Prompt·专家模式
      workbuddy-expert-prompt
        专家模式通用(AGENTIC)
        角色覆盖·产物概览
        松弛自然沟通风格
        多模态生成与技能积累
      workbuddy-expert-coding-prompt
        专家 + 编码场景
        与expert-prompt同源
        聚焦编码任务与产物交付

该图清晰呈现了:

  • 4 大类模板(模式提醒、系统提醒、身份上下文、主 Prompt)
  • 7 种主 Prompt 场景(Ask 通用、Ask 编码、Craft 通用、Craft 编码、Craft 设计、专家通用、专家编码)
  • 各模板的核心定位与关键约束(只读/可编辑、身份注入、可视化、自动化、技能管理等)

模板概览

拆解 WorkBuddy:系统提示词如何拼装,模型清单如何定义

研究对象是 WorkBuddy 桌面客户端的安装包——更准确地说,是它解包后的 resources/cli/ 两个目录。我们想知道两件事:

(1)对话时「我」到底由什么拼成? (2)「我」能调用哪些模型、这些模型又从哪来?

答案出人意料地干净:它们分别落在两套声明式配置文件里——提示词模板库与产品配置文件。你此刻正在阅读的「我」,本质上就是这两套文件在运行时的一次实例化。

0. 为什么值得写

平时我们用 AI 助手,关注的是「它能不能帮我干活」。但如果你想知道「它是怎么被造出来的」,安装包本身就是最好的教材:没有编译混淆、没有黑盒,所有「性格」「能力边界」「可用武器」都白纸黑字写在那里。

这次我们顺着两条主线往下挖:

  • 主线 A —— 大脑(提示词模板)resources/templates/ 下的 19 个文件(约 2400 行),决定了「我是谁、能做什么、如何行动」。
  • 主线 B —— 武器库(模型配置)cli/product*.json 下的 5 个文件,声明了「我能调用哪些模型、怎么路由、怎么计费」。

一、主线 A:提示词模板体系("我"的大脑)

1.1 三层结构

resources/templates 不是一堆散落的提示词,而是一套以「角色」为主轴、以「模式」为运行时约束的模板工程体系,基于 Jinja2 风格语法({{ var }} 占位符 + {% if

基于模板创建Job

基于一个公共的模板运行多个Jobs。 你可以用这种方法来并行执行批处理任务。

使用 Shell 脚本

创建 Job 模板(job-tmpl.yaml)

apiVersion: batch/v1
kind: Job
metadata:
  name: process-item-$ITEM
  labels:
    jobgroup: jobexample
spec:
  template:
    metadata:
      name: jobexample
      labels:
        jobgroup: jobexample
    spec:
      containers:
      - name: c
        image: busybox
        command: ["sh", "-c", "echo Processing item $ITEM && sleep 5"]
      restartPolicy: Never

$ITEM 是占位符,在使用的时候进行替换。

基于模板生成多个 Job YAML

mkdir ./jobs
for i in apple banana cherry
do
  cat job-tmpl.yaml | sed "s/\$ITEM/$i/" > ./jobs/job-$i.yaml
done

查看 jobs 目录,可以看到下面的结果。