agentworkshop 0.5.6 → 0.5.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.AgentWorkShop/prompts/host-tools.json +31 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +31 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/998b4cce-8563-44e5-b0ef-ff3d71a8480f.json +1 -0
- package/.output/server/chunks/_/nitro.mjs +835 -668
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +5 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/scripts/_dbg-cross-team-visibility-e2e.mjs +129 -0
- package/scripts/_dbg-overview-probe.sh +31 -0
- package/server/api/workshop/agent-tools/invoke.post.ts +8 -1
- package/server/data/daqs.json +91 -91
- package/server/data/dcw-lines.json +7 -0
- package/server/data/dcw-products.json +7 -0
- package/server/data/dcw-rollback.json +114 -1
- package/server/data/dcw-runs.json +27 -18
- package/server/data/dcw-writes.json +48 -0
- package/server/data/dcws.json +21 -0
- package/server/data/line-runs.json +23 -23
- package/server/services/workshop/agents/agent-interface.ts +20 -0
- package/server/services/workshop/agents/omp-agent.ts +28 -0
- package/server/services/workshop/db/memory.repo.ts +26 -0
- package/server/services/workshop/runtime/manager.ts +127 -0
- package/.output/public/_nuxt/builds/meta/d50c6ec2-801c-4ba2-97d8-a4db401b702c.json +0 -1
|
@@ -3083,6 +3083,51 @@
|
|
|
3083
3083
|
"recipeRunId": "rr-4549422d",
|
|
3084
3084
|
"id": "anc-6825e0d2",
|
|
3085
3085
|
"at": "2026-09-02T11:55:28.883Z"
|
|
3086
|
+
},
|
|
3087
|
+
{
|
|
3088
|
+
"lineId": "ln-b587c5ec",
|
|
3089
|
+
"nodeId": "dw-67ec7b30",
|
|
3090
|
+
"prevValue": null,
|
|
3091
|
+
"newValue": 180,
|
|
3092
|
+
"source": "recipe",
|
|
3093
|
+
"actor": "recipe",
|
|
3094
|
+
"recipeRunId": "rr-03ed5e01",
|
|
3095
|
+
"id": "anc-8f1abf07",
|
|
3096
|
+
"at": "2026-09-02T13:01:43.098Z"
|
|
3097
|
+
},
|
|
3098
|
+
{
|
|
3099
|
+
"lineId": "ln-b587c5ec",
|
|
3100
|
+
"nodeId": "dw-67ec7b30",
|
|
3101
|
+
"prevValue": 180,
|
|
3102
|
+
"newValue": 182,
|
|
3103
|
+
"source": "manual",
|
|
3104
|
+
"actor": "bd2ed1fc-5128-4725-b468-b4bfc81bf3ed",
|
|
3105
|
+
"recipeRunId": null,
|
|
3106
|
+
"id": "anc-949fae9b",
|
|
3107
|
+
"at": "2026-09-02T13:01:56.586Z"
|
|
3108
|
+
},
|
|
3109
|
+
{
|
|
3110
|
+
"lineId": "ln-b587c5ec",
|
|
3111
|
+
"nodeId": "dw-67ec7b30",
|
|
3112
|
+
"prevValue": 182,
|
|
3113
|
+
"newValue": 180,
|
|
3114
|
+
"source": "manual",
|
|
3115
|
+
"actor": "bd2ed1fc-5128-4725-b468-b4bfc81bf3ed",
|
|
3116
|
+
"recipeRunId": null,
|
|
3117
|
+
"id": "anc-6be8d282",
|
|
3118
|
+
"at": "2026-09-02T13:01:56.725Z"
|
|
3119
|
+
},
|
|
3120
|
+
{
|
|
3121
|
+
"lineId": "ln-b587c5ec",
|
|
3122
|
+
"nodeId": "dw-67ec7b30",
|
|
3123
|
+
"prevValue": 180,
|
|
3124
|
+
"newValue": 182,
|
|
3125
|
+
"source": "agent",
|
|
3126
|
+
"actor": "fbbb9e1d-003c-412a-a3ec-6acb1d0e7535",
|
|
3127
|
+
"recipeRunId": null,
|
|
3128
|
+
"id": "anc-cf431b05",
|
|
3129
|
+
"at": "2026-09-02T13:05:36.877Z",
|
|
3130
|
+
"recordId": "opt-b930283b"
|
|
3086
3131
|
}
|
|
3087
3132
|
],
|
|
3088
3133
|
"records": [
|
|
@@ -3474,7 +3519,7 @@
|
|
|
3474
3519
|
"channels": [],
|
|
3475
3520
|
"degraded": true
|
|
3476
3521
|
},
|
|
3477
|
-
"evaluatedAt": "2026-09-
|
|
3522
|
+
"evaluatedAt": "2026-09-02T13:20:19.492Z",
|
|
3478
3523
|
"windowAgg": {
|
|
3479
3524
|
"at": "2026-08-31T16:25:17.398Z",
|
|
3480
3525
|
"fromMs": 1788193396897,
|
|
@@ -9814,6 +9859,74 @@
|
|
|
9814
9859
|
"closedAt": "2026-09-02T11:48:49.964Z",
|
|
9815
9860
|
"closedBy": "line-stop",
|
|
9816
9861
|
"aggPending": false
|
|
9862
|
+
},
|
|
9863
|
+
{
|
|
9864
|
+
"lineId": "ln-b587c5ec",
|
|
9865
|
+
"nodeId": "dw-67ec7b30",
|
|
9866
|
+
"nodeName": "FFX-温度设定",
|
|
9867
|
+
"recipeId": "rc-0f5b23f2",
|
|
9868
|
+
"agentId": "fbbb9e1d-003c-412a-a3ec-6acb1d0e7535",
|
|
9869
|
+
"hypothesis": "升温调参:近5min实测均温167.795℃(min161.7/max170.9),低于目标182℃达14.2℃,严重偏冷。设定180→182℃(+2℃,仍在安全量程[150,200]与配方窗口[176,188]内),预期实际温度随热惯性(数十秒级)逐步上升逼近182℃,5分钟后daq_query复测评估;观察计划:下发后复测均温与升速,确认无越限。",
|
|
9870
|
+
"params": [
|
|
9871
|
+
{
|
|
9872
|
+
"nodeId": "dw-67ec7b30",
|
|
9873
|
+
"templateRef": "dcw-temp-sp",
|
|
9874
|
+
"from": 180,
|
|
9875
|
+
"to": 182
|
|
9876
|
+
}
|
|
9877
|
+
],
|
|
9878
|
+
"setAt": "2026-09-02T13:05:36.877Z",
|
|
9879
|
+
"status": "closed-line-stop",
|
|
9880
|
+
"judge": {
|
|
9881
|
+
"by": "agent",
|
|
9882
|
+
"actor": "fbbb9e1d-003c-412a-a3ec-6acb1d0e7535",
|
|
9883
|
+
"verdict": "uncertain",
|
|
9884
|
+
"reason": "设定已从180℃提升至182℃并回读一致,但判定时点(13:06)实测温度仍为166℃、近5min均值167.77℃,热惯性过渡期未观察到实际温度对182℃新设定响应,证据不足。维持观察:待实际温度单边上升逼近设定后再复核判定。",
|
|
9885
|
+
"at": "2026-09-02T13:06:49.997Z"
|
|
9886
|
+
},
|
|
9887
|
+
"anchorId": "anc-cf431b05",
|
|
9888
|
+
"policy": "approve_rollback",
|
|
9889
|
+
"id": "opt-b930283b",
|
|
9890
|
+
"createdAt": "2026-09-02T13:05:36.877Z",
|
|
9891
|
+
"baseline": {
|
|
9892
|
+
"at": "2026-09-02T13:05:36.889Z",
|
|
9893
|
+
"fromMs": 1788353736877,
|
|
9894
|
+
"toMs": 1788354336877,
|
|
9895
|
+
"channels": [
|
|
9896
|
+
{
|
|
9897
|
+
"daqNodeId": "dn-1f196883",
|
|
9898
|
+
"ch": "temp-tc",
|
|
9899
|
+
"unit": "℃",
|
|
9900
|
+
"latest": 165.7,
|
|
9901
|
+
"avg": 167.79,
|
|
9902
|
+
"min": 163.22,
|
|
9903
|
+
"max": 170.35,
|
|
9904
|
+
"cnt": 77,
|
|
9905
|
+
"breaches": 0
|
|
9906
|
+
},
|
|
9907
|
+
{
|
|
9908
|
+
"daqNodeId": "dn-15d0b51b",
|
|
9909
|
+
"ch": "pressure-tx",
|
|
9910
|
+
"unit": "MPa",
|
|
9911
|
+
"latest": 0.81,
|
|
9912
|
+
"avg": 0.82,
|
|
9913
|
+
"min": 0.75,
|
|
9914
|
+
"max": 0.89,
|
|
9915
|
+
"cnt": 77,
|
|
9916
|
+
"breaches": -1
|
|
9917
|
+
}
|
|
9918
|
+
]
|
|
9919
|
+
},
|
|
9920
|
+
"closedAt": "2026-09-02T13:07:32.571Z",
|
|
9921
|
+
"closedBy": "line-stop",
|
|
9922
|
+
"windowAgg": {
|
|
9923
|
+
"at": "2026-09-02T13:07:32.571Z",
|
|
9924
|
+
"fromMs": 1788354336877,
|
|
9925
|
+
"toMs": 1788354452571,
|
|
9926
|
+
"channels": [],
|
|
9927
|
+
"degraded": true
|
|
9928
|
+
},
|
|
9929
|
+
"aggPending": false
|
|
9817
9930
|
}
|
|
9818
9931
|
]
|
|
9819
9932
|
}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
1
|
[
|
|
2
|
-
{
|
|
3
|
-
"id": "rr-5fc104fc",
|
|
4
|
-
"recipeId": "rc-cc5d88b8",
|
|
5
|
-
"recipeName": "终审配方A",
|
|
6
|
-
"productId": "pd-b724071c",
|
|
7
|
-
"lineId": "ln-02fae279",
|
|
8
|
-
"startedAt": "2026-08-29T15:19:44.444Z",
|
|
9
|
-
"endedAt": "2026-08-29T15:20:10.191Z",
|
|
10
|
-
"results": [
|
|
11
|
-
{
|
|
12
|
-
"templateRef": "dcw-temp-sp",
|
|
13
|
-
"nodeId": "dw-4adafbe2",
|
|
14
|
-
"ok": true,
|
|
15
|
-
"message": "写入并回读一致:182 → raw 1280,回读 182(标定后物理值 182)",
|
|
16
|
-
"value": 182
|
|
17
|
-
}
|
|
18
|
-
]
|
|
19
|
-
},
|
|
20
2
|
{
|
|
21
3
|
"id": "rr-0ff47e63",
|
|
22
4
|
"recipeId": "rc-5c7d80c1",
|
|
@@ -4758,5 +4740,32 @@
|
|
|
4758
4740
|
"max": 188
|
|
4759
4741
|
}
|
|
4760
4742
|
]
|
|
4743
|
+
},
|
|
4744
|
+
{
|
|
4745
|
+
"id": "rr-03ed5e01",
|
|
4746
|
+
"recipeId": "rc-0f5b23f2",
|
|
4747
|
+
"recipeName": "全功能配方-a7dbly",
|
|
4748
|
+
"productId": "pd-ea366e9b",
|
|
4749
|
+
"lineId": "ln-b587c5ec",
|
|
4750
|
+
"startedAt": "2026-09-02T13:01:43.015Z",
|
|
4751
|
+
"endedAt": "2026-09-02T13:07:32.569Z",
|
|
4752
|
+
"results": [
|
|
4753
|
+
{
|
|
4754
|
+
"templateRef": "dcw-temp-sp",
|
|
4755
|
+
"nodeId": "dw-67ec7b30",
|
|
4756
|
+
"ok": true,
|
|
4757
|
+
"message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
|
|
4758
|
+
"value": 180
|
|
4759
|
+
}
|
|
4760
|
+
],
|
|
4761
|
+
"paramsSnapshot": [
|
|
4762
|
+
{
|
|
4763
|
+
"nodeId": "dw-67ec7b30",
|
|
4764
|
+
"templateRef": "dcw-temp-sp",
|
|
4765
|
+
"value": 180,
|
|
4766
|
+
"min": 176,
|
|
4767
|
+
"max": 188
|
|
4768
|
+
}
|
|
4769
|
+
]
|
|
4761
4770
|
}
|
|
4762
4771
|
]
|
|
@@ -9970,5 +9970,53 @@
|
|
|
9970
9970
|
"message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
|
|
9971
9971
|
"recipeRunId": "rr-4549422d",
|
|
9972
9972
|
"at": "2026-09-02T11:55:28.777Z"
|
|
9973
|
+
},
|
|
9974
|
+
{
|
|
9975
|
+
"id": "wh-b967d703",
|
|
9976
|
+
"nodeId": "dw-67ec7b30",
|
|
9977
|
+
"nodeName": "FFX-温度设定",
|
|
9978
|
+
"param": "烘箱温度设定",
|
|
9979
|
+
"eng": 180,
|
|
9980
|
+
"raw": 180,
|
|
9981
|
+
"ok": true,
|
|
9982
|
+
"message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
|
|
9983
|
+
"recipeRunId": "rr-03ed5e01",
|
|
9984
|
+
"at": "2026-09-02T13:01:43.017Z"
|
|
9985
|
+
},
|
|
9986
|
+
{
|
|
9987
|
+
"id": "wh-81555680",
|
|
9988
|
+
"nodeId": "dw-67ec7b30",
|
|
9989
|
+
"nodeName": "FFX-温度设定",
|
|
9990
|
+
"param": "烘箱温度设定",
|
|
9991
|
+
"eng": 182,
|
|
9992
|
+
"raw": 182,
|
|
9993
|
+
"ok": true,
|
|
9994
|
+
"message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
|
|
9995
|
+
"recipeRunId": null,
|
|
9996
|
+
"at": "2026-09-02T13:01:56.434Z"
|
|
9997
|
+
},
|
|
9998
|
+
{
|
|
9999
|
+
"id": "wh-94359ca2",
|
|
10000
|
+
"nodeId": "dw-67ec7b30",
|
|
10001
|
+
"nodeName": "FFX-温度设定",
|
|
10002
|
+
"param": "烘箱温度设定",
|
|
10003
|
+
"eng": 180,
|
|
10004
|
+
"raw": 180,
|
|
10005
|
+
"ok": true,
|
|
10006
|
+
"message": "Mock PLC 写入成功:180 → raw 180,回读一致(标定后物理值 180)",
|
|
10007
|
+
"recipeRunId": null,
|
|
10008
|
+
"at": "2026-09-02T13:01:56.619Z"
|
|
10009
|
+
},
|
|
10010
|
+
{
|
|
10011
|
+
"id": "wh-a3c42698",
|
|
10012
|
+
"nodeId": "dw-67ec7b30",
|
|
10013
|
+
"nodeName": "FFX-温度设定",
|
|
10014
|
+
"param": "烘箱温度设定",
|
|
10015
|
+
"eng": 182,
|
|
10016
|
+
"raw": 182,
|
|
10017
|
+
"ok": true,
|
|
10018
|
+
"message": "Mock PLC 写入成功:182 → raw 182,回读一致(标定后物理值 182)",
|
|
10019
|
+
"recipeRunId": null,
|
|
10020
|
+
"at": "2026-09-02T13:05:36.771Z"
|
|
9973
10021
|
}
|
|
9974
10022
|
]
|
package/server/data/dcws.json
CHANGED
|
@@ -2089,5 +2089,26 @@
|
|
|
2089
2089
|
"state": "ok",
|
|
2090
2090
|
"lastError": null,
|
|
2091
2091
|
"createdAt": "2026-09-02T11:55:28.447Z"
|
|
2092
|
+
},
|
|
2093
|
+
{
|
|
2094
|
+
"id": "dw-67ec7b30",
|
|
2095
|
+
"templateRef": "dcw-temp-sp",
|
|
2096
|
+
"name": "FFX-温度设定",
|
|
2097
|
+
"driver": "mock",
|
|
2098
|
+
"enabled": true,
|
|
2099
|
+
"holdIntervalMs": null,
|
|
2100
|
+
"unit": "℃",
|
|
2101
|
+
"decimals": 1,
|
|
2102
|
+
"min": 150,
|
|
2103
|
+
"max": 200,
|
|
2104
|
+
"deviceBindingId": null,
|
|
2105
|
+
"driverConfig": {},
|
|
2106
|
+
"lineId": "ln-b587c5ec",
|
|
2107
|
+
"value": 182,
|
|
2108
|
+
"lastAckAt": "2026-09-02T13:05:36.771Z",
|
|
2109
|
+
"lastWriteAt": "2026-09-02T13:05:36.771Z",
|
|
2110
|
+
"state": "ok",
|
|
2111
|
+
"lastError": null,
|
|
2112
|
+
"createdAt": "2026-09-02T13:01:42.957Z"
|
|
2092
2113
|
}
|
|
2093
2114
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"productId": "pd-3ad54846",
|
|
8
8
|
"productName": "光学膜 BOPP",
|
|
9
9
|
"startedAt": "2026-08-31T16:20:13.707Z",
|
|
10
|
-
"taggedSamples":
|
|
10
|
+
"taggedSamples": 35874
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
13
|
"lineId": "ln-c377a6bf",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"productId": "pd-7e69e0ee",
|
|
18
18
|
"productName": "警告验证产品-k2xh",
|
|
19
19
|
"startedAt": "2026-09-01T03:23:18.233Z",
|
|
20
|
-
"taggedSamples":
|
|
20
|
+
"taggedSamples": 14746
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"lineId": "ln-9224d3d7",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"productId": "pd-910c0fa8",
|
|
28
28
|
"productName": "新协议产品-9xhn",
|
|
29
29
|
"startedAt": "2026-09-01T05:59:24.062Z",
|
|
30
|
-
"taggedSamples":
|
|
30
|
+
"taggedSamples": 17730
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"lineId": "ln-386c53ed",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"productId": "pd-2d4f9357",
|
|
38
38
|
"productName": "新协议产品-6ofk",
|
|
39
39
|
"startedAt": "2026-09-01T06:05:53.063Z",
|
|
40
|
-
"taggedSamples":
|
|
40
|
+
"taggedSamples": 18019
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"lineId": "ln-5957f6db",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"productId": "pd-a3ed5047",
|
|
48
48
|
"productName": "新协议产品-x4hd",
|
|
49
49
|
"startedAt": "2026-09-01T06:09:02.148Z",
|
|
50
|
-
"taggedSamples":
|
|
50
|
+
"taggedSamples": 17605
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"lineId": "ln-9ec42f08",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"productId": "pd-5de729c0",
|
|
58
58
|
"productName": "新协议产品-teti",
|
|
59
59
|
"startedAt": "2026-09-01T06:13:44.315Z",
|
|
60
|
-
"taggedSamples":
|
|
60
|
+
"taggedSamples": 17584
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"lineId": "ln-69e37924",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"productId": "pd-45eb8d43",
|
|
68
68
|
"productName": "新协议产品-fg8t",
|
|
69
69
|
"startedAt": "2026-09-01T06:16:47.469Z",
|
|
70
|
-
"taggedSamples":
|
|
70
|
+
"taggedSamples": 17617
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"lineId": "ln-c269e692",
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
"productId": "pd-b3bd0191",
|
|
78
78
|
"productName": "新协议产品-w2sp",
|
|
79
79
|
"startedAt": "2026-09-01T06:56:05.893Z",
|
|
80
|
-
"taggedSamples":
|
|
80
|
+
"taggedSamples": 17668
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"lineId": "ln-229d1637",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"productId": "pd-06b896f9",
|
|
88
88
|
"productName": "新协议产品-lp4h",
|
|
89
89
|
"startedAt": "2026-09-01T06:57:29.288Z",
|
|
90
|
-
"taggedSamples":
|
|
90
|
+
"taggedSamples": 17540
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"lineId": "ln-9546f91f",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"productId": "pd-53e55078",
|
|
98
98
|
"productName": "新协议产品-jri6",
|
|
99
99
|
"startedAt": "2026-09-01T07:00:25.059Z",
|
|
100
|
-
"taggedSamples":
|
|
100
|
+
"taggedSamples": 16963
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"lineId": "ln-087aad5b",
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"productId": "pd-e7e969af",
|
|
108
108
|
"productName": "新协议产品-4c2d",
|
|
109
109
|
"startedAt": "2026-09-01T07:09:07.307Z",
|
|
110
|
-
"taggedSamples":
|
|
110
|
+
"taggedSamples": 15955
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"lineId": "ln-97d44f8a",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"productId": "pd-28a3ab2c",
|
|
118
118
|
"productName": "新协议产品-b2ni",
|
|
119
119
|
"startedAt": "2026-09-01T07:13:44.912Z",
|
|
120
|
-
"taggedSamples":
|
|
120
|
+
"taggedSamples": 15804
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"lineId": "ln-a9551770",
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
"productId": "pd-0c6a64c8",
|
|
128
128
|
"productName": "新协议产品-uwkf",
|
|
129
129
|
"startedAt": "2026-09-01T07:15:40.113Z",
|
|
130
|
-
"taggedSamples":
|
|
130
|
+
"taggedSamples": 15449
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"lineId": "ln-844ad82f",
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
"productId": "pd-6932b24f",
|
|
138
138
|
"productName": "新协议产品-kk6l",
|
|
139
139
|
"startedAt": "2026-09-01T09:06:55.728Z",
|
|
140
|
-
"taggedSamples":
|
|
140
|
+
"taggedSamples": 13604
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"lineId": "ln-af002514",
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
"productId": "pd-6348a595",
|
|
148
148
|
"productName": "0.8mm 光学膜",
|
|
149
149
|
"startedAt": "2026-09-01T14:06:28.766Z",
|
|
150
|
-
"taggedSamples":
|
|
150
|
+
"taggedSamples": 7090
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"lineId": "ln-0eccf6ba",
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
"productId": "pd-4b71be77",
|
|
158
158
|
"productName": "哨兵产品-mtjku36w",
|
|
159
159
|
"startedAt": "2026-09-02T04:09:11.482Z",
|
|
160
|
-
"taggedSamples":
|
|
160
|
+
"taggedSamples": 1543
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"lineId": "ln-e984246e",
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
"productId": "pd-bb1e0bed",
|
|
168
168
|
"productName": "产品C-mtjkwyhu",
|
|
169
169
|
"startedAt": "2026-09-02T04:11:26.583Z",
|
|
170
|
-
"taggedSamples":
|
|
170
|
+
"taggedSamples": 1542
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"lineId": "ln-1fe0b5bc",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
"productId": "pd-9f2d9507",
|
|
178
178
|
"productName": "产品D-mtjkzcfr",
|
|
179
179
|
"startedAt": "2026-09-02T04:13:17.902Z",
|
|
180
|
-
"taggedSamples":
|
|
180
|
+
"taggedSamples": 1541
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"lineId": "ln-d826473e",
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"productId": "pd-d230255e",
|
|
188
188
|
"productName": "产品E-mtjl43pv",
|
|
189
189
|
"startedAt": "2026-09-02T04:16:59.891Z",
|
|
190
|
-
"taggedSamples":
|
|
190
|
+
"taggedSamples": 1540
|
|
191
191
|
},
|
|
192
192
|
{
|
|
193
193
|
"lineId": "ln-156abb71",
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"productId": "pd-6065b4ba",
|
|
198
198
|
"productName": "产品F-mtjl60qf",
|
|
199
199
|
"startedAt": "2026-09-02T04:18:29.340Z",
|
|
200
|
-
"taggedSamples":
|
|
200
|
+
"taggedSamples": 1539
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"lineId": "ln-bac43927",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"productId": "pd-52f54e33",
|
|
208
208
|
"productName": "产品G-mtjl98nl",
|
|
209
209
|
"startedAt": "2026-09-02T04:20:59.682Z",
|
|
210
|
-
"taggedSamples":
|
|
210
|
+
"taggedSamples": 1538
|
|
211
211
|
},
|
|
212
212
|
{
|
|
213
213
|
"lineId": "ln-f223008a",
|
|
@@ -217,7 +217,7 @@
|
|
|
217
217
|
"productId": "pd-d919d4bf",
|
|
218
218
|
"productName": "产品-mtjo000v",
|
|
219
219
|
"startedAt": "2026-09-02T05:37:50.743Z",
|
|
220
|
-
"taggedSamples":
|
|
220
|
+
"taggedSamples": 1537
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
"lineId": "ln-c1ef6c0d",
|
|
@@ -227,6 +227,6 @@
|
|
|
227
227
|
"productId": "pd-efb05c40",
|
|
228
228
|
"productName": "���̽��Ʒ",
|
|
229
229
|
"startedAt": "2026-09-02T11:55:28.775Z",
|
|
230
|
-
"taggedSamples":
|
|
230
|
+
"taggedSamples": 652
|
|
231
231
|
}
|
|
232
232
|
]
|
|
@@ -69,6 +69,26 @@ export interface AgentWorkspace {
|
|
|
69
69
|
toChannelName: string
|
|
70
70
|
toLeadAgentId: string
|
|
71
71
|
}>
|
|
72
|
+
/** (仅 lead)其他团队概览:同主其余 channel 的场景任务(进行中/近期完成)——跨团队协同的观察面 */
|
|
73
|
+
listOtherTeams(): Promise<Array<{
|
|
74
|
+
channelId: string
|
|
75
|
+
name: string
|
|
76
|
+
description: string
|
|
77
|
+
leadName: string | null
|
|
78
|
+
/** 团队共享域知识量(>0 表示有可检索的作业结论) */
|
|
79
|
+
sharedMemories: number
|
|
80
|
+
activeTasks: Array<{ id: string, title: string, state: string }>
|
|
81
|
+
recentCompleted: Array<{ title: string }>
|
|
82
|
+
}>>
|
|
83
|
+
/** (全员)跨团队共享记忆检索:其他 channel 的 __team__ 公共域,只读,带团队归属 */
|
|
84
|
+
searchOtherTeamsMemory(input: { query: string, limit?: number }): Promise<Array<{
|
|
85
|
+
channelId: string
|
|
86
|
+
channelName: string
|
|
87
|
+
title: string
|
|
88
|
+
content: string
|
|
89
|
+
importance: number
|
|
90
|
+
createdAt: string
|
|
91
|
+
}>>
|
|
72
92
|
/**
|
|
73
93
|
* 拒绝指派给自己的任务(能力/范畴不匹配):任务置 FAILED(调度器改派他人),
|
|
74
94
|
* 并向派发方(任务创建者,缺省 channel lead)回执拒绝原因。
|
|
@@ -1578,6 +1578,34 @@ export class OmpRpcAgentImpl implements AgentInterface {
|
|
|
1578
1578
|
}
|
|
1579
1579
|
}
|
|
1580
1580
|
|
|
1581
|
+
case 'list_other_teams': {
|
|
1582
|
+
// 跨团队观察面(仅 lead):其他团队的场景任务概览
|
|
1583
|
+
const teams = await ws.listOtherTeams()
|
|
1584
|
+
if (teams.length === 0) return { text: '当前没有其他团队(或均未启用)。' }
|
|
1585
|
+
const text = teams.map((t) => {
|
|
1586
|
+
const active = t.activeTasks.length > 0
|
|
1587
|
+
? t.activeTasks.map(x => `「${x.title}」(${x.state})`).join('、')
|
|
1588
|
+
: '无进行中任务'
|
|
1589
|
+
const done = t.recentCompleted.length > 0
|
|
1590
|
+
? t.recentCompleted.map(x => `「${x.title}」`).join('、')
|
|
1591
|
+
: '无'
|
|
1592
|
+
const mem = t.sharedMemories > 0 ? `共享记忆 ${t.sharedMemories} 条(可检索)` : '暂无共享记忆'
|
|
1593
|
+
return `- ${t.name}${t.description ? `(${t.description})` : ''} · lead=${t.leadName ?? '?'} · ${mem}\n 进行中: ${active}\n 近期完成: ${done}\n channel_id: ${t.channelId}`
|
|
1594
|
+
}).join('\n')
|
|
1595
|
+
return { text: `其他团队概览:\n${text}\n(需要协作时用 send_cross_channel_message 向对应团队 Leader 发信;查具体知识用 search_other_teams_memory)` }
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
case 'search_other_teams_memory': {
|
|
1599
|
+
// 跨团队共享记忆(全员只读):别的团队沉淀的结论/经验,先查再决定是否发信
|
|
1600
|
+
const query = (req.arguments.query as string | undefined) ?? ''
|
|
1601
|
+
if (!query) return { text: '缺少 query', isError: true }
|
|
1602
|
+
const rows = await ws.searchOtherTeamsMemory({ query, limit: Number(req.arguments.limit ?? 5) })
|
|
1603
|
+
if (rows.length === 0) return { text: `其他团队的共享记忆中没有命中「${query}」的内容。` }
|
|
1604
|
+
const text = rows.map(r =>
|
|
1605
|
+
`- [${r.channelName}] 「${r.title}」(${r.createdAt.slice(0, 10)}): ${r.content}`).join('\n')
|
|
1606
|
+
return { text: `其他团队共享记忆命中 ${rows.length} 条:\n${text}` }
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1581
1609
|
case 'refuse_task': {
|
|
1582
1610
|
const taskId = req.arguments.task_id as string
|
|
1583
1611
|
const reason = req.arguments.reason as string
|
|
@@ -133,6 +133,32 @@ export function createMemoryRepo(db: DatabaseSync) {
|
|
|
133
133
|
return searchStmt.all(matchQuery, agentId, TEAM_AGENT_ID, limit) as unknown as Array<MemoryRow & { bm25: number }>
|
|
134
134
|
},
|
|
135
135
|
|
|
136
|
+
/**
|
|
137
|
+
* 跨团队共享域检索(hardening 后的协作扩展;只读):仅 __team__ 行,
|
|
138
|
+
* 限定目标 channel 集合(调用方保证同主/启用),按 bm25 排序。
|
|
139
|
+
* matchQuery 为 OR 连接的切分词(与 search 同规约)。
|
|
140
|
+
*/
|
|
141
|
+
searchTeamSharedAcross(matchQuery: string, channelIds: string[], limit: number): Array<MemoryRow & { bm25: number }> {
|
|
142
|
+
if (channelIds.length === 0) return []
|
|
143
|
+
const placeholders = channelIds.map(() => '?').join(', ')
|
|
144
|
+
const stmt = db.prepare(
|
|
145
|
+
`SELECT ${COLS}, f.rank AS bm25
|
|
146
|
+
FROM agent_memories_fts f
|
|
147
|
+
JOIN agent_memories m ON m.rowid = f.memory_rowid
|
|
148
|
+
WHERE agent_memories_fts MATCH ? AND m.agent_id = ? AND m.channel_id IN (${placeholders})
|
|
149
|
+
ORDER BY f.rank LIMIT ?`,
|
|
150
|
+
)
|
|
151
|
+
return stmt.all(matchQuery, TEAM_AGENT_ID, ...channelIds, limit) as unknown as Array<MemoryRow & { bm25: number }>
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
/** 某 channel 团队共享域的行数(跨团队概览的"知识量"指标) */
|
|
155
|
+
countTeamShared(channelId: string): number {
|
|
156
|
+
return Number(
|
|
157
|
+
db.prepare(`SELECT COUNT(*) AS c FROM agent_memories WHERE channel_id = ? AND agent_id = ?`)
|
|
158
|
+
.get(channelId, TEAM_AGENT_ID)?.c ?? 0,
|
|
159
|
+
)
|
|
160
|
+
},
|
|
161
|
+
|
|
136
162
|
listRecent(agentId: string, limit: number): MemoryRow[] {
|
|
137
163
|
return listRecentStmt.all(agentId, limit) as unknown as MemoryRow[]
|
|
138
164
|
},
|