Skip to content

技能库 - 自定义技能模板 ​

和 系统技能 并列的一类技能。 系统技能由平台内置(查天气、闲聊、AIoT 指令控制…),自定义技能模板由企业自己创建、只对本企业可见,用来沉淀品牌方专属的对话能力模板——既可以接入企业已有的后台服务(会员系统、售后系统、设备接口…),也可以用提示词 + 平台内置大模型直接完成回复,并可按需关联 MCP 工具调用外部能力。技能库中的自定义技能模板不直接生效,需在「产品管理 → 从模板新建」中引用后,才会在具体产品/智能体中生效。

📌 版本变更说明: 原「自定义技能」已升级为「自定义技能模板」。

  • 原有存量的自定义技能已自动迁移为「技能库 → 自定义技能模板」中的模板,继续保留、可复用;
  • 已在智能体中配置过的技能仍保留在「智能体 → 技能」列表中,无需重新配置;
  • 页面相关按钮与文案统一为「新建技能模版」「自定义技能模版」等。

1. 什么是自定义技能模板 ​

除了平台提供的系统技能,JoyInside 支持您创建专属于自己企业的技能模板,沉淀到技能库中反复复用。

模板与实例的关系(重要):

  • 技能库中的是模板:模板是可复用的“配置底稿”,本身不直接对用户生效;
  • 在产品中引用才生效:在「产品管理 → 从模板新建」中选择技能模板加入到具体产品/智能体后才会生效;
  • 模板与实例互相独立:在产品中对已引用的技能做的修改不会回写、影响整个模板;模板只是新建时的初始来源。

关键特性:

  • 企业隔离: 自定义技能模板仅对您的企业账号可见,其他企业既看不到、也用不到;
  • 可反复取用: 同一份模板可被任意多个产品/智能体分别新建为独立实例,数量不限;
  • 两种技能类型: 根据回复由“平台内置大模型生成(可选调用 MCP 工具)”还是“品牌方注册的外部服务自行处理”,可选择「自定义提示词型」或「第三方服务型」(见 §2)。

2. 核心概念:技能类型 ​

创建自定义技能模板时,首先要选择技能类型——这决定了这个技能如何被执行、需要填写哪些字段。技能类型只影响模板的执行方式,与“模板/实例”的概念无关。

技能类型谁来生成回复是否需要后端开发典型场景
自定义提示词型(默认)平台内置大模型,按您写的提示词生成(可按需调用关联的 MCP 工具)否,写提示词即可;如需外部数据可关联 MCP 工具(无需自建后端)角色扮演、故事续写、情感安慰、风格化问答,以及需借助 MCP 工具获取实时/外部数据的场景
第三方服务型外部服务直接回复(平台调用您注册的服务 API,原样返回,不再过大模型;后端可以是 Agent、LLM 或其他实现)是,需先在开发者中心注册外部服务的 API查会员积分、查保修、下单、设备指令透传等由品牌方外部服务自行处理的场景

2.1 两种类型的核心差异 ​

维度自定义提示词型第三方服务型
执行方式平台内置大模型推理生成,可按需调用关联的 MCP 工具获取外部数据后再组织回复转发到您注册的外部服务 API,由外部服务(Agent / LLM / 其他后端)直接返回回复(不再过平台大模型二次组织)
意图识别基于「技能准入描述 + 示例」进行意图匹配(两者相同)基于「技能准入描述 + 示例」进行意图匹配(两者相同)
触发方式仅支持意图触发支持意图触发和优先触发两种
专属配置技能提示词、拼接全局人设、系统变量、关联知识库、关联 MCP 工具第三方服务选择
典型能力情感陪伴、角色扮演、故事讲解、风格化闲聊,以及借 MCP 工具查天气/查数据等由大模型编排的能力会员积分、售后查询、设备下单、指令透传等由外部服务自行执行的能力

⚠ 类型创建后不可修改。 技能创建成功后,「技能类型」字段在编辑页面锁定不可变更;若需切换类型,只能删除后重建。这是为了防止执行逻辑与配置数据发生冲突。

2.2 本期约束与边界 ​

约束项说明
不支持混合模式一个技能只能是自定义提示词型或第三方服务型,不支持同时写提示词又挂第三方接口
提示词型可借工具扩展提示词型基于「意图触发 + 提示词驱动回复」,并可关联 MCP 工具
提示词长度上限技能提示词最多 7000 字符(与系统技能闲聊的提示词上限对齐)

3. 自定义提示词型 ​

