dd
This commit is contained in:
1 parent
b46d7ee6ad
commit
3d79b9b7d0
2 files changed
+163
-123
No files matched your search
@@ -1,3 +1,93 @@
|
||||
# 任务目标
|
||||
|
||||
修改E:\gitlab\mis-paw\mis-modules\mis-paw\src\main\java\com\lcfc\mispaw\service\Impl\AgentApprovalServiceImpl.java里面的"assertNoUnpublishedSkillMapping"方法,目前判断agentId关联的skill包含未发布的逻辑有误,应该参考"E:\gitlab\mis-paw\mis-modules\mis-paw\src\main\java\com\lcfc\mispaw\service\Impl\AgentPublishServiceImpl.java"的"submitPublish"方法生成的"AgentConfigSnapshot.java"。
|
||||
agent发布时,`agent_skill_mapping`表中`skill_id`关联的SKILL信息没有存储到`agent_published_version_snapshot`表中的`skills_json`字段,尝试了2次都不行。
|
||||
|
||||
## 代码路径
|
||||
|
||||
|#|源文件名称|方法名称|补充说明|
|
||||
|---|---|---|---|
|
||||
|提交发布|AgentPublishServiceImpl.java|submitPublishInLock|无|
|
||||
|在哪里保存的快照|AgentPublishedVersionSnapshotServiceImpl.java|sealBindingsOnSubmit|在"submitPublishInLock"方法内部嵌套调用,然后调用"insertSealedRow"方法,最终存储到`agent_published_version_snapshot`表中|
|
||||
|
||||
## 通过SQL查到提交发布时的SKILL信息
|
||||
|
||||
查询结果中`skill_release`的表中是没有关联到数据的,只有`skill`表关联上了2条数据。
|
||||
|
||||
```sql
|
||||
with mapping AS (
|
||||
select
|
||||
asm.agent_id,asm.mapping_id,asm.skill_id,asm.skill_release_id,asm.create_time
|
||||
from `mis-paw-claw`.`agent_skill_mapping` asm
|
||||
where asm.agent_id = '1977925311412596737FcNLSZ'
|
||||
and asm.del_flag = '0'
|
||||
)
|
||||
select mapping.mapping_id, mapping.skill_id, mapping.skill_release_id, sk.skill_name,sk.skill_file
|
||||
from mapping join `mis-mcp-paw-claw`.`skill` sk
|
||||
on mapping.skill_id = sk.skill_id and sk.del_flag = '0'
|
||||
union all
|
||||
select mapping.mapping_id, mapping.skill_id, mapping.skill_release_id, sr.skill_name, sr.skill_file
|
||||
from mapping join `mis-mcp-paw-claw`.`skill_release` sr
|
||||
on mapping.skill_release_id = sr.skill_release_id and sr.del_flag = '0';
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"mapping_id": "2102629713947136001",
|
||||
"skill_id": "2102629462528081922",
|
||||
"skill_release_id": null,
|
||||
"skill_name": "mis-spec-eclaw",
|
||||
"skill_file": "{\"ossId\": \"1790140893732205682\", \"fileName\": \"mis-spec-eclaw.zip\"}"
|
||||
},
|
||||
{
|
||||
"mapping_id": "2105125581220810754",
|
||||
"skill_id": "2105124095074033665",
|
||||
"skill_release_id": null,
|
||||
"skill_name": "java-spec",
|
||||
"skill_file": "{\"ossId\": \"1790735602461436068\", \"fileName\": \"java-spec.zip\"}"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
## 通过SQL查到agent的快照信息
|
||||
|
||||
```sql
|
||||
select * from `mis-paw-claw`.`agent_published_version_snapshot` apvs
|
||||
where apvs.agent_id = '1977925311412596737FcNLSZ'
|
||||
and apvs.del_flag = '0'
|
||||
```
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"config_id": "2105128598548582402",
|
||||
"snapshot_id": "2105128595469963266",
|
||||
"agent_id": "1977925311412596737FcNLSZ",
|
||||
"skills_json": "[]",
|
||||
"mcps_json": "[]",
|
||||
"persona_docs_json": "",
|
||||
"kbs_json": "[]",
|
||||
"create_by": "1977925311412596737",
|
||||
"create_dept": "5",
|
||||
"create_time": "2026-09-30 10:52:24",
|
||||
"update_by": "1977925311412596737",
|
||||
"update_time": "2026-09-30 10:52:24",
|
||||
"del_flag": "0"
|
||||
},
|
||||
{
|
||||
"config_id": "2105179820223688705",
|
||||
"snapshot_id": "2105179819527434242",
|
||||
"agent_id": "1977925311412596737FcNLSZ",
|
||||
"skills_json": "[]",
|
||||
"mcps_json": "[]",
|
||||
"persona_docs_json": "",
|
||||
"kbs_json": "[]",
|
||||
"create_by": "1977925311412596737",
|
||||
"create_dept": "5",
|
||||
"create_time": "2026-09-30 14:15:56",
|
||||
"update_by": "1977925311412596737",
|
||||
"update_time": "2026-09-30 14:15:56",
|
||||
"del_flag": "0"
|
||||
}
|
||||
]
|
||||
```
|
||||
@@ -7,8 +7,10 @@
|
||||
- [查智能体使用数据](查智能体使用数据)
|
||||
- [查项目统计数据](#查项目统计数据)
|
||||
- [新增devco账号](#新增devco账号)
|
||||
- [查paw-agent信息](#查paw-agent信息)
|
||||
- [查某个用户的智能体](#查某个用户的智能体)
|
||||
- [查工作流工单状态](#查工作流工单状态)
|
||||
- [查智能体绑定的技能](#查智能体绑定的技能)
|
||||
- [查智能体的发布快照](#查智能体的发布快照)
|
||||
|
||||
## 查智能体用户数
|
||||
|
||||
@@ -18,40 +20,25 @@ select
|
||||
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'
|
||||
from `mis-agent`.`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';
|
||||
from `mis-agent`.`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'
|
||||
);
|
||||
select * from `mis-cloud-claw`.`sys_logininfor`
|
||||
where client_key = (
|
||||
select client_key from `mis-cloud-claw`.`sys_client` where `client_id` = '客户端ID'
|
||||
);
|
||||
```
|
||||
|
||||
## 查智能体对话日志
|
||||
@@ -59,15 +46,15 @@ where
|
||||
1. 查询所有切片号,假设查询出来的`part`是[1,2]
|
||||
|
||||
```sql
|
||||
select part from log_agent_chat where del_flag = '0';
|
||||
select part from `mis-agent`.`log_agent_chat` where del_flag = '0';
|
||||
```
|
||||
|
||||
2. 根据切片号查询并合并各个切片表的数据
|
||||
|
||||
```sql
|
||||
select * from log_agent_chat_1 where chat_window_id = 会话ID
|
||||
select * from `mis-agent`.`log_agent_chat_1` where chat_window_id = 会话ID
|
||||
UNION ALL
|
||||
select * from log_agent_chat_2 where chat_window_id = 会话ID
|
||||
select * from `mis-agent`.`log_agent_chat_2` where chat_window_id = 会话ID
|
||||
```
|
||||
|
||||
## 查智能体信息
|
||||
@@ -94,14 +81,14 @@ with agent_info AS (
|
||||
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
|
||||
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
|
||||
from `mis-mcp`.`skill`
|
||||
where skill_id in (
|
||||
select skill_id from mis-agent.agent_skill_mapping
|
||||
where agent_id = <智能体ID>
|
||||
@@ -111,7 +98,7 @@ agent_mcp_tool AS (
|
||||
select
|
||||
<智能体ID> AS agent_id,
|
||||
GROUP_CONCAT(tool_name) AS tool_names
|
||||
from mis-mcp.map_tools
|
||||
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>
|
||||
@@ -125,12 +112,18 @@ 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 * from `mis-agent`.`multi_agent_main` where agent_id = <主智能体ID>
|
||||
```
|
||||
|
||||
查询子智能体:
|
||||
```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>
|
||||
from `mis-agent`.`multi_agent_sub`
|
||||
where main_agent_id = <主智能体ID>
|
||||
)
|
||||
```
|
||||
|
||||
@@ -139,7 +132,7 @@ select * from mis-agent.agent_release_info where release_id in (
|
||||
必须提供**智能体ID**。
|
||||
|
||||
```sql
|
||||
select * from mis-agent.agent_usage_stats_daily where agent_id = <智能体ID> order by daily desc
|
||||
select * from `mis-agent`.`agent_usage_stats_daily` where agent_id = <智能体ID> order by daily desc
|
||||
```
|
||||
|
||||
## 查项目统计数据
|
||||
@@ -149,7 +142,7 @@ select * from mis-agent.agent_usage_stats_daily where agent_id = <智能体ID> o
|
||||
1. 查询项目注册表,判断是否包含该项目。用户提供的项目名称大概率是模糊的,比如"认证"、"ebiz",要根据语义判断究竟是哪一个,如果猜不准就询问一下用户是哪个。
|
||||
|
||||
```sql
|
||||
select * from mis-agent.project_stats_registry
|
||||
select * from `mis-agent`.`project_stats_registry`
|
||||
```
|
||||
|
||||
**重要:`project_stats_registry`里的`id`字段,称为项目ID,或者叫project_id,后面的步骤需要用到。**
|
||||
@@ -157,7 +150,7 @@ select * from mis-agent.project_stats_registry
|
||||
2. 查询项目统计数据
|
||||
|
||||
```sql
|
||||
select * from mis-agent.project_data_stats_daily where project_id = <project_id>
|
||||
select * from `mis-agent`.`project_data_stats_daily` where project_id = <project_id>
|
||||
```
|
||||
|
||||
## 新增devco账号
|
||||
@@ -178,104 +171,61 @@ username3
|
||||
**在`mis-dev`资源下的`mis-cloud-paw`库中执行**批量插入sql,示例:
|
||||
|
||||
```sql
|
||||
INSERT INTO external_login_client_account (client_id, account, state) VALUES
|
||||
INSERT INTO `mis-cloud-paw`.`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表格的形式展示每一行的数据,示例:
|
||||
把`{username}`替换成真实的用户名。
|
||||
|
||||
```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 >;
|
||||
agent_id, agent_mode,
|
||||
publish_status, publish_scope, published_at,
|
||||
version_lane, key_scope_default
|
||||
from `mis-paw-claw`.`agent`
|
||||
where del_flag = '0'
|
||||
and create_by = (select user_id from `mis-cloud-claw`.`sys_user` where user_name = '{username}')
|
||||
```
|
||||
|
||||
## 查工作流工单状态
|
||||
|
||||
把`{business_key}`替换成申请单ID。
|
||||
|
||||
```sql
|
||||
CREATE DEFINER=`root`@`%` PROCEDURE `sp_flow_status_by_business_key`(IN p_business_key VARCHAR(64))
|
||||
BEGIN
|
||||
-- 1) 流程实例摘要
|
||||
SELECT
|
||||
h.BUSINESS_KEY_ AS business_key,
|
||||
h.PROC_INST_ID_ AS process_instance_id,
|
||||
SUBSTRING_INDEX(h.PROC_DEF_ID_, ':', 1) AS process_key,
|
||||
h.BUSINESS_STATUS_ AS business_status,
|
||||
CASE h.BUSINESS_STATUS_
|
||||
WHEN 'waiting' THEN '待审核'
|
||||
WHEN 'finish' THEN '已完成'
|
||||
WHEN 'back' THEN '已退回'
|
||||
WHEN 'cancel' THEN '已撤销'
|
||||
WHEN 'draft' THEN '草稿'
|
||||
ELSE IFNULL(h.BUSINESS_STATUS_, '未知')
|
||||
END AS business_status_name,
|
||||
h.START_USER_ID_ AS start_user_id,
|
||||
h.START_TIME_ AS start_time,
|
||||
h.END_TIME_ AS end_time,
|
||||
CASE WHEN h.END_TIME_ IS NULL THEN 'RUNNING' ELSE 'FINISHED' END AS flow_state,
|
||||
(SELECT COUNT(1)
|
||||
FROM ACT_RU_TASK t
|
||||
INNER JOIN ACT_RU_EXECUTION e ON e.ID_ = t.PROC_INST_ID_
|
||||
WHERE e.BUSINESS_KEY_ = h.BUSINESS_KEY_
|
||||
AND e.PROC_INST_ID_ = h.PROC_INST_ID_) AS pending_task_count
|
||||
FROM ACT_HI_PROCINST h
|
||||
WHERE h.BUSINESS_KEY_ = p_business_key
|
||||
ORDER BY h.START_TIME_ DESC;
|
||||
|
||||
-- 2) 当前待办
|
||||
SELECT
|
||||
t.ID_ AS task_id,
|
||||
t.NAME_ AS task_name,
|
||||
t.TASK_DEF_KEY_ AS task_definition_key,
|
||||
t.ASSIGNEE_ AS assignee,
|
||||
t.CREATE_TIME_ AS create_time,
|
||||
t.PROC_INST_ID_ AS process_instance_id,
|
||||
e.BUSINESS_KEY_ AS business_key
|
||||
FROM ACT_RU_TASK t
|
||||
INNER JOIN ACT_RU_EXECUTION e ON e.ID_ = t.PROC_INST_ID_
|
||||
WHERE e.BUSINESS_KEY_ = p_business_key
|
||||
ORDER BY t.CREATE_TIME_ ASC;
|
||||
|
||||
-- 3) 历史任务 + 意见
|
||||
SELECT
|
||||
ht.ID_ AS task_id,
|
||||
ht.NAME_ AS task_name,
|
||||
ht.TASK_DEF_KEY_ AS task_definition_key,
|
||||
ht.ASSIGNEE_ AS assignee,
|
||||
ht.START_TIME_ AS start_time,
|
||||
ht.END_TIME_ AS end_time,
|
||||
c.TYPE_ AS comment_type,
|
||||
c.MESSAGE_ AS comment_msg,
|
||||
h.PROC_INST_ID_ AS process_instance_id,
|
||||
h.BUSINESS_KEY_ AS business_key
|
||||
FROM ACT_HI_TASKINST ht
|
||||
INNER JOIN ACT_HI_PROCINST h ON h.PROC_INST_ID_ = ht.PROC_INST_ID_
|
||||
LEFT JOIN ACT_HI_COMMENT c
|
||||
ON c.TASK_ID_ = ht.ID_
|
||||
AND c.TYPE_ IN ('pass', 'back')
|
||||
WHERE h.BUSINESS_KEY_ = p_business_key
|
||||
AND (ht.PARENT_TASK_ID_ IS NULL OR ht.PARENT_TASK_ID_ = '')
|
||||
ORDER BY ht.START_TIME_ ASC, ht.ID_ ASC;
|
||||
END
|
||||
call `mis-workflow-claw`.sp_flow_status_by_business_key('{business_key}')
|
||||
```
|
||||
|
||||
## 查智能体绑定的技能
|
||||
|
||||
把`{agentId}`替换成真实的智能体ID。
|
||||
|
||||
```sql
|
||||
with mapping AS (
|
||||
select
|
||||
asm.agent_id,asm.mapping_id,asm.skill_id,asm.skill_release_id,asm.create_time
|
||||
from `mis-paw-claw`.`agent_skill_mapping` asm
|
||||
where asm.agent_id = '{agentId}'
|
||||
and asm.del_flag = '0'
|
||||
)
|
||||
select mapping.mapping_id, mapping.skill_id, mapping.skill_release_id, sk.skill_name,sk.skill_file
|
||||
from mapping join `mis-mcp-paw-claw`.`skill` sk
|
||||
on mapping.skill_id = sk.skill_id and sk.del_flag = '0'
|
||||
union all
|
||||
select mapping.mapping_id, mapping.skill_id, mapping.skill_release_id, sr.skill_name, sr.skill_file
|
||||
from mapping join `mis-mcp-paw-claw`.`skill_release` sr
|
||||
on mapping.skill_release_id = sr.skill_release_id and sr.del_flag = '0'
|
||||
```
|
||||
|
||||
## 查智能体的发布快照
|
||||
|
||||
把`{agentId}`替换成真实的智能体ID。
|
||||
|
||||
```sql
|
||||
select * from `mis-paw-claw`.`agent_published_version_snapshot` apvs
|
||||
where apvs.agent_id = '{agentId}'
|
||||
and apvs.del_flag = '0'
|
||||
```
|
||||
Reference in new issue
Block a user