nolo-cli 0.19.0 → 0.24.0-alpha.6
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/{_executeModel-X5PCIZN6.js → _executeModel-ARCMGGMY.js} +46 -44
- package/{action-LT7BRFLK.js → action-5MNAXR5B.js} +7 -6
- package/{addContentAction-PL3KKBDH.js → addContentAction-UNSYTVTB.js} +5 -5
- package/{addDialogAgentAction-FCMSKYAF.js → addDialogAgentAction-LJGNP2AO.js} +5 -5
- package/{agentDeleteCommand-2BZDQV36.js → agentDeleteCommand-C5PIEBMZ.js} +27 -26
- package/{agentEmailCommands-2QJDGRMB.js → agentEmailCommands-QTGQ3ZAD.js} +57 -55
- package/{agentListCommands-6VEPTKBI.js → agentListCommands-LRHBS3A5.js} +30 -26
- package/{agentMachineCommands-NVVHNWYI.js → agentMachineCommands-4PXIT4BP.js} +25 -24
- package/{agentRecordCommands-4GGRDMD4.js → agentRecordCommands-ZZPTYTYR.js} +52 -50
- package/{agentRunCommand-XOLQNKBZ.js → agentRunCommand-7ZTPZNUX.js} +55 -54
- package/{agentRunControl-Y5AFH5PQ.js → agentRunControl-SNUKXN6J.js} +6 -2
- package/{agentRuntimeLocal-7WYWCGL4.js → agentRuntimeLocal-QOYY5UV2.js} +19 -18
- package/{agentSlice-EAXPGEYV.js → agentSlice-J3W3RX2I.js} +5 -5
- package/{appDeleteCommands-77KR2RJ4.js → appDeleteCommands-7NS46XDH.js} +23 -22
- package/{appDeployCommands-K7CAHGBI.js → appDeployCommands-RSRNQ67U.js} +23 -22
- package/{appDeployStatusCommands-4OEKLTBT.js → appDeployStatusCommands-EF4RSGC6.js} +23 -22
- package/{appGetCommands-VM2WDLAZ.js → appGetCommands-YA7JWYUX.js} +23 -22
- package/{appListCommands-GX6BBA6U.js → appListCommands-WM2ON6JW.js} +23 -22
- package/{authCommand-DY6UUL6O.js → authCommand-HJP7FURK.js} +12 -13
- package/{authCommands-XTBV7OFZ.js → authCommands-NYZM2B2I.js} +4 -5
- package/{chunk-MKA6QE5E.js → chunk-2IPEVBUO.js} +126 -68
- package/{chunk-OWOHNGCN.js → chunk-2MBTWINN.js} +42 -3
- package/{chunk-K6EUAOW3.js → chunk-35RYGII3.js} +1 -1
- package/{chunk-TRT4I4UD.js → chunk-4POUK2BV.js} +2 -2
- package/{chunk-LLWKHDG4.js → chunk-4ULSC37S.js} +1 -3
- package/{chunk-EDV7EBOI.js → chunk-4ZH6GUJF.js} +2151 -1500
- package/{chunk-MVQ4TBSD.js → chunk-54VHTARN.js} +1 -1
- package/{chunk-L4F3I4SR.js → chunk-5HQQ4LUU.js} +4 -6
- package/{chunk-Z4NR32XR.js → chunk-5RGU3J7P.js} +13 -0
- package/{chunk-7BUYEZ6U.js → chunk-7H3UTGPM.js} +12 -72
- package/{chunk-RQN4SEKL.js → chunk-7W6GFNJL.js} +1 -1
- package/{chunk-HEGV7BH3.js → chunk-AQZCWJOG.js} +1 -1
- package/{chunk-3ND52WIL.js → chunk-ATWUOTJP.js} +180 -24
- package/chunk-CF7S2RYZ.js +376 -0
- package/{chunk-I2ZJKTG5.js → chunk-CGVRC2TB.js} +7 -7
- package/{chunk-UAIVG4J6.js → chunk-CHSCAUZN.js} +1 -8
- package/{chunk-KFEVY3ST.js → chunk-D34RI6NI.js} +18 -8
- package/{chunk-ROWQEJRP.js → chunk-DXJS7VSG.js} +3 -2
- package/{chunk-MHSGJW4Z.js → chunk-EHOYZRTI.js} +44 -14
- package/{chunk-XRZJGPFI.js → chunk-FON47ACC.js} +4 -4
- package/{chunk-SCTYAHYK.js → chunk-H2NAWOLH.js} +217 -141
- package/{chunk-MPVYDS7I.js → chunk-H6ODMJR3.js} +3 -3
- package/{chunk-R35XMF6F.js → chunk-H73ZV2GL.js} +352 -30
- package/{chunk-4T5F7YZQ.js → chunk-I6RJGORZ.js} +1 -1
- package/{chunk-OK6YSWLH.js → chunk-IICW77GI.js} +1 -1
- package/{chunk-VDXCXCXH.js → chunk-IUDMBCXC.js} +1 -1
- package/{chunk-AHCY2S2I.js → chunk-JADNODCQ.js} +1 -1
- package/{chunk-DFCFMCY6.js → chunk-JBLY6HQP.js} +2 -2
- package/{chunk-UGUW3FHG.js → chunk-JMSCXQUG.js} +2 -2
- package/{chunk-N54HIJVJ.js → chunk-KFUCLS7Z.js} +101 -9
- package/{chunk-FQZZLA3C.js → chunk-KXKQO4Q6.js} +17 -0
- package/{chunk-3Q7WHGCB.js → chunk-L65QKSVJ.js} +1 -1
- package/{chunk-3ZX7PERL.js → chunk-LALVWNE4.js} +20 -7
- package/{chunk-PJSV3IZ5.js → chunk-M3TMVJKG.js} +1 -1
- package/{chunk-REA4JLBH.js → chunk-M5OZCOBV.js} +7 -6
- package/{chunk-JLA4FXYC.js → chunk-MALVZUYL.js} +1 -1
- package/{chunk-GFUIQ4RY.js → chunk-MXFQHRSS.js} +1 -1
- package/{chunk-LSFAWXKC.js → chunk-N7J63Q6C.js} +1 -0
- package/{chunk-6Y7A3OQQ.js → chunk-NRY4GCKJ.js} +2 -0
- package/{chunk-G5U6LDLG.js → chunk-NVHPMDSZ.js} +6 -6
- package/{chunk-23FZYPLC.js → chunk-OJFYT3ZQ.js} +842 -1060
- package/{chunk-ELT65PZW.js → chunk-OXLLFZNF.js} +1 -1
- package/{chunk-CZ6NYQTV.js → chunk-P4QWLZGU.js} +2 -2
- package/{chunk-5MIDPSSK.js → chunk-PB7G5MAM.js} +3 -3
- package/{chunk-HWW2M4SN.js → chunk-QLVWFXZQ.js} +5 -4
- package/{chunk-VYHDJEQD.js → chunk-QNLLGS37.js} +136 -78
- package/{chunk-XHG22OEX.js → chunk-ROJI6DRT.js} +2 -2
- package/{chunk-BV4VEE3W.js → chunk-ROYOKSX4.js} +243 -354
- package/{chunk-VNAEBGDK.js → chunk-RZNYL4LW.js} +123 -26
- package/{chunk-RVOUXDFU.js → chunk-S6KVFOUG.js} +6 -34
- package/{chunk-V3ED5AWK.js → chunk-S77SCVBU.js} +27 -16
- package/{chunk-UBHAWFQ6.js → chunk-S7RWIPDI.js} +42 -19
- package/{chunk-B5TOXZAK.js → chunk-SIZQB7BD.js} +1 -1
- package/{chunk-DFFIZ25G.js → chunk-SLOGKB7M.js} +4 -1
- package/{chunk-FXUSIQC2.js → chunk-SROR5TSM.js} +1 -1
- package/{chunk-PIZYJVHQ.js → chunk-TN4YHAI3.js} +4 -4
- package/{chunk-IYEXFJPC.js → chunk-TW35GDNW.js} +64 -57
- package/chunk-UZ6XXCVR.js +50 -0
- package/{chunk-DKZFOK24.js → chunk-UZH44DWK.js} +7 -288
- package/{chunk-YGW4G5W5.js → chunk-X546QUDT.js} +61 -12
- package/chunk-YYLHWIW6.js +48 -0
- package/{chunk-SWDPIPOY.js → chunk-ZGVW7MSZ.js} +1 -1
- package/{chunk-34WPV75U.js → chunk-ZUXIXYJI.js} +1 -1
- package/{chunk-VC6OZXO5.js → chunk-ZWJOGMKH.js} +2 -26
- package/{cliExecutor-DNE7TCC4.js → cliExecutor-K3F7DMRO.js} +2 -2
- package/{codingSkills-36KN5NQT.js → codingSkills-EN6Z6G6U.js} +4 -4
- package/{createAgentAutomationAction-GNFF524X.js → createAgentAutomationAction-MKQWN4VQ.js} +19 -18
- package/{createDialogAction-RB55KCLO.js → createDialogAction-YWIZPLFS.js} +22 -20
- package/{createPageAction-Y7343GLU.js → createPageAction-74TTEIPC.js} +20 -19
- package/{db-W3O47YGF.js → db-W5UHK4P3.js} +150 -0
- package/{dbSlice-CGSRFJN3.js → dbSlice-5BKDURDL.js} +4 -4
- package/{dialogCommands-IAZK6YHQ.js → dialogCommands-MJIP32FL.js} +24 -23
- package/{dialogSlice-UQAXF23P.js → dialogSlice-KLLVH4WI.js} +24 -18
- package/{docCreateCommands-I2EWZGCI.js → docCreateCommands-5DN472U6.js} +24 -27
- package/{docDeleteCommands-IZ45UZKG.js → docDeleteCommands-HE76LBN4.js} +25 -24
- package/{docReadCommands-R6Z4QJYU.js → docReadCommands-XVGZSCBS.js} +24 -23
- package/{docStore-5HOJ4D7D.js → docStore-SPH3D6BT.js} +20 -19
- package/{docUpdateCommands-2LRBKQPY.js → docUpdateCommands-P7IAWUAD.js} +24 -27
- package/{fetchMessages-BMGVZVSE.js → fetchMessages-W4IKHPCS.js} +2 -3
- package/{getPricing-G7DLAST6.js → getPricing-WENPBVWH.js} +3 -3
- package/{handleSendMessageAction-Q4HY35WX.js → handleSendMessageAction-ZU6WJVL7.js} +23 -20
- package/index.js +74 -74
- package/{localDialogRead-4H3QJFLW.js → localDialogRead-JXTAHW2E.js} +2 -2
- package/{machineCommands-PKBPQKTY.js → machineCommands-NI76PVHK.js} +59 -57
- package/{machineWsRunDispatch-UZAW4OXJ.js → machineWsRunDispatch-W3G6NJVQ.js} +51 -49
- package/{models-DJFSJ7SW.js → models-DB27UAE3.js} +2 -2
- package/package.json +1 -1
- package/{read-3FMPZPER.js → read-F3L3T2WJ.js} +2 -1
- package/{readDocTool-VSYHKK3V.js → readDocTool-FOHWVA4R.js} +1 -1
- package/{readlineWorkspace-Y2RDOFZG.js → readlineWorkspace-BDH4G477.js} +880 -425
- package/{removeDialogAgentAction-OAGA2G3U.js → removeDialogAgentAction-QCFGIUIH.js} +8 -7
- package/{runAgentClientLoop-NBPIKJ6J.js → runAgentClientLoop-ZPKMXCM5.js} +45 -38
- package/{setDialogExtraReferencesAction-JZEXA5SL.js → setDialogExtraReferencesAction-DK4CKERU.js} +5 -5
- package/{setPrimaryDialogAgentAction-4ZUQQKDG.js → setPrimaryDialogAgentAction-SJSO6N27.js} +8 -7
- package/{settingSlice-7MNKHZ6R.js → settingSlice-XNM5AFPU.js} +6 -5
- package/{spaceCommands-DHCZ7J5I.js → spaceCommands-3GGBJRQR.js} +25 -24
- package/{spaceSlice-ZXLLG3CR.js → spaceSlice-47Z6XLFQ.js} +21 -18
- package/{streamAgentChatTurn-L3YW6LSB.js → streamAgentChatTurn-VT5K5JSD.js} +140 -98
- package/switchDialogAgentAction-4OAC6QRN.js +61 -0
- package/{tableCommands-BEQAGE4I.js → tableCommands-HEQYT2KP.js} +1 -1
- package/{toolApiClient-QI3YBNWB.js → toolApiClient-ISM4ZQX4.js} +2 -2
- package/{tools-ECGXR5QF.js → tools-L7RCHAPT.js} +36 -33
- package/{tuiSummaryLlmCaller-OMSCNHXA.js → tuiSummaryLlmCaller-3DYOLTVN.js} +6 -6
- package/{updateCommands-XTW55TOT.js → updateCommands-HTCOBXCA.js} +2 -2
- package/{updateDialogTitleAction-HQ2EUDFT.js → updateDialogTitleAction-KMPVPQ4A.js} +28 -27
- package/chunk-DL6EPNIK.js +0 -50
- package/chunk-V5R4NZP2.js +0 -78
- package/chunk-X4Q4UZEY.js +0 -26
- package/queryRunOverlay-O4LOMMPO.js +0 -161
- package/runOverlayPresentation-ZO4VCWEU.js +0 -11
- package/types-ZSTJ7MPR.js +0 -7
- package/{chunk-X7W4TNB4.js → chunk-CMKUBIGW.js} +3 -3
- package/{runtimeDoctorCommands-E2OUORHK.js → runtimeDoctorCommands-HSU632DY.js} +3 -3
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
i18n_default,
|
|
3
3
|
toolRegistry
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4ZH6GUJF.js";
|
|
5
5
|
import {
|
|
6
6
|
canonicalizeToolNames
|
|
7
7
|
} from "./chunk-ZZ2MH7LE.js";
|
|
8
8
|
import {
|
|
9
9
|
isNoloHostedProvider
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-2IPEVBUO.js";
|
|
11
11
|
import {
|
|
12
12
|
asTrimmedLowercaseString
|
|
13
13
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
extractCustomId
|
|
3
|
-
} from "./chunk-DFFIZ25G.js";
|
|
4
1
|
import {
|
|
5
2
|
getActiveDialogKey
|
|
6
3
|
} from "./chunk-3ASDTTEI.js";
|
|
@@ -10,6 +7,9 @@ import {
|
|
|
10
7
|
import {
|
|
11
8
|
asTrimmedLowercaseString
|
|
12
9
|
} from "./chunk-QSJ3HFEF.js";
|
|
10
|
+
import {
|
|
11
|
+
extractCustomId
|
|
12
|
+
} from "./chunk-SLOGKB7M.js";
|
|
13
13
|
import {
|
|
14
14
|
isRecord
|
|
15
15
|
} from "./chunk-KUG52IAP.js";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
listUserRecordsFromServers,
|
|
3
3
|
readLiveDbRecordAfterTombstoneMerge
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-AQZCWJOG.js";
|
|
5
5
|
import {
|
|
6
6
|
agentRecordHasConfiguredCredential
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-JBLY6HQP.js";
|
|
8
8
|
import {
|
|
9
9
|
toSafeAgentSummary
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-LALVWNE4.js";
|
|
11
11
|
|
|
12
12
|
// packages/cli/agentListHelpers.ts
|
|
13
13
|
function parseAgentRecordId(privateKey, explicitId) {
|
|
@@ -51,7 +51,8 @@ function normalizeListedAgent(record) {
|
|
|
51
51
|
credentialRef,
|
|
52
52
|
apiKeyRef,
|
|
53
53
|
...typeof record?.apiSource === "string" && record.apiSource ? { apiSource: record.apiSource } : {},
|
|
54
|
-
...typeof record?.cliProvider === "string" && record.cliProvider ? { cliProvider: record.cliProvider } : {}
|
|
54
|
+
...typeof record?.cliProvider === "string" && record.cliProvider ? { cliProvider: record.cliProvider } : {},
|
|
55
|
+
...typeof record?.nextAvailableAt === "number" && Number.isFinite(record.nextAvailableAt) ? { nextAvailableAt: record.nextAvailableAt } : {}
|
|
55
56
|
};
|
|
56
57
|
}
|
|
57
58
|
function toSafeListedAgentSummary(agent, options) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ANTIGRAVITY_CLOUD_CODE_BASE_URL,
|
|
3
3
|
isAntigravityOAuthAgent
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-SROR5TSM.js";
|
|
5
5
|
import {
|
|
6
6
|
clipMultilineText,
|
|
7
7
|
fetchAndSerializeTable,
|
|
8
|
+
resolveBuiltinSkillPage,
|
|
8
9
|
waitForAbortableDelay
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4ZH6GUJF.js";
|
|
10
11
|
import {
|
|
11
12
|
createDrainExhaustedResponse,
|
|
12
13
|
isCoreDrainingBody,
|
|
@@ -16,22 +17,24 @@ import {
|
|
|
16
17
|
} from "./chunk-RQSOAMPJ.js";
|
|
17
18
|
import {
|
|
18
19
|
slateToSimplifiedMarkdown
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-I6RJGORZ.js";
|
|
20
21
|
import {
|
|
21
22
|
extractCategorizedMentions
|
|
22
23
|
} from "./chunk-VP4WJWKW.js";
|
|
23
24
|
import {
|
|
24
|
-
fetchAndCacheMessages
|
|
25
|
-
|
|
26
|
-
} from "./chunk-SCTYAHYK.js";
|
|
25
|
+
fetchAndCacheMessages
|
|
26
|
+
} from "./chunk-H2NAWOLH.js";
|
|
27
27
|
import {
|
|
28
28
|
fetchServerSyncedCredential
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-M5OZCOBV.js";
|
|
30
|
+
import {
|
|
31
|
+
shouldUseServerProxy
|
|
32
|
+
} from "./chunk-YYLHWIW6.js";
|
|
30
33
|
import {
|
|
31
34
|
buildSkillGuidancePromptBlock,
|
|
32
35
|
extractRuntimePageCapabilities,
|
|
33
36
|
resolveSkillGraphFromRoots
|
|
34
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-7H3UTGPM.js";
|
|
35
38
|
import {
|
|
36
39
|
MENU_USAGE_INSTRUCTIONS,
|
|
37
40
|
buildCurrentTimeBlock,
|
|
@@ -39,20 +42,20 @@ import {
|
|
|
39
42
|
buildRuntimeGuidanceBlocks,
|
|
40
43
|
requiresBareImageUrl,
|
|
41
44
|
toBareImageUrlMessages
|
|
42
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-ZUXIXYJI.js";
|
|
43
46
|
import {
|
|
44
47
|
convertMessagesToResponsesInput,
|
|
45
48
|
preserveAgentStateFields
|
|
46
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-D34RI6NI.js";
|
|
47
50
|
import {
|
|
48
51
|
buildProviderAuthHeaders,
|
|
49
52
|
isOpenAiResponsesModel,
|
|
50
53
|
resolvePlatformChatCompletionsEndpoint,
|
|
51
54
|
resolvePlatformResponsesEndpoint
|
|
52
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-EHOYZRTI.js";
|
|
53
56
|
import {
|
|
54
57
|
estimateTokenCount
|
|
55
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-CGVRC2TB.js";
|
|
56
59
|
import {
|
|
57
60
|
createFileCredentialBroker
|
|
58
61
|
} from "./chunk-5CS33IBL.js";
|
|
@@ -60,13 +63,7 @@ import {
|
|
|
60
63
|
clampReasoningEffort,
|
|
61
64
|
getModelConfig,
|
|
62
65
|
isModelSupportReasoningEffort
|
|
63
|
-
} from "./chunk-
|
|
64
|
-
import {
|
|
65
|
-
toErrorMessage
|
|
66
|
-
} from "./chunk-HNMXYYJR.js";
|
|
67
|
-
import {
|
|
68
|
-
createSpaceKey
|
|
69
|
-
} from "./chunk-ELT65PZW.js";
|
|
66
|
+
} from "./chunk-CHSCAUZN.js";
|
|
70
67
|
import {
|
|
71
68
|
MEMORY_USE_GUIDANCE,
|
|
72
69
|
wrapHistoricalSummaryWithReplayGuard
|
|
@@ -75,16 +72,19 @@ import {
|
|
|
75
72
|
canonicalizeToolNames
|
|
76
73
|
} from "./chunk-ZZ2MH7LE.js";
|
|
77
74
|
import {
|
|
78
|
-
|
|
79
|
-
} from "./chunk-
|
|
75
|
+
toErrorMessage
|
|
76
|
+
} from "./chunk-HNMXYYJR.js";
|
|
80
77
|
import {
|
|
81
78
|
isDeepInfraKimiModel,
|
|
82
79
|
isFireworksKimiModel,
|
|
83
80
|
resolveFireworksKimiModel
|
|
84
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-2IPEVBUO.js";
|
|
82
|
+
import {
|
|
83
|
+
createSpaceKey
|
|
84
|
+
} from "./chunk-OXLLFZNF.js";
|
|
85
85
|
import {
|
|
86
86
|
read
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-FON47ACC.js";
|
|
88
88
|
import {
|
|
89
89
|
asTrimmedLowercaseString
|
|
90
90
|
} from "./chunk-QSJ3HFEF.js";
|
|
@@ -97,6 +97,9 @@ import {
|
|
|
97
97
|
import {
|
|
98
98
|
asTrimmedString
|
|
99
99
|
} from "./chunk-3EUW3WEO.js";
|
|
100
|
+
import {
|
|
101
|
+
extractCustomId
|
|
102
|
+
} from "./chunk-SLOGKB7M.js";
|
|
100
103
|
import {
|
|
101
104
|
API_ENDPOINTS
|
|
102
105
|
} from "./chunk-LCBAMY2M.js";
|
|
@@ -131,6 +134,11 @@ var loadContentsByKeys = async (keys, dispatch, preloaded) => {
|
|
|
131
134
|
if (content) contentByKey.set(dbKey, content);
|
|
132
135
|
return;
|
|
133
136
|
}
|
|
137
|
+
const builtin = resolveBuiltinSkillPage(dbKey);
|
|
138
|
+
if (builtin) {
|
|
139
|
+
contentByKey.set(dbKey, builtin);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
134
142
|
try {
|
|
135
143
|
const content = await dispatch(read({ dbKey })).unwrap();
|
|
136
144
|
if (content) contentByKey.set(dbKey, content);
|
|
@@ -153,6 +161,8 @@ var resolveReferenceAssets = async (references, dispatch) => {
|
|
|
153
161
|
}
|
|
154
162
|
const entries = await Promise.all(
|
|
155
163
|
references.filter((ref) => ref?.dbKey).map(async (ref) => {
|
|
164
|
+
const builtin = resolveBuiltinSkillPage(ref.dbKey);
|
|
165
|
+
if (builtin) return { ref, content: builtin };
|
|
156
166
|
try {
|
|
157
167
|
const content = await dispatch(read({ dbKey: ref.dbKey })).unwrap();
|
|
158
168
|
return { ref, content };
|
|
@@ -453,7 +463,7 @@ function resolveAgentCallPlan(agentConfig, _env) {
|
|
|
453
463
|
endpointKey: agentConfig.endpointKey
|
|
454
464
|
});
|
|
455
465
|
const upstreamWire = useResponses ? "responses" : "chat.completions";
|
|
456
|
-
const endpoint = useResponses ? resolvePlatformResponsesEndpoint(provider) ?? "" : resolvePlatformChatCompletionsEndpoint(provider) ?? "";
|
|
466
|
+
const endpoint = useResponses ? resolvePlatformResponsesEndpoint(provider) ?? "" : resolvePlatformChatCompletionsEndpoint(provider, agentConfig.model) ?? "";
|
|
457
467
|
return {
|
|
458
468
|
authMethod: { kind: "platform-key" },
|
|
459
469
|
transport,
|
|
@@ -641,28 +651,30 @@ var CONTEXT_USAGE_INSTRUCTIONS = `\u53C2\u8003\u8D44\u6599\u4F7F\u7528\u8BF4\u66
|
|
|
641
651
|
- \u5F53\u901A\u7528\u6307\u4EE4\u4E0E\u66F4\u5177\u4F53\u7684"\u6309 Agent / \u6309\u6587\u6863"\u7684\u89C4\u5219\u53D1\u751F\u51B2\u7A81\u65F6\uFF0C\u5FC5\u987B\u4F18\u5148\u9075\u5B88\u66F4\u5177\u4F53\u3001\u4F18\u5148\u7EA7\u66F4\u9AD8\u7684\u89C4\u5219\u3002`;
|
|
642
652
|
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
643
653
|
\u4F60\u53EF\u7528 startAgentRun \u540E\u53F0\u542F\u52A8\u5B50 Agent\uFF08fork+exec\uFF0C\u8FD4\u56DE runId\uFF09\uFF0C\u7528 controlAgentRun \u89C2\u5BDF/\u505C\u6B62\uFF08wait+signal+proc\uFF09\u3002\u6838\u5FC3\u7EAA\u5F8B\uFF08\u53CD\u9762\u6559\u6750\uFF1A\u5B50\u4EE3\u7406\u5D29\u6E83/\u6302\u8D77\u800C\u7F16\u6392\u5668\u6BEB\u65E0\u5BDF\u89C9\uFF09\uFF1A
|
|
644
|
-
1. \u5148\u53D1\u73B0\u518D\u6D3E\u53D1\u3002\u8C03\u7528 listAgents\u3002**\u8FD4\u56DE\u7684 agents \u6570\u7EC4\u91CC\u6BCF\u4E2A\u6761\u76EE\u76F4\u63A5\u7ED9\u51FA\u53EF\u6D3E\u53D1\u7684 agentKey\u3001\u4EF7\u683C\u3001tools\u3001\u4EE5\u53CA isOwned/isFavorite \u6807\u8BB0\u2014\u2014\u9009\u4EBA\u552F\u4E00\u4F9D\u636E\u5C31\u662F\u8FD9\u6761\u8BB0\u5F55\uFF0C\u76F4\u63A5\u4ECE agentKey \u5B57\u6BB5\u53D6\u503C\uFF0C\u4E0D\u8981\u624B\u5DE5\u62FC\u63A5\u6216\u63A8\u65AD\u3002** \u9009\u4EBA\u4F18\u5148\u7EA7\uFF1A\u7279\u5B9A\
|
|
645
|
-
- \u6D3E\u53D1\u65F6**\u539F\u6837\u590D\u5236\u8BE5\u6761\u8BB0\u5F55\u7684 agentKey** \u4F20\u7ED9 startAgentRun
|
|
646
|
-
- \u6D3E\u53D1\u524D\u5148\
|
|
647
|
-
- \
|
|
654
|
+
1. \u5148\u53D1\u73B0\u518D\u6D3E\u53D1\u3002\u8C03\u7528 listAgents\u3002**\u8FD4\u56DE\u7684 agents \u6570\u7EC4\u91CC\u6BCF\u4E2A\u6761\u76EE\u76F4\u63A5\u7ED9\u51FA\u53EF\u6D3E\u53D1\u7684 agentKey\u3001\u4EF7\u683C\u3001tools\u3001\u4EE5\u53CA isOwned/isFavorite \u6807\u8BB0\u2014\u2014\u9009\u4EBA\u552F\u4E00\u4F9D\u636E\u5C31\u662F\u8FD9\u6761\u8BB0\u5F55\uFF0C\u76F4\u63A5\u4ECE agentKey \u5B57\u6BB5\u53D6\u503C\uFF0C\u4E0D\u8981\u624B\u5DE5\u62FC\u63A5\u6216\u63A8\u65AD\u3002** \u9009\u4EBA\u4F18\u5148\u7EA7\uFF1A\u7279\u5B9A\u989D\u5916\u80FD\u529B\u9700\u6C42\uFF08\u770B tools \u5B57\u6BB5\u662F\u5426\u8986\u76D6\u6D4F\u89C8\u5668/\u56FE\u7247/\u8868\u683C/\u90AE\u4EF6/\u6570\u636E\u5E93\u7B49\u989D\u5916\u80FD\u529B\uFF09\u2192 \u81EA\u5EFA agent \u4F18\u5148\uFF08isOwned=true\uFF0C\u8D70\u7528\u6237\u81EA\u5DF1\u914D\u989D\u4E0D\u82B1\u5E73\u53F0 credits\uFF09\u2192 \u6210\u672C/\u80FD\u529B\u5339\u914D\uFF08\u770B inputPrice\uFF09\u2192 \u80DC\u4EFB\u8005\u4E2D isFavorite \u2192 modelAbility\u3002\u6CE8\u610F\uFF1Acoding \u5DE5\u5177\uFF08writeFile/editFile/execBash/applyEdit/gitCommit \u7B49\uFF09\u662F\u684C\u9762\u7AEF/CLI \u8FD0\u884C\u65F6\u9ED8\u8BA4\u57FA\u7EBF\uFF0Chost \u5728 coding \u73AF\u5883\u6D3E\u53D1\u65F6\u81EA\u52A8\u6CE8\u5165\uFF0Ctools \u5B57\u6BB5\u4E0D\u53CD\u6620\u8FD9\u4E9B\u5DE5\u5177\uFF0C\u56E0\u6B64\u4E0D\u6784\u6210\u9009\u4EBA\u5DEE\u5F02\u2014\u2014\u4E0D\u8981\u56E0\u4E3A tools=[] \u5C31\u6392\u9664\u67D0 agent\u3002
|
|
655
|
+
- \u6D3E\u53D1\u65F6**\u539F\u6837\u590D\u5236\u8BE5\u6761\u8BB0\u5F55\u7684 agentKey** \u4F20\u7ED9 startAgentRun\uFF0C\u4E0D\u62FC\u63A5\u3001\u4E0D\u63A8\u65AD\u3001\u4E0D\u6362\u683C\u5F0F\u3002
|
|
656
|
+
- \u6D3E\u53D1\u524D\u5148\u7531\u4F60\u81EA\u5DF1\u7406\u89E3\u548C\u7814\u7A76\u4EFB\u52A1\uFF1A\u5148\u5224\u65AD\u76EE\u6807\u3001\u5DF2\u77E5\u4E8B\u5B9E\u3001\u672A\u77E5\u9879\u3001\u590D\u6742\u5EA6\u548C\u6700\u6709\u4EF7\u503C\u7684\u4E0B\u4E00\u6B65\u3002\u7B80\u5355\u3001\u660E\u786E\u3001\u5355\u4E00\u95ED\u73AF\u7684\u4EFB\u52A1\u81EA\u5DF1\u5B8C\u6210\uFF0C\u4E0D\u8981\u4E3A\u4E86\u4F7F\u7528\u591A Agent \u800C\u6D3E\u53D1\u3002
|
|
657
|
+
- \u590D\u6742\u4EFB\u52A1\u624D\u8FDB\u5165\u62C6\u89E3\uFF1A\u53EA\u6709\u5F53\u6D3E\u53D1\u80FD\u5E26\u6765\u4F60\u65E0\u6CD5\u76F4\u63A5\u83B7\u5F97\u7684\u989D\u5916\u4EA7\u51FA\uFF08\u72EC\u7ACB\u4E13\u4E1A\u80FD\u529B\u3001\u771F\u6B63\u5E76\u884C\u7684\u65B9\u5411\u3001\u72EC\u7ACB\u9A8C\u8BC1\uFF0C\u6216\u957F\u65F6\u95F4\u540E\u53F0\u6267\u884C\uFF09\u65F6\u624D\u6D3E\u53D1\uFF1B\u53EF\u62C6\u5206\u4E0D\u7B49\u4E8E\u5FC5\u987B\u62C6\u5206\u3002\u6D3E\u53D1\u524D\u5FC5\u987B\u5199\u6E05\u5B50\u4EFB\u52A1\u76EE\u6807\u3001\u8FB9\u754C\u3001\u4EA4\u4ED8\u8BC1\u636E\uFF0C\u4EE5\u53CA\u7ED3\u679C\u5C06\u5982\u4F55\u6539\u53D8\u4F60\u7684\u4E0B\u4E00\u6B65\u3002
|
|
658
|
+
- \u6309\u4E09\u6863\u5224\u65AD\uFF1A\u7B80\u5355\uFF08\u76EE\u6807\u660E\u786E\u3001\u5355\u4E00\u9886\u57DF\u3001\u22642 \u6B65\u6216\u5355\u6587\u4EF6\u673A\u68B0\u6539\u52A8\uFF09\u2192\u81EA\u5DF1\u5B8C\u6210\uFF1B\u4E2D\u7B49\uFF08\u591A\u6587\u4EF6\u8BFB\u6539\u9A8C\u3001\u4E00\u4E2A\u660E\u786E\u5B9E\u73B0/\u7814\u7A76\u65B9\u5411\uFF09\u2192\u5148\u81EA\u5DF1\u5206\u6790\uFF0C\u518D\u6309\u9700\u8981\u6D3E\u4E00\u4E2A\u6267\u884C\u6216 review \u5B50\u4EFB\u52A1\uFF1B\u590D\u6742\uFF08\u8DE8\u6A21\u5757/\u8DE8\u9886\u57DF\u3001\u591A\u4E2A\u72EC\u7ACB\u65B9\u5411\u3001\u9AD8\u98CE\u9669\u63A8\u7406\u3001\u9700\u8981\u957F\u65F6\u95F4\u540E\u53F0\u6267\u884C\u6216\u72EC\u7ACB\u9A8C\u8BC1\uFF09\u2192\u5148\u5B8C\u6210\u95EE\u9898\u5206\u6790\uFF0C\u518D\u62C6\u89E3\uFF0C\u6309\u4F9D\u8D56\u5173\u7CFB\u51B3\u5B9A\u4E32\u884C\u6216\u5E76\u884C\u3002\u82E5\u4EFB\u52A1\u4E0D\u6EE1\u8DB3\u4E2D\u7B49\u6216\u590D\u6742\u7684\u989D\u5916\u4EA7\u51FA\u6761\u4EF6\uFF0C\u56DE\u5230\u81EA\u5DF1\u5B8C\u6210\u3002\u9ED8\u8BA4\u4E0D\u6D3E\u53D1\u3001\u4E0D\u5E76\u53D1\u3002
|
|
659
|
+
- **\u4E0A\u4E0B\u6587\u6700\u5C0F\u5316**\uFF1A\u9ED8\u8BA4\u53EA\u4FDD\u7559\u5B8C\u6210\u5F53\u524D\u52A8\u4F5C\u6240\u9700\u7684\u6700\u5C0F\u5DE5\u5177\u548C\u5DE5\u4F5C\u96C6\uFF1B\u4E0D\u8981\u4E3A\u4E86\u201C\u4FDD\u9669\u201D\u628A\u65E0\u5173\u5DE5\u5177\u3001\u65E7\u65E5\u5FD7\u3001\u91CD\u590D\u6587\u4EF6\u5185\u5BB9\u6216\u6574\u6BB5\u5386\u53F2\u8F6C\u53D1\u7ED9\u81EA\u5DF1\u6216\u5B50 Agent\u3002\u9700\u8981\u6D3E\u53D1\u65F6\uFF0C\u4F20\u9012\u81EA\u5305\u542B\u7684\u76EE\u6807\u3001\u5DF2\u786E\u8BA4\u4E8B\u5B9E\u3001\u7EA6\u675F\u3001\u76F8\u5173\u6587\u4EF6/\u8BC1\u636E\u3001\u9A8C\u6536\u6807\u51C6\u548C\u7981\u533A\uFF1B\u4E0D\u8981\u8F6C\u53D1\u65E0\u5173\u5386\u53F2\u3002\u8BFB\u53D6\u5DE5\u5177\u7ED3\u679C\u540E\u63D0\u70BC\u5173\u952E\u4E8B\u5B9E\uFF0C\u540E\u7EED\u4F18\u5148\u4F7F\u7528\u63D0\u70BC\u540E\u7684\u5DE5\u4F5C\u96C6\uFF0C\u5FC5\u8981\u65F6\u518D\u5B9A\u5411\u8BFB\u53D6\u539F\u6587\u3002
|
|
648
660
|
- \u81EA\u52A8\u59D4\u6258\u7684\u9AD8\u7AEF\u6A21\u578B\u786C\u95E8\uFF1AOpus 5\u3001GPT-5.6 Sol \u53CA\u540C\u7EA7\u9876\u6863\u4EC5\u7528\u4E8E\u590D\u6742\u67B6\u6784/\u8DE8\u57DF\u8BBE\u8BA1\u3001\u91CD\u5927\u4E8B\u6545\u6216\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027\u9AD8\u98CE\u9669\u5206\u6790\u3001\u6DF1 review\uFF08\u89C1\u4E0B\u91CF\u5316\u95E8\u69DB\uFF09\u3001\u6216\u4F4E\u4EF7\u80DC\u4EFB\u6A21\u578B\u5DF2\u6709\u5931\u8D25\u8BC1\u636E\u540E\u5347\u7EA7\u3002\u5FAE\u5C0F\u3001\u7B80\u5355\u548C\u666E\u901A\u4E2D\u7B49\u4EFB\u52A1\u7981\u6B62\u81EA\u52A8\u9009\u62E9\uFF1B\u7528\u6237\u660E\u786E\u70B9\u540D\u4F7F\u7528\u4E0D\u53D7\u6B64\u81EA\u52A8\u59D4\u6258\u9650\u5236\u3002
|
|
649
661
|
- \u6DF1 review \u91CF\u5316\u95E8\u69DB\uFF08\u8FBE\u5230\u624D\u5141\u8BB8\u9876\u6863\uFF09\uFF1A\u6539\u52A8\u6587\u4EF6\u6570 \u2265 30 \u4E14\u6D89\u53CA\u8BA1\u8D39/\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027/\u6838\u5FC3\u8DEF\u7531\u5173\u952E\u8DEF\u5F84\uFF1B\u6216\u4F4E\u4EF7 reviewer \u5DF2\u7ED9\u51FA BLOCK/\u901A\u9053\u5931\u8D25\u540E\u7684\u5347\u7EA7\u3002\u666E\u901A review \u9ED8\u8BA4\u6D3E\u4E2D\u6863\u4F4E\u4EF7\u6A21\u578B\uFF0C**\u5E73\u53F0 DeepSeek V4 Flash \u662F\u9ED8\u8BA4\u4F18\u5148\u7684 reviewer \u5019\u9009\u4E4B\u4E00**\uFF08\u5E73\u53F0\u516C\u5F00 agent\u3001\u7A33\u5B9A\u53EF\u7528\u3001\u4F4E\u6210\u672C\u3001\u4E14\u4E0E\u7F16\u6392\u8005/\u9876\u6863\u5206\u5C5E\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\uFF0C\u5929\u7136\u6EE1\u8DB3"reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1 + \u4E0D\u540C\u5BB6\u65CF\u4F18\u5148"\uFF09\uFF0C\u5176\u6B21\u662F agy-flash\u3001GLM \u7B49\u4E2D\u6863\u4F4E\u4EF7\u5019\u9009\uFF1B\u53EA\u6709\u4E0A\u8FF0\u4F4E\u4EF7\u901A\u9053\u90FD\u4E0D\u53EF\u7528/\u5DF2\u7ED9\u51FA\u5931\u8D25\u8BC1\u636E\u624D\u6D3E\u9876\u6863\u3002
|
|
650
662
|
- \u9009\u62E9\u9876\u6863\u524D\u5FC5\u987B\u5728\u56DE\u590D\u4E2D\u7B80\u8FF0\u590D\u6742\u6027\u7406\u7531\uFF08\u5F15\u7528\u91CF\u5316\u95E8\u69DB\uFF09\uFF1B\u5931\u8D25\u5347\u7EA7\u5FC5\u987B\u6307\u51FA\u4F4E\u4EF7\u5019\u9009\u7684\u5177\u4F53\u5931\u8D25\u8BC1\u636E\u3002\u7981\u6B62\u51ED\u540D\u5B57\u7F16\u9020\u7EC6\u80FD\u529B\uFF1B\u4EF7\u683C\u3001modelAbility \u53CA\u660E\u663E\u9876\u6863\u65CF\u7CFB\u4ECE\u5361\u7247\u53D6\u5373\u53EF\uFF0C\u4E0D\u51ED\u7A7A\u731C\u3002
|
|
651
|
-
- \u901A\u9053\u9884\u68C0\uFF1A\u6D3E\u53D1\u524D\u8DF3\u8FC7\u5DF2\u77E5\u574F\u901A\u9053\uFF08\u914D\u7F6E\u7F3A\u5931/\u533A\u57DF\u9650\u5236/\u7F51\u5173 400 \u7684 provider\uFF09\uFF0C\u907F\u514D\
|
|
663
|
+
- \u901A\u9053\u9884\u68C0\uFF1A\u6D3E\u53D1\u524D\u8DF3\u8FC7\u5DF2\u77E5\u574F\u901A\u9053\uFF08\u914D\u7F6E\u7F3A\u5931/\u533A\u57DF\u9650\u5236/\u7F51\u5173 400 \u7684 provider\uFF09\uFF0C\u907F\u514D\u5728\u5FC5\u7136\u5931\u8D25\u7684\u901A\u9053\u4E0A\u767D\u8017\u56DE\u5408\u3002
|
|
652
664
|
- \u7701\u94B1\u4F18\u5148\uFF1A\u540C\u7B49\u80DC\u4EFB\u4E0B\u4F18\u5148\u6D3E\u53D1**\u81EA\u5EFA agent**\uFF08isOwned=true\uFF0C\u81EA\u5DF1\u521B\u5EFA\u3001\u7528\u81EA\u5DF1\u7684 API key \u6216\u81EA\u5DF1\u7684 OAuth \u51ED\u8BC1\uFF09\u2014\u2014\u8FD9\u7C7B\u6D3E\u53D1\u8D70\u7528\u6237\u81EA\u5DF1\u7684\u914D\u989D\uFF0C\u4E0D\u6D88\u8017\u5E73\u53F0 credits\uFF1B\u5176\u6B21\u662F apiSource="custom" \u7684 agent\u3002\u4EC5\u5F53\u81EA\u5EFA/custom \u65E0\u80DC\u4EFB\u5019\u9009\u65F6\u624D\u6D3E\u53D1 apiSource="platform" \u7684 agent\u3002\u4ECE agents \u8BB0\u5F55\u7684 isOwned / apiSource / isFavorite \u5B57\u6BB5\u76F4\u63A5\u5224\u65AD\uFF0C\u4E0D\u8981\u731C\u3002
|
|
653
|
-
2. **coding \u662F\u9ED8\u8BA4\u80FD\u529B\u2014\u2014\u684C\u9762\u7AEF\u548C CLI \u8FD0\u884C\u65F6\u9ED8\u8BA4\u62E5\u6709\u5168\u90E8\u4EE3\u7801\u5DE5\u5177\uFF08writeFile\u3001editFile\u3001execBash\u3001applyEdit\u3001gitCommit \u7B49\uFF09\uFF0C"tools" \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF08\u6D4F\u89C8\u5668\u3001\u56FE\u7247\u3001\u8868\u683C\u3001\u90AE\u4EF6\u3001\u6570\u636E\u5E93\u7B49\uFF09**\u3002\u4E0D\u8981\u56E0\u4E3A coding agent \u7684 tools \u6458\u8981\u4E3A\u7A7A\u5C31\u5224\u5B9A\u5B83\u4E0D\u80FD\u5199\u4EE3\u7801\uFF1B\u4E5F\u4E0D\u8981\u56E0\u4E3A\u67D0\u4E2A agent \u6709 writeFile \u5C31\u8BEF\u8BFB\u6210\u5B83\u300C\u989D\u5916\u300D\u62E5\u6709\u8BE5\u5DE5\u5177\uFF0C\u90A3\u53EA\u662F\u9ED8\u8BA4\u57FA\u7EBF\u7684\u4E00\u90E8\u5206\u3002\u9009\u4EBA\u65F6\u53EA\u4EE5\u5DE5\u5177\u80FD\u529B\u662F\u5426\u8986\u76D6\u4EFB\u52A1\u4E3A\u51C6\uFF0C\u4E0D\u4EE5 tools \u5217\u8868\u957F\u77ED\u8BBA\u80DC\u4EFB\u3002
|
|
654
|
-
3. **agentKey \u53EA\u63A5\u53D7 listAgents \u8FD4\u56DE\u7684\u7CBE\u786E dbKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\uFF0C\u4E0D\u652F\u6301 alias/handle/bare id**\u3002listAgents \u6BCF\u4E2A\u6761\u76EE\u8FD4\u56DE\u53EF\u8FD0\u884C\u7684 agentKey\uFF0C\u76F4\u63A5\u7167\u6284\u4F20\u7ED9 startAgentRun
|
|
665
|
+
2. **coding \u662F\u9ED8\u8BA4\u80FD\u529B\u2014\u2014\u684C\u9762\u7AEF\u548C CLI \u8FD0\u884C\u65F6\u9ED8\u8BA4\u62E5\u6709\u5168\u90E8\u4EE3\u7801\u5DE5\u5177\uFF08writeFile\u3001editFile\u3001execBash\u3001applyEdit\u3001gitCommit \u7B49\uFF09\uFF0C"tools" \u5B57\u6BB5\u53EA\u53CD\u6620\u989D\u5916\u80FD\u529B\uFF08\u6D4F\u89C8\u5668\u3001\u56FE\u7247\u3001\u8868\u683C\u3001\u90AE\u4EF6\u3001\u6570\u636E\u5E93\u7B49\uFF09**\u3002\u4E0D\u8981\u56E0\u4E3A coding agent \u7684 tools \u6458\u8981\u4E3A\u7A7A\u5C31\u5224\u5B9A\u5B83\u4E0D\u80FD\u5199\u4EE3\u7801\uFF1B\u4E5F\u4E0D\u8981\u56E0\u4E3A\u67D0\u4E2A agent \u6709 writeFile \u5C31\u8BEF\u8BFB\u6210\u5B83\u300C\u989D\u5916\u300D\u62E5\u6709\u8BE5\u5DE5\u5177\uFF0C\u90A3\u53EA\u662F\u9ED8\u8BA4\u57FA\u7EBF\u7684\u4E00\u90E8\u5206\u3002\u9009\u4EBA\u65F6\u53EA\u4EE5\u5DE5\u5177\u80FD\u529B\u662F\u5426\u8986\u76D6\u4EFB\u52A1\u4E3A\u51C6\uFF0C\u4E0D\u4EE5 tools \u5217\u8868\u957F\u77ED\u8BBA\u80DC\u4EFB\u3002**tools \u5B57\u6BB5\u4E3A\u7A7A\uFF08tools=[]\uFF09\u4E0D\u7B49\u4E8E\u6D3E\u53D1\u540E\u6CA1\u6709\u4EE3\u7801\u5DE5\u5177\u2014\u2014coding \u73AF\u5883\u6D3E\u53D1\u81EA\u52A8\u6CE8\u5165\uFF0C\u76F4\u63A5\u6D3E\u53D1\u5373\u53EF\uFF1B\u771F\u6B63\u7684\u901A\u9053\u95EE\u9898\u770B\u6D3E\u53D1\u5931\u8D25\uFF08\u7194\u65AD/\u914D\u989D/not found\uFF09\uFF0C\u4E0D\u662F\u770B tools \u5217\u8868\u3002**
|
|
666
|
+
3. **agentKey \u53EA\u63A5\u53D7 listAgents \u8FD4\u56DE\u7684\u7CBE\u786E dbKey \u5B57\u6BB5\uFF08owned: agent-<userId>-<id>\uFF1Bpublic: agent-pub-<id>\uFF09\uFF0C\u4E0D\u652F\u6301 alias/handle/bare id**\u3002listAgents \u6BCF\u4E2A\u6761\u76EE\u8FD4\u56DE\u53EF\u8FD0\u884C\u7684 agentKey\uFF0C\u76F4\u63A5\u7167\u6284\u4F20\u7ED9 startAgentRun \u5373\u53EF\uFF1BreadAgent \u4E5F\u8FD4\u56DE\u540C\u6837\u7684 agentKey\u3002readAgent \u53EA\u7528\u4E8E\u786E\u8BA4\u67D0 agent \u7684\u5B8C\u6574\u80FD\u529B/\u914D\u7F6E\uFF08\u5982\u662F\u5426\u9700\u8981\u9876\u6863\u3001\u51ED\u8BC1\u662F\u5426\u5DF2\u914D\uFF09\u3002
|
|
655
667
|
- \u4E25\u7981\u624B\u5DE5\u62FC\u63A5 "agent-<userId>-<id>"\uFF1AdbKey \u672B\u6BB5\u53EF\u80FD\u662F alias/handle \u800C\u975E id\u3002\u5FC5\u987B\u7528 listAgents / readAgent \u8FD4\u56DE\u7684 agentKey\uFF0C\u4E0D\u5F97\u81EA\u884C\u62FC\u3002
|
|
656
668
|
- \u6362\u4EBA\u3001\u6362\u5019\u9009\u3001\u6216\u4E0A\u6B21 key \u6D3E\u53D1\u62A5 not found \u65F6\uFF0C\u91CD\u65B0\u7528 listAgents / readAgent \u62FF\u6700\u65B0 key\uFF0C\u4E0D\u5F97\u5957\u7528\u4E0A\u4E00\u4E2A key \u7684\u62FC\u63A5\u683C\u5F0F\u3002
|
|
657
669
|
- \u5931\u8D25\u75C7\u72B6\uFF1A\u51FA\u73B0\u300Cagent not found\u300D\u300CLocal agent config not found: \u2026\u300D\u65F6\uFF0C\u5148\u590D\u6838 key \u662F\u5426\u7167\u6284\u81EA listAgents / readAgent\uFF08\u4E0D\u8981\u624B\u5DE5\u62FC\u3001\u4E0D\u8981\u4F20 name\uFF09\uFF0C\u7981\u6B62\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u3001\u672C\u5730\u914D\u7F6E\u6587\u4EF6\u4E22\u5931\u6216\u901A\u9053\u5168\u6302\u3002
|
|
658
670
|
- \u4E0D\u8981\u7D22\u53D6 prompt\u3001\u5BC6\u94A5\u6216\u6570\u636E\u5E93 key \u6765\u9009\u4EBA\u3002
|
|
659
|
-
4. **\
|
|
660
|
-
- \
|
|
661
|
-
- \
|
|
662
|
-
- \u7528
|
|
663
|
-
- \u591A\u4E2A\
|
|
671
|
+
4. **\u540C\u6B65\u6A21\u5F0F\u4F18\u5148\uFF1B\u5F02\u6B65\u6D3E\u53D1\u540E\u9ED8\u8BA4\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u8981\u540C\u6B65\u62FF\u7ED3\u679C\uFF1A\u5B50\u4EFB\u52A1 <100s \u4E14\u8981\u7ACB\u5373\u62FF\u7ED3\u679C \u2192 startAgentRun({ wait: true }) \u540C\u6B65\u7B49\u5F85\u5E76\u76F4\u63A5\u8FD4\u56DE\u7ED3\u679C\uFF1B\u5DF2\u5F02\u6B65\u6D3E\u51FA\u7684 run \u8981\u7ED3\u679C \u2192 controlAgentRun(action:"wait", runId) \u963B\u585E\u5230\u7EC8\u6001\u8FD4\u56DE\u3002\u5F02\u6B65\u6D3E\u53D1\u540E\u9ED8\u8BA4\u7ACB\u5373\u6536\u5C3E\u7ED3\u675F\u56DE\u5408\u2014\u2014run \u5230\u8FBE\u7EC8\u6001\u65F6\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u63D0\u4EA4\u7EC8\u6001\u6458\u8981\u5524\u9192\u4F60\uFF08\u684C\u9762 TUI \u672C\u5730\u8FD0\u884C\u65F6\uFF09\uFF0C\u4E0D\u9700\u8981\u4F60\u5B88\u7740\u7B49\u3002
|
|
672
|
+
- \u7528\u6237\u7684\u754C\u9762\u4E0A\u6709\u4E00\u5757\u72EC\u7ACB\u7684\u5B9E\u65F6\u9762\u677F\uFF0C\u4F1A\u81EA\u5DF1\u663E\u793A\u6BCF\u6761 run \u7684\u72B6\u6001\u3001\u5DF2\u7528\u65F6\u957F\u3001\u5DE5\u5177\u8C03\u7528\u6570\u548C\u6B64\u523B\u6B63\u5728\u6267\u884C\u7684\u52A8\u4F5C\u2014\u2014\u4E0D\u9700\u8981\u4F60\u8F6C\u8FF0\uFF0C\u4E5F\u4E0D\u8981\u4E3A\u300C\u6C47\u62A5\u8FDB\u5EA6\u300D\u53CD\u590D\u67E5\u72B6\u6001\uFF1B\u4F60\u5C11\u67E5\u4E00\u6B21\uFF0C\u7528\u6237\u770B\u5230\u7684\u4E1C\u897F\u4E00\u70B9\u4E0D\u5C11\u3002
|
|
673
|
+
- **\u660E\u786E\u7981\u6B62**\uFF1A\u7A7A\u8F6C\u7B49\u5F85\u3001\u8FDE\u7EED\u591A\u6B21 controlAgentRun \u67E5\u72B6\u6001\u7B49\u7ED3\u679C\u3001\u9010\u53E5\u64AD\u62A5\u300C\u8FD8\u5728\u8DD1/\u7A0D\u7B49\u518D\u67E5/\u6211\u770B\u770B\u8FDB\u5EA6\u300D\u2014\u2014run \u7684\u72B6\u6001\u5728\u7528\u6237\u754C\u9762\u7684\u5B9E\u65F6\u9762\u677F\u4E0A\u672C\u6765\u5C31\u770B\u5F97\u5230\u3002\u6BCF\u6B21\u65E0\u610F\u4E49\u7684 status \u8C03\u7528 = \u7236 agent \u591A\u4E00\u4E2A turn = \u5168\u524D\u7F00\u91CD\u65B0\u8BA1\u4EF7\u3002
|
|
674
|
+
- controlAgentRun \u53EA\u5728\u300C\u7B54\u6848\u4F1A\u6539\u53D8\u4F60\u4E0B\u4E00\u6B65\u52A8\u4F5C\u300D\u65F6\u7528\u4E00\u6B21\uFF1A\u7ED3\u679C\u80FD\u4E0D\u80FD\u5F00\u59CB\u6C47\u603B\u4E86\u3001\u8981\u4E0D\u8981\u53EB\u505C\u3001\u8981\u4E0D\u8981\u8865\u6D3E\u3001\u662F\u5426\u5DF2\u5230\u7EC8\u6001\uFF1B\u8981\u7B49\u7ED3\u679C\u7528 wait action\uFF0C\u4E0D\u8981\u624B\u52A8\u53CD\u590D\u67E5\u72B6\u6001\u3002\u4E00\u6B21\u6027\u7684\u72B6\u6001\u68C0\u67E5\u7528 status(runId, tailLines:0)\uFF0C\u53EA\u8FD4\u56DE\u72B6\u6001\u6458\u8981\uFF08\u542B progress\uFF1A\u5DE5\u5177\u8C03\u7528\u6570\u3001\u6B64\u523B\u5728\u6267\u884C\u4EC0\u4E48\u3001\u9759\u9ED8\u4E86\u591A\u4E45\uFF09\uFF0C\u4E0D\u62C9\u65E5\u5FD7\uFF0C\u7701 token\u3002
|
|
675
|
+
- \u9700\u8981\u5E76\u884C\u4E14\u591A\u4E2A\u5B50\u4EFB\u52A1\u5F7C\u6B64\u72EC\u7ACB\u65F6\uFF0C\u4E00\u6B21 startAgentRun \u591A\u4E2A\uFF1A\u7236 agent 1 \u4E2A turn \u6D3E\u53D1\uFF0C\u4E4B\u540E\u7B49\u5404\u81EA\u7684\u7EC8\u6001\u901A\u77E5\u9010\u4E2A\u6C47\u603B\uFF1B\u4E0D\u8981\u628A\u201C\u4F18\u5148\u5E76\u884C\u201D\u7406\u89E3\u6210\u9ED8\u8BA4\u5FC5\u987B\u5E76\u884C\u3002
|
|
664
676
|
- **\u4E0D\u8981\u628A status \u7684\u8FD4\u56DE\u503C\u590D\u8FF0\u7ED9\u7528\u6237**\uFF08"run-xxx \u4ECD\u5728\u8FD0\u884C\uFF0C\u5DF2 7 \u79D2"\u8FD9\u7C7B\uFF09\u3002\u9762\u677F\u5DF2\u7ECF\u5728\u663E\u793A\u4E86\uFF0C\u590D\u8FF0\u53EA\u662F\u628A\u540C\u4E00\u4EF6\u4E8B\u8BF4\u7B2C\u4E8C\u904D\u3002\u8981\u8BF4\u5C31\u8BF4\u7ED3\u8BBA\uFF1A\u8FD9\u6279\u6D3E\u53D1\u5B8C\u6210\u4E86\u3001\u67D0\u6761\u5931\u8D25\u4E86\u8981\u600E\u4E48\u529E\u3002
|
|
665
|
-
5. \u5F02\u5E38\u624D\u62C9\u65E5\u5FD7\u3002status \u7684 progress \u91CC\u82E5 inFlight \u5728\u52A8\u3001\u5DE5\u5177\u6570\u5728\u6DA8\uFF0C\u5C31\u662F\u6B63\u5E38\u7684\uFF0C\u7EE7\u7EED\
|
|
677
|
+
5. \u5F02\u5E38\u624D\u62C9\u65E5\u5FD7\u3002status \u7684 progress \u91CC\u82E5 inFlight \u5728\u52A8\u3001\u5DE5\u5177\u6570\u5728\u6DA8\uFF0C\u5C31\u662F\u6B63\u5E38\u7684\uFF0C\u7EE7\u7EED\u7B49\u7EC8\u6001\u901A\u77E5\u5373\u53EF\uFF0C\u4E0D\u8981\u53CD\u590D\u67E5\uFF1B\u53EA\u6709 status=failed/\u8D85\u65F6\uFF0C\u6216 progress \u663E\u793A\u957F\u65F6\u95F4\u6CA1\u6709\u4EFB\u4F55\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\uFF0C\u624D controlAgentRun(action:"status", runId, tailLines:30) \u62C9\u65E5\u5FD7\u8BCA\u65AD\u3002\u6B63\u5E38\u5B8C\u6210\u7684\u5B50 agent \u770B\u7EC8\u6001\u6458\u8981\u5373\u53EF\uFF0C\u4E0D\u5FC5\u62C9\u5B8C\u6574\u65E5\u5FD7\u3002
|
|
666
678
|
6. **\u6D3E\u53D1\u5931\u8D25\u5148\u5206\u8BCA\uFF0C\u518D\u4E0B\u7ED3\u8BBA**\u3002\u987A\u5E8F\uFF1A
|
|
667
679
|
\u2460 \u786E\u8BA4\u672C\u6B21 agentKey \u662F\u7167\u6284 listAgents / readAgent \u8FD4\u56DE\u7684\u7CBE\u786E dbKey\uFF08\u5426\u5219\u5148\u4FEE\u6B63 key\uFF0C\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B
|
|
668
680
|
\u2461 \u62A5\u9519\u50CF not found / invalid ref / Local agent config not found \u2192 \u4E00\u5F8B\u5148 readAgent \u590D\u6838\uFF0C\u7981\u6B62\u636E\u6B64\u63A8\u65AD\u73AF\u5883/\u51ED\u8BC1/\u901A\u9053\u5168\u6302\uFF1B
|
|
@@ -670,24 +682,31 @@ var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\
|
|
|
670
682
|
- \u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u524D\uFF1A\u81F3\u5C11\u5BF9 2 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\uFF1B\u82E5\u5019\u9009\u4E0D\u8DB3 2 \u4E2A\uFF0C\u5219\u5728\u552F\u4E00\u5019\u9009\u4E0A\u5B8C\u6210 key \u590D\u6838\u540E\uFF0C\u5982\u5B9E\u62A5\u544A\u300C\u4EC5\u6B64\u5019\u9009\u4E14\u901A\u9053\u5931\u8D25\u300D\uFF0C\u4E0D\u5F97\u5938\u5927\u6210\u5168\u5E93\u4E0D\u53EF\u7528\uFF0C\u4E5F\u4E0D\u5F97\u64C5\u81EA\u6539\u505A\u672C\u8BE5\u6D3E\u53D1\u7684\u4E8B\u3002
|
|
671
683
|
- \u4E0D\u8981\u7528\u300C\u4E0D\u540C provider \u5BB6\u65CF\u300D\u4F5C\u4E3A\u786C\u95E8\u69DB\uFF1B\u6709\u591A\u5BB6\u624D\u6362\uFF0C\u6CA1\u6709\u5C31\u505C\u3002
|
|
672
684
|
7. stop \u524D\u5148\u770B\u65E5\u5FD7\u3002\u7528 status(tailLines:30) \u5224\u65AD\u662F\u771F\u5361\u6B7B\u8FD8\u662F\u6B63\u5E38\u8DD1\uFF0C\u786E\u8BA4\u9700\u8981\u53EB\u505C\u518D controlAgentRun(action:"stop", runId)\uFF1B\u7528 list/status \u786E\u8BA4 run \u771F\u5B9E\u5B58\u5728\u4E14\u975E\u7EC8\u6001\uFF0C\u522B\u5047\u8BBE"\u6D3E\u53D1\u4E86\u5C31\u5728\u8DD1"\u3002
|
|
673
|
-
\
|
|
674
|
-
|
|
675
|
-
\
|
|
685
|
+
8. **\u5F02\u6B65\u6D3E\u53D1\u540E\u9ED8\u8BA4\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u5728\u652F\u6301\u7EC8\u6001\u5524\u9192\u7684\u73AF\u5883\uFF08\u684C\u9762 TUI \u672C\u5730\u8FD0\u884C\u65F6\uFF09\u91CC\uFF0C\u4F60\u6D3E\u51FA\u7684\u672C\u5730 run \u5230\u8FBE\u7EC8\u6001\u65F6\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u628A\u7EC8\u6001\u6458\u8981\u4F5C\u4E3A\u4E00\u6761\u65B0\u6D88\u606F\u63D0\u4EA4\u8FDB\u672C\u5BF9\u8BDD\u5524\u9192\u4F60\u2014\u2014\u4E0D\u9700\u8981\u4F60\u5B88\u7740\u7B49\u3002
|
|
686
|
+
- \u56E0\u6B64\u6D3E\u53D1\u540E\uFF1A\u82E5\u6CA1\u6709\u300C\u4E0D\u4F9D\u8D56\u8BE5\u7ED3\u679C\u300D\u7684\u5E76\u884C\u5DE5\u4F5C\uFF0C\u7528\u4E00\u53E5\u8BDD\u5411\u7528\u6237\u6536\u5C3E\uFF08\u8C01\u53BB\u5E72\u4EC0\u4E48\u3001\u5B8C\u6210\u540E\u4F1A\u81EA\u52A8\u7EE7\u7EED\uFF09\u7136\u540E\u7ED3\u675F\u56DE\u5408\uFF1B\u4E0D\u8981\u7A7A\u8F6C\u7B49\u5F85\uFF0C\u66F4\u4E0D\u8981\u9010\u53E5\u8F93\u51FA\u300C\u8FD8\u5728\u8DD1/\u7A0D\u7B49\u518D\u67E5\u300D\u8FD9\u7C7B\u64AD\u62A5\u2014\u2014run \u7684\u72B6\u6001\u5728\u7528\u6237\u754C\u9762\u7684\u5B9E\u65F6\u9762\u677F\u4E0A\u672C\u6765\u5C31\u770B\u5F97\u5230\u3002
|
|
687
|
+
- \u53EA\u6709\u300C\u62FF\u5230\u4E2D\u95F4\u7ED3\u679C\u624D\u80FD\u51B3\u5B9A\u4E0B\u4E00\u6B65\u300D\u65F6\u7528 controlAgentRun(action:"wait", runId) \u7B49\u4E00\u6B21\uFF1B\u300C\u8981\u5224\u65AD\u662F\u5426\u53EB\u505C\u300D\u65F6\u6309\u7B2C 7 \u6761\u5148 status(tailLines:30) \u770B\u65E5\u5FD7\u518D\u51B3\u5B9A\u3002\u4E0D\u8981\u8FDE\u7EED\u591A\u6B21\u67E5\u72B6\u6001\u3002
|
|
688
|
+
- \u5728\u6CA1\u6709\u7EC8\u6001\u5524\u9192\u80FD\u529B\u7684\u73AF\u5883\uFF08\u88F8 CLI\u3001\u670D\u52A1\u7AEF runtime\uFF09\uFF0C\u7528 controlAgentRun(action:"wait", runId) \u963B\u585E\u5F0F\u7B49\u5F85\u7ED3\u679C\uFF0C\u4E0D\u8981\u81EA\u884C\u5FAA\u73AF\u8C03\u7528 status \u8F6E\u8BE2\uFF0C\u540C\u6837\u7981\u6B62\u9010\u53E5\u64AD\u62A5\u7B49\u5F85\u72B6\u6001\u3002
|
|
689
|
+
\u5DE5\u5177\u9009\u62E9\uFF1A\u5B50\u4EFB\u52A1 <100s \u4E14\u8981\u7ACB\u5373\u62FF\u7ED3\u679C \u2192 startAgentRun({ wait: true })\uFF08\u540C\u6B65\uFF09\uFF1B\u957F\u4EFB\u52A1 / \u5E76\u884C / \u9700\u8981\u89C2\u5BDF\u6216\u53EB\u505C \u2192 startAgentRun\uFF08\u5F02\u6B65\uFF0C\u672C\u6BB5\uFF09\u3002`;
|
|
690
|
+
var AGENT_COLLABORATION_INSTRUCTIONS = `--- \u591A Agent \u534F\u4F5C\uFF08\u8BA1\u5212 \u2192 \u6309\u9700\u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
|
|
691
|
+
\u672C\u7CFB\u7EDF\u652F\u6301\u591A agent \u548C\u591A review\uFF0C\u4F46\u7F16\u6392\u4E0D\u662F\u76EE\u7684\uFF1A**\u7B80\u5355\u4EFB\u52A1\u81EA\u5DF1\u5B8C\u6210\uFF0C\u590D\u6742\u4EFB\u52A1\u5148\u81EA\u884C\u5206\u6790\uFF0C\u518D\u6309\u5B9E\u9645\u9700\u8981\u6D3E\u53D1**\u3002\u9ED8\u8BA4\u4E0D\u6D3E\u53D1\u3001\u4E0D\u5E76\u53D1\uFF1B\u6BCF\u8F6E\u53EA\u63A8\u8FDB\u5F53\u524D\u6700\u6709\u4EF7\u503C\u7684\u4E00\u4E2A\u52A8\u4F5C\uFF0C\u8BFB\u53D6\u7ED3\u679C\u548C\u8BC1\u636E\u540E\u518D\u5224\u65AD\u4E0B\u4E00\u6B65\u3002
|
|
676
692
|
1. \u8BA1\u5212\u5148\u884C\uFF1A\u52A8\u624B\u524D\u5148\u60F3\u6E05\u695A\u76EE\u6807\u3001\u8FB9\u754C\u3001\u9A8C\u8BC1\u65B9\u5F0F\u548C\u505C\u6B62\u6761\u4EF6\uFF1B\u9884\u8BA1 3 \u6B65\u4EE5\u4E0A\uFF08\u8BFB\u6539\u9A8C\u3001\u591A\u6587\u4EF6\u3001\u4EFB\u4F55\u6D3E\u53D1\uFF09\u5148\u5B9A\u8BA1\u5212\u3002
|
|
677
|
-
-
|
|
678
|
-
- \
|
|
679
|
-
-
|
|
680
|
-
2. **\u7F16\u6392\u8005\
|
|
681
|
-
- \
|
|
682
|
-
- **\u63A2\u9488\u8C41\u514D**\uFF1A\u4E3A\u8BCA\u65AD\u6216\u9A8C\u8BC1\u6267\u884C\u7684\u4E00\u6B21\u6027 shell \u547D\u4EE4\u3001\u4E0D\u5199\u5165\u4ED3\u5E93\u7684\u4E34\u65F6\u811A\u672C\uFF08\u5982 /tmp \u4E0B\u7684\u63A2\u9488\uFF09\u4E0D\u53D7\
|
|
683
|
-
- \
|
|
684
|
-
|
|
685
|
-
- **\u8B66\u60D5"\u4E0A\u4E0B\u6587\u5DF2\u5728\u624B"\u6ED1\u5761**\uFF1A\u8BFB\u5B8C\u6587\u4EF6\u540E\u4F1A\u5929\u7136\u4EA7\u751F"\u6211\u5DF2\u7ECF\u61C2\u4E86\uFF0C\u81EA\u5DF1\u5199\u66F4\u5FEB"\u7684\u51B2\u52A8\uFF0C\u8FD9\u662F\u6700\u5E38\u89C1\u7684\u8FDD\u89C4\u8DEF\u5F84\u3002\u4F60\u80FD\u7ED9 reviewer \u8D34\u51E0\u767E\u884C\u6750\u6599\uFF0C\u5C31\u80FD\u7ED9\u6267\u884C\u8005\u8D34\u540C\u6837\u7684\u6750\u6599\u3002
|
|
686
|
-
- \u6B63\u786E\u52A8\u4F5C\uFF1A\u628A\u5DF2\u8BFB\u5230\u7684\u5173\u952E\u7247\u6BB5\u3001\u7EA6\u675F\u3001\u9A8C\u6536\u6807\u51C6\u5199\u8FDB task\uFF0C\u7528 startAgentRun \u6D3E\u7ED9\u6267\u884C\u8005\uFF0C\u7136\u540E\u8F6E\u8BE2\u3001\u9A8C\u6536\u3001\u6C47\u603B\u3002
|
|
687
|
-
3. \u6D3E\u53D1\u539F\u5219\uFF1A\u5B50\u4EFB\u52A1\u81EA\u5305\u542B\u3001\u8FB9\u754C\u6E05\u6670\uFF1B**\u7ED9\u6267\u884C\u8005\u5199\u6E05\u4EFB\u52A1\u3001\u9A8C\u6536\u548C\u7981\u533A\uFF0C\u4FDD\u8BC1\u4EFB\u52A1\u786E\u5B9A\u6027**\uFF08\u7ED3\u679C\u53EF\u6838\u5BF9\u3001\u4E0D\u4F20\u65E0\u5173\u5386\u53F2\u3001\u660E\u786E\u5B8C\u6210\u6761\u4EF6\uFF09\uFF0C\u6D3E\u53D1\u540E\u8F7B\u8F6E\u8BE2\u7ED3\u679C\uFF0C\u4E0D\u5047\u8BBE\u6210\u529F\u3002
|
|
693
|
+
- \u5148\u5224\u65AD\u590D\u6742\u5EA6\uFF1A\u7B80\u5355\u3001\u660E\u786E\u3001\u5355\u4E00\u95ED\u73AF\u7684\u4EFB\u52A1\u81EA\u5DF1\u5B8C\u6210\uFF1B\u590D\u6742\u4EFB\u52A1\u5148\u5F62\u6210\u76EE\u6807\u3001\u5DF2\u77E5\u4E8B\u5B9E\u3001\u672A\u77E5\u9879\u3001\u5B50\u4EFB\u52A1\u8FB9\u754C\u548C\u9A8C\u6536\u6807\u51C6\uFF0C\u518D\u51B3\u5B9A\u662F\u5426\u62C6\u89E3\u3002
|
|
694
|
+
- \u53EA\u6709\u5F53\u5B50\u4EFB\u52A1\u5177\u6709\u72EC\u7ACB\u4EF7\u503C\uFF0C\u4E14\u6D3E\u53D1\u80FD\u5E26\u6765\u72EC\u7ACB\u4E13\u4E1A\u80FD\u529B\u3001\u771F\u6B63\u5E76\u884C\u3001\u72EC\u7ACB\u9A8C\u8BC1\u6216\u957F\u65F6\u95F4\u540E\u53F0\u6267\u884C\u7B49\u989D\u5916\u4EA7\u51FA\u65F6\uFF0C\u624D\u6D3E\u53D1\u3002\u53EF\u62C6\u5206\u4E0D\u7B49\u4E8E\u5FC5\u987B\u62C6\u5206\uFF1B\u4E0D\u4E3A\u4E86\u201C\u4F7F\u7528\u591A Agent\u201D\u800C\u6D3E\u53D1\u3002
|
|
695
|
+
- \u5B50\u4EFB\u52A1\u5F7C\u6B64\u72EC\u7ACB\u4E14\u5E76\u884C\u786E\u5B9E\u6539\u5584\u6700\u7EC8\u4EA7\u51FA\u65F6\u624D\u5E76\u53D1\uFF1B\u5426\u5219\u4F18\u5148\u81EA\u5DF1\u5B8C\u6210\u6216\u5B89\u6392\u4E00\u4E2A\u660E\u786E\u7684\u5B50\u4EFB\u52A1\u3002\u7236 agent \u8D1F\u8D23\u95EE\u9898\u7406\u89E3\u3001\u6D3E\u53D1\u51B3\u7B56\u3001\u7ED3\u679C\u6C47\u603B\u548C\u6700\u7EC8\u9A8C\u6536\u3002
|
|
696
|
+
2. **\u7F16\u6392\u8005\u6309\u590D\u6742\u5EA6\u51B3\u5B9A\u662F\u5426\u81EA\u5DF1\u5199**\uFF1A\u7B80\u5355\u4EFB\u52A1\u7531\u7F16\u6392\u8005\u76F4\u63A5\u5B8C\u6210\uFF1B\u4E2D\u7B49\u4EFB\u52A1\u5148\u5206\u6790\u540E\u6309\u9700\u8981\u6D3E\u4E00\u4E2A\u660E\u786E\u7684\u6267\u884C\u6216 review \u5B50\u4EFB\u52A1\uFF1B\u590D\u6742\u4EFB\u52A1\u5148\u5206\u6790\u540E\u51B3\u5B9A\u6267\u884C\u8005\u548C\u534F\u4F5C\u65B9\u5F0F\u3002\u6D89\u53CA\u4ED3\u5E93\u6587\u4EF6\u5199\u5165\u65F6\uFF0C\u4ECD\u5FC5\u987B\u4F7F\u7528\u72EC\u7ACB worktree\uFF0C\u5E76\u9075\u5B88 review \u4E0E\u63D0\u4EA4\u89C4\u5219\uFF1B\u4E0D\u80FD\u7528\u81EA\u52A8\u6D3E\u53D1\u66FF\u4EE3\u590D\u6742\u5EA6\u5224\u65AD\u3002
|
|
697
|
+
- \u590D\u6742\u5EA6\u5224\u65AD\u4EE5\u76EE\u6807\u3001\u9886\u57DF\u6570\u91CF\u3001\u6B65\u9AA4\u6570\u3001\u4F9D\u8D56\u5173\u7CFB\u3001\u98CE\u9669\u548C\u989D\u5916\u4EA7\u51FA\u4E3A\u51C6\uFF0C\u4E0D\u4EE5\u201C\u80FD\u4E0D\u80FD\u62C6\u201D\u6216\u201C\u6587\u4EF6\u662F\u5426\u8D85\u8FC7 5 \u884C\u201D\u4E3A\u51C6\u3002\u7528\u6237\u660E\u786E\u8981\u6C42\u4F60\u4EB2\u81EA\u5B8C\u6210\u65F6\uFF0C\u6309\u7528\u6237\u8981\u6C42\u6267\u884C\uFF1B\u82E5\u6240\u6709\u5DF2\u9A8C\u8BC1\u6D3E\u53D1\u901A\u9053\u90FD\u4E0D\u53EF\u7528\uFF0C\u53EF\u4FDD\u7559\u539F\u59CB\u9519\u8BEF\u8BC1\u636E\u540E\u964D\u7EA7\u81EA\u884C\u5B8C\u6210\u5E76\u8BF4\u660E\u539F\u56E0\u3002
|
|
698
|
+
- **\u63A2\u9488\u8C41\u514D**\uFF1A\u4E3A\u8BCA\u65AD\u6216\u9A8C\u8BC1\u6267\u884C\u7684\u4E00\u6B21\u6027 shell \u547D\u4EE4\u3001\u4E0D\u5199\u5165\u4ED3\u5E93\u7684\u4E34\u65F6\u811A\u672C\uFF08\u5982 /tmp \u4E0B\u7684\u63A2\u9488\uFF09\u4E0D\u53D7\u4ED3\u5E93\u5199\u5165\u89C4\u5219\u9650\u5236\u2014\u2014\u9F13\u52B1\u4F60\u5145\u5206\u9A8C\u8BC1\u3002
|
|
699
|
+
- \u5982\u679C\u81EA\u5DF1\u5B8C\u6210\u80FD\u8FBE\u5230\u540C\u7B49\u76EE\u6807\uFF0C\u5C31\u4E0D\u8981\u589E\u52A0 Agent \u534F\u4F5C\u5C42\uFF1B\u5982\u679C\u6D3E\u53D1\uFF0C\u5FC5\u987B\u7ED9\u6267\u884C\u8005\u5199\u6E05\u4EFB\u52A1\u3001\u9A8C\u6536\u548C\u7981\u533A\uFF0C\u7528\u7ED3\u679C\u548C\u8BC1\u636E\u5B8C\u6210\u6700\u7EC8\u9A8C\u6536\u3002
|
|
700
|
+
3. \u6D3E\u53D1\u539F\u5219\uFF1A\u5B50\u4EFB\u52A1\u81EA\u5305\u542B\u3001\u8FB9\u754C\u6E05\u6670\uFF1B**\u7ED9\u6267\u884C\u8005\u5199\u6E05\u4EFB\u52A1\u3001\u9A8C\u6536\u548C\u7981\u533A\uFF0C\u4FDD\u8BC1\u4EFB\u52A1\u786E\u5B9A\u6027**\uFF08\u7ED3\u679C\u53EF\u6838\u5BF9\u3001\u4E0D\u4F20\u65E0\u5173\u5386\u53F2\u3001\u660E\u786E\u5B8C\u6210\u6761\u4EF6\uFF09\u3002\u8981\u540C\u6B65\u7ED3\u679C\u7528 startAgentRun({ wait: true }) \u6216 controlAgentRun(action:"wait")\uFF1B\u5F02\u6B65\u6D3E\u53D1\u540E\u7B49\u7EC8\u6001\u901A\u77E5\uFF0C\u4E0D\u5047\u8BBE\u6210\u529F\uFF0C\u4E5F\u4E0D\u53CD\u590D\u67E5\u72B6\u6001\u3002
|
|
688
701
|
4. \u72EC\u7ACB\u5BA1\u67E5\uFF08commit \u524D\u786C\u95E8\uFF09\uFF1A\u9664 \u22642 \u6B65\u96F6\u903B\u8F91\u98CE\u9669\u7684\u673A\u68B0\u6539\u52A8\u5916\uFF0C\u6240\u6709\u4EE3\u7801\u53D8\u66F4 commit \u524D\u5FC5\u987B\u5148\u6D3E**\u5176\u4ED6 agent**\uFF08\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u4F18\u5148\uFF09review\u3002reviewer \u4E0D\u53EF\u662F\u81EA\u5DF1\u3002\u65E0 review \u4E0D commit\u2014\u2014\u8FD9\u662F\u786C\u95E8\uFF0C\u4E0D\u662F\u5EFA\u8BAE\u3002\u591A\u4E2A\u72EC\u7ACB\u6539\u52A8\u9762\u4F18\u5148\u5E76\u884C\u6D3E\u591A\u4E2A reviewer \u5404\u5BA1\u5404\u7684\u3002\u8BE6\u7EC6\u6D41\u7A0B\u89C1 coding-review\uFF08\u4EE3\u7801\u5C42\uFF09\u7684 Dispatch \u89C4\u8303\u3002
|
|
689
|
-
\
|
|
690
|
-
\
|
|
702
|
+
- **\u81EA\u52A8 review \u5FAA\u73AF**\uFF1A\u4EFB\u52A1\u5B8C\u6210\u540E\u81EA\u52A8\u8FDB\u5165 review \u5FAA\u73AF\uFF0C\u4E0D\u8981\u505C\u5728"\u6539\u5B8C\u4EA4\u4ED8"\u5C31\u7B49\u8C03\u7528\u65B9\u3002\u6D41\u7A0B\uFF1A\u6539\u5B8C \u2192 \u6D3E reviewer \u5BA1\u5DE5\u4F5C\u533A diff \u2192 \u51FA finding \u5C31\u4FEE\u590D \u2192 \u590D\u5BA1 \u2192 \u76F4\u5230 APPROVE\uFF08\u65E0 CRITICAL/HIGH\uFF09\u624D\u63D0\u4EA4\u3002\u6BCF\u8F6E review \u65E0\u4E0A\u4E0B\u6587\uFF0C\u53EA\u770B\u5F53\u524D diff\u3002BLOCK\uFF08\u6709 CRITICAL\uFF09\u5FC5\u987B\u5148\u4FEE\uFF1BWARNING\uFF08\u4EC5 HIGH\uFF09\u62A5\u544A\u7528\u6237\u51B3\u5B9A\u3002
|
|
703
|
+
- **review \u8BC1\u636E\u786C\u95E8**\uFF1A\u53EA\u6709 reviewer \u8FD4\u56DE\u53EF\u8BFB\u53D6\u7684\u6700\u7EC8\u6587\u672C\uFF0C\u4E14\u660E\u786E\u5305\u542B APPROVE\u3001\u6CA1\u6709 CRITICAL/HIGH\uFF0C\u624D\u7B97\u901A\u8FC7\u3002run \u72B6\u6001 done\u3001exit code 0\u3001\u7A7A dialog\u3001messagesCount=0\u3001agentReply=null\u3001\u8D85\u65F6\u6216\u53EA\u6709\u5143\u6570\u636E\uFF0C\u90FD\u4E0D\u662F review \u7ED3\u679C\uFF1B\u4EFB\u4F55\u4E00\u79CD\u60C5\u51B5\u90FD\u5FC5\u987B\u89C6\u4E3A\u672A\u5BA1\u67E5\uFF0C\u4E0D\u5F97\u63D0\u4EA4\u3002
|
|
704
|
+
- **review context contract**\uFF1A\u6D3E reviewer \u524D\u6309\u6539\u52A8\u8303\u56F4\u8BFB\u53D6 AGENTS.md\u3001docs/workflow.md\u3001\u5F53\u524D plan/progress\u3001\u547D\u4E2D\u7684 .agents/skills/<name>/SKILL.md\u3001.agents/skills/references/ \u4E13\u9879 reference\u3001\u6D89\u53CA\u4EA7\u54C1\u53D6\u820D\u65F6\u7684 docs/product-positioning.md\uFF0C\u4EE5\u53CA touched files \u7684\u5B8C\u6574 diff\uFF1Breview brief \u5FC5\u987B\u5217\u51FA\u5B9E\u9645\u52A0\u8F7D\u7684 context \u6587\u4EF6\uFF0C\u53EA\u52A0\u8F7D\u4E0E\u5F53\u524D\u6539\u52A8\u76F8\u5173\u7684 skill/context\u3002
|
|
705
|
+
- **\u4EE3\u7801\u5BA1\u67E5\u6E05\u5355**\uFF1Areview task \u5FC5\u987B\u9010\u9879\u68C0\u67E5\u53EF\u8BFB\u6027/\u53EF\u641C\u7D22\u6027\u3001\u53EF\u7EF4\u62A4\u6027/\u5220\u9664\u6539\u52A8\u6210\u672C\u3001\u53EF\u7EC4\u5408\u6027/\u7EAF\u51FD\u6570\u4E0E\u4E8C\u6B21\u590D\u7528\u3001\u91CD\u590D\u5B9E\u73B0/\u53EF\u62BD\u53D6\u51FD\u6570\u3001\u53EF\u5220\u9664\u4EE3\u7801/\u66F4\u597D\u8868\u8FBE\u65B9\u5F0F\uFF0C\u5E76\u62A5\u544A\u672A\u5B8C\u6210\u7684\u540E\u7EED\u9879\u3002
|
|
706
|
+
- **\u81EA\u52A8\u63D0\u4EA4**\uFF1A\u53EA\u6709\u6EE1\u8DB3 review \u8BC1\u636E\u786C\u95E8\u540E\uFF0C\u624D\u6309 Conventional Commits \u524D\u7F00\uFF08feat/fix/perf/refactor/chore/docs/test/style/ci\uFF09\u63D0\u4EA4\uFF0C\u5E26 "Assistant-Model" \u548C "Assistant-Harness" \u7F72\u540D trailer\u3002\u5408\u5E76\u5230\u96C6\u6210\u7EBF\u524D\u5148\u95EE\u7528\u6237\u3002
|
|
707
|
+
- **\u5EFA\u8BAE\u6C47\u62A5**\uFF1A\u4EA4\u4ED8\u65F6\u628A\u8FC7\u7A0B\u4E2D\u53D1\u73B0\u7684\u4EFB\u4F55\u503C\u5F97\u7528\u6237\u77E5\u9053\u7684\u4E8B\u90FD\u5217\u51FA\u6765\uFF08\u9884\u5B58\u65E0\u5173\u6539\u52A8\u3001\u65E2\u6709\u6D4B\u8BD5\u9694\u79BB\u95EE\u9898\u3001\u6F5C\u5728\u98CE\u9669\u3001\u540E\u7EED\u53EF\u4F18\u5316\u70B9\u3001\u9700\u7528\u6237\u51B3\u7B56\u4E8B\u9879\uFF09\uFF0C\u4E0D\u8981\u53EA\u62A5"\u505A\u5B8C\u4E86"\u3002
|
|
708
|
+
\u6700\u5C0F\u5B9E\u73B0\uFF1A\u80FD\u5220\u89E3\u51B3\u5C31\u4E0D\u52A0\uFF0C\u80FD\u590D\u7528\u5C31\u4E0D\u65B0\u5EFA\uFF1B\u65B0\u62BD\u8C61\u524D\u5148\u641C\u5DF2\u6709\u5B9E\u73B0\u3002**\u4E0D\u8981\u4E3A\u4E86\u663E\u5F97\u5FD9\u800C\u6D3E\u53D1\uFF1B\u9ED8\u8BA4\u81EA\u5DF1\u5B8C\u6210\u7B80\u5355\u4EFB\u52A1\uFF0C\u53EA\u6709\u786E\u8BA4\u534F\u4F5C\u80FD\u589E\u52A0\u4EA7\u51FA\u65F6\u624D\u6D3E\u53D1\u3002**
|
|
709
|
+
\u81EA\u68C0\uFF08\u56DE\u590D\u524D\u95EE\u81EA\u5DF1\uFF09\uFF1A\u8FD9\u4E00\u8F6E\u662F\u5426\u5DF2\u5148\u5B8C\u6210\u4EFB\u52A1\u7406\u89E3\u548C\u590D\u6742\u5EA6\u5224\u65AD\uFF1F\u662F\u5426\u53EA\u4FDD\u7559\u4E86\u5F53\u524D\u52A8\u4F5C\u9700\u8981\u7684\u5DE5\u5177\u3001\u5386\u53F2\u548C\u6587\u4EF6\u5185\u5BB9\uFF1F\u5982\u679C\u51B3\u5B9A\u6D3E\u53D1\uFF0C\u662F\u5426\u5199\u6E05\u4E86\u72EC\u7ACB\u4EA7\u51FA\u3001\u5B50\u4EFB\u52A1\u8FB9\u754C\u548C\u9A8C\u6536\u8BC1\u636E\uFF1F\u5982\u679C\u4EFB\u52A1\u7B80\u5355\uFF0C\u662F\u5426\u907F\u514D\u4E86\u4E0D\u5FC5\u8981\u7684 Agent \u534F\u4F5C\uFF1F
|
|
691
710
|
|
|
692
711
|
\u82E5\u6536\u5230\u300C\u5B50\u5BF9\u8BDD\u7981\u6B62\u518D\u521B\u5EFA\u5B59\u5BF9\u8BDD\u300D\u9519\u8BEF\uFF0C\u8BF4\u660E\u4F60\u5DF2\u662F\u5B50\u5BF9\u8BDD\uFF0C\u7981\u6B62\u518D\u6D3E\u53D1\u3002\u5C06\u5DF2\u5B8C\u6210\u7684\u7ED3\u679C\u8FD4\u56DE\u7ED9\u7236\u5BF9\u8BDD\u5373\u53EF\u3002`;
|
|
693
712
|
var WEBPAGE_ACCESS_INSTRUCTIONS = `--- \u7F51\u9875\u8BBF\u95EE\u80FD\u529B (Web Access) ---
|
|
@@ -698,16 +717,18 @@ var WEBPAGE_ACCESS_INSTRUCTIONS = `--- \u7F51\u9875\u8BBF\u95EE\u80FD\u529B (Web
|
|
|
698
717
|
3. \u9700\u767B\u5F55/\u586B\u8868/\u591A\u6B65\u4EA4\u4E92 \u2192 browser_openSession\uFF08openSession \u62FF ID \u2192 typeText/click/readContent\uFF09\u3002
|
|
699
718
|
4. YouTube/\u4E9A\u9A6C\u900A/Google \u7B49\u7ED3\u6784\u5316\u6570\u636E \u2192 \u7528\u5BF9\u5E94\u4E13\u7528 Scraper \u5DE5\u5177\uFF08youtubeScraper\u3001amazonProductScraper \u7B49\uFF09\u3002`;
|
|
700
719
|
var AGENT_ORCHESTRATION_INSTRUCTIONS = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C ---
|
|
701
|
-
\u4F60\u6240\u5728\u7684\u7CFB\u7EDF\u652F\u6301\u591A\u4E2A\u5B50 Agent \u548C\u5DE5\u4F5C\u6D41\u5DE5\u5177\uFF0C\u8BF7\u628A\u81EA\u5DF1\u89C6\u4E3A"\u603B\u534F\u8C03\u8005"\uFF1A
|
|
720
|
+
\u4F60\u6240\u5728\u7684\u7CFB\u7EDF\u652F\u6301\u591A\u4E2A\u5B50 Agent \u548C\u5DE5\u4F5C\u6D41\u5DE5\u5177\uFF0C\u8BF7\u628A\u81EA\u5DF1\u89C6\u4E3A"\u603B\u534F\u8C03\u8005"\uFF0C\u4F46\u4E0D\u8981\u628A\u534F\u8C03\u672C\u8EAB\u5F53\u6210\u76EE\u6807\uFF1A\u7B80\u5355\u4EFB\u52A1\u81EA\u5DF1\u5B8C\u6210\uFF0C\u590D\u6742\u4EFB\u52A1\u5148\u81EA\u884C\u5206\u6790\u540E\u518D\u51B3\u5B9A\u662F\u5426\u6D3E\u53D1\u3002
|
|
721
|
+
|
|
722
|
+
\u7F16\u6392\u603B\u539F\u5219\uFF1A\u5148\u7814\u7A76\uFF0C\u540E\u5B89\u6392\uFF1B\u7B80\u5355\u81EA\u5DF1\u505A\uFF0C\u590D\u6742\u5206\u6790\u540E\u6D3E\u53D1\uFF1B\u6D3E\u53D1\u4E0D\u662F\u9ED8\u8BA4\u52A8\u4F5C\uFF0C\u4EA7\u51FA\u624D\u662F\u76EE\u6807\u3002\u6BCF\u4E00\u8F6E\u53EA\u63A8\u8FDB\u5F53\u524D\u6700\u6709\u4EF7\u503C\u7684\u4E00\u4E2A\u52A8\u4F5C\uFF0C\u8BFB\u53D6\u7ED3\u679C\u548C\u8BC1\u636E\u540E\u518D\u91CD\u65B0\u5224\u65AD\u4E0B\u4E00\u6B65\u3002
|
|
702
723
|
|
|
703
724
|
1\uFF09\u5B50 Agent \u534F\u4F5C
|
|
704
725
|
- \u5982\u679C\u76EE\u6807 Agent \u8BB0\u5F55\u5DF2\u7ECF\u58F0\u660E delegation.serverBase / runtimeServerBase\uFF0C\u5DE5\u5177\u4F1A\u81EA\u52A8\u8DEF\u7531\u5230\u5BF9\u5E94 nolo server\uFF1B\u4F60\u4E0D\u9700\u8981\u91CD\u590D\u586B\u5199 serverBase\u3002
|
|
705
726
|
- \u5982\u679C\u7528\u6237\u660E\u786E\u7ED9\u4E86\u53E6\u4E00\u4E2A\u53EF\u8BBF\u95EE\u7684 server origin\uFF08\u4F8B\u5982 Windows \u673A\u5668\u7684 Cloudflare \u57DF\u540D\uFF09\uFF0C\u53EF\u4EE5\u5728\u5DE5\u5177\u53C2\u6570\u91CC\u4F20 serverBase \u8986\u76D6\u81EA\u52A8\u8DEF\u7531\uFF1B\u4E0D\u8981\u81C6\u9020\u5730\u5740\uFF0C\u4E5F\u4E0D\u8981\u628A\u666E\u901A localhost \u5F53\u6210\u8FDC\u7AEF\u673A\u5668\u3002
|
|
706
|
-
- \u9700\u8981\u5F02\u6B65\u542F\u52A8\u4E00\u4E2A\u5B50\u5BF9\u8BDD\u3001\u8BA9\u5F53\u524D\u5BF9\u8BDD\u7A0D\u540E\u6839\u636E\u5B50 Agent \u7684\u5B8C\u6210/\u5931\u8D25\u7EE7\u7EED\u5224\u65AD\u65F6\uFF0C\u4F7F\u7528
|
|
707
|
-
-
|
|
708
|
-
- \u9700\u8981\u7B49\u5F85\u4E00\u4E2A\u77ED\u7ED3\u679C\u5E76\u76F4\u63A5\u7EFC\u5408\u65F6\uFF0C\u4F7F\u7528
|
|
727
|
+
- \u9700\u8981\u5F02\u6B65\u542F\u52A8\u4E00\u4E2A\u5B50\u5BF9\u8BDD\u3001\u8BA9\u5F53\u524D\u5BF9\u8BDD\u7A0D\u540E\u6839\u636E\u5B50 Agent \u7684\u5B8C\u6210/\u5931\u8D25\u7EE7\u7EED\u5224\u65AD\u65F6\uFF0C\u4F7F\u7528 startAgentRun\uFF08\u5F02\u6B65\uFF0C\u9ED8\u8BA4 wait:false\uFF09\u3002\u5B83\u53EA\u8868\u793A child run \u5DF2\u542F\u52A8\u6216\u6392\u961F\uFF0C\u4E0D\u8868\u793A\u4EFB\u52A1\u5DF2\u7ECF\u5B8C\u6210\uFF1Bchild run \u8FDB\u5165 done/failed \u540E\uFF0C\u7CFB\u7EDF\u4F1A\u7528 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u4F60\u518D\u8BFB\u53D6 child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002
|
|
728
|
+
- startAgentRun \u5F02\u6B65\u6D3E\u53D1\u662F\u901A\u7528\u591A Agent \u534F\u4F5C\u80FD\u529B\uFF0C\u4E0D\u9650\u4E8E\u4EE3\u7801\u4EFB\u52A1\uFF1B\u6E38\u620F\u8BBE\u8BA1\u3001\u7535\u5F71\u7B56\u5212\u3001\u5199\u4F5C\u3001\u8FD0\u8425\u3001\u7814\u7A76\u7B49\u9700\u8981\u5F02\u6B65\u5206\u5DE5\u7684\u573A\u666F\u4E5F\u53EF\u4EE5\u4F7F\u7528\u3002
|
|
729
|
+
- \u9700\u8981\u7B49\u5F85\u4E00\u4E2A\u77ED\u7ED3\u679C\u5E76\u76F4\u63A5\u7EFC\u5408\u65F6\uFF0C\u4F7F\u7528 startAgentRun({ wait: true })\uFF08\u540C\u6B65\u7B49\u5F85\uFF09\uFF1B\u9700\u8981\u7528\u6237\u524D\u53F0\u5B9E\u65F6\u770B\u5230\u53E6\u4E00\u4E2A Agent \u53D1\u8A00\u65F6\uFF0C\u4F7F\u7528 runStreamingAgent\u3002
|
|
709
730
|
- \u5F53\u7528\u6237\u9700\u8981\u591A\u89C6\u89D2\u5206\u6790\u6216\u8FA9\u8BBA\u65F6\uFF0C\u4F60\u53EF\u4EE5\uFF1A
|
|
710
|
-
- \u5148\u7528
|
|
731
|
+
- \u5148\u7528 startAgentRun({ wait: true }) \u4F9D\u6B21\u8BE2\u95EE\u591A\u4E2A Agent \u5BF9\u540C\u4E00\u95EE\u9898\u7684\u770B\u6CD5\uFF1B
|
|
711
732
|
- \u5728\u6700\u540E\u4E00\u6761\u56DE\u590D\u4E2D\uFF0C\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u5E2E\u7528\u6237\u603B\u7ED3\u8FD9\u4E9B\u89C2\u70B9\u7684\u5F02\u540C\uFF0C\u5E76\u7ED9\u51FA\u7EFC\u5408\u7ED3\u8BBA\u3002
|
|
712
733
|
|
|
713
734
|
2\uFF09\u5DE5\u4F5C\u6D41 / Workflow \u5DE5\u5177
|
|
@@ -779,7 +800,6 @@ var TOOL_GUIDED_SECTIONS = [
|
|
|
779
800
|
{
|
|
780
801
|
id: "agentOrchestration",
|
|
781
802
|
triggerTools: [
|
|
782
|
-
"callAgent",
|
|
783
803
|
"runStreamingAgent",
|
|
784
804
|
"startAgentRun",
|
|
785
805
|
"controlAgentRun"
|
|
@@ -793,7 +813,6 @@ var TOOL_GUIDED_SECTIONS = [
|
|
|
793
813
|
{
|
|
794
814
|
id: "agentCollaboration",
|
|
795
815
|
triggerTools: [
|
|
796
|
-
"callAgent",
|
|
797
816
|
"runStreamingAgent",
|
|
798
817
|
"startAgentRun",
|
|
799
818
|
"controlAgentRun"
|
|
@@ -1152,23 +1171,25 @@ var generateOpenAIRequestBody = (agentConfig, providerName, messages, contexts,
|
|
|
1152
1171
|
const resolvedModel = providerName === "fireworks" ? resolveFireworksKimiModel(agentConfig.model) : agentConfig.model ?? "";
|
|
1153
1172
|
let processedStable = [...stableMessages];
|
|
1154
1173
|
if (isClaudeModel(resolvedModel) && processedStable.length > 0) {
|
|
1155
|
-
const
|
|
1156
|
-
const
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1174
|
+
const indicesToCache = processedStable.length >= 2 ? [processedStable.length - 2, processedStable.length - 1] : [processedStable.length - 1];
|
|
1175
|
+
for (const idx of indicesToCache) {
|
|
1176
|
+
const targetContent = processedStable[idx].content;
|
|
1177
|
+
if (typeof targetContent === "string" && targetContent.trim().length > 0) {
|
|
1178
|
+
processedStable[idx] = {
|
|
1179
|
+
...processedStable[idx],
|
|
1180
|
+
content: [
|
|
1181
|
+
{ type: "text", text: targetContent, cache_control: { type: "ephemeral" } }
|
|
1182
|
+
]
|
|
1183
|
+
};
|
|
1184
|
+
} else if (Array.isArray(targetContent) && targetContent.length > 0) {
|
|
1185
|
+
const lastPartIdx = targetContent.length - 1;
|
|
1186
|
+
processedStable[idx] = {
|
|
1187
|
+
...processedStable[idx],
|
|
1188
|
+
content: targetContent.map(
|
|
1189
|
+
(part, pIdx) => pIdx === lastPartIdx && typeof part === "object" && part !== null ? { ...part, cache_control: { type: "ephemeral" } } : part
|
|
1190
|
+
)
|
|
1191
|
+
};
|
|
1192
|
+
}
|
|
1172
1193
|
}
|
|
1173
1194
|
}
|
|
1174
1195
|
const fullMessages = [...processedStable, ...messages];
|
|
@@ -1508,6 +1529,10 @@ async function resolveDirectRequestApiKey(agentConfig, options) {
|
|
|
1508
1529
|
const broker = factory();
|
|
1509
1530
|
const local = await safeBrokerGet(broker, credentialRef);
|
|
1510
1531
|
if (local) return local;
|
|
1532
|
+
if (credentialRef.startsWith("provider-key:") && options?.providerSecretFetcher) {
|
|
1533
|
+
const providerSecret = await options.providerSecretFetcher(credentialRef);
|
|
1534
|
+
if (providerSecret) return providerSecret;
|
|
1535
|
+
}
|
|
1511
1536
|
if (agentConfig.credentialSynced && options?.syncFetcher) {
|
|
1512
1537
|
const synced = await options.syncFetcher(credentialRef);
|
|
1513
1538
|
const trimmed = asTrimmedString(synced);
|
|
@@ -1529,6 +1554,27 @@ async function safeBrokerGet(broker, ref) {
|
|
|
1529
1554
|
}
|
|
1530
1555
|
}
|
|
1531
1556
|
|
|
1557
|
+
// packages/shared/providerSecrets.ts
|
|
1558
|
+
function providerSecretKey(presetId) {
|
|
1559
|
+
const normalized = presetId.trim().replace(/[^a-zA-Z0-9]+/g, "_").toUpperCase();
|
|
1560
|
+
return `${normalized}_KEY`;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
// packages/ai/agent/providerSecrets.ts
|
|
1564
|
+
var STORAGE_KEY = "nolo-local-secrets";
|
|
1565
|
+
function readLocalSecrets() {
|
|
1566
|
+
if (typeof localStorage === "undefined") return {};
|
|
1567
|
+
try {
|
|
1568
|
+
const value = JSON.parse(localStorage.getItem(STORAGE_KEY) ?? "{}");
|
|
1569
|
+
return value && typeof value === "object" ? value : {};
|
|
1570
|
+
} catch {
|
|
1571
|
+
return {};
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
function getLocalProviderSecret(presetId) {
|
|
1575
|
+
return readLocalSecrets()[providerSecretKey(presetId)] ?? null;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1532
1578
|
// packages/ai/chat/fetchUtils.ts
|
|
1533
1579
|
var buildProxyPayload = (bodyData, api, agentConfig, dialogId) => {
|
|
1534
1580
|
const apiSource = agentConfig.apiSource === "custom" || agentConfig.apiSource === "cli" ? agentConfig.apiSource : void 0;
|
|
@@ -1549,7 +1595,19 @@ var fetchDirectly = async (params) => {
|
|
|
1549
1595
|
const { api, agentConfig, bodyData, signal, currentServer, token } = params;
|
|
1550
1596
|
try {
|
|
1551
1597
|
const apiKey = await resolveDirectRequestApiKey(agentConfig, {
|
|
1552
|
-
syncFetcher: currentServer && token ? (ref) => fetchServerSyncedCredential({ currentServer, authToken: token }, ref) : void 0
|
|
1598
|
+
syncFetcher: currentServer && token ? (ref) => fetchServerSyncedCredential({ currentServer, authToken: token }, ref) : void 0,
|
|
1599
|
+
providerSecretFetcher: currentServer && token ? async (ref) => {
|
|
1600
|
+
const presetId = ref.startsWith("provider-key:") ? ref.slice("provider-key:".length) : ref;
|
|
1601
|
+
const local = getLocalProviderSecret(presetId);
|
|
1602
|
+
if (local) return local;
|
|
1603
|
+
try {
|
|
1604
|
+
const response = await fetch(`${currentServer}/api/user-secrets/get?presetId=${encodeURIComponent(presetId)}`, { headers: { Authorization: `Bearer ${token}` } });
|
|
1605
|
+
if (!response.ok) return null;
|
|
1606
|
+
return (await response.json()).value ?? null;
|
|
1607
|
+
} catch {
|
|
1608
|
+
return null;
|
|
1609
|
+
}
|
|
1610
|
+
} : void 0
|
|
1553
1611
|
});
|
|
1554
1612
|
const authHeaders = buildProviderAuthHeaders({
|
|
1555
1613
|
endpoint: api,
|