完整示例:创建内置 AI 员工
下面通过一个完整示例,创建一名负责引导插件开发的内置 AI 员工。这个示例将员工命名为 Dev Helper,并为它配置 Tool、Skill 和系统提示词。用户说“请向 Alice 打个招呼”时,员工会加载 welcome-developer Skill,调用 greetDeveloper Tool 确认姓名,再使用用户当前的语言生成问候语。
- 定义服务端 Tool — 了解
defineTools()和 Tool 的基本结构 - 定义 Skill — 了解
SKILLS.md和 Tool 绑定 - 定义内置 AI 员工 — 了解
defineAIEmployee()和员工目录
最终效果
完成后,这个插件会提供下面的能力:
- 创建名为
Dev Helper的内置 AI 员工 - 为员工自动绑定
welcome-developerSkill - 通过 Skill 调用
greetDeveloperTool 确认开发者姓名 - 根据用户当前使用的语言生成问候语和后续问题
最终目录结构
这个示例不需要前端代码,也不需要在 src/server/plugin.ts 中手动注册。
第一步:定义 Tool
创建 src/ai/ai-employees/dev-helper/skills/welcome-developer/tools/greetDeveloper.ts:
第二步:定义 Skill
创建 src/ai/ai-employees/dev-helper/skills/welcome-developer/SKILLS.md:
因为 greetDeveloper.ts 位于当前 Skill 的 tools/ 目录,不需要再写 tools: [greetDeveloper]。
第三步:定义 AI 员工资料
创建 src/ai/ai-employees/dev-helper/index.ts:
username 是数据库中的唯一标识。发布后不要随意修改,否则 NocoBase 会把新值当成另一个内置 AI 员工。
username 不仅要保持稳定,还需要避免和其他插件或已有 AI 员工重名。如果数据库中已经存在相同的 username,插件加载时会更新对应记录,而不是创建一个彼此隔离的新员工。
重新加载插件时,代码中的 category、nickname、position、avatar、bio、greeting、默认系统提示词、Skill 和 Tool 绑定、chatSettings 以及 sort 都可能重新写入数据库。正式插件推荐使用带插件前缀的名称,比如 developer-helper-dev-assistant。
第四步:定义系统提示词
创建 src/ai/ai-employees/dev-helper/prompt.md:
至此,目录关系已经完成自动绑定:
第五步:启用并验证
重新构建或重启开发服务,并确认包含这些文件的插件已经启用。然后到 AI 员工管理页面检查:
- 可以看到
Dev Helper - 员工被标记为内置员工
- 员工的专属 Skill 中包含
welcome-developer - Skill 加载后可以使用
greetDeveloper
在对话中输入:
预期流程如下:
如果不希望 Tool 每次调用前请求用户确认,设置 defaultPermission: 'ALLOW'。涉及删除、批量修改或外部副作用的 Tool,默认保留 ASK 更合适。
小结
相关链接
- AI 员工插件开发 — 了解 Tool、Skill 和内置 AI 员工的关系
- 定义服务端 Tool — 查看
defineTools()的完整配置 - 定义 Skill — 查看
SKILLS.md的字段和写法 - 定义内置 AI 员工 — 查看
defineAIEmployee()和目录绑定 - AI 员工插件国际化 — 为示例中的管理界面文案添加翻译

