diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.9.0_1__mcp_demo.sql b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.9.0_1__mcp_demo.sql index 693c316ab..ed3a15623 100644 --- a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.9.0_1__mcp_demo.sql +++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.9.0_1__mcp_demo.sql @@ -1,16 +1,12 @@ --- ---author:chenrui---date:20251113-----for: [QQYUN-14039]MCP和插件,弄点初始化数据 ---- +-- MCP和插件初始化数据 ---- -- MCP 和 插件 INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1983474860536475649', NULL, '高德MCP', '高德MCP,包含查询路线、路况、天气等工具', 'mcp', 'sse', 'https://mcp.amap.com/sse?key=???', '', '[{\"name\":\"maps_direction_bicycling\",\"description\":\"骑行路径规划用于规划骑行通勤方案,规划时会考虑天桥、单行线、封路等情况。最大支持 500km 的骑行路线规划\",\"parameters\":[{\"name\":\"origin\",\"description\":\"出发点经纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"destination\",\"description\":\"目的地经纬度,坐标格式为:经度,纬度\",\"required\":true}]},{\"name\":\"maps_direction_driving\",\"description\":\"驾车路径规划 API 可以根据用户起终点经纬度坐标规划以小客车、轿车通勤出行的方案,并且返回通勤方案的数据。\",\"parameters\":[{\"name\":\"origin\",\"description\":\"出发点经纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"destination\",\"description\":\"目的地经纬度,坐标格式为:经度,纬度\",\"required\":true}]},{\"name\":\"maps_direction_transit_integrated\",\"description\":\"根据用户起终点经纬度坐标规划综合各类公共(火车、公交、地铁)交通方式的通勤方案,并且返回通勤方案的数据,跨城场景下必须传起点城市与终点城市\",\"parameters\":[{\"name\":\"origin\",\"description\":\"出发点经纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"destination\",\"description\":\"目的地经纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"city\",\"description\":\"公共交通规划起点城市\",\"required\":true},{\"name\":\"cityd\",\"description\":\"公共交通规划终点城市\",\"required\":true}]},{\"name\":\"maps_direction_walking\",\"description\":\"根据输入起点终点经纬度坐标规划100km 以内的步行通勤方案,并且返回通勤方案的数据\",\"parameters\":[{\"name\":\"origin\",\"description\":\"出发点经度,纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"destination\",\"description\":\"目的地经度,纬度,坐标格式为:经度,纬度\",\"required\":true}]},{\"name\":\"maps_distance\",\"description\":\"测量两个经纬度坐标之间的距离,支持驾车、步行以及球面距离测量\",\"parameters\":[{\"name\":\"origins\",\"description\":\"起点经度,纬度,可以传多个坐标,使用竖线隔离,比如120,30|120,31,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"destination\",\"description\":\"终点经度,纬度,坐标格式为:经度,纬度\",\"required\":true},{\"name\":\"type\",\"description\":\"距离测量类型,1代表驾车距离测量,0代表直线距离测量,3步行距离测量\"}]},{\"name\":\"maps_geo\",\"description\":\"将详细的结构化地址转换为经纬度坐标。支持对地标性名胜景区、建筑物名称解析为经纬度坐标\",\"parameters\":[{\"name\":\"address\",\"description\":\"待解析的结构化地址信息\",\"required\":true},{\"name\":\"city\",\"description\":\"指定查询的城市\"}]},{\"name\":\"maps_regeocode\",\"description\":\"将一个高德经纬度坐标转换为行政区划地址信息\",\"parameters\":[{\"name\":\"location\",\"description\":\"经纬度\",\"required\":true}]},{\"name\":\"maps_ip_location\",\"description\":\"IP 定位根据用户输入的 IP 地址,定位 IP 的所在位置\",\"parameters\":[{\"name\":\"ip\",\"description\":\"IP地址\",\"required\":true}]},{\"name\":\"maps_schema_personal_map\",\"description\":\"用于行程规划结果在高德地图展示。将行程规划位置点按照行程顺序填入lineList,返回结果为高德地图打开的URI链接,该结果不需总结,直接返回!\",\"parameters\":[{\"name\":\"orgName\",\"description\":\"行程规划地图小程序名称\",\"required\":true},{\"name\":\"lineList\",\"description\":\"行程列表\",\"required\":true}]},{\"name\":\"maps_around_search\",\"description\":\"周边搜,根据用户传入关键词以及坐标location,搜索出radius半径范围的POI\",\"parameters\":[{\"name\":\"keywords\",\"description\":\"搜索关键词\",\"required\":true},{\"name\":\"location\",\"description\":\"中心点经度纬度\",\"required\":true},{\"name\":\"radius\",\"description\":\"搜索半径\"}]},{\"name\":\"maps_search_detail\",\"description\":\"查询关键词搜或者周边搜获取到的POI ID的详细信息\",\"parameters\":[{\"name\":\"id\",\"description\":\"关键词搜或者周边搜获取到的POI ID\",\"required\":true}]},{\"name\":\"maps_text_search\",\"description\":\"关键字搜索 API 根据用户输入的关键字进行 POI 搜索,并返回相关的信息\",\"parameters\":[{\"name\":\"keywords\",\"description\":\"查询关键字\",\"required\":true},{\"name\":\"city\",\"description\":\"查询城市\"},{\"name\":\"citylimit\",\"description\":\"是否限制城市范围内搜索,默认不限制\"}]},{\"name\":\"maps_schema_navi\",\"description\":\" Schema唤醒客户端-导航页面,用于根据用户输入终点信息,返回一个拼装好的客户端唤醒URI,用户点击该URI即可唤起对应的客户端APP。唤起客户端后,会自动跳转到导航页面。\",\"parameters\":[{\"name\":\"lon\",\"description\":\"终点经度\",\"required\":true},{\"name\":\"lat\",\"description\":\"终点纬度\",\"required\":true}]},{\"name\":\"maps_schema_take_taxi\",\"description\":\"根据用户输入的起点和终点信息,返回一个拼装好的客户端唤醒URI,直接唤起高德地图进行打车。直接展示生成的链接,不需要总结\",\"parameters\":[{\"name\":\"slon\",\"description\":\"起点经度\"},{\"name\":\"slat\",\"description\":\"起点纬度\"},{\"name\":\"sname\",\"description\":\"起点名称\"},{\"name\":\"dlon\",\"description\":\"终点经度\",\"required\":true},{\"name\":\"dlat\",\"description\":\"终点纬度\",\"required\":true},{\"name\":\"dname\",\"description\":\"终点名称\",\"required\":true}]},{\"name\":\"maps_weather\",\"description\":\"根据城市名称或者标准adcode查询指定城市的天气\",\"parameters\":[{\"name\":\"city\",\"description\":\"城市名称或者adcode\",\"required\":true}]}]', 'enable', 1, '{\"tool_count\":15}', 'admin', '2025-10-29 18:03:53', 'admin', '2025-11-13 17:15:48', 'A04', NULL); -INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1983851685196451842', NULL, '会议管理', 'JeecgBoot会议管理模块插件,支持查询会议室,创建会议等工具', 'plugin', 'api', 'http://localhost:8080/jeecgboot', '{\"12222\":\"123\"}', '[{\"name\":\"meetingRoomQuery\",\"description\":\"查询会议室(会议地点)列表\",\"path\":\"/eoa/metting/eoaMettingRoom/list\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"pageNo\",\"description\":\"页码数\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"1\"},{\"name\":\"pageSize\",\"description\":\"每页数量\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"10\"},{\"name\":\"name\",\"description\":\"会议室名称,可以使用*来模糊查询比如(*123*)\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"id\",\"description\":\"会议室id\",\"type\":\"String\"},{\"name\":\"name\",\"description\":\"会议室名称\",\"type\":\"String\"},{\"name\":\"peopleNumber\",\"description\":\"容纳人数\",\"type\":\"Integer\"},{\"name\":\"scale_dictText\",\"description\":\"会议室型号\",\"type\":\"String\"}]},{\"name\":\"addMetting\",\"description\":\"新增会议\",\"path\":\"/eoa/metting/eoaMetting/add\",\"method\":\"POST\",\"enabled\":true,\"parameters\":[{\"name\":\"name\",\"description\":\"会议名称\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"beginTime\",\"description\":\"开始时间,格式:`yyyy-MM-dd HH:mm:ss`\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"endTime\",\"description\":\"结束时间,格式:`yyyy-MM-dd HH:mm:ss`\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"location\",\"description\":\"会议室id\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"content\",\"description\":\"会议内容\",\"type\":\"String\",\"location\":\"Body\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"success\",\"description\":\"是否成功\",\"type\":\"Boolean\"},{\"name\":\"message\",\"description\":\"描述信息\",\"type\":\"String\"}]},{\"name\":\"mettingQuery\",\"description\":\"查询会议列表数据\",\"path\":\"/eoa/metting/eoaMetting/list\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"pageNo\",\"description\":\"页码数\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"pageSize\",\"description\":\"每页数量\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"name\",\"description\":\"会议名称,可以用*来模糊查询比如(*123*)\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"name\",\"description\":\"会议名称\",\"type\":\"String\"},{\"name\":\"status_dictText\",\"description\":\"状态\",\"type\":\"String\"},{\"name\":\"location_dictText\",\"description\":\"会议地点\",\"type\":\"String\"},{\"name\":\"location\",\"description\":\"会议地点id\",\"type\":\"String\"},{\"name\":\"id\",\"description\":\"会议id\",\"type\":\"String\"},{\"name\":\"content\",\"description\":\"会议内容\",\"type\":\"String\"},{\"name\":\"beginTime\",\"description\":\"开始时间\",\"type\":\"String\"},{\"name\":\"endTime\",\"description\":\"结束时间\",\"type\":\"String\"}]}]', 'enable', 1, '{\"tokenParamName\":\"X-Access-Token\",\"tool_count\":3,\"authType\":\"token\",\"tokenParamValue\":\"\"}', 'admin', '2025-10-30 19:01:15', 'admin', '2025-11-13 17:17:10', 'A04', NULL); INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1986312214909321217', NULL, '商品采购助手', '为AI Agent提供商品管理API(DEMO)', 'plugin', 'api', NULL, '', '[{\"name\":\"list_products\",\"description\":\"查询可购买的商品列表,支持按分类和关键词筛选;商品的id只能通过这个接口查询。\",\"path\":\"/demo/shop/products\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"category\",\"description\":\"商品分类,可选值: \\\"电子产品\\\", \\\"图书\\\", \\\"生活用品\\\", \\\"食品\\\"\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"},{\"name\":\"keyword\",\"description\":\"搜索关键词,用于在商品名称和描述中搜索\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"id\",\"description\":\"商品ID,对应下单的ProductId\",\"type\":\"String\"},{\"name\":\"name\",\"description\":\"商品名称\",\"type\":\"String\"},{\"name\":\"price\",\"description\":\"价格(元)\",\"type\":\"String\"},{\"name\":\"category\",\"description\":\"分类\",\"type\":\"String\"},{\"name\":\"description\",\"description\":\"描述\",\"type\":\"String\"},{\"name\":\"stock\",\"description\":\"库存数量\",\"type\":\"String\"}]},{\"name\":\"check_stock\",\"description\":\"查询指定商品的当前库存情况\",\"path\":\"/demo/shop/stock\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"productId\",\"description\":\"商品ID\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"productId\",\"description\":\"商品ID\",\"type\":\"String\"},{\"name\":\"productName\",\"description\":\"商品名称\",\"type\":\"String\"},{\"name\":\"stock\",\"description\":\"当前库存数量\",\"type\":\"String\"},{\"name\":\"available\",\"description\":\"是否有货\",\"type\":\"Boolean\"}]},{\"name\":\"create_order\",\"description\":\"为用户创建购买订单\",\"path\":\"/demo/shop/purchase\",\"method\":\"POST\",\"enabled\":true,\"parameters\":[{\"name\":\"productId\",\"description\":\"要购买的商品的ID,对应商品的信息的id\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"quantity\",\"description\":\" 购买数量,必须大于0\",\"type\":\"Integer\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"userId\",\"description\":\"用户ID,用于关联订单\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"id\",\"description\":\"订单ID\",\"type\":\"String\"},{\"name\":\"productId\",\"description\":\"商品ID\",\"type\":\"String\"},{\"name\":\"productName\",\"description\":\"商品名称\",\"type\":\"String\"},{\"name\":\"quantity\",\"description\":\"购买数量\",\"type\":\"String\"},{\"name\":\"unitPrice\",\"description\":\"单价\",\"type\":\"String\"},{\"name\":\"totalAmount\",\"description\":\"总金额\",\"type\":\"String\"},{\"name\":\"status\",\"description\":\"订单状态\",\"type\":\"String\"},{\"name\":\"createTime\",\"description\":\"创建时间\",\"type\":\"String\"}]},{\"name\":\"confirm_payment\",\"description\":\"确认订单支付,扣减商品库存\",\"path\":\"/demo/shop/stock/deduct\",\"method\":\"POST\",\"enabled\":true,\"parameters\":[{\"name\":\"orderId\",\"description\":\"订单ID\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"orderId\",\"description\":\"订单ID\",\"type\":\"String\"},{\"name\":\"productId\",\"description\":\"商品ID\",\"type\":\"String\"},{\"name\":\"productName\",\"description\":\"商品名称\",\"type\":\"String\"},{\"name\":\"deductedQuantity\",\"description\":\"扣减的数量\",\"type\":\"String\"},{\"name\":\"remainingStock\",\"description\":\"剩余库存\",\"type\":\"String\"},{\"name\":\"orderStatus\",\"description\":\"订单状态\",\"type\":\"String\"}]},{\"name\":\"get_order_details\",\"description\":\"查询指定订单的详细信息\",\"path\":\"/demo/shop/order\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"orderId\",\"description\":\"订单ID\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"\"}],\"responses\":[]},{\"name\":\"get_categories\",\"description\":\"获取所有可用的商品分类\",\"path\":\"/demo/shop/categories\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[],\"responses\":[]}]', 'enable', 1, '{\"tokenParamName\":\"X-Access-Token\",\"tool_count\":6,\"authType\":\"token\",\"tokenParamValue\":\"\"}', 'admin', '2025-11-06 13:58:31', 'admin', '2025-11-13 17:16:57', 'A05A01A01', NULL); INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1988091188723412994', NULL, 'BraveSearch', '基于Brave的网络检索插件,支持使用Brave搜索资料', 'plugin', 'api', 'https://api.search.brave.com', '{\"Accept\":\"*/*\",\"X-Subscription-Token\":\"???\"}', '[{\"name\":\"search\",\"description\":\"从搜索引擎根据问题搜索结果\",\"path\":\"/res/v1/web/search\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"count\",\"description\":\"查询数量\",\"type\":\"String\",\"location\":\"Query\",\"required\":false,\"defaultValue\":\"10\"},{\"name\":\"q\",\"description\":\"查询内容(问题)\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"title\",\"description\":\"结果标题\",\"type\":\"String\"},{\"name\":\"description\",\"description\":\"结果描述\",\"type\":\"String\"},{\"name\":\"url\",\"description\":\"结果原文地址\",\"type\":\"String\"}]}]', 'enable', 1, '{\"tokenParamName\":\"X-Subscription-Token\",\"tool_count\":1,\"authType\":\"token\",\"tokenParamValue\":\"BSATNKM5e6Hm_2LewptVvLSn0eDzWf6\"}', 'admin', '2025-11-11 11:47:31', 'admin', '2025-11-13 17:16:52', 'A05A01A01', NULL); -INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1988146198605819905', NULL, 'JeecgBoot CMS', 'Jeecgboot Cms模块插件,支持向Cms系统中发布文章。', 'plugin', 'api', NULL, '', '[{\"name\":\"add_article\",\"description\":\"调用接口,发布新文章\",\"path\":\"/eoa/cms/eoaCmsArticle/add\",\"method\":\"POST\",\"enabled\":true,\"parameters\":[{\"name\":\"izApproval\",\"description\":\"是否需要审核,\\\"1\\\"需要;\\\"0\\\"不需要\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"1\"},{\"name\":\"title\",\"description\":\"文章标题\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"subTitle\",\"description\":\"副标题\",\"type\":\"String\",\"location\":\"Body\",\"required\":false,\"defaultValue\":\"\"},{\"name\":\"columnId\",\"description\":\"栏目,写死为\\\"1234767975869870082\\\"\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"1234767975869870082\"},{\"name\":\"content\",\"description\":\"文章正文\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"\"},{\"name\":\"isPublish\",\"description\":\"是否发布\",\"type\":\"String\",\"location\":\"Body\",\"required\":false,\"defaultValue\":\"1\"},{\"name\":\"keywords\",\"description\":\"关键字\",\"type\":\"String\",\"location\":\"Body\",\"required\":false,\"defaultValue\":\"\"},{\"name\":\"summary\",\"description\":\"摘要\",\"type\":\"String\",\"location\":\"Body\",\"required\":false,\"defaultValue\":\"\"},{\"name\":\"type\",\"description\":\"类型\",\"type\":\"String\",\"location\":\"Body\",\"required\":true,\"defaultValue\":\"article\"}],\"responses\":[]}]', 'enable', 1, '{\"tokenParamName\":\"X-Access-Token\",\"tool_count\":1,\"authType\":\"token\",\"tokenParamValue\":\"\"}', 'admin', '2025-11-11 15:26:06', 'admin', '2025-11-13 17:16:40', 'A05A01A01', NULL); INSERT INTO `airag_mcp` (`id`, `icon`, `name`, `descr`, `category`, `type`, `endpoint`, `headers`, `tools`, `status`, `synced`, `metadata`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`) VALUES ('1988208474780168193', NULL, 'Unsplash', '图片搜索插件,支持用关键词搜索相关图片', 'plugin', 'api', 'https://api.unsplash.com', '{\"Accept-Version\":\"v1\",\"Authorization\":\"Client-ID ???\"}', '[{\"name\":\"search_photos\",\"description\":\"通过接口查询与关键词相关的图片列表。\",\"path\":\"/search/photos\",\"method\":\"GET\",\"enabled\":true,\"parameters\":[{\"name\":\"page\",\"description\":\"分页页码,数字类型\",\"type\":\"Number\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"1\"},{\"name\":\"per_page\",\"description\":\"每页数量\",\"type\":\"Number\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"1\"},{\"name\":\"query\",\"description\":\"关键词,对图片的描述(查询条件)\",\"type\":\"String\",\"location\":\"Query\",\"required\":true,\"defaultValue\":\"\"}],\"responses\":[{\"name\":\"results\",\"description\":\"查询到的结果集合\",\"type\":\"Array\"},{\"name\":\"urls\",\"description\":\"结果集合中的图片地址,根据清晰度有多个选项\",\"type\":\"Array\"}]}]', 'enable', 1, '{\"tokenParamName\":\"Authorization\",\"tool_count\":1,\"authType\":\"token\",\"tokenParamValue\":\"Client-ID Ixug6rX2j1PMb08A0HRpwny8dAWi1vBLN1gymow75LQ\"}', 'admin', '2025-11-11 19:33:34', 'admin', '2025-11-13 17:16:45', 'A05A01A01', NULL); -- AI Flow -INSERT INTO `airag_flow` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`, `application_name`, `name`, `descr`, `icon`, `chain`, `design`, `status`, `metadata`) VALUES ('1984100851260674049', 'admin', '2025-10-31 11:31:20', 'admin', '2025-11-13 17:24:30', 'A05A01A01', NULL, 'jeecg', '会议管理员-Flow', '使用会议管理插件,实现会议的管理功能', '', 'THEN(\n start.tag(\'start-node\'),\n llm.tag(\'247201385538531328\'),\n end.tag(\'247201421726986240\')\n).tag(\"start-node\")', '{\"nodes\":[{\"id\":\"start-node\",\"type\":\"start\",\"x\":300,\"y\":408,\"properties\":{\"text\":\"开始\",\"remarks\":\"\",\"options\":{},\"inputParams\":[{\"field\":\"content\",\"name\":\"用户问题\",\"type\":\"string\",\"required\":false},{\"field\":\"history\",\"name\":\"历史记录\",\"type\":\"string[]\",\"required\":false}],\"outputParams\":[],\"height\":92,\"width\":332}},{\"id\":\"247201385538531328\",\"type\":\"llm\",\"x\":786,\"y\":474,\"properties\":{\"text\":\"LLM\",\"options\":{\"model\":{\"modeId\":\"1890232564262739969\",\"params\":{\"model\":\"OpenAI\",\"temperature\":0.7}},\"history\":10,\"messages\":[{\"role\":\"system\",\"content\":\"# 角色:会议管理员\\n负责查询和安排会议的专业人员,确保会议高效顺利进行。\\n\\n## 目标:\\n1. 及时查询各参与者的空闲时间并安排会议。\\n2. 确保会议议程清晰,并通知所有相关人员。\\n\\n## 技能:\\n1. 熟悉日历管理工具和会议软件操作。\\n2. 有效沟通能力,能协调不同参与者的时间安排。\\n3. 具备组织能力,能够制定清晰的会议议程。\\n\\n## 工作流:\\n1. 查询各参与者的可用时间。\\n2. 安排会议时间,并确认所有参与者的出席。\\n3. 准备会议议程,并发送会议通知。\\n\\n## 输出格式:\\n请提供会议时间、地点、参与者名单及会议议程。\\n\\n## 限制:\\n- 不得安排参与者无法出席的时间。\\n- 需遵循公司关于会议安排的政策。\\n- 不得泄露参与者的私人信息。\"},{\"role\":\"user\",\"content\":\"{{question}}\"}],\"plugins\":[{\"pluginId\":\"1983851685196451842\",\"pluginName\":\"会议管理工具\",\"category\":\"mcp\"}]},\"inputParams\":[{\"field\":\"content\",\"name\":\"question\",\"nodeId\":\"start-node\"}],\"outputParams\":[{\"field\":\"text\",\"name\":\"回复内容\",\"type\":\"string\"}],\"height\":180,\"width\":332}},{\"id\":\"247201421726986240\",\"type\":\"end\",\"x\":1272,\"y\":441,\"properties\":{\"text\":\"结束\",\"options\":{\"outputText\":true,\"outputContent\":\"{{res}}\"},\"inputParams\":[],\"outputParams\":[{\"field\":\"text\",\"name\":\"res\",\"nodeId\":\"247201385538531328\"}],\"height\":136,\"width\":332}}],\"edges\":[{\"id\":\"247201385542725632\",\"type\":\"base-edge\",\"sourceNodeId\":\"start-node\",\"targetNodeId\":\"247201385538531328\",\"sourceAnchorId\":\"start-node_output\",\"targetAnchorId\":\"247201385538531328_input\",\"pointsList\":[{\"x\":466,\"y\":393},{\"x\":566,\"y\":393},{\"x\":520,\"y\":415},{\"x\":620,\"y\":415}]},{\"id\":\"247201421726986241\",\"type\":\"base-edge\",\"sourceNodeId\":\"247201385538531328\",\"targetNodeId\":\"247201421726986240\",\"sourceAnchorId\":\"247201385538531328_output\",\"targetAnchorId\":\"247201421726986240_input\",\"pointsList\":[{\"x\":952,\"y\":415},{\"x\":1052,\"y\":415},{\"x\":1006,\"y\":404},{\"x\":1106,\"y\":404}]}]}', 'enable', '{\"outputs\":[{\"field\":\"outputText\",\"type\":\"string\"}],\"inputs\":[{\"field\":\"content\",\"name\":\"用户问题\",\"required\":false,\"type\":\"string\"},{\"field\":\"history\",\"name\":\"历史记录\",\"required\":false,\"type\":\"string[]\"}]}'); INSERT INTO `airag_flow` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`, `application_name`, `name`, `descr`, `icon`, `chain`, `design`, `status`, `metadata`) VALUES ('1988073273760501762', 'admin', '2025-11-11 10:36:20', 'admin', '2025-11-13 15:56:07', 'A05A01A01', NULL, 'jeecg', '软文生成器', '', '', 'THEN(\n start.tag(\'start-node\'),\n llm.tag(\'251170889153376256\'),\n llm.tag(\'251190209648521216\'),\n llm.tag(\'251190922428542976\'),\n llm.tag(\'251246385341919232\'),\n end.tag(\'251191126401740800\')\n).tag(\"start-node\")', '{\"nodes\":[{\"id\":\"start-node\",\"type\":\"start\",\"x\":332.8947368421053,\"y\":589.0526315789475,\"properties\":{\"text\":\"开始\",\"remarks\":\"\",\"options\":{},\"inputParams\":[{\"field\":\"content\",\"name\":\"目的地\",\"type\":\"string\",\"required\":true},{\"field\":\"history\",\"name\":\"历史记录\",\"type\":\"string[]\",\"required\":false},{\"field\":\"from\",\"name\":\"出发地\",\"type\":\"string\",\"required\":true},{\"field\":\"time\",\"name\":\"出发时间\",\"type\":\"string\",\"required\":true},{\"field\":\"peopleNum\",\"name\":\"人数\",\"type\":\"number\",\"required\":true}],\"outputParams\":[],\"height\":92,\"width\":332}},{\"id\":\"251170889153376256\",\"type\":\"llm\",\"x\":685.9473684210526,\"y\":381.05263157894734,\"properties\":{\"text\":\"意图和需求分析\",\"options\":{\"model\":{\"modeId\":\"1890232564262739969\",\"params\":{\"model\":\"OpenAI\",\"temperature\":0.7}},\"history\":3,\"messages\":[{\"role\":\"system\",\"content\":\"# 角色\\n你是自驾游攻略生成的需求分析师\\n\\n## 目标:\\n- 分析用户提供的主题信息,归纳整理出实际需求列表。\\n\\n## 技能:\\n1. 信息提取与分析能力\\n2. 旅游规划与建议能力\\n3. 数据查询与整合能力\\n\\n## 工作流:\\n1. 收集用户提供的主题信息并进行分类。\\n2. 确定用户的目标和需求,并归纳整理。\\n3. 列出需要查询的资料和天气、路况信息。\\n\\n## 输出格式:\\n- 列表形式,包含目标和需求、查询资料列表、天气和路况信息。\\n\\n## 限制:\\n- 不得提供未经过验证的信息。\\n- 所有数据需标注来源,不确定信息用[需核实]标记。\"},{\"role\":\"user\",\"content\":\"出发地:{{from}}\\n目的地:{{userQuestion}}\\n计划时间:{{time}}\\n人数:{{peopleNum}}\"}]},\"inputParams\":[{\"field\":\"content\",\"name\":\"userQuestion\",\"nodeId\":\"start-node\"},{\"field\":\"from\",\"name\":\"from\",\"nodeId\":\"start-node\"},{\"field\":\"time\",\"name\":\"time\",\"nodeId\":\"start-node\"},{\"field\":\"peopleNum\",\"name\":\"peopleNum\",\"nodeId\":\"start-node\"}],\"outputParams\":[{\"field\":\"text\",\"name\":\"回复内容\",\"type\":\"string\"}],\"height\":180,\"width\":332}},{\"id\":\"251190209648521216\",\"type\":\"llm\",\"x\":943.2631578947365,\"y\":632.0526315789475,\"properties\":{\"text\":\"资料查询\",\"options\":{\"model\":{\"modeId\":\"1890232564262739969\",\"params\":{\"model\":\"OpenAI\",\"temperature\":0.7}},\"history\":30,\"messages\":[{\"role\":\"system\",\"content\":\"## 角色\\n\\n\\n你是一名 自驾游资料查询师(DataAgent),专注于为下游的“攻略生成Agent”提供精准、结构化的自驾游资料。\\n\\n\\n------\\n\\n\\n## 职责目标\\n 1. 根据输入内容(出发地、目的地、行程需求等),直接执行资料查询任务,不再向用户提问。\\n 2. 收集并整理以下四类信息:\\n  - 🚗 路线与导航规划信息\\n  - 🏞️ 沿途及目的地的景点和游玩项目\\n  - 🏨 住宿与周边美食信息\\n  - ☁️ 沿途及目的地天气信息\\n 3. 输出清晰、结构化的数据结果,供下一个Agent生成攻略使用。\\n\\n\\n------\\n\\n\\n## 能力与工具\\n\\n\\n- maps 工具\\n - 查询路线与导航规划信息(距离、时长、推荐路线、途经地)。\\n - 查询沿途及目的地的住宿与餐饮信息。\\n - 查询沿途及目的地的实时或近期天气信息。\\n\\n\\n- search 工具\\n - 查询沿途及目的地的景点、游玩项目、特色体验、门票及评价等。\\n\\n\\n------\\n\\n\\n## 工作流程\\n 1. 接收任务\\n  - 使用用户提供的现有信息(不提问、不二次确认)。\\n 2. 资料查询\\n  - 调用 maps 工具 获取路线、住宿、美食、天气。\\n  - 调用 search 工具 获取景点和游玩项目。\\n 3. 资料整理\\n  - 将查询结果按类型整理成结构化资料包。\\n  - 每条数据需注明来源(maps / search)。\\n 4. 结果输出\\n  - 输出格式清晰,便于下游Agent直接使用。\\n\\n\\n------\\n\\n\\n## 输出格式示例\\n\\n\\n```\\n{\\n  \\\"route_info\\\": [\\n    {\\n      \\\"from\\\": \\\"北京\\\",\\n      \\\"to\\\": \\\"张家口\\\",\\n      \\\"distance\\\": \\\"220km\\\",\\n      \\\"duration\\\": \\\"3小时\\\",\\n      \\\"route_detail\\\": \\\"经京藏高速G6\\\",\\n      \\\"source\\\": \\\"maps\\\"\\n    }\\n  ],\\n  \\\"sights\\\": [\\n    {\\n      \\\"name\\\": \\\"崇礼滑雪场\\\",\\n      \\\"tags\\\": [\\\"滑雪\\\", \\\"冬季运动\\\"],\\n      \\\"description\\\": \\\"亚洲知名滑雪胜地\\\",\\n      \\\"source\\\": \\\"search\\\"\\n    }\\n  ],\\n  \\\"hotels\\\": [\\n    {\\n      \\\"name\\\": \\\"张家口云顶假日酒店\\\",\\n      \\\"rating\\\": \\\"4.6\\\",\\n      \\\"address\\\": \\\"崇礼区奥运大道88号\\\",\\n      \\\"source\\\": \\\"maps\\\"\\n    }\\n  ],\\n  \\\"foods\\\": [\\n    {\\n      \\\"name\\\": \\\"张家口烧麦\\\",\\n      \\\"type\\\": \\\"地方特色\\\",\\n      \\\"recommendation\\\": \\\"崇礼老街美食街\\\",\\n      \\\"source\\\": \\\"maps\\\"\\n    }\\n  ],\\n  \\\"weather\\\": [\\n    {\\n      \\\"location\\\": \\\"崇礼\\\",\\n      \\\"condition\\\": \\\"晴\\\",\\n      \\\"temperature\\\": \\\"5°C~12°C\\\",\\n      \\\"wind\\\": \\\"微风\\\",\\n      \\\"source\\\": \\\"maps\\\"\\n    }\\n  ]\\n}\\n```\\n\\n\\n------\\n\\n\\n## 限制与规范\\n - 不生成行程攻略、总结或建议性文字。\\n - 不提问用户,只执行既定任务。\\n - 不包含任何虚构或未经验证的信息。\\n - 不涉及隐私、政治或违法内容。\\n - 不确定的数据需以 [需核实] 标识。\\n\\n\"},{\"role\":\"user\",\"content\":\"需求:{{demand}}\"}],\"plugins\":[{\"pluginId\":\"1983474860536475649\",\"pluginName\":\"高德\",\"category\":\"mcp\"},{\"pluginId\":\"1988091188723412994\",\"pluginName\":\"BraveSearch\",\"category\":\"mcp\"}]},\"inputParams\":[{\"field\":\"text\",\"name\":\"demand\",\"nodeId\":\"251170889153376256\"}],\"outputParams\":[{\"field\":\"text\",\"name\":\"回复内容\",\"type\":\"string\"}],\"height\":180,\"width\":332}},{\"id\":\"251190922428542976\",\"type\":\"llm\",\"x\":1225.0526315789468,\"y\":370.6842105263157,\"properties\":{\"text\":\"生成文章\",\"options\":{\"model\":{\"modeId\":\"1890232564262739969\",\"params\":{\"model\":\"OpenAI\",\"temperature\":0.7}},\"history\":15,\"messages\":[{\"role\":\"system\",\"content\":\"# 角色定位:实地体验派自驾游攻略博主\\n\\n\\n你是一名热爱公路旅行、记录真实体验的自驾游达人博主。  \\n你的任务是为读者打造一份**能直接照着走的实地自驾游攻略**——兼顾实用性与可读性,让人看完就想出发。  \\n---\\n## 目标\\n1. 输出结构清晰、完整且可直接使用的自驾游攻略。  \\n2. 以**亲历者口吻**撰写内容,语言自然、有温度、具感染力。  \\n3. 帮助用户在有限时间内,完成一次轻松、安全、体验丰富的公路旅程。  \\n---\\n## 技能\\n1. **路线规划高手**:能结合季节、路况、天气等因素,规划最顺路、最合理的行程。  \\n2. **信息整合专家**:能整合住宿、美食、加油点、景点开放时间等要素,构成完整旅程。  \\n3. **避坑指导员**:能在攻略中明确提示潜在风险与替代路线,确保安全顺利出行。  \\n4. **文案风格创作者**:文风真实、有共鸣,兼具实用与情感温度。  \\n---\\n## 工作流程\\n1. **接收资料**\\n   - 使用上游 DataAgent 提供的结构化资料(路线、天气、景点、住宿、美食等)。  \\n   - 明确出发地点、目的地,时间和人数。\\n2. **内容整合**\\n   - 基于资料内容,编排合理的日程与路线逻辑。  \\n   - 为每天生成住宿与周边推荐。  \\n   - 根据沿途特点补充打卡点、体验亮点与避坑提醒。  \\n3. **配图搜索**\\n   - 基于文章中的景点,使用图片搜索工具搜索相关图片\\n   - 获取图片链接后,嵌入到文章中。\\n   - 每篇文章可以使用3张左右图片。\\n3. **攻略输出**\\n   - 输出格式固定、排版规范、语气一致、可直接用于图文发布。  \\n---\\n## 输出格式规范\\n\\n\\n\\n\\n攻略必须严格包含以下结构模块(顺序固定):  \\n\\n\\n\\n\\n### 标题\\n一句话吸引读者,让人有“立刻出发”的冲动。  \\n> 示例:  \\n> 「这条西北环线美到窒息,一路风光大片连连!」  \\n---\\n### 重要概述信息(开篇摘要)\\n以简洁的段落或表格概述行程关键信息:  \\n- 出发地与目的地  \\n- 推荐出行季节  \\n- 建议行程天数  \\n- 总里程 / 主要路线  \\n- 车辆与路况建议  \\n- 是否适合家庭 / 情侣 / 越野爱好者  \\n\\n\\n\\n\\n> 示例:  \\n> **推荐季节**:9月下旬 - 10月中旬  \\n> **总里程**:约820公里  \\n> **适合人群**:喜欢自然风光与摄影的旅行者  \\n---\\n### 行程安排(按天)\\n分天描述路线、行驶距离、推荐出发时间、路况建议:  \\n- 每天路线与行驶信息  \\n- 沿途休息站 / 加油点  \\n- 建议游玩节奏  \\n\\n\\n\\n\\n> 示例:  \\n> **Day 1:成都 → 理县(约220km / 4小时)**  \\n> 上午出发,经成绵高速转都汶高速,全程路况优。途中可在汶川服务区短暂停留休息。  \\n---\\n### 每日住宿与周边推荐\\n为每天行程提供住宿推荐及周边美食娱乐选项:  \\n- 酒店名称、星级、亮点  \\n- 周边美食推荐(餐厅/夜宵/特色菜)  \\n- 休闲娱乐建议  \\n\\n\\n\\n\\n> 示例:  \\n> **住宿推荐**:理县瑞云山居(¥380起 / 含早餐)  \\n> **周边美食**:理县藏餐坊(推荐青稞酒与手抓羊)  \\n---\\n### 沿途打卡与景点推荐\\n精选每段路线的代表性景点与小众体验点,注明特色与亮点:  \\n> 示例:  \\n> - 毕棚沟:秋色摄影圣地,10月最佳观赏期  \\n> - 古尔沟温泉:天然碳酸泉,适合行程末放松  \\n---\\n### 避坑提醒\\n实地经验总结,包括但不限于:  \\n- 天气与季节风险  \\n- 路段注意事项(隧道、陡坡、限速)  \\n- 油站/信号盲区提示  \\n- 门票与政策更新  \\n\\n\\n> 示例:  \\n> - 国庆期间毕棚沟限流,建议提前预约。  \\n> - 高原路段昼夜温差大,请携带保暖衣物。  \\n---\\n### 结语\\n以温暖、真实的语气收尾,让读者感受到旅途的意义与期待。  \\n> 示例:  \\n> “这条路,值得你放慢脚步去感受。愿每一次出发,都有风景,也有故事。”  \\n---\\n## 风格要求\\n- 文字自然、口语化、有画面感。  \\n- 语气积极向上,不生硬、不堆砌。  \\n- 以**“亲身体验分享”**为写作视角。  \\n- 适合直接发布到公众号 / 小红书 / 旅游类平台。  \\n---\\n## 限制与合规说明\\n- 不虚构信息,所有数据基于实际资料。  \\n- 不涉及隐私、歧视或违法内容。  \\n- 直接输出攻略正文,不输出系统提示、元信息或额外解释。  \\n\\n\"},{\"role\":\"user\",\"content\":\"## 需求\\n{{demand}}\\n## 资料\\n{{resources}}\"}],\"plugins\":[{\"pluginId\":\"1988208474780168193\",\"pluginName\":\"图片搜索\",\"category\":\"mcp\"}]},\"inputParams\":[{\"field\":\"text\",\"name\":\"demand\",\"nodeId\":\"251170889153376256\"},{\"field\":\"text\",\"name\":\"resources\",\"nodeId\":\"251190209648521216\"}],\"outputParams\":[{\"field\":\"text\",\"name\":\"回复内容\",\"type\":\"string\"}],\"height\":180,\"width\":332}},{\"id\":\"251191126401740800\",\"type\":\"end\",\"x\":1743.594965675057,\"y\":370.28146453089266,\"properties\":{\"text\":\"结束\",\"options\":{\"outputText\":true,\"outputContent\":\"{{result}}\"},\"inputParams\":[],\"outputParams\":[{\"field\":\"text\",\"name\":\"result\",\"nodeId\":\"251246385341919232\"}],\"height\":136,\"width\":332}},{\"id\":\"251246385341919232\",\"type\":\"llm\",\"x\":1438.6270022883289,\"y\":637.045766590389,\"properties\":{\"text\":\"润色并存储\",\"options\":{\"model\":{\"modeId\":\"1890232564262739969\",\"params\":{\"model\":\"OpenAI\",\"temperature\":0.7}},\"history\":10,\"messages\":[{\"role\":\"system\",\"content\":\"# 角色  \\n你是一个**出行攻略与富文本排版专家(TravelContentStylist)**,负责将普通文本文章转化为专业级、高端杂志风格的HTML富文本内容。\\n\\n\\n---\\n\\n\\n## 🎯 目标  \\n1. 将输入的原始文章格式化为整洁、美观、结构统一的HTML富文本(视觉风格参考蓝灰色出行攻略模板)。  \\n2. 自动提取文章的标题、副标题、关键词、摘要等信息。  \\n3. 将富文本与提取信息一并存储到系统中。  \\n\\n\\n---\\n\\n\\n## 💡 富文本设计规范  \\n\\n\\n### 页面整体样式示意 \\n```html\\n
\\n\\n\\n\\n\\n 
\\n   

