Files
tmp/sql.md
T
2026-09-15 11:50:34 +08:00

211 lines
5.4 KiB
Markdown

# 目录
- [查智能体用户数](#查智能体用户数)
- [查客户端是否登录](#查客户端是否登录)
- [查智能体对话日志](#查智能体对话日志)
- [查智能体信息](#查智能体信息)
- [查智能体使用数据](查智能体使用数据)
- [查项目统计数据](#查项目统计数据)
- [新增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'
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';
```
## 查客户端是否登录
```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 = <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 >;
```