核心机制: 命中意图后,平台把您编写的「技能提示词」拼装进大模型上下文,由平台内置大模型编排并生成自然语言回复;若关联了 MCP 工具,大模型会按需调用这些工具获取外部数据(如实时天气、外部查询),再把结果组织成回复。无需自建后端 API,外部能力通过 MCP 工具接入。适合角色扮演、情感陪伴、故事续写,以及需要借助工具获取实时/外部数据的技能。

3.1 公共字段(所有自定义技能模板都要填) ​

字段是否必填字数限制说明
技能名称是≤ 20 字符,企业内唯一简短清晰地描述技能功能,如“情感安慰”“睡前故事”
技能准入描述是≤ 2000 字符告诉 AI “什么情况下应该触发这个技能”(意图定义 / 标准触发 / 不可触发)
示例是≤ 1000 字符正反例 Few-shot,辅助模型判断意图边界
技能类型是单选,创建后不可改本节场景固定为「自定义提示词型」

技能准入描述与示例的撰写建议,详见 §5「意图识别配置指引」。

3.2 自定义提示词型专属字段 ​

字段是否必填说明限制
技能提示词是技能命中后,大模型用于生成回复的核心 Prompt。定义该技能“做什么、怎么做”≤ 7000 字符
自动拼接全局人设否勾选后,系统在执行时自动把全局人设 Prompt 拼接到技能提示词头部,保持人设一致性默认勾选
插入变量否在提示词编辑区点「变量」图标插入两类变量,平台在运行时自动替换:①系统变量——${systemTime}、${location} 等平台内置值;②工具变量——已关联 MCP 工具的返回值占位符,形如 $[MCP服务名/工具名](需先关联 MCP,详见 §3.2.1)语法同系统技能编辑能力;工具变量需先关联 MCP 工具
关联 MCP否仅提示词型支持。可关联 0~多个已公开的 MCP 服务,并可在每个服务下按需勾选具体工具(Tool)(支持跨服务组合,如选 MCP1 的 a、b 两个工具 + MCP2 的 c 工具);随后在提示词中围绕所选工具编写调用逻辑,并可插入「工具变量」引用工具返回值(见 §3.2.1)仅可选择在「资源管理 → MCP 服务」中标记为**「公开」**的服务及工具
关联知识库否挂载企业知识库,配置召回数量与匹配阈值,让大模型在回复前先检索知识库语法同系统技能「闲聊」的知识库关联能力

3.2.1 关联 MCP 与工具变量(仅提示词型) ​

自定义提示词型技能支持关联 MCP 工具,让“提示词驱动的技能”也能调用外部工具能力(工具级粒度)。

关联 MCP —— 可选 0~多个服务、按工具自由组合:

  • 点击「关联 MCP」下拉框,列表按 MCP 服务分组展示,每个服务下可展开看到它的具体工具(Tool);
  • 可关联 0 个到多个公开 MCP 服务;同一服务下可只勾选需要的部分工具,也可跨服务组合——例如同时选择 MCP1 的 a、b 两个工具与 MCP2 的 c 工具;
  • 勾选服务名可一次选中其下全部工具,也可只勾选单个工具;已选工具以标签形式展示(如 MCP服务名/工具名),点标签 ✕ 可移除;
  • 当前仅支持云端 MCP 服务返回的内容;
  • 只有在「资源管理 → MCP 服务」中标记为「公开」的服务及工具,才会出现在此处可供选择。

💡 若资源管理中没有创建 MCP 服务,或已创建但未标记「公开」,「关联 MCP」下拉框会显示「暂无数据」;此时无工具可关联,也不会出现「工具变量」。请先到「资源管理 → MCP 服务」创建并公开对应服务。

根据所选工具编写提示词 + 插入工具变量:

  • 完成工具关联后,可在技能提示词中围绕这些工具说明其调用时机与调用方式;
  • 在提示词编辑区点击「变量」图标,可切换「系统变量」与「工具变量」两个页签:
    • 系统变量:长期记忆 ${memoBaseContent}、系统时间 ${systemTime}、设备地点 ${location} 等,由平台在运行时替换;
    • 工具变量:仅列出已在「关联 MCP」中勾选的工具对应的返回值占位符,如 $[MCP服务名/工具名],勾选后插入提示词,一次插入一个;
  • 工具变量范围取决于「关联 MCP」的选择结果,二者保持同步:勾选哪些工具,「工具变量」页签即列出哪些工具;未勾选任何工具时该页签内容为空;
  • 「工具变量」页签顶部提供「搜索服务或工具名」输入框,方便快速检索。

📌 关联 MCP 是提示词型专属能力;第三方服务型不涉及关联 MCP(其外部能力由所注册的外部服务自行实现)。MCP 服务的创建与「公开」设置详见「资源管理 · MCP 服务」。

