diff --git a/sql.md b/sql.md index 9e7a82e..8ee187a 100644 --- a/sql.md +++ b/sql.md @@ -1,11 +1,211 @@ -# SQL +# 目录 -常用的脚本。 +- [查智能体用户数](#查智能体用户数) +- [查客户端是否登录](#查客户端是否登录) +- [查智能体对话日志](#查智能体对话日志) +- [查智能体信息](#查智能体信息) +- [查智能体使用数据](查智能体使用数据) +- [查项目统计数据](#查项目统计数据) +- [新增devco账号](#新增devco账号) +- [查paw-agent信息](#查paw-agent信息) -## 查询智能体用户数 +## 查智能体用户数 ```sql -select '单智能体' AS agent_type, agent.agent_id, agent.agent_name, IFNULL(aus.user_num,0) AS user_num from `agent` AS agent left join agent_usage_stats AS aus ON agent.agent_id = aus.agent_id where agent.del_flag = '0' +select + '单智能体' AS agent_type, + agent.agent_id, + agent.agent_name, + IFNULL (aus.user_num, 0) AS user_num +from + `agent` AS agent + left join agent_usage_stats AS aus ON agent.agent_id = aus.agent_id +where + agent.del_flag = '0' UNION ALL -select '多智能体' AS agent_type, ma.agent_id, ma.agent_name, IFNULL(maus.user_num,0) AS user_num from `multi_agent_main` AS ma left join agent_usage_stats AS maus ON ma.agent_id = maus.agent_id where ma.del_flag = '0'; +select + '多智能体' AS agent_type, + ma.agent_id, + ma.agent_name, + IFNULL (maus.user_num, 0) AS user_num +from + `multi_agent_main` AS ma + left join agent_usage_stats AS maus ON ma.agent_id = maus.agent_id +where + ma.del_flag = '0'; +``` + +## 查客户端是否登录 + +```sql +select + * +from + `mis-cloud-claw`.`sys_logininfor` +where + client_key = ( + select + client_key + from + `mis-cloud-claw`.`sys_client` + where + `client_id` = '客户端ID' + ); +``` + +## 查智能体对话日志 + +1. 查询所有切片号,假设查询出来的`part`是[1,2] + +```sql +select part from log_agent_chat where del_flag = '0'; +``` + +2. 根据切片号查询并合并各个切片表的数据 + +```sql +select * from log_agent_chat_1 where chat_window_id = 会话ID +UNION ALL +select * from log_agent_chat_2 where chat_window_id = 会话ID +``` + +## 查智能体信息 + +必须提供**智能体ID**,在不明确用户查询的是单智能体还是多智能体时,友好的询问要查询哪种智能体。 + +1. 查询单智能体信息 + +```sql +with agent_info AS ( + select + agent_id, + agent_name, + system_prompt, + `description`, + max_messages, + max_tokens, + kb_uuids, + kb_configs, + kb_similarity_threshold, + kb_top_k, + kb_max_recall_toekn, + llm_name, + long_term_memory, + case kb_mode when '1' then '直接检索' when '2' then 'tool检索' else '' end AS kb_mode, + case kb_search_type when '0' then '向量检索' when '1' then '混合检索' when '2' then '智能检索' else '' end AS kb_search_type + from mis-agent.agent + where agent_id = <智能体ID> +), +agent_skill AS ( + select + <智能体ID> AS agent_id, + GROUP_CONCAT(skill_name) AS skill_names + from mis-mcp.skill + where skill_id in ( + select skill_id from mis-agent.agent_skill_mapping + where agent_id = <智能体ID> + ) +), +agent_mcp_tool AS ( + select + <智能体ID> AS agent_id, + GROUP_CONCAT(tool_name) AS tool_names + from mis-mcp.map_tools + where mcp_server_uuid in ( + select mcp_server_uuid from mis-agent.agent_tool_mapping + where relate_agent_id = <智能体ID> + ) +) + +select * from agent_info AS a +left join agent_skill AS b on a.agent_id = b.agent_id +left join agent_mcp_tool AS c on a.agent_id = c.agent_id +``` + +2. 查询多智能体信息 + +```sql +select * from mis-agent.agent_release_info where release_id in ( + select + release_id + from mis-agent.multi_agent_sub + where main_agent_id = <智能体ID> +) +``` + +## 查智能体使用数据 + +必须提供**智能体ID**。 + +```sql +select * from mis-agent.agent_usage_stats_daily where agent_id = <智能体ID> order by daily desc +``` + +## 查项目统计数据 + +必须提供**项目名称**。 + +1. 查询项目注册表,判断是否包含该项目。用户提供的项目名称大概率是模糊的,比如"认证"、"ebiz",要根据语义判断究竟是哪一个,如果猜不准就询问一下用户是哪个。 + +```sql +select * from mis-agent.project_stats_registry +``` + +**重要:`project_stats_registry`里的`id`字段,称为项目ID,或者叫project_id,后面的步骤需要用到。** + +2. 查询项目统计数据 + +```sql +select * from mis-agent.project_data_stats_daily where project_id = +``` + +## 新增devco账号 + +用户的输入格式如下。 + +```text +devco +username1 +username2 +username3 +``` + +- 在用户的输入中,`devco`是触发d当前技能的关键词。 +- **从第二行开始,去掉空白行以后,每一个都是用户名。**如果用户提供的用户名存在重复,请忽略大小写保留1个即可。 +- `client_id`和`state`字段是固定值,用户名对应的是`account`字段。 + +**在`mis-dev`资源下的`mis-cloud-paw`库中执行**批量插入sql,示例: + +```sql +INSERT INTO external_login_client_account (client_id, account, state) VALUES +('226c18408b5705449f37b621a432a6d3', 'username1', 1), +('226c18408b5705449f37b621a432a6d3', 'username2', 1), +('226c18408b5705449f37b621a432a6d3', 'username3', 1); +``` + +## 查paw-agent信息 + +在`mis-dev`资源下,根据用户名(username)查询paw-agent信息,如果用户没有提供username,友好的提问要查哪个用户的,一个可用的username示例:`Agnes2.wang`。 + +1. 根据用户提供的`username`查询`user_id`,只会查出来1行数据,示例: + +```sql +select user_id from `mis-cloud-claw`.`sys_user` where user_name = '{username}'; +``` + +2. 根据`user_id`查询agent信息,可能返回多行数据,使用markdown表格的形式展示每一行的数据,示例: + +```sql +select + agent_id, + agent_mode, + publish_status, + publish_scope, + published_at, + version_lane, + key_scope_default +from + `mis-paw-claw`.`agent` +where + create_by = < user_id >; ``` \ No newline at end of file