Skip to content

AI 工具 ​

这篇解决什么 ​

Function Calling 工具名存在哪、怎么挂到角色。读完能对上 ai_tool.name 必须能被 toolCallbackResolver 解析,不要手填一个不存在的 Bean。

默认端口 48080。开启见 AI 功能设计。对话绑工具见 AI 聊天对话。

示意图:角色多选工具 id。发送时按 name 注入 ChatOptions.toolCallbacks。

从哪改 ​

名称说明仓库路径
工具@RequestMapping("/ai/tool")ruoyi-office/yudao-module-ai/.../controller/admin/model/AiToolController.java
下拉GET /simple-list角色表单用
工具表ai_toolAiToolDO
管理端控制台ruoyi-office-vben/apps/web-antd/src/views/ai/model/tool/

官方菜单:工具管理 2920(挂在控制台 2760)。权限 ai:tool:query / create / update / delete。

validateToolNameExists 调 toolCallbackResolver.resolve(name),解析不到就保存失败。status:0 开启,1 关闭。

静态数据常见 name:directory_list、weather_query、user_profile_query、ps_get_person_by_id。前三个是 @Component("…"),人事查询是 @Tool 注册。另有 mcp_filesystem_read_file 来自 MCP,不是 Java @Component。

字段 ​

名称说明仓库路径
nameTool / Bean 名AiToolDO
description给模型看的说明同上
status启用同上
toolIds角色绑定的本地 idAiChatRoleDO

聊天实现:getToolCallbackListByRoleId 按角色 toolIds 查 name 再注入。MCP 客户端名单在角色的 mcpClientNames,和本表并行。

name 不是展示标题

改成中文名后解析失败,对话不会调到工具。展示文案写 description。

先有实现再入库

只插 ai_tool 行、工程里没有对应 Tool,创建接口会拒。新工具要同时加 Java(或 MCP)和这一行。

按本仓库 DO 生成的 ER。角色存的是工具 id 列表。

配置与操作 ​

走 控制台 → 工具管理(2920,/ai/console/tool)。name 必须能被 toolCallbackResolver.resolve 解析,常见 directory_list / weather_query / user_profile_query / ps_get_person_by_id。展示文案写 description,不要把 name 改成中文。角色在 聊天角色(2773)勾 toolIds。

只插表、工程里没有对应 Tool,创建会拒。MCP 工具走角色 mcpClientNames,和本表并行。开启见 AI 功能设计。

工具管理

本系统截图:控制台 → 工具管理。name 必须能解析到 Bean 或 MCP。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版