早前OpenAI官方发布了一堆给企业级用户的 Use Cases(用例),分门别类地列好了给产品经理怎么写 Prompt,给工程师怎么写 Code Review 提示词。
想起以前还需要到处找Prompt,到处学习Prompt应该怎么写,还需要找些笔记软件来分门别类记录下来,每次用的时候还需要找回来,复制粘贴。
在 ChatGPT 网页版中,我们的工作流通常是:
复制 Prompt -> 切换窗口 -> 粘贴代码上下文 -> 等待生成 -> 复制回 IDE
然后我在想,现在Skills技能这么强大,能不能拿过来用用呢。通过将Prompt封装为Skill,那么我们的工作流就变为了:
用户在 IDE 键入模糊意图 -> Agent 自动识别场景 -> 调用封装好的 Prompt -> 读取当前代码 -> 直接生成结果
在转换之前,我们需要理解两者的结构差异:
OpenAI Prompt: 通常是一段文本,包含背景(Context)、任务(Task)和输出要求(Output)。用户需要每次手动复制粘贴给 ChatGPT。
Agent Skill: 是一个文件夹(通常包含 SKILL.md),它将 Prompt 包装了元数据(YAML Frontmatter)。Agent 会根据用户的模糊意图(Intent)自动检索并加载这个 Prompt。
一般SKILL.md模板的格式内容大致如下:
---name: <技能名称,如 generate-prd>description: <一句话描述,如:为新功能撰写产品需求文档 (PRD)>---# <技能标题>## When to use this skill-<描述触发场景1,例如:当用户要求写 PRD 时>-<描述触发场景2,例如:当用户提供了功能想法但需要文档化时>## Instructions<这里粘贴 OpenAI 的 Prompt 内容>-Context: ...-Task: ...-Output Format: ...## Input Variables-<变量1>: <描述>
所以我们要做的事情就相当于做一层转换YAML 元数据 (定义何时使用) + OpenAI Prompt 内容 (定义怎么做)
我们从OpenAI Academy的资源中挑选几个典型用例来进行转换。
原始OpenAI Prompt:
Basedonthisfeatureideaandcustomerneed,writeafirst-draftPRD.Includeuserstory,problemstatement,solutionoverview,acceptancecriteria,andsuccessmetrics.[Insertcontextorproblem]
那么转换后的SKILL.md大概是这样的:
---name: product-draft-prddescription: Draft a comprehensive Product Requirements Document (PRD) from a feature idea.---# Product Requirements Document Generator## When to use this skill-When the user asks to write a PRD or spec for a feature.-When the user provides a rough feature idea and needs a structured document.-When asking to "flesh out" a product concept.## InstructionsYou are an expert Product Manager. Your goal is to draft a PRD based on the user's input.1.**Analyze the Request**: Identify the core feature, target audience, and business goal from the user's prompt.2.**Draft the Content**: Generate a response following this strict structure:* **Problem Statement**: What are we solving?* **User Stories**: As a [user], I want to [action], so that [benefit].* **Acceptance Criteria**: Gherkin syntax (Given/When/Then) or bullet points.* **Technical Constraints**: Potential limitations or requirements (ask if unknown).* **Success Metrics**: How will we measure success?3.**Refinement**: If the user's input is too vague, ask clarifying questions before generating the full doc.
然后我们尝试一下在Claude Code中来使用这份Skill,然后将它命名为product-draft-prd,并保存在项目中.claude/skills/product-draft-prd/SKILL.md,这样就仅此项目能使用。
启动Claude Code工具,输入/就能够看到刚才创建的product-draft-prd技能
帮我写一份关于‘AI自动剪辑短视频’功能的PRD
可以看到会自动触发到我们新增的Skill
最终就会展示出这份 PRD 文档内容
它将根据我们定义的文档内容,一步步给我们做分析
如果还有其他的不清楚的内容,还可以继续跟它沟通
没问题的话,我们就可以保存到本地
如果由我们自己来做这个转换,毕竟是有点难度,这种事情当然是要让 AI 帮我们处理,例如之前介绍过的,Anthropics有一个叫skill-creator的技能,我们让它帮我们做这个转换工作。
仓库地址
https://github.com/anthropics/skills/tree/main/skills/skill-creator
我们使用一段工程师用例,尝试这个转换:
Explainthiscodesnippettoajuniorengineer,pointoutpotentialbugs,andsuggestarefactorforbetterperformance.
将上面的技能放到skills目录下,然后启用这个技能
然后将技能名称和Prompt提示词发给它,它就会给我们分析这个需求,并且会提出一些问题,它这边会按照三个维度(使用场景、编程语言、审查重点),我们按照实际情况做出选择即可
我这边就是无脑全部勾上了
处理完以后,就能够在.claude/skills/里面看到生成了一个新的eng-code-review目录,这个就是我们刚才创建的新Skill
在SKILL.md文档里面,详细的记录了这个技能的内容
重新进去以后,就能够看到这个新的技能。然后我在目录里面随便写了一个 python 函数的脚本,让这个技能去帮我看看这里面的问题。
defprocess_data(l):# 保存去重后的用户res = []foruinl:# 糟糕的去重逻辑:每次循环都遍历一遍 res,性能灾难ifu['id']notin[x['id']forxinres]:res.append(u)total =0count =0foruinres:ifu['active'] ==True:total += u['age']count +=1# 致命 Bug:如果 count 为 0,这里会报错 (ZeroDivisionError)returntotal / count
代码槽点:
然后让它开始检查代码
执行后,输出结果,都能检查出问题来了
将 OpenAI 的 Prompt 迁移为 Claude 的本地技能,是一次能力的全面升级:
上下文感知 (Context Awareness): 以往你需要手动复制粘贴代码给 AI,现在 Claude 直接“住”在你的代码库里。它能看见你引用的库、你的目录结构甚至你刚写的 Bug。这种上下文感知 (Context Awareness) 能力,让 AI 的回答从“通用的正确”变成了“针对性的解决方案”。
被动触发 vs 主动检索: 你不需要专门建立一个文档来记录那些复杂的 Prompt。在终端里,它们变成了可执行的命令。你只需要表达意图(比如 review 或 gen-prd),剩下的交给配置好的路径去执行。这是把知识“代码化”了。
团队对齐: 你可以将.agent/skills文件夹提交到 Git 仓库。这意味着你的团队成员在 Check out 代码后,立刻拥有了一致的 Prompt 工程能力——所有人的 Code Review 标准和 PRD 格式瞬间统一
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |