Android AI解放生产力(三):认识custom_prompts和skills

292 阅读3分钟

这两项是在使用AI辅助编程时必须了解的。是不是写提示词写的很烦,并且是很多重复的劳动?让custom_prompts和skills来帮忙。

一、自定义Prompts

它的作用就是把重复的提示词固定下来,下次直接加入到Codex的上下文。下面是实现步骤及用法。

1、创建prompts文件夹

Mac在~/.codex进入.codex文件夹,创建prompts文件夹,在prompts中就可以创建一个个Markdown固定提示词了。

2、编辑提示词

假如我们创建了一个figma_ui.md的文件,这个文件就是固定下来通过Figma MCP转换Android原生XML UI代码的提示词,那应该如何编辑figma_ui.md文件呢?是有固定格式的。

---
description: 使用Figma MCP生成Android 原生XML布局代码
argument-hint: [NOTE=]
---

这里就写固定下来的提示词...

NOTE就是可以插入内容的占位符,用的不多,看个人需求。

3、使用

编辑好后保存,输入/prompts就可以看到了,如果要追加NOTE内容就按Tab,不追加就按回车:

image.png

这样提示词就追加到了Codex的上下文。

二、编辑skills

skill是什么?skill其实是沉淀下来的一项项技能,比如项目中创建Activity,每个项目中肯定有一套固定下来创建Activity的代码,继承谁、实现什么函数等,全是模板代码,而这种固定的模板代码就可以抽取为一个个skill,注意skill是能力,不是模版。

skill的namedescription会在codex启动时就加载进上下文,让codex知道具备哪些skill,而不是开始就直接把所有的skill提示词一起加载进上下文,这样可以节省Token,需要什么skill的时候就按需加载。

1、创建skills文件夹

~/.codex进入.codex文件夹,创建skills文件夹,在skills文件夹中可以存放一个个skill.

2、编辑skill

还是以Figma UI来举例,在skills文件夹创建一个子文件夹,子文件夹名字是figma_ui_to_xml,然后在figma_ui_to_xml内创建一个Markdown文件,文件名是固定的SKILL.md

这个文件的头部也是固定的namedescription,用来暴露skill能力的名字和描述,注意这二个特别重要,因为skill一般是不会显示调用的,skill的能力能不能被调用到,就是看与namedescription的匹配度,匹配度高AI认为需要使用这个skill, 就会把这个skill的提示词加载进上下文。

---
name: figma_ui_to_xml
description: Implement this Figma design。将Figma MCP链接转换为Android原生XML。
---

写提示

3、使用

隐式调用:方便快捷(推荐)。

比如在复制Figma MCP的链接会得到下面的内容:

Implement this Figma design.
@https://www.figma.com/design/Lod2RUq5wj3CaISqN4/FOXX-UI-library?node-id=43080-44486&m=dev

因为Implement this Figma design匹配到了figma_ui_to_xmldescription的语句,所以会自动使用这个skill。而description中的Implement this Figma design正是为了匹配这个skill特意加上去的。所以后续使用只需要在Figma粘贴过来直接放进去就可以了,不需要再加任何修饰。

显示调用:直接,明确。

在codex中可以显示调用

image.png

image.png

三、prompts和skills该用谁?

一般情况下都推荐用skill,项目中的规范写法、一套一套的模版代码、各种能力都适合归纳为skill,然后让AI自动判断适合用哪个skill。

而prompt适合与项目没有强关联的,偶尔要问那么一次的,每次编辑都很麻烦的,就可以固定成自定义prompt。