3.3 技能提示词撰写建议 ​

一段好的技能提示词通常包含 4 部分:

  1. 明确角色:你是一位 XXX(如“专业营养师”“温柔的故事讲述者”)
  2. 定义任务:当用户 XXX 时,你需要 XXX
  3. 约束输出:回复控制在 XXX 字以内,语气保持 XXX
  4. 补充规则:不可以 XXX、必须 XXX

示例:「儿童睡前故事」技能提示词

你是一位儿童睡前故事讲述者。当用户说“讲个故事”或提到一个主题时,请根据主题即兴创作一个 3-5 句话的短故事,语气温柔、节奏舒缓,适合 3-6 岁儿童。故事结尾需引导孩子入睡,如“月亮也困了,我们一起闭上眼睛吧”。当前时间是 ${systemTime},可根据早晚气氛调整用词。

3.4 触发方式限定 —— 仅意图触发 ​

自定义提示词型只能选择「意图触发」,不支持「优先触发」。

原因: 提示词型的定位是“AI 理解用户意图后再进入”,没有精准的指令词直连关系;优先触发则要求“用户所有输入 100% 先给该技能”,两者不匹配。

流程:

用户说话
  ↓
AI 意图识别(基于准入描述 + 示例)
  ↓
命中提示词型技能
  ↓
拼装:[全局人设(可选)] + [技能提示词] + [知识库检索结果(可选)] + [系统变量替换]
  ↓
(可选)调用关联的 MCP 工具,回填工具变量
  ↓
平台内置大模型直接生成自然语言回复
  ↓
TTS 输出给用户

3.5 与「全局人设」「事件反馈」的关系 ​

场景变量注入方语法说明
自定义提示词技能平台内置自动注入${systemTime}、${location}系统内置变量,运行时平台自动替换
关联 MCP 工具(仅提示词型)平台运行时回填$[MCP服务名/工具名]关联 MCP 工具后可插入的「工具变量」,运行时用工具返回值替换(见 §3.2.1)
事件反馈端侧通过 CLIENT_UPDATE_CHAT_CONTEXT 上报${(extInfo.字段名)!""}由端侧上报后再注入 Prompt
A2A 调用透传集成侧调用时传入详见开放接口 ext_info 字段A2A 接口调用生效

📌 注意区分:自定义提示词技能里的 ${systemTime} / ${location} 是系统内置变量,无需端侧上报;而事件反馈里的 ${(extInfo.xxx)!""} 是端侧上报的业务字段,两者机制不同,不要混用。

4. 第三方服务型 ​

核心机制: 命中意图后,平台把请求转发到您在开发者中心注册的外部服务 API(即「第三方服务」),由该外部服务自行处理并直接返回自然语言回复,平台不再过大模型做二次组织,拿到什么回什么(仅做必要的通道透传与格式适配)。该外部服务背后的实现由品牌方自行决定——可以是一个 Agent、一个封装了 LLM 的服务,或任意能按 A2A 协议返回回复的后端;对平台而言只要遵守 A2A 协议即可。适合需要由品牌方自有服务自行执行并组织话术的技能(如查会员积分、查保修、下单、设备指令透传)。

4.1 公共字段 ​

同 §3.1(所有自定义技能都要填的字段一致)。

4.2 第三方服务型专属字段 ​

字段是否必填说明
第三方服务选择是从「开发者中心 · 第三方服务管理」已注册且启用的 API 列表中选择

术语澄清:「第三方服务」在平台语境里是品牌方注册的外部服务 API,双方按 A2A(Agent-to-Agent)协议通信(协议名沿用 A2A,但后端不限于 Agent,也可以是封装 LLM 的服务或其他后端)。技能命中后,平台把用户输入 + 会话上下文 + 长短期记忆 + RAG 结果打包透传给该服务,外部服务以流式响应直接返回可播报的自然语言回复,平台原样透传给端侧,不再调用大模型做二次改写、总结或润色。协议细节见 A2A 流式响应协议。

平台侧 ↔ 外部服务侧职责边界:

谁负责具体职责
平台侧通道透传、鉴权、超时、限流、格式适配;把 input/messages/session_id/long_term_memory/rag_recall_result/ext_info 等打包 POST 给外部服务
外部服务侧① 自己组织好话术(长度、语气、TTS 友好度);② 按 A2A 协议流式返回 4 类事件(Message → Instruction 可选 → Done;失败发 Error);③ 自己处理失败降级(只有外部服务明确返回失败时,平台才会回落到其他技能)