文章主标题

\\n   

文章副标题

\\n 
\\n\\n\\n\\n\\n  \\n 
\\n   

出行季节:金秋10月(2023-10-25)

\\n   

推荐天数:1-2天(可夜宿济南/南京)

\\n   

总公里数:约1200km

\\n   

人数与车型建议:5人,推荐中大型SUV或MPV,空间舒适。

\\n 
\\n  \\n
\\n```  \\n设计说明\\n1. 整体布局\\n  - 最大宽度约 880px,居中显示,整体背景为浅灰白色(#FAFBFC)。\\n  - 内边距较大(40px),四周有圆角(12px)和轻微阴影(box-shadow: 0 0 12px rgba(0,0,0,0.05)),营造卡片式感觉。\\n  - 使用了中文常用的字体组合(苹方、微软雅黑),兼顾现代感与易读性,文字颜色为深灰色(#333)。\\n2. 标题部分\\n  - 主标题突出(2em,蓝色 #1A73E8,粗体),副标题较小(1.2em,深灰色),并在底部有分隔线强化层次感。\\n3. 信息概览模块\\n  - 背景为淡蓝色(#F3F7FC),左侧有蓝色竖条(4px),像标签式信息卡。\\n  - 内部列出了出行季节、推荐天数、总公里数和人数/车型建议,文字加粗强调关键信息。\\n  - 模块与下方内容有明显间距(28px),便于视觉区分。\\n4. 行程安排模块\\n  - 模块标题蓝色,带下划分隔线,列表为有序列表,行距 1.8,便于阅读行程顺序。\\n  - 每天的路线、里程和时间都清晰标注,关键内容加粗突出。\\n5. 沿途打卡模块\\n  - 模块标题与行程安排相同风格,列表为无序列表,展示沿途景点和推荐打卡地。\\n  - 行距同样较大(1.8),保持阅读舒适度。\\n6. 注意事项模块(避坑提醒)\\n  - 模块标题用红色(#D93025)和粉色分隔线(#F3C1BE),突出警示性质。\\n  - 列表中重点信息加粗(施工提醒、天气因素、油费与通行),提醒用户注意行程安全和预算。\\n整体风格 清爽、层次分明、信息易抓取,既有蓝色调的出行信息模块,又有红色警示提醒,结合圆角卡片和阴影设计,使文章既专业又具有亲和力。\\n\\n\\n3. 提取标题、副标题、关键词、摘要并生成结构化信息:\\n\\n\\n{\\n  \\\"title\\\": \\\"文章主标题\\\",\\n  \\\"subtitle\\\": \\\"文章副标题\\\",\\n  \\\"keywords\\\": [\\\"关键词1\\\", \\\"关键词2\\\", \\\"关键词3\\\"],\\n  \\\"summary\\\": \\\"简要描述文章主题与亮点。\\\"\\n}\\n4. 将HTML富文本与提取信息存入系统。\\n5. 返回执行结果(不输出HTML内容本身):\\n{\\n  \\\"status\\\": \\\"success\\\",\\n  \\\"message\\\": \\\"富文本文章已成功优化并入库。\\\"\\n}\\n\\n\\n\\n\\n⸻\\n\\n\\n\\n\\n## 输出要求\\n- 不输出HTML正文,只返回操作结果。\\n- 富文本需使用

包裹正文段落,整体结构采用

容器。\\n- 排版需超过一般模板美感(具备视觉层次、柔和色彩与可印刷风格)。\\n- 输出格式严格为JSON结果对象,保证系统可解析与存储。\\n- 注意原文内容不要丢失,特别是配图等信息\\n\\n\\n\\n\\n\\n\"},{\"role\":\"user\",\"content\":\"{{content}}\"}],\"plugins\":[{\"pluginId\":\"1988146198605819905\",\"pluginName\":\"JeecgBoot CMS\",\"category\":\"mcp\"}]},\"inputParams\":[{\"field\":\"text\",\"name\":\"content\",\"nodeId\":\"251190922428542976\"}],\"outputParams\":[{\"field\":\"text\",\"name\":\"回复内容\",\"type\":\"string\"}],\"height\":180,\"width\":332}}],\"edges\":[{\"id\":\"251170889157570560\",\"type\":\"base-edge\",\"sourceNodeId\":\"start-node\",\"targetNodeId\":\"251170889153376256\",\"sourceAnchorId\":\"start-node_output\",\"targetAnchorId\":\"251170889153376256_input\",\"pointsList\":[{\"x\":498.8947368421053,\"y\":574.0526315789475},{\"x\":598.8947368421053,\"y\":574.0526315789475},{\"x\":419.9473684210526,\"y\":322.05263157894734},{\"x\":519.9473684210526,\"y\":322.05263157894734}]},{\"id\":\"251190922432737280\",\"type\":\"base-edge\",\"sourceNodeId\":\"251190209648521216\",\"targetNodeId\":\"251190922428542976\",\"sourceAnchorId\":\"251190209648521216_output\",\"targetAnchorId\":\"251190922428542976_input\",\"pointsList\":[{\"x\":1109.2631578947367,\"y\":573.0526315789475},{\"x\":1209.2631578947367,\"y\":573.0526315789475},{\"x\":959.0526315789468,\"y\":311.6842105263157},{\"x\":1059.0526315789468,\"y\":311.6842105263157}]},{\"id\":\"251221680912330752\",\"type\":\"base-edge\",\"sourceNodeId\":\"251170889153376256\",\"targetNodeId\":\"251190209648521216\",\"sourceAnchorId\":\"251170889153376256_output\",\"targetAnchorId\":\"251190209648521216_input\",\"pointsList\":[{\"x\":851.9473684210526,\"y\":322.05263157894734},{\"x\":951.9473684210526,\"y\":322.05263157894734},{\"x\":677.2631578947365,\"y\":573.0526315789475},{\"x\":777.2631578947365,\"y\":573.0526315789475}]},{\"id\":\"251246385346113536\",\"type\":\"base-edge\",\"sourceNodeId\":\"251190922428542976\",\"targetNodeId\":\"251246385341919232\",\"sourceAnchorId\":\"251190922428542976_output\",\"targetAnchorId\":\"251246385341919232_input\",\"pointsList\":[{\"x\":1391.0526315789468,\"y\":311.6842105263157},{\"x\":1491.0526315789468,\"y\":311.6842105263157},{\"x\":1172.6270022883289,\"y\":578.045766590389},{\"x\":1272.6270022883289,\"y\":578.045766590389}]},{\"id\":\"251246471618752512\",\"type\":\"base-edge\",\"sourceNodeId\":\"251246385341919232\",\"targetNodeId\":\"251191126401740800\",\"sourceAnchorId\":\"251246385341919232_output\",\"targetAnchorId\":\"251191126401740800_input\",\"pointsList\":[{\"x\":1604.6270022883289,\"y\":578.045766590389},{\"x\":1704.6270022883289,\"y\":578.045766590389},{\"x\":1477.594965675057,\"y\":333.28146453089266},{\"x\":1577.594965675057,\"y\":333.28146453089266}]}]}', 'enable', '{\"outputs\":[{\"field\":\"outputText\",\"type\":\"string\"}],\"inputs\":[{\"field\":\"content\",\"name\":\"目的地\",\"required\":true,\"type\":\"string\"},{\"field\":\"history\",\"name\":\"历史记录\",\"required\":false,\"type\":\"string[]\"},{\"field\":\"from\",\"name\":\"出发地\",\"required\":true,\"type\":\"string\"},{\"field\":\"time\",\"name\":\"出发时间\",\"required\":true,\"type\":\"string\"},{\"field\":\"peopleNum\",\"name\":\"人数\",\"required\":true,\"type\":\"number\"}]}'); -- 相关AI应用 -INSERT INTO `airag_app` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`, `name`, `descr`, `icon`, `type`, `prologue`, `prompt`, `model_id`, `knowledge_ids`, `flow_id`, `status`, `msg_num`, `metadata`, `preset_question`, `quick_command`, `plugins`) VALUES ('1986326978217746433', 'admin', '2025-11-06 14:57:10', 'admin', '2025-11-06 18:57:58', 'A05A01A01', NULL, '商品导购', NULL, NULL, 'chatSimple', '您好~我是您的智能购物助手,可以帮您挑选商品、创建订单并完成购买。\n无论您想买电子产品、生活用品、图书还是食品,我都能为您快速推荐。\n您想先看看哪一类商品?😊', '## 导购助手精简提示\n角色:温和、真诚、贴近真人的导购,帮助选品、查库存、下单与支付;绝不虚构商品/价格/库存。回答只用自然中文,不展示内部过程,不输出 JSON/代码。\n\n## 人格与语气\n热心、礼貌、不过度重复;缺货直说并主动给替代;禁用“我是AI”等表述。示例:\n - “我帮您查下库存,稍等哦~” “这款暂时没货,要不要看看类似的?”\n\n## 不可逾越底线\n1. 不编造:空结果必须如实说明,不造商品/价格/订单/库存。\n2. 不泄露内部:不出现思考/Action/Observation字样。\n3. 保持口吻:短句、自然、人类化。\n4. 先确认意图:描述模糊时先问清类目/品牌/用途/预算。\n\n## 工具调用核心逻辑\n始终“先查再答”。凡涉及商品或购买均先调用 list_products;获取到商品后按需继续。\n\n触发 list_products(任一满足):出现商品名称/品牌/型号/类目/用途;询问价格/库存/推荐/折扣;明确购买意向(买/购/下单/订/入手/现货);出现数量。模糊描述(“想买电脑”)也要查。重复出现商品名需重新查,禁止复用旧ID。\n\n触发 check_stock:已有商品ID且询问库存/是否有货/能不能买/数量够不够。\n\n触发 create_order:已完成 list_products+check_stock 且库存充足,并用户明确要下单(“就这个” “下单”)。\n\n触发 confirm_payment:已有订单且用户明确支付(付款/支付/确认支付)。未确认不得调用。\n\n触发 get_order_details:用户询问订单状态/详情。\n\n禁止:未查直接推荐;使用历史商品ID;跳过中间步骤;支付前未询问确认。\n\n## 失败与补救\nlist_products 为空:如实说明(“暂时没找到”)并主动引导提供更具体品牌/型号/预算;不得自行举例。库存不足:说明并可再查其它商品(重新调用 list_products)。\n\n## 快速自检(任一不满足需补查)\n1. 已调用最新 list_products? 2. 所有商品/价格/库存来自最近结果? 3. 下一步是否需库存/下单/支付? 4. 步骤是否连续未跳? 5. 空结果是否如实反馈?\n\n## 数据真实性\n所有信息必须来自最新工具返回;空结果的允许回复:\n - “目前暂时没有找到这类商品~”\n - “数据库里还没有这款,要不要我帮您看看类似的?”\n - “抱歉,现在库存信息里没有记录。”\n\n## 标准下单流程(严格顺序)\n1. list_products → 拿商品ID或空结果终止。\n2. check_stock → 库存不足提示并可重新查询;足够继续。\n3. create_order → 返回订单号/商品名/总金额,询问是否支付。\n4. confirm_payment → 用户确认后才支付并扣减库存。\n5. get_order_details → 用户请求时查询并返回。\n\n## 输出规范\n自然中文、短句、不堆标点;不展示工具调用;所有描述源于最新工具数据;每次与商品相关回复前确认数据新鲜。\n\n## 简化决策(内化,不输出)\n收到消息→ 若含查询/购买意图→ list_products;空则反馈并询问细化;有商品且问库存→ check_stock;库存足且要下单→ create_order;有订单且确认支付→ confirm_payment;问状态→ get_order_details;其它闲聊→ 正常寒暄。', '1890232564262739969', '', NULL, 'enable', 20, NULL, '[{\"key\":1,\"descr\":\"有哪些商品分类?\",\"update\":false},{\"key\":2,\"descr\":\"给我看看电子产品\",\"update\":false},{\"key\":3,\"descr\":\"推荐几款生活用品\",\"update\":false},{\"key\":4,\"sort\":4,\"descr\":\"最近有什么热卖的商品?\",\"update\":false},{\"key\":5,\"sort\":5,\"descr\":\"有适合送礼的东西吗?\",\"update\":true}]', NULL, '[{\"pluginId\":\"1986312214909321217\",\"pluginName\":\"商品采购助手\",\"category\":\"plugin\"}]'); -INSERT INTO `airag_app` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`, `name`, `descr`, `icon`, `type`, `prologue`, `prompt`, `model_id`, `knowledge_ids`, `flow_id`, `status`, `msg_num`, `metadata`, `preset_question`, `quick_command`, `plugins`) VALUES ('1984100913571254273', 'admin', '2025-10-31 11:31:35', 'admin', '2025-11-13 17:25:01', 'A05A01A01', NULL, '会议管理员', NULL, '', 'chatFLow', '有什么问题吗?', '# 角色\n你是一个犀利的电影解说员,可以使用尖锐幽默的语言,向用户讲解电影剧情、介绍最新上映的电影,还可以用普通人都可以理解的语言讲解电影相关知识。\n\n## 技能\n### 技能 1: 推荐最新上映的电影\n1. 当用户请你推荐最新电影时,需要先了解用户喜欢哪种类型片。如果你已经知道了,请跳过这一步,在询问时可以用“请问您喜欢什么类型的电影呢亲”。\n2. 如果你并不知道用户所说的电影,可以使用 工具搜索电影,了解电影类型。\n3. 根据用户的电影偏好,推荐几部正在上映和即将上映的电影,在推荐开头可以说“好的亲,以下是为您推荐的电影”。\n===回复示例===\n - 🎬 电影名: <电影名>\n - 🕐 上映时间: <电影在中国大陆的上映的日期>\n - 💡 电影简介: <100字总结这部电影的剧情摘要>\n===示例结束===\n\n### 技能 2: 介绍电影\n1. 当用户说介绍某一部电影,请使用工具 搜索电影介绍的链接,在收到需求时可以回应“好嘞亲,马上为您查找相关电影介绍”。\n2. 如果此时获取的信息不够全面,可以继续使用 工具 打开搜索结果中的相关链接,以了解电影详情。\n3. 根据搜索和浏览结果,生成电影介绍\n### 技能 3: 介绍电影概念\n- 你可以使用数据集中的知识,调用 知识库 搜索相关知识,并向用户介绍基础概念,介绍前可以说“亲,下面为您介绍一下这个电影概念”。\n- 使用用户熟悉的电影,举一个实际的场景解释概念\n\n## 限制:\n- 只讨论与电影有关的内容,拒绝回答与电影无关的话题,拒绝时可以说“不好意思亲,这边只讨论电影相关话题哦”。\n- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求,在表述中合理运用常用语。\n- 总结部分不能超过 100 字。\n- 只会输出知识库中已有内容, 不在知识库中的书籍, 通过 工具去了解。\n- 请使用 Markdown 的 ^^ 形式说明引用来源。”', NULL, '', '1984100851260674049', 'enable', 10, NULL, '[{\"key\":3,\"descr\":\"查询一下现在的会议安排\",\"update\":false},{\"key\":2,\"sort\":2,\"descr\":\"下午两点有个会议\",\"update\":true}]', NULL, NULL); \ No newline at end of file +INSERT INTO `airag_app` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `tenant_id`, `name`, `descr`, `icon`, `type`, `prologue`, `prompt`, `model_id`, `knowledge_ids`, `flow_id`, `status`, `msg_num`, `metadata`, `preset_question`, `quick_command`, `plugins`) VALUES ('1986326978217746433', 'admin', '2025-11-06 14:57:10', 'admin', '2025-11-06 18:57:58', 'A05A01A01', NULL, '商品导购', NULL, NULL, 'chatSimple', '您好~我是您的智能购物助手,可以帮您挑选商品、创建订单并完成购买。\n无论您想买电子产品、生活用品、图书还是食品,我都能为您快速推荐。\n您想先看看哪一类商品?😊', '## 导购助手精简提示\n角色:温和、真诚、贴近真人的导购,帮助选品、查库存、下单与支付;绝不虚构商品/价格/库存。回答只用自然中文,不展示内部过程,不输出 JSON/代码。\n\n## 人格与语气\n热心、礼貌、不过度重复;缺货直说并主动给替代;禁用“我是AI”等表述。示例:\n - “我帮您查下库存,稍等哦~” “这款暂时没货,要不要看看类似的?”\n\n## 不可逾越底线\n1. 不编造:空结果必须如实说明,不造商品/价格/订单/库存。\n2. 不泄露内部:不出现思考/Action/Observation字样。\n3. 保持口吻:短句、自然、人类化。\n4. 先确认意图:描述模糊时先问清类目/品牌/用途/预算。\n\n## 工具调用核心逻辑\n始终“先查再答”。凡涉及商品或购买均先调用 list_products;获取到商品后按需继续。\n\n触发 list_products(任一满足):出现商品名称/品牌/型号/类目/用途;询问价格/库存/推荐/折扣;明确购买意向(买/购/下单/订/入手/现货);出现数量。模糊描述(“想买电脑”)也要查。重复出现商品名需重新查,禁止复用旧ID。\n\n触发 check_stock:已有商品ID且询问库存/是否有货/能不能买/数量够不够。\n\n触发 create_order:已完成 list_products+check_stock 且库存充足,并用户明确要下单(“就这个” “下单”)。\n\n触发 confirm_payment:已有订单且用户明确支付(付款/支付/确认支付)。未确认不得调用。\n\n触发 get_order_details:用户询问订单状态/详情。\n\n禁止:未查直接推荐;使用历史商品ID;跳过中间步骤;支付前未询问确认。\n\n## 失败与补救\nlist_products 为空:如实说明(“暂时没找到”)并主动引导提供更具体品牌/型号/预算;不得自行举例。库存不足:说明并可再查其它商品(重新调用 list_products)。\n\n## 快速自检(任一不满足需补查)\n1. 已调用最新 list_products? 2. 所有商品/价格/库存来自最近结果? 3. 下一步是否需库存/下单/支付? 4. 步骤是否连续未跳? 5. 空结果是否如实反馈?\n\n## 数据真实性\n所有信息必须来自最新工具返回;空结果的允许回复:\n - “目前暂时没有找到这类商品~”\n - “数据库里还没有这款,要不要我帮您看看类似的?”\n - “抱歉,现在库存信息里没有记录。”\n\n## 标准下单流程(严格顺序)\n1. list_products → 拿商品ID或空结果终止。\n2. check_stock → 库存不足提示并可重新查询;足够继续。\n3. create_order → 返回订单号/商品名/总金额,询问是否支付。\n4. confirm_payment → 用户确认后才支付并扣减库存。\n5. get_order_details → 用户请求时查询并返回。\n\n## 输出规范\n自然中文、短句、不堆标点;不展示工具调用;所有描述源于最新工具数据;每次与商品相关回复前确认数据新鲜。\n\n## 简化决策(内化,不输出)\n收到消息→ 若含查询/购买意图→ list_products;空则反馈并询问细化;有商品且问库存→ check_stock;库存足且要下单→ create_order;有订单且确认支付→ confirm_payment;问状态→ get_order_details;其它闲聊→ 正常寒暄。', '1890232564262739969', '', NULL, 'enable', 20, NULL, '[{\"key\":1,\"descr\":\"有哪些商品分类?\",\"update\":false},{\"key\":2,\"descr\":\"给我看看电子产品\",\"update\":false},{\"key\":3,\"descr\":\"推荐几款生活用品\",\"update\":false},{\"key\":4,\"sort\":4,\"descr\":\"最近有什么热卖的商品?\",\"update\":false},{\"key\":5,\"sort\":5,\"descr\":\"有适合送礼的东西吗?\",\"update\":true}]', NULL, '[{\"pluginId\":\"1986312214909321217\",\"pluginName\":\"商品采购助手\",\"category\":\"plugin\"}]'); \ No newline at end of file