第 07 步:使用 Skill¶
这一节学什么¶
- 不自己写 skill 时,怎样先消费一个现成 skill
SkillNode在主路径里扮演什么角色- prompt skill 的结果怎样回到
final_answer,以及可选地回到messages - 一个 prompt skill 的
SKILL.md应该怎么写
你会运行什么¶
示例代码:
examples/getting_started/step_07_use_skill.py
这个步骤会直接消费一个已经写好的本地 prompt skill:
examples/getting_started/skills/prompt_briefing/
运行:
核心概念¶
这一节先建立一个使用心智:
- Tool 更像单个动作
- Skill 更像一整包能力或工作流
SkillNode负责把SKILL.md背后的能力接到 Agent 运行树里
这个例子里,你先观察三件事:
- 只给
SkillNode一个SKILL.md SkillNode自己完成 skill 加载、skill set 解析和执行托管- 结果最后回到 Agent 的共享 state
运行后观察什么¶
messages- 如果 skill 开了
push_to_chat: true,结果会追加成一条 assistant message final_answer- 这是 prompt skill 运行后的正常对外结果
这里要特别注意:
- prompt skill 的结果会回写到顶层
final_answer - 如果你希望聊天层也能看到,就打开
push_to_chat: true - prompt skill 不会自动生成结构化
skill_result - BT skill 使用独立的正式
skill_result:BT/react 暴露为run_bt_skill,单个 BT/direct 则不创建外层 ReAct
所以本节示例会同时打印:
Top-level final_answerLatest assistant messageTop-level final_answer
你会看到:
- 顶层
final_answer会包含 prompt skill 的回答 - 如果开启了
push_to_chat,同一结果也会出现在messages - 普通 prompt skill 不会额外创建结构化结果归档
你可以把这一节理解成:
- 先学“怎么用 skill”
- 再拆开看“这个 prompt skill 是怎么写出来的”
一个 prompt skill 长什么样¶
这个示例使用的 skill 文件是:
examples/getting_started/skills/prompt_briefing/SKILL.md
它的内容大致长这样:
---
name: concise-brief
description: Turn the latest user request into a short implementation-oriented brief.
execution: prompt
push_to_chat: true
---
You are the `concise-brief` skill.
Read the latest user request and produce a compact brief with exactly three sections:
1. Goal
2. Recommended Path
3. Caveats
Requirements:
- Keep the whole answer under 120 words.
- Be concrete and implementation-focused.
- If the request mentions Jianmu concepts, keep the terminology precise.
可以先把 SKILL.md 拆成两层:
- frontmatter
name是 skill 的稳定标识description会影响路由、摘要和 prompt 暴露execution: prompt表示这是 prompt skill,不需要tree.py- prompt skill 的正常对外结果仍然是
final_answer push_to_chat决定 skill 输出是否也追加回聊天消息- Markdown 正文
- 这是模型真正要遵循的 skill 指令
- 适合写角色、流程、输出格式和约束
从运行时视角看,SkillNode 会先把选中的文件解析成 SkillSet。这个集合又会被概念上分成:
prompt_skillsbt_skills
本节只演示 prompt skill 这一侧,BT skill 放到 Step 10。
怎么改成自己的 prompt skill¶
最小做法不是写 Python 去生成 Markdown,而是直接复制一个目录:
然后修改:
namedescription- 正文 prompt
最后像本节示例一样,把 SKILL.md 传给 SkillNode:
如果你的 skill 只是稳定 prompt、输出格式或工作方法,通常用 prompt skill 就够了。 如果你开始需要显式节点控制流、多步骤状态读写或确定性本地逻辑,再到后面的 BT skill 章节。