外部服务侧必须遵守的 A2A 协议核心约束(简介):

  • 必须流式:HTTP 流式响应,不能一次性返回整块 JSON;
  • 事件顺序:Message(输出内容) → Instruction(可选,自定义结构,直接透传终端) → Done(结束标志,data: {});
  • 失败处理:异常时发 Error 事件(含 error_code/error_message);
  • Done 必须发:平台以 Done 事件作为整轮结束标志,漏发会导致端侧超时。

完整字段定义、请求示例、Message/Instruction/Error/Done 结构见 §7.1 A2A 技能协议。

4.3 触发方式(意图触发 / 优先触发,二选一) ​

第三方服务型支持两种触发方式,决定“AI 什么时候把用户的话交给这个技能”:

触发方式说明适用场景
意图触发AI 先理解用户意图,判断“用户想做什么”,再决定是否进入该技能大多数场景。例如「查积分」「查保修」等需要 AI 理解语义的技能
优先触发用户的每一句话 100% 先分给该技能处理,不经过 AI 意图判断;只有当该技能返回失败时,才会继续走其他技能的正常流程品牌方已有成熟服务系统,希望优先使用自家服务响应,自己搞不定时再交给平台其他技能兜底

简单理解:

  • 意图触发 = AI 先“想一想”用户在说什么,再决定交给谁处理
  • 优先触发 = 所有用户输入 100% 先给该技能,处理不了再兜底给其他技能

4.3.1 优先触发的典型场景 ​

某品牌已经有一套完善的智能客服系统,能处理大部分用户问题。选择「优先触发」后:

用户说话
  ↓
优先调用品牌自有客服接口
  ↓
┌─ 品牌接口成功响应 → 直接返回结果给用户
└─ 品牌接口无法处理(返回失败)
       ↓
   自动流转到平台其他技能(闲聊、查天气…)兜底

这样既能发挥品牌方已有服务的优势,又能借助平台能力做兜底,不会让用户“问了没人答”。

⚠ 优先触发意味着所有用户输入 100% 都会先经过该技能,不做 AI 意图判断。请确保您关联的第三方服务能在处理不了时正确返回失败状态,以便系统将请求顺利流转到其他技能。

4.3.2 意图触发 vs 优先触发的字段差异 ​

配置项意图触发优先触发
技能名称必填必填
技能准入描述必填不必填(优先触发跳过意图判断)
示例必填不必填
第三方服务选择必填必填

4.4 关联第三方服务 ​

第三方服务需要提前在开发者中心 → 第三方服务中创建。创建后的第三方服务会出现在技能配置的「第三方服务选择」下拉列表中,供技能关联使用。

第三方服务的详细创建方法,请参见「开发者中心 · 第三方服务管理」说明。

5. 意图识别配置指引(两种类型通用) ​

「技能准入描述」和「示例」是意图识别的核心输入,不管选哪种技能类型,都建议按下述方法撰写。

5.1 技能准入描述撰写建议 ​

一个好的准入描述应该包含三部分:

  1. 意图定义: 这个技能是做什么的
  2. 标准触发条件: 什么样的用户表述应该触发
  3. 不可触发条件: 什么情况不应该触发(避免误判)

示例:为「查会员积分」技能撰写准入描述

当用户明确表达查询自己的会员积分、余额、等级时,应进入该技能。

标准触发条件:
- 用户询问积分余额:如“我还有多少积分”“查一下我的积分”
- 用户询问会员等级:如“我现在是什么级别”“我的会员等级”
- 用户询问积分用途:如“积分能换什么”“积分怎么用”

不可触发条件:
- 用户只是在闲聊中提到了“积分”,但并非查询自己的信息,
  如“积分制度是什么”“你们的积分好不好用”
- 用户要求增加或修改积分,如“给我加点积分”“我要兑换积分”

5.2 示例撰写建议 ​

提供正例(应该触发)和反例(不应该触发),帮助 AI 理解典型边界:

正例:
- “我有多少积分”
- “查一下余额”
- “我的会员等级是多少”

反例:
- “积分制度怎么回事” → 应走知识问答
- “帮我把积分用掉” → 应走闲聊或其他技能

📌 经验值: 准入描述越精准、反例越充分,AI 判断意图的准确率越高,误触发越少。

6. 完整使用流程 ​

6.1 自定义提示词型(平台大模型生成,可选关联 MCP 工具) ​

1. 新建技能模板(资源管理 → 技能库 → + 新建技能模版)
        ↓
2. 选择「自定义提示词型」→ 填写名称/准入描述/示例
        ↓
3. 撰写技能提示词(必填,最多 7000 字符)
        ↓
4. (可选)勾选拼接全局人设 / 插入变量(系统变量、工具变量) / 关联知识库 / 关联 MCP 工具
        ↓
5. 在产品中引用模板(产品管理 → 从模板新建 → 选择该技能模板)
        ↓
6. 用户对话时,AI 识别意图后自动进入,平台大模型按提示词生成回复

6.2 第三方服务型(需接入后端 API) ​

1. 创建第三方服务(开发者中心 → 第三方服务 → 新建)
        ↓
2. 新建技能模板(资源管理 → 技能库 → + 新建技能模版)
        ↓
3. 选择「第三方服务型」→ 选择触发方式 → 关联第三方服务
        ↓
4. 意图触发需填写准入描述与示例;优先触发无需填写
        ↓
5. 在产品中引用模板(产品管理 → 从模板新建 → 选择该技能模板)
        ↓
6. 用户对话时,AI 识别意图后触发,调用您的接口获取数据并组织回复

📌 模板在技能库中创建后不会直接生效,必须经「产品管理 → 从模板新建」引用到具体产品/智能体;引用后在产品内的修改不会影响原模板。

7. 使用场景举例 ​

场景技能名称技能类型触发方式说明
陪伴玩具情感陪伴情感安慰自定义提示词型意图触发用户表达负面情绪时,平台大模型按“温柔共情”提示词生成回复,无需后端
睡前故事讲解睡前故事自定义提示词型意图触发用户说“讲个故事”,大模型按提示词即兴创作 3-5 句短故事
品牌角色扮演皮卡丘互动自定义提示词型意图触发大模型扮演特定 IP 角色,风格化回复,无需接口
提示词型 + 调用工具实时天气播报自定义提示词型意图触发关联 MCP 天气服务的查询工具,提示词中用工具变量回填实时天气后由大模型组织成温柔话术
用户查询会员信息查会员积分第三方服务型意图触发识别到用户询问积分/等级后,调用品牌方会员系统 API 返回结果
用户查询设备保修查保修第三方服务型意图触发用户问“我的设备还在保修期吗”时触发,调用售后系统查询
硬件设备指令透传设备指令透传第三方服务型优先触发特定格式指令直接透传到您的外部服务,由该服务按 A2A 协议流式返回;Instruction 事件的 data 结构自定义,直接透传到终端,不经平台大模型改写、也不走系统指令集建模

8. 注意事项 ​

  • 技能库中是模板,需引用才生效: 技能模板本身不直接对用户生效,必须在「产品管理 → 从模板新建」中引用到具体产品/智能体
  • 产品内修改不影响模板: 在产品中对已引用技能的修改不会回写、影响原模板,两者互相独立
  • 存量已自动迁移: 原有自定义技能已自动迁移为「自定义技能模版」,已配置的技能仍保留在「智能体 → 技能」列表中,无需重新配置
  • 技能类型创建后不可修改: 需切换类型只能删除后重建
  • 提示词型必须写提示词: 提示词是提示词型模板的执行核心,不填等于“空壳模板”
  • 提示词型走平台默认模型: 生成质量与平台内置模型能力相关,复杂业务逻辑请选第三方服务型
  • 知识库为选填增强: 提示词型可以不挂知识库,仅凭提示词也能工作;挂知识库后大模型会先检索再生成
  • 关联 MCP 仅提示词型可用: 只有自定义提示词型可关联 MCP 工具,且仅能选择 MCP 服务中已标记为「公开」的服务及工具;可 0~多个、跨服务按工具组合,关联后需在提示词中用工具变量 $[服务名/工具名] 回填返回值
  • 准入描述越精准越好: 描述越清晰、边界越明确,AI 判断意图的准确率越高
  • 善用反例: 在示例中加入“不应该触发”的反例,能有效减少误触发
  • 仅企业内可见: 自定义技能模板只有您的企业账号下可见和使用,不会影响其他企业

9. 与系统技能的关系 ​

维度系统技能自定义技能模板(本篇)
谁提供平台内置企业自己创建
可见范围全平台可见仅本企业可见
是否需要接后端否(部分需硬件适配)提示词型:否;服务型:是
触发方式平台调度(意图 + 兜底)提示词型:仅意图触发;服务型:意图 / 优先二选一
是否需引用才生效需在产品中引用启用需在「从模板新建」中引用
典型场景查天气、闲聊、AIoT 指令、视觉问答…提示词型:情感安慰、故事讲解、角色扮演;服务型:查积分、查保修、设备透传…

共存关系: 一个产品/智能体可以同时引用系统技能和自定义技能模板;当自定义技能选择「优先触发」时(仅三方服务型可选),它会排在所有系统技能之前;其他情况下与系统技能一起参与 AI 意图路由。