nolo-cli 0.149.0-alpha.1 → 0.151.0-alpha.3
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-OW3H7ICR.js → _executeModel-T7ANHTUW.js} +134 -91
- package/accountResolver-7RYB4D2P.js +300 -0
- package/action-SXJD5N5R.js +23 -0
- package/{addContentAction-B2DRF7P6.js → addContentAction-ZV774PHH.js} +20 -14
- package/{addDialogAgentAction-2P2FLTLD.js → addDialogAgentAction-A6SMKAGH.js} +26 -22
- package/{agentDeleteCommand-7IDWF6E3.js → agentDeleteCommand-4L5KCKFY.js} +181 -93
- package/{agentEmailCommands-A6XBQZBN.js → agentEmailCommands-2IMMIRO2.js} +132 -112
- package/{agentGrantCommands-M3XFO6EN.js → agentGrantCommands-HOJ3JBBQ.js} +3 -3
- package/agentListCommands-TWFLUYIZ.js +802 -0
- package/{agentMachineCommands-DQPUIMAC.js → agentMachineCommands-KIWXWT6L.js} +58 -62
- package/{agentProviderCommands-YK2BIIXZ.js → agentProviderCommands-HL6MBLCL.js} +149 -2
- package/{agentPullCommand-HF4A42D4.js → agentPullCommand-FA43RBRU.js} +7 -7
- package/agentRecordCommands-727NPCRW.js +154 -0
- package/agentRunCommand-JASIG3FZ.js +183 -0
- package/{agentRunControl-2SKCR4SB.js → agentRunControl-IFM7IGMG.js} +10 -2
- package/{agentRuntimeLocal-AK2QVJHY.js → agentRuntimeLocal-KKSQJMTE.js} +47 -50
- package/{agentSlice-O4RUQUMT.js → agentSlice-SLV57QGU.js} +23 -16
- package/{appDeleteCommands-N3XEVVYC.js → appDeleteCommands-4PL4KYRN.js} +58 -59
- package/{appDeployCommands-AWFIXYVW.js → appDeployCommands-EEEXCEB6.js} +67 -63
- package/{appDeployStatusCommands-CZRON2FO.js → appDeployStatusCommands-35ZX7T66.js} +56 -56
- package/{appGetCommands-XQIUY4TD.js → appGetCommands-WFCHXJWF.js} +56 -56
- package/{appListCommands-NNG4H36Y.js → appListCommands-XY2U6DPF.js} +57 -59
- package/{authCommand-UBJ4EWYZ.js → authCommand-QYN47CQD.js} +371 -68
- package/{authCommands-H6WKKCRW.js → authCommands-77CHYBGF.js} +12 -9
- package/{builtinSkillRegistry-ZMF6YGNO.js → builtinSkillRegistry-TDQ6JB2E.js} +13 -11
- package/{chromeCommands-2N6MEWRU.js → chromeCommands-OBBNJCLS.js} +314 -13
- package/chromeOpsCommands-3Z34RKSE.js +472 -0
- package/{chunk-ALXHV7NK.js → chunk-2GGXHQIW.js} +43 -4
- package/{localRuntimeAuthority-5W6IJRAD.js → chunk-2IXDJNZI.js} +154 -75
- package/{chunk-IVZJWTDI.js → chunk-36OMEXXR.js} +89 -21
- package/{chunk-H6A6X4EK.js → chunk-3MZAGMYY.js} +16 -0
- package/chunk-3PVYUPXK.js +40 -0
- package/chunk-3SZA4U64.js +1192 -0
- package/{chunk-ID7LNBWR.js → chunk-3T4ZG6AC.js} +1920 -644
- package/{chunk-GNMAFAIS.js → chunk-44WXLHFI.js} +1 -1
- package/{chunk-AGGIDPCZ.js → chunk-4JH2UMJR.js} +6 -0
- package/chunk-4LCOCOR5.js +50 -0
- package/chunk-4YRTZIVN.js +871 -0
- package/{chunk-N7J63Q6C.js → chunk-56GBUMO5.js} +10 -1
- package/{chunk-W7XHHYWM.js → chunk-5BHQICF2.js} +5 -1
- package/{chunk-XUWRURDF.js → chunk-5EBLANFT.js} +1 -1
- package/{chunk-3AH7LNUB.js → chunk-5EMSBTQ6.js} +33 -14
- package/{chunk-YRRASA5Q.js → chunk-5MM7NNO6.js} +113 -52
- package/chunk-5MMAK75Q.js +15 -0
- package/{chunk-TXH4IWJL.js → chunk-626KHJNX.js} +20 -11
- package/{chunk-M5PVFLD4.js → chunk-64K7WX26.js} +90 -21
- package/{chunk-AKG5W4LG.js → chunk-6CCFTVBP.js} +76 -221
- package/chunk-6MJNEXUU.js +614 -0
- package/{chunk-62IL3KQV.js → chunk-6MXDOUMH.js} +15 -3
- package/{chunk-QOKAKDPE.js → chunk-6Q7UTJKR.js} +6 -94
- package/chunk-6QDYSCPW.js +223 -0
- package/{chunk-HYZIYH2H.js → chunk-74RAWNQN.js} +56 -63
- package/chunk-7DPNBQSV.js +9 -0
- package/{chunk-IAESIMK7.js → chunk-A4MW3YZL.js} +10 -14
- package/{chunk-OMRJYNCI.js → chunk-AG7MCDLR.js} +26 -31
- package/chunk-AGIM7IMJ.js +147 -0
- package/{chunk-7CHC4W22.js → chunk-AIZE5TDM.js} +3 -3
- package/chunk-AJ3G7X2K.js +7012 -0
- package/{chunk-5GVBDNTO.js → chunk-AU7AXHUL.js} +1 -1
- package/{chunk-4H22P2JV.js → chunk-AUIJZACN.js} +2073 -1275
- package/{chunk-CIF4X6ZM.js → chunk-AWVFQMOV.js} +25 -3
- package/{chunk-YAQJJDC2.js → chunk-BJEZC5RA.js} +214 -51
- package/{chunk-RYZINGPM.js → chunk-BPMPOFWP.js} +347 -235
- package/{chunk-YUNJN43V.js → chunk-BU2YQBV4.js} +215 -28
- package/{chunk-XPRWFQQK.js → chunk-CBHGZRCE.js} +38 -12
- package/{chunk-Y3PMXGLH.js → chunk-CHCS6XPJ.js} +365 -144
- package/chunk-CHOZJMJS.js +78 -0
- package/chunk-CYJWI3NH.js +119 -0
- package/{chunk-GBRG75BQ.js → chunk-D2MDMY2M.js} +1 -0
- package/{chunk-3SV7RM24.js → chunk-D2QN6CTI.js} +117 -72
- package/{chunk-TZZ2WRBL.js → chunk-DFDXM2Y4.js} +20 -16
- package/{chunk-5TEEECZM.js → chunk-E2AKSW7L.js} +10 -7
- package/{chunk-RSEEDUMS.js → chunk-EDX5XSJM.js} +2 -2
- package/{chunk-QDSINZM3.js → chunk-EUGTFFO6.js} +2 -23
- package/{chunk-UNYJU5L6.js → chunk-EYLGAEB4.js} +5 -1
- package/{chunk-CU3QB4HW.js → chunk-EYWJT7A2.js} +12 -12
- package/{chunk-BNGW5ASC.js → chunk-EZVK3N5L.js} +66 -18
- package/{chunk-6FGTMQCL.js → chunk-F32Z66T4.js} +6 -10
- package/{chunk-ZOVKKMF6.js → chunk-FY4SDK2E.js} +1 -1
- package/chunk-G6OOUQWJ.js +417 -0
- package/{chunk-PQWU42UQ.js → chunk-GCKHQECX.js} +6 -6
- package/chunk-GKXCHNTE.js +15 -0
- package/{chunk-P6GMCCAT.js → chunk-GQV5KHJU.js} +78 -12
- package/{chunk-B2XUQXQX.js → chunk-HIQ4GF53.js} +191 -68
- package/{chunk-GMZLP5DV.js → chunk-HNUWUO75.js} +30 -19
- package/{chunk-UASIEDKM.js → chunk-I2XLRXVX.js} +36 -31
- package/{chunk-5UTFL4QJ.js → chunk-I2ZMGXXF.js} +10 -5
- package/chunk-I42VC5KR.js +15 -0
- package/{chunk-3BXNTXYI.js → chunk-I4SN4NUQ.js} +1199 -56
- package/chunk-IA7TRNNR.js +11 -0
- package/{chunk-WIWM4FE3.js → chunk-IJERIUXS.js} +55 -748
- package/{chunk-BIDGLJQ3.js → chunk-IK2TSJQA.js} +45 -8
- package/{chunk-CPUFH46E.js → chunk-ILU2NPWY.js} +10 -10
- package/{chunk-SLLGJZDT.js → chunk-ISQL4V7C.js} +4 -4
- package/chunk-IT3ZZRJE.js +12 -0
- package/{chunk-DY7ANLKG.js → chunk-JKMLSTZK.js} +43 -12
- package/{chunk-6TPOEJMQ.js → chunk-JZX2XLKC.js} +64 -23
- package/{chunk-27ONFIEY.js → chunk-K2AER7RX.js} +19 -12
- package/{chunk-O2OWEFII.js → chunk-KFHQQ3NO.js} +1 -1
- package/{chunk-QXGPFY6J.js → chunk-LGN377P3.js} +27 -17
- package/{chunk-L36OWPP3.js → chunk-LIQJTQRN.js} +118 -139
- package/{chunk-BFU6C242.js → chunk-NMFV26UG.js} +1 -1
- package/{chunk-5J3PYNUP.js → chunk-NYYFIKHI.js} +17 -3
- package/{chunk-6O4IK4V2.js → chunk-OFFL4DCR.js} +1 -1
- package/{chunk-B6SAMB33.js → chunk-OWYYDMGJ.js} +209 -9
- package/{chunk-KQHGZWSV.js → chunk-OXME3PEE.js} +1 -1
- package/{chunk-CTUQJVQM.js → chunk-P5QACQDK.js} +1 -1
- package/{chunk-TB3MIBRC.js → chunk-PIDUNDFS.js} +572 -430
- package/{chunk-4JMDLJAD.js → chunk-PJNFNEJE.js} +114 -37
- package/chunk-PKZKOVA5.js +11507 -0
- package/{chunk-Z4CSIXYP.js → chunk-PLSVXHSA.js} +3 -3
- package/chunk-PWTNI4N7.js +47 -0
- package/chunk-QFEW2ULV.js +42 -0
- package/{chunk-RGNEEJ3Y.js → chunk-QLQ573SU.js} +35 -9
- package/chunk-QQ56R7KS.js +88 -0
- package/chunk-QYPE3TS3.js +43 -0
- package/{chunk-HTVYCXBP.js → chunk-RN2GPWN6.js} +354 -120
- package/{chunk-ATLTFRYJ.js → chunk-ROCUB2H2.js} +280 -98
- package/{chunk-4DPP773Q.js → chunk-RSHPU4PD.js} +59 -11
- package/chunk-RVWMAFIT.js +134 -0
- package/{chunk-ESHYE7WU.js → chunk-S73EPYNC.js} +10 -7
- package/{chunk-UQNS32WZ.js → chunk-SCMHQUMK.js} +1 -1
- package/chunk-SW4S4XYB.js +1794 -0
- package/{chunk-ZUEK6A6C.js → chunk-TTH4HOJD.js} +1973 -754
- package/chunk-TY3TIUJK.js +89 -0
- package/{chunk-X2QRZXZH.js → chunk-TYJ5XFEA.js} +4 -4
- package/{chunk-ALFH24P3.js → chunk-TYYRSFBG.js} +197 -155
- package/{chunk-MST6R3E4.js → chunk-U5GPBQDG.js} +34 -22
- package/chunk-U5ICMAFV.js +14110 -0
- package/{chunk-7KVZ5LDQ.js → chunk-UBUH2TCC.js} +18 -4
- package/chunk-UEILX4EV.js +15 -0
- package/chunk-UHTDNB5Y.js +140 -0
- package/{chunk-YYLHWIW6.js → chunk-UKZX3NHN.js} +1 -1
- package/{chunk-OHOVNO7I.js → chunk-UOKFKFPO.js} +6 -3
- package/{chunk-XISEYOGH.js → chunk-USHQX6VT.js} +5 -5
- package/chunk-UUPR3TD7.js +53 -0
- package/{chunk-3DAVPNFT.js → chunk-V4EE3D54.js} +122 -107
- package/{chunk-HDLLCBRF.js → chunk-VEA7H5FG.js} +2 -2
- package/chunk-VHGD6FHV.js +116 -0
- package/chunk-VIWDGTDA.js +8 -0
- package/{chunk-GOH6RW6F.js → chunk-VJXHL6MH.js} +34 -11
- package/{chunk-4XEYAFLY.js → chunk-VL5KOY2C.js} +623 -94
- package/{chunk-EADNWBAZ.js → chunk-VP3BINY7.js} +13 -0
- package/{chunk-DXHL7G2L.js → chunk-VWW6O2TL.js} +274 -93
- package/{chunk-EOARMOVD.js → chunk-W4S6OTSC.js} +6 -3
- package/chunk-WD4XYDYC.js +567 -0
- package/chunk-WJZOQR2J.js +151 -0
- package/{chunk-AUDNYVRC.js → chunk-XETG4RIX.js} +5 -5
- package/{chunk-MX574M24.js → chunk-XI7DGLUK.js} +4 -4
- package/{chunk-3L2WKC3W.js → chunk-XPWGOTBQ.js} +8 -1
- package/chunk-XRUSXPCQ.js +514 -0
- package/{chunk-I4OPU5TK.js → chunk-XS47QOFV.js} +273 -11
- package/{chunk-S5XGT6GB.js → chunk-XZNCX52W.js} +30 -9
- package/{chunk-5OA5HMTL.js → chunk-YLMMECCH.js} +1 -1
- package/{chunk-CFT5HBGW.js → chunk-YVLQXTUB.js} +448 -12
- package/chunk-YVPQATSC.js +709 -0
- package/chunk-ZEZC7IIM.js +126 -0
- package/{chunk-ALGORS6Y.js → chunk-ZF6526IQ.js} +43 -8
- package/chunk-ZIWPQEFU.js +165 -0
- package/chunk-ZRAU6T47.js +56 -0
- package/{cliExecutor-AWYR3T33.js → cliExecutor-BWBF2MTI.js} +4 -3
- package/{clipboardy-BX4NMYHE.js → clipboardy-GCO3GT3I.js} +3 -8
- package/{commandRegistry-2KBOXZQC.js → commandRegistry-NBLZEMCW.js} +183 -107
- package/contentThunks-6AIWNSGO.js +84 -0
- package/{cooldownCommands-ZLEPIB4A.js → cooldownCommands-JFKTYS2D.js} +2 -2
- package/{createAgentAutomationAction-5UGTB26P.js → createAgentAutomationAction-4BUS65DZ.js} +53 -44
- package/createDialogAction-QAIKSCG4.js +76 -0
- package/{createPageAction-CDLDKPRM.js → createPageAction-DXCZ334C.js} +65 -54
- package/cursorProvider-YGGNMVWX.js +6123 -0
- package/{db-VQSAOWAO.js → db-2QOTXYGH.js} +11 -5
- package/{dbSlice-DQ32LYTJ.js → dbSlice-J37OGIXH.js} +19 -13
- package/{deleteFile-NX6QHCWZ.js → deleteFile-6JWDDRVP.js} +10 -6
- package/dialogCommands-YZLSJB6X.js +113 -0
- package/{dialogSlice-N3YB65G5.js → dialogSlice-PVUSMKFW.js} +53 -39
- package/{docCreateCommands-ZSLGVBZT.js → docCreateCommands-JB2RRMRJ.js} +54 -57
- package/{docDeleteCommands-5N4GVZBG.js → docDeleteCommands-AQENULNM.js} +56 -58
- package/{docReadCommands-YJSAA7AV.js → docReadCommands-DYD25YLQ.js} +53 -56
- package/{docStore-E3CEOV5Q.js → docStore-CSEBEMKP.js} +25 -16
- package/{docUpdateCommands-WEMLSW6W.js → docUpdateCommands-3GVS23QL.js} +54 -57
- package/{fetchMessages-67MEFPZR.js → fetchMessages-IIJWQ3HR.js} +5 -4
- package/{getPricing-NMMFT3YI.js → getPricing-FKK3F5EJ.js} +11 -9
- package/{handleSendMessageAction-DQAD5ERJ.js → handleSendMessageAction-G2TLYGC4.js} +422 -118
- package/index.js +11 -7
- package/{lib-FRRS27KN.js → lib-4YTWAGY7.js} +581 -248
- package/{localDialogRead-EBRS242U.js → localDialogRead-FSOMOPDZ.js} +2 -2
- package/localRuntimeAdapter-B4TAYYA7.js +244 -0
- package/localRuntimeAuthority-JDAD7CB6.js +16 -0
- package/{localRuntimeDb-3LRMNLCM.js → localRuntimeDb-CVC62PM5.js} +1 -1
- package/{machineCommands-HAP75VSG.js → machineCommands-6OBFD3XF.js} +503 -161
- package/{machineInfo-66ZFUMLE.js → machineInfo-UKPTZO5Y.js} +2 -2
- package/machineWsRunDispatch-OO7N3O3Y.js +169 -0
- package/{memberThunks-5ZXPR63F.js → memberThunks-66DH6ABQ.js} +25 -18
- package/{models-ZPU5EDF4.js → models-LAS4B2B5.js} +2 -2
- package/package.json +1 -1
- package/{providerPresetApply-DD6NGWW6.js → providerPresetApply-MY66I6NT.js} +10 -10
- package/{providerRegistry-XDRLMYGJ.js → providerRegistry-QOE2FT57.js} +13 -9
- package/{read-EPTJRAEF.js → read-DC4NUGN6.js} +12 -8
- package/{readDocTool-W4NDXNEX.js → readDocTool-NCJ5NT25.js} +1 -1
- package/{readlineWorkspace-7BC66QSX.js → readlineWorkspace-UIQN7JUR.js} +5017 -915
- package/{removeDialogAgentAction-OSYNZRX7.js → removeDialogAgentAction-E2H3OZU6.js} +29 -28
- package/{runAgentClientLoop-6E6UC3CE.js → runAgentClientLoop-GS3SGG37.js} +154 -97
- package/{runtimeDoctorCommands-ID23PNNZ.js → runtimeDoctorCommands-GIOGC5SC.js} +17 -17
- package/secretCommands-ZXZRLR3R.js +700 -0
- package/setDialogExtraReferencesAction-SITRPMYU.js +37 -0
- package/{setPrimaryDialogAgentAction-WZ7KI3YA.js → setPrimaryDialogAgentAction-U7N45TGC.js} +30 -29
- package/{chunk-SONWNI3L.js → settingThunks-Y7SVJOMZ.js} +223 -928
- package/{skillDiscovery-ZBU76COE.js → skillDiscovery-QC35EQY4.js} +2 -2
- package/{slateUtils-RIZES3PV.js → slateUtils-NGV2NMKM.js} +1 -1
- package/{spaceCommands-UJOVU4XI.js → spaceCommands-ZR5BR3GX.js} +59 -59
- package/{streamAgentChatTurn-3UXPYFNX.js → streamAgentChatTurn-4XYC33KE.js} +309 -165
- package/{switchDialogAgentAction-GMR7WN3P.js → switchDialogAgentAction-OMGBD3N2.js} +26 -22
- package/{tableCommands-G7RV3RU3.js → tableCommands-U3QDY4L6.js} +19 -17
- package/{toolApiClient-CVGWM4PN.js → toolApiClient-7WSJJJBV.js} +6 -5
- package/tools-P77EE7Q4.js +124 -0
- package/tuiSummaryLlmCaller-BM3VSTBU.js +130 -0
- package/{updateCommands-4EHDLF5J.js → updateCommands-NQXAGFM7.js} +3 -3
- package/{updateDialogTitleAction-UPFV7TDT.js → updateDialogTitleAction-CIANVPZC.js} +102 -57
- package/workloadLifecycle-36DXRZKU.js +320 -0
- package/action-GI44T4DR.js +0 -31
- package/agentListCommands-IW3GQVUP.js +0 -427
- package/agentRecordCommands-VCA76W6B.js +0 -134
- package/agentRunCommand-YNLDKVR7.js +0 -161
- package/browser-image-compression-MFDTD7K6.js +0 -1763
- package/chatQueueReduxAdapter-TJRMXMYA.js +0 -186
- package/chromeOpsCommands-IXRLN57H.js +0 -289
- package/chunk-36KZDDO5.js +0 -2415
- package/chunk-ACQD6YI2.js +0 -25363
- package/chunk-CQ3WA2NE.js +0 -299
- package/chunk-CYSYR67N.js +0 -93
- package/chunk-JBTJAPUF.js +0 -35
- package/chunk-K2CSUCHJ.js +0 -620
- package/chunk-LTRXGFMS.js +0 -83
- package/chunk-M76ECQRD.js +0 -13658
- package/chunk-MEYIRKDN.js +0 -8967
- package/chunk-OCZKATRC.js +0 -129
- package/chunk-OTGFTBLI.js +0 -13
- package/chunk-PUOC4YRO.js +0 -394
- package/chunk-PZZTFEKK.js +0 -34
- package/chunk-URMS4XY2.js +0 -10
- package/chunk-UV6VISQJ.js +0 -20
- package/chunk-VJVNU77E.js +0 -83
- package/chunk-XYJSY4KG.js +0 -13807
- package/chunk-Y5GCAMGP.js +0 -9
- package/chunk-YPREESF4.js +0 -225
- package/contentThunks-BDIQRZR6.js +0 -73
- package/createDialogAction-B7VGVEVU.js +0 -66
- package/dialogCommands-G7YBVAMC.js +0 -102
- package/levelLazyShim-GZBKODGI.js +0 -7
- package/machineWsRunDispatch-L32G7C4P.js +0 -149
- package/serverStoreFactory-YMXDF4NI.js +0 -20
- package/setDialogExtraReferencesAction-M32UYNCG.js +0 -30
- package/settingSlice-Q6EKL7EQ.js +0 -204
- package/syncMapping-N6RGXGBW.js +0 -437
- package/tools-MKYDMWA4.js +0 -111
- package/tuiSummaryLlmCaller-3YFNHCTW.js +0 -128
- package/{chunk-SV5IJK6K.js → chunk-NBTY7YJF.js} +3 -3
- package/{chunk-2SYTUTLI.js → chunk-YBNHPX4S.js} +3 -3
- package/{offlineMarxistsAgentCommand-HGXZV4XJ.js → offlineMarxistsAgentCommand-2QTHJCHV.js} +4 -4
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AGENT_SELECTION_PRIORITY_INSTRUCTIONS
|
|
3
|
+
} from "./chunk-QLQ573SU.js";
|
|
4
|
+
import {
|
|
5
|
+
canonicalizeToolNames
|
|
6
|
+
} from "./chunk-5EBLANFT.js";
|
|
7
|
+
import {
|
|
8
|
+
estimateTokenCount
|
|
9
|
+
} from "./chunk-PSCNXBYA.js";
|
|
10
|
+
import {
|
|
11
|
+
asTrimmedString
|
|
12
|
+
} from "./chunk-3EUW3WEO.js";
|
|
13
|
+
|
|
14
|
+
// packages/agent-runtime/identityBlock.ts
|
|
15
|
+
var buildIdentityBlock = (input) => {
|
|
16
|
+
const lines = [
|
|
17
|
+
"--- \u8EAB\u4EFD\u4FE1\u606F ---",
|
|
18
|
+
asTrimmedString(input.agentName) ? `\u540D\u79F0: ${asTrimmedString(input.agentName)}` : "",
|
|
19
|
+
asTrimmedString(input.agentId) ? `ID: ${asTrimmedString(input.agentId)}` : "",
|
|
20
|
+
asTrimmedString(input.model) ? `\u6A21\u578B: ${asTrimmedString(input.model)}` : ""
|
|
21
|
+
].filter(Boolean);
|
|
22
|
+
return lines.join("\n");
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// packages/agent-runtime/deleteSafety.ts
|
|
26
|
+
var DELETE_SAFETY_RED_LINE = [
|
|
27
|
+
"\u3010\u5220\u9664\u5B89\u5168\u7EA2\u7EBF \xB7 \u6700\u9AD8\u4F18\u5148\u7EA7\u3011",
|
|
28
|
+
"\u9664\u4E0B\u8FF0\u552F\u4E00\u4F8B\u5916\u5916\uFF0C\u4EFB\u4F55\u5220\u9664\u64CD\u4F5C\uFF08\u6587\u4EF6\u3001\u6570\u636E\u3001\u5E73\u53F0/\u8FDC\u7AEF\u5185\u5BB9\u3001\u6D88\u606F\u7B49\uFF0C\u65E0\u8BBA\u5355\u6761\u6216\u6279\u91CF\uFF09\u6267\u884C\u524D\uFF0C\u5FC5\u987B\u5148\u5411\u7528\u6237\u5448\u73B0\u5B8C\u6574\u5F85\u5220\u6E05\u5355\uFF08\u540D\u79F0/\u8DEF\u5F84/\u6807\u9898\u7B49\u53EF\u8BC6\u522B\u4FE1\u606F\uFF0C\u4E0D\u5F97\u622A\u65AD\uFF09\uFF0C\u5E76\u83B7\u5F97\u7528\u6237\u660E\u786E\u786E\u8BA4\u540E\u624D\u53EF\u6267\u884C\uFF1B\u4E25\u7981\u7528\u6A21\u7CCA\u5B9A\u4F4D\uFF08\u5982\u201C\u5217\u8868\u6700\u4E0B\u65B9\u201D\uFF09\u6307\u4EE3\u5220\u9664\u76EE\u6807\uFF0C\u4E25\u7981\u5148\u5220\u540E\u62A5\u3002\u5B88\u536B\u68C0\u67E5\u4E0E\u5220\u9664\u52A8\u4F5C**\u4E0D\u5F97\u7528 `;` \u8FDE\u63A5**\u2014\u2014\u5FC5\u987B\u7528 `&&`/`if` \u8BA9\u5220\u9664\u52A8\u4F5C\u5904\u5728\u5B88\u536B\u7684\u6210\u8D25\u8DEF\u5F84\u4E0A\uFF0C\u5426\u5219\u5B88\u536B\u6253\u5370\u7684\u300C\u6709\u5DEE\u5F02 \u2192 \u4E0D\u5220\u300D\u62E6\u4E0D\u4F4F\u7D27\u968F\u5176\u540E\u88AB `;` \u4E32\u8054\u6267\u884C\u7684\u5220\u9664\u547D\u4EE4\uFF082026-10-07 \u771F\u5B9E\u8E29\u5751\uFF09\u3002\uFF082026-09-26 \u6279\u91CF\u8BEF\u5220\u4E8B\u6545\u6559\u8BAD\uFF09",
|
|
29
|
+
"\u552F\u4E00\u4F8B\u5916\xB7\u53EF\u9A8C\u8BC1\u6062\u590D\u7684\u4EFB\u52A1\u6E05\u7406\uFF1A\u672C\u6B21\u4EFB\u52A1\u4EB2\u81EA\u521B\u5EFA/\u542F\u52A8\u3001\u4E14\u6E05\u7406\u524D\u5DF2\u7528\u5B9E\u9645\u547D\u4EE4\u9010\u9879\u9A8C\u8BC1\u300C\u8981\u5220\u7684\u5168\u90E8\u5185\u5BB9\u53E6\u6709\u5B8C\u6574\u526F\u672C\u3001\u5220\u4E86\u53EF\u65E0\u635F\u6062\u590D\u300D\u7684\u8D44\u6E90\uFF0C\u53EF\u514D\u4E8B\u524D\u6E05\u5355\u4E0E\u786E\u8BA4\uFF0C\u6E05\u7406\u540E\u5728\u6C47\u62A5\u4E2D\u9010\u9879\u5217\u660E\uFF1B\u7CBE\u786E\u5B9A\u4F4D\u4ECD\u5FC5\u987B\u3002\u4EC5\u9650\uFF1A\u2460 \u5DF2\u5B8C\u6574\u5408\u5165\u4FDD\u7559\u7684\u96C6\u6210\u5206\u652F\uFF08git merge-base --is-ancestor \u9A8C\u8BC1\uFF09\u7684\u672C\u5730\u5206\u652F\u4E0E worktree\uFF0C\u4E14\u9664 a)\u3001b) \u4E24\u7C7B\u5916\uFF0C`git status --porcelain --ignored` \u8F93\u51FA\u5FC5\u987B\u4E3A\u7A7A\uFF1Aa) `!! node_modules/`\u2014\u2014\u987B\u5148\u7528 find \u6838\u5B9E\u5176\u4E2D\u53EA\u6709\u6307\u5411\u672C worktree \u5185\u7684\u5DE5\u4F5C\u533A\u5305\u7B26\u53F7\u94FE\u63A5\u3001\u4EE5\u53CA\u53EA\u88C5\u8FD9\u7C7B\u94FE\u63A5\u7684 scope \u5BB9\u5668\u76EE\u5F55\uFF0C\u65E0\u4EFB\u4F55\u666E\u901A\u6587\u4EF6\u6216\u5176\u4ED6\u7C7B\u578B\u6761\u76EE\uFF0C\u94FE\u63A5\u65E0\u6CD5\u89E3\u6790\u5373\u4E0D\u901A\u8FC7\uFF1Bb) \u88AB\u5FFD\u7565\u7684**\u53EF\u518D\u751F\u6784\u5EFA\u4EA7\u7269**\uFF08\u5982 `*.tsbuildinfo`\u3001\u6784\u5EFA/\u7F16\u8BD1\u7F13\u5B58\uFF09\u2014\u2014\u987B\u9010\u9879\u5217\u51FA\u8DEF\u5F84\uFF0C\u5E76\u7ED9\u51FA\u80FD\u91CD\u65B0\u751F\u6210\u5B83\u7684**\u4ED3\u5E93\u5185\u65E2\u6709\u547D\u4EE4**\uFF08\u5F53\u6B21\u5B9E\u9645\u6267\u884C\u901A\u8FC7\uFF1B\u6307\u4E0D\u51FA\u547D\u4EE4\u6216\u8DD1\u4E0D\u901A\u7684\u4E00\u5F8B\u4E0D\u653E\u884C\uFF09\uFF0C\u786E\u8BA4\u53EF\u7531\u8BE5\u547D\u4EE4\u65E0\u635F\u518D\u751F\u3001\u4E0D\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u3001\u4E14\u4E0D\u662F\u624B\u5DE5\u6539\u52A8\u8FC7\u7684\u4EA7\u7269\uFF1B\u4E0B\u5217\u4E00\u5F8B\u4E0D\u5C5E\u6B64\u7C7B\uFF1A`.env*` \u7B49\u51ED\u8BC1\u3001`data/`\u3001`nolo/`\u3001`.nolo/`\u3001\u4EFB\u4F55\u6570\u636E\u5E93/LevelDB/WAL/\u5BA1\u8BA1/\u65E5\u5FD7/\u62A5\u544A/\u5BFC\u51FA\u76EE\u5F55\u3001`artifacts/`\u3001\u624B\u5DE5\u6539\u52A8\u8FC7\u7684 `dist/`\u3001`public/` \u4E0B\u7684\u4EA7\u7269\u76EE\u5F55\uFF1B\u300C\u5DF2\u88AB gitignore\u300D\u300C\u662F\u6784\u5EFA\u4EA7\u7269\u300D\u300C\u53EF\u91CD\u65B0\u6784\u5EFA\u300D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u8BF4\u6CD5\u4E0D\u6784\u6210\u653E\u884C\u7406\u7531\u3002\u6CE8\u610F `git worktree remove` \u4E0D\u4F1A\u56E0 ignored \u5185\u5BB9\u800C\u62D2\u7EDD\uFF08\u4F1A\u8FDE\u5176\u4E00\u5E76\u5220\u9664\uFF09\uFF0C\u672C\u4F8B\u5916\u6CA1\u6709\u673A\u68B0\u515C\u5E95\uFF0C\u4E0A\u8FF0\u9010\u9879\u6838\u5B9E\u662F\u552F\u4E00\u9632\u7EBF\uFF1B\u53EA\u7528\u4E0D\u5E26 --force \u7684 git worktree remove \u4E0E git branch -d\uFF0C\u7981\u6B62 -D\u3001--force\u3001rm -rf \u66FF\u4EE3\uFF1B\u2461 \u672C\u6B21\u521B\u5EFA\u3001\u5185\u5BB9\u53EA\u662F\u53EF\u518D\u751F\u4E2D\u95F4\u4EA7\u7269\uFF08\u65E5\u5FD7\u3001\u63A2\u9488\u811A\u672C\u3001\u622A\u56FE\u3001\u6784\u5EFA\u7F13\u5B58\uFF09\u7684 /tmp \u6587\u4EF6\uFF0C\u542B\u552F\u4E00\u7ED3\u679C\u6216\u7528\u6237\u6570\u636E\u7684\u4E0D\u7B97\uFF1B\u2462 \u672C\u6B21\u542F\u52A8\u3001\u6309\u5F53\u6B21\u8BB0\u5F55\u7684 PID \u6838\u5B9E\u8EAB\u4EFD\u3001\u7EC8\u6B62\u4E0D\u4E22\u672A\u4FDD\u5B58\u72B6\u6001\u7684\u540E\u53F0\u8FDB\u7A0B\u3002\u201C\u6709\u5907\u4EFD\u201D\u201C\u5728 /tmp\u201D\u201C\u5DF2\u5408\u5E76\u201D\u7B49\u672A\u7ECF\u547D\u4EE4\u6838\u5B9E\u7684\u5224\u65AD\u4E0D\u6784\u6210\u9A8C\u8BC1\uFF1B\u4EFB\u4E00\u9879\u65E0\u6CD5\u9A8C\u8BC1\uFF0C\u4E00\u5F8B\u56DE\u5230\u4E0A\u9762\u7684\u786E\u8BA4\u6D41\u7A0B\u3002\u7528\u6237\u6570\u636E\u3001\u8FDC\u7AEF/\u5E73\u53F0\u5185\u5BB9\u3001\u4ED6\u4EBA\u6216\u65E2\u6709\u7684\u6587\u4EF6\u3001\u5206\u652F\u3001stash \u6C38\u8FDC\u4E0D\u9002\u7528\u6B64\u4F8B\u5916\u3002"
|
|
30
|
+
].join("\n");
|
|
31
|
+
|
|
32
|
+
// packages/agent-runtime/parallelDispatchDefault.ts
|
|
33
|
+
var PARALLEL_DISPATCH_DEFAULT_RULE = [
|
|
34
|
+
"\u3010\u5E76\u884C\u662F\u9ED8\u8BA4 \xB7 \u6D3E\u53D1\u7EAA\u5F8B\u3011",
|
|
35
|
+
"\u9ED8\u8BA4\u5E76\u884C\uFF0C\u4E0D\u662F\u9ED8\u8BA4\u4E32\u884C\uFF1A\u51E1\u65E0\u6587\u4EF6\u4EA4\u96C6\u3001\u65E0\u771F\u5B9E\u6570\u636E\u4F9D\u8D56\u7684\u72EC\u7ACB\u5DE5\u4F5C\uFF08\u591A\u4EFD\u72EC\u7ACB brief\u3001\u591A\u4E2A\u72EC\u7ACB\u63A2\u67E5/\u68C0\u7D22\u3001\u591A\u5904\u72EC\u7ACB\u6587\u4EF6\u6539\u52A8\uFF09\uFF0C\u5FC5\u987B\u5728**\u540C\u4E00\u8F6E tool_call \u91CC\u4E00\u6B21\u6027\u5E76\u53D1\u6D3E\u53D1**\uFF0C\u4E0D\u8981\u4E00\u4E2A\u63A5\u4E00\u4E2A\u7B49\u7ED3\u679C\u3002\u5224\u636E\u662F\u300C\u4F9D\u8D56\u5757\u662F\u5426\u4E3A\u7A7A\u300D\uFF0C\u4E0D\u662F\u300C\u4E3B\u7EBF\u662F\u5426\u5B8C\u6210\u300D\u3002",
|
|
36
|
+
"\u53EA\u6709\u771F\u5B9E\u4F9D\u8D56\u624D\u5141\u8BB8\u4E32\u884C\uFF0C\u4E14\u5FC5\u987B\u80FD\u6307\u540D\u5177\u4F53\u4F9D\u8D56\u9879\uFF08\u4E0B\u9762\u4E09\u8005\u4E4B\u4E00\uFF09\uFF1A\u2460 \u5199\u51B2\u7A81\uFF08\u540C\u4E00\u6587\u4EF6 / \u540C\u4E00\u63A5\u53E3\u5951\u7EA6\uFF09\uFF1B\u2461 \u51C6\u5165\u51B2\u7A81\uFF08\u540C\u4E00\u51ED\u8BC1\u914D\u989D\u3001\u540C\u4E00\u4E0A\u6E38 429 \u51B7\u5374\u3001\u540C\u4E00\u72EC\u5360\u8D44\u6E90\u6216\u9501\uFF09\uFF1B\u2462 \u4FE1\u606F\u4F9D\u8D56\uFF08\u540E\u4E00\u9879\u7684\u8F93\u5165\u5FC5\u987B\u5F15\u7528\u524D\u4E00\u9879\u5C1A\u672A\u4EA7\u51FA\u7684\u7ED3\u679C\uFF09\u3002\u6307\u4E0D\u51FA\u4E0A\u9762\u4EFB\u4F55\u4E00\u9879\uFF0C\u5C31\u5FC5\u987B\u5E76\u884C\u3002",
|
|
37
|
+
"\u7981\u6B62\u7528\u8FD9\u4E9B\u7406\u7531\u4E32\u884C\uFF1A\u300C\u7B49\u540C\u4E00\u6761\u901A\u9053\u7A7A\u95F2\u300D\u300C\u7B49\u540C\u4E00\u4E2A agent \u7A7A\u95F2\u300D\u300C\u7B49\u4E3B\u7EBF/\u524D\u4E00\u4E2A\u4EFB\u52A1\u5B8C\u6210\u300D\u300C\u7B49\u67D0\u4E2A HIGH \u4FEE\u5B8C\u300D\u300C\u7B49\u4E0A\u4E0B\u6587\u4E0D\u6DF7\u300D\u300C\u5E76\u884C\u534F\u8C03\u6210\u672C\u9AD8\u300D\u2014\u2014\u540C\u4E00\u4E2A\u6267\u884C\u901A\u9053\u5141\u8BB8\u5E76\u53D1 fork\uFF0Crun \u5B9E\u4F8B\u4E4B\u95F4\u65E0\u4E0A\u4E0B\u6587\u5171\u4EAB\uFF1B\u4E00\u4E2A HIGH \u53EA\u963B\u585E\u5B83\u6240\u5728\u7684\u90A3\u6761\u8DEF\u5F84\uFF0C\u4E0D\u963B\u585E\u65E0\u5173\u5DE5\u4F5C\u3002 \u4E5F\u4E0D\u8981\u65B0\u589E\u300C\u5355\u98DE\u884C\u961F\u5217 / \u540C agent \u590D\u7528\u9501\u300D\u8FD9\u7C7B\u4EE5\u4E32\u884C\u4E3A\u524D\u63D0\u7684\u6267\u884C\u901A\u9053\u5047\u8BBE\u6765\u6362\u300C\u4FDD\u5B88\u300D\u3002",
|
|
38
|
+
"\u4E0E\u9879\u76EE\u89C4\u5219\u6216 skill \u51B2\u7A81\u65F6\uFF0C\u9ED8\u8BA4\u5148\u5E76\u884C\u3001\u518D\u56DE\u9000\uFF1A\u4EFB\u4F55\u300C\u5148 A \u518D B\u300D\u7684\u987A\u5E8F\u8981\u6C42\uFF0C\u53EA\u6709\u5728\u80FD\u6307\u540D\u5177\u4F53\u4F9D\u8D56\u9879\uFF08\u54EA\u4E2A\u6587\u4EF6\u3001\u54EA\u4EFD\u5951\u7EA6\u3001\u54EA\u4EFD\u51ED\u8BC1\u3001\u54EA\u6761\u4E0A\u6E38\uFF09\u65F6\u624D\u6210\u7ACB\uFF1B\u5426\u5219\u6309\u5E76\u884C\u6267\u884C\uFF0C\u5E76\u628A\u8BE5\u51B2\u7A81\u5982\u5B9E\u544A\u8BC9\u7528\u6237\uFF0C\u4E0D\u5F97\u628A\u987A\u5E8F\u5047\u8BBE\u5F53\u9ED8\u8BA4\u3002",
|
|
39
|
+
"\u6D3E\u53D1\u65F6\u5728\u56DE\u590D\u91CC\u5199\u51FA\u300C\u5E76\u53D1\u7EC4 / \u4E32\u884C\u7406\u7531\u300D\uFF0C\u8BA9\u7528\u6237\u4E00\u773C\u770B\u51FA\u54EA\u6761\u7EBF\u88AB\u4E32\u884C\u5316\u3001\u4F9D\u636E\u662F\u4EC0\u4E48\u3002"
|
|
40
|
+
].join("\n");
|
|
41
|
+
|
|
42
|
+
// packages/agent-runtime/platformRiskControl.ts
|
|
43
|
+
var PLATFORM_RISK_CONTROL_RULE = [
|
|
44
|
+
"\u3010\u5E73\u53F0\u98CE\u63A7\u7EAA\u5F8B \xB7 \u7B2C\u4E09\u65B9\u7AD9\u70B9\u81EA\u52A8\u5316\u3011",
|
|
45
|
+
"\u5728\u7B2C\u4E09\u65B9\u5E73\u53F0\uFF08\u793E\u5A92\u3001\u7535\u5546\u3001\u4E91\u63A7\u5236\u53F0\u3001\u652F\u4ED8\u7B49\uFF09\u4E0A\u505A\u6D4F\u89C8\u5668\u81EA\u52A8\u5316\u65F6\uFF0C\u5E73\u53F0\u7684\u98CE\u63A7\u4E0E\u53CD\u81EA\u52A8\u5316\u5904\u7F6E\u662F\u771F\u5B9E\u5B58\u5728\u7684\uFF1A\u626B\u7801/\u4EBA\u8138/\u6ED1\u5757/\u9A8C\u8BC1\u7801\u3001\u9650\u9891\u3001\u8D26\u53F7\u964D\u6743\u4E0E\u5C01\u7981\u90FD\u53EF\u80FD\u53D1\u751F\u3002\u6211\u4EEC\u7684\u81EA\u52A8\u5316\u884C\u4E3A\u7279\u5F81\uFF08\u96F6\u5EF6\u8FDF\u7CBE\u786E\u70B9\u51FB\u3001\u4E00\u6B21\u704C\u6EE1\u8F93\u5165\u3001\u77AC\u65F6\u8DE8\u7AD9\u8FDE\u53D1\u3001\u5931\u8D25\u5373\u91CD\u8BD5\uFF09\u4F1A\u63D0\u9AD8\u88AB\u5224\u5B9A\u4E3A\u81EA\u52A8\u5316\u7684\u6982\u7387\u3002",
|
|
46
|
+
"\u7B49\u72B6\u6001\u843D\u5B9A\u518D\u63A8\u8FDB\uFF1A\u4E0A\u4F20\u5B8C\u6210\u3001\u7F16\u8F91\u5668\u5185\u5BB9\u7A33\u5B9A\u3001\u63A5\u53E3\u56DE\u5305\u540E\u518D\u505A\u4E0B\u4E00\u6B65\uFF0C\u4E0D\u53E0\u547D\u4EE4\u3001\u4E0D\u5E76\u53D1\u8F70\u540C\u4E00\u9875\u9762\u3002",
|
|
47
|
+
"\u5206\u6279\u5C0F\u6B65\u8F93\u5165\u5E76\u56DE\u8BFB\uFF1A\u957F\u6587\u5206\u6279\u5199\u5165\uFF0C\u6BCF\u6279\u540E\u8BFB\u56DE\u6838\u5BF9\uFF1B\u4E0A\u4F20\u9010\u4E2A\u8FDB\u884C\uFF0C\u786E\u8BA4\u7ED3\u679C\u518D\u4F20\u4E0B\u4E00\u4E2A\u3002",
|
|
48
|
+
"\u516C\u5F00\u4E0E\u4E0D\u53EF\u9006\u52A8\u4F5C\uFF08\u53D1\u5E03\u3001\u5220\u9664\u3001\u53D1\u9001\u3001\u4E0B\u5355\u3001\u4ED8\u6B3E\uFF09\u9ED8\u8BA4\u4EA4\u7528\u6237\u672C\u4EBA\u6267\u884C\uFF1BAgent \u8D1F\u8D23\u628A\u9875\u9762\u5907\u597D\uFF08\u6807\u9898\u3001\u6B63\u6587\u3001\u914D\u56FE\u3001\u5C01\u9762\u3001\u9009\u9879\uFF09\u5E76\u8BF4\u660E\u8981\u70B9\u3002",
|
|
49
|
+
"\u51FA\u73B0\u626B\u7801/\u4EBA\u8138/\u6ED1\u5757/\u9A8C\u8BC1\u7801/\u98CE\u63A7\u63D0\u793A\u65F6\u7ACB\u523B\u505C\u624B\uFF0C\u628A\u9875\u9762\u4EA4\u7ED9\u7528\u6237\u63A5\u7BA1\uFF1B\u4E0D\u81EA\u52A8\u91CD\u8BD5\u3001\u4E0D\u5C1D\u8BD5\u7ED5\u8FC7\u3001\u4E0D\u6362\u901A\u9053\u786C\u51B2\u3002",
|
|
50
|
+
"\u540C\u4E00\u8D26\u53F7\u4E0D\u8981\u77ED\u65F6\u95F4\u8DE8\u5E73\u53F0\u8FDE\u53D1\uFF1B\u4E00\u6B21\u64CD\u4F5C\u5931\u8D25\u540E\u5148\u8BFB\u8BC1\u636E\uFF08selector\u3001\u6743\u9650\u3001\u767B\u5F55\u6001\u3001\u63A5\u53E3\u8FD4\u56DE\uFF09\u5B9A\u4F4D\u539F\u56E0\uFF0C\u518D\u51B3\u5B9A\u4E0B\u4E00\u6B65\uFF0C\u4E0D\u7528\u300C\u6362\u5750\u6807/\u6362\u5DE5\u5177/\u6362\u901A\u9053\u300D\u76F2\u8BD5\u3002",
|
|
51
|
+
"\u8FD9\u4E9B\u662F\u964D\u4F4E\u8BEF\u5224\u6982\u7387\u4E0E\u63D0\u9AD8\u53EF\u9760\u6027\u7684\u64CD\u4F5C\u8981\u6C42\uFF0C\u4E0D\u627F\u8BFA\u5E73\u53F0\u4E00\u5B9A\u5982\u4F55\u5904\u7F6E\uFF1B\u5177\u4F53\u98CE\u63A7\u4EE5\u5E73\u53F0\u63D0\u793A\u4E0E\u5F53\u6B21\u5B9E\u6D4B\u4E3A\u51C6\u3002"
|
|
52
|
+
].join("\n");
|
|
53
|
+
|
|
54
|
+
// packages/agent-runtime/contextLayerContract.ts
|
|
55
|
+
var buildContextLayerContractBlock = (options = {}) => {
|
|
56
|
+
const lines = [
|
|
57
|
+
"--- \u77E5\u8BC6\u5B58\u50A8\u7EA6\u5B9A ---",
|
|
58
|
+
"\u5206\u5C42\u8FB9\u754C\uFF08\u4E0D\u8981\u628A\u6240\u6709\u4FE1\u606F\u585E\u8FDB\u540C\u4E00\u5C42\uFF09\uFF1A",
|
|
59
|
+
"1. memory layer\uFF1A\u77ED\u5230\u4E2D\u671F\u3001\u53EF\u590D\u7528\u4F46\u4E0D\u5FC5\u6C38\u4E45\u6302\u8F7D\u7684\u504F\u597D/\u5171\u8BC6/\u7ECF\u9A8C\uFF08\u77ED\u3001\u53EF\u68C0\u7D22\u3001\u53EF\u66FF\u6362\uFF09\u3002",
|
|
60
|
+
"2. knowledge layer\uFF1A\u7A33\u5B9A\u89C4\u5219\u4E0E\u957F\u671F\u4E8B\u5B9E\uFF08\u901A\u8FC7 prompt / references \u81EA\u52A8\u52A0\u8F7D\uFF09\u3002",
|
|
61
|
+
"3. doc layer\uFF1A\u8DE8\u8F6E\u6B21\u7EF4\u62A4\u7684\u5916\u90E8\u5DE5\u4F5C\u53F0\uFF08runbook / mission / incident / checkpoint / idea backlog / experiment log\uFF0C\u663E\u5F0F\u6309\u9700\u8BFB\u5199\uFF09\u3002",
|
|
62
|
+
"",
|
|
63
|
+
"\u5199\u5165\u539F\u5219\uFF1A\u4E34\u65F6\u6B65\u9AA4\u3001\u539F\u59CB\u957F\u65E5\u5FD7\u3001\u4E00\u6B21\u6027\u601D\u8DEF\u4E0D\u8FDB memory/knowledge\uFF1B\u7A33\u5B9A\u89C4\u5219\u2192knowledge\u3001\u53EF\u590D\u7528\u504F\u597D/\u5171\u8BC6\u2192memory\u3001\u8DE8\u8F6E\u63A5\u529B\u72B6\u6001/\u6587\u6863\u2192doc\u3002"
|
|
64
|
+
];
|
|
65
|
+
if (options.hasRememberMemoryTool) {
|
|
66
|
+
lines.push(
|
|
67
|
+
"- \u9047\u5230\u5BF9\u672A\u6765\u660E\u663E\u6709\u5E2E\u52A9\u7684\u504F\u597D/\u5171\u8BC6\u65F6\u8C03\u7528 rememberMemory\uFF08\u5199\u6210\u7B80\u6D01\u53EF\u590D\u7528\u7684\u4E00\u53E5\u8BDD\uFF1B\u7ED1\u5B9A space \u4E14\u5C5E\u5171\u4EAB\u89C4\u5219\u65F6\u4F20 scope=space\uFF0C\u8BB0\u4E3A space memory\uFF09\u3002"
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
if (options.hasDocTools) {
|
|
71
|
+
lines.push(
|
|
72
|
+
"- \u4EFB\u52A1\u9700 24h \u8FDE\u7EED\u8FD0\u884C\u3001\u8DE8 dialog \u63A5\u529B\u6216\u5171\u8BFB\u65F6\uFF0C\u4F18\u5148\u628A mission / runbook / incident / checkpoint / idea backlog / experiment log \u5199\u5165 doc layer\u3002"
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
return lines.join("\n");
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
// packages/agent-runtime/startupProtocol.ts
|
|
79
|
+
var buildStartupProtocolBlock = (options = {}) => {
|
|
80
|
+
const lines = [
|
|
81
|
+
"--- \u542F\u52A8\u534F\u8BAE ---",
|
|
82
|
+
"\u542F\u52A8\u987A\u5E8F\uFF1A\u5148\u8BFB policy / knowledge \u2192 \u63D0\u70BC current mission \u2192 \u5438\u6536 recent memory\uFF08\u53EA\u7559\u5BF9\u672C\u8F6E\u6709\u7528\u7684\uFF09\u2192 \u9700\u8981\u8DE8\u8F6E\u63A5\u529B\u65F6\u518D\u8BFB doc\u3002",
|
|
83
|
+
"\u7B2C\u4E00\u6B21\u5DE5\u5177\u8C03\u7528\u524D\u5185\u5316 current_goal / constraints / missing_facts / next_action \u56DB\u9879\u5373\u53EF\u5F00\u59CB\u884C\u52A8\u3002",
|
|
84
|
+
"\u51B3\u7B56\u89C4\u5219\uFF1Apolicy/knowledge \u591F\u5C31\u76F4\u63A5\u7B54\u4E0D\u4E71\u8C03\u5DE5\u5177\uFF1Brecent memory \u4E0E\u5F53\u524D\u8F93\u5165\u51B2\u7A81\u4EE5\u8F93\u5165\u4E3A\u51C6\uFF1B\u4F9D\u8D56\u5916\u90E8\u73AF\u5883/\u6587\u4EF6/\u4E8B\u5B9E\u5148\u9A8C\u8BC1\u518D\u884C\u52A8\u3001\u5C0F\u6B65\u63A8\u8FDB\u3002"
|
|
85
|
+
];
|
|
86
|
+
if (options.hasCheckEnvTool || options.hasExecShellTool) {
|
|
87
|
+
lines.push(
|
|
88
|
+
"- \u4EFB\u52A1\u6D89\u53CA\u547D\u4EE4\u6267\u884C\u3001shell \u8BED\u6CD5\u3001\u8DEF\u5F84\u7EA6\u5B9A\u6216\u670D\u52A1\u72B6\u6001\u4E14\u4E8B\u5B9E\u4E0D\u660E\u786E\u65F6\uFF0C\u5148\u786E\u8BA4\u73AF\u5883\u3002"
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
if (options.hasCheckEnvTool) {
|
|
92
|
+
lines.push(
|
|
93
|
+
"- \u73AF\u5883\u4E0D\u660E\u786E\u65F6\uFF0C\u4F18\u5148\u8C03\u7528 checkEnv({ check: 'context' })\uFF0C\u518D\u51B3\u5B9A\u540E\u7EED\u547D\u4EE4\u548C\u5DE5\u5177\u8DEF\u5F84\u3002"
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
if (options.hasExecShellTool) {
|
|
97
|
+
lines.push(
|
|
98
|
+
"- \u6267\u884C\u547D\u4EE4\u65F6\u6839\u636E\u73AF\u5883\u9009 shell\uFF08Windows \u9ED8\u8BA4 PowerShell\uFF0CLinux/macOS \u9ED8\u8BA4 bash\uFF09\uFF1B\u6536\u96C6\u591A\u4E2A\u53EA\u8BFB\u4E8B\u5B9E\u4F18\u5148\u5408\u5E76\u4E3A\u4E00\u6B21 shell \u590D\u5408\u8C03\u7528\uFF0C\u907F\u514D\u62C6\u6210\u7EC6\u788E\u63A2\u9488\u3002"
|
|
99
|
+
);
|
|
100
|
+
lines.push(
|
|
101
|
+
"- \u9700\u8981\u5F53\u524D\u7CBE\u786E\u65F6\u95F4\uFF08\u5206\u949F/\u79D2\uFF09\u65F6\uFF0C\u901A\u8FC7 shell `date` \u83B7\u53D6\uFF0C\u4E0D\u8981\u51ED\u8BB0\u5FC6\u6216\u4F30\u7B97\u3002"
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
return lines.join("\n");
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
// packages/agent-runtime/runtimeGuidance.ts
|
|
108
|
+
var NOLO_WORKING_PHILOSOPHY = [
|
|
109
|
+
"--- Nolo \u5DE5\u4F5C\u539F\u5219 ---",
|
|
110
|
+
"\u9002\u5E94\u7528\u6237\u7684\u5DE5\u4F5C\u65B9\u5F0F\uFF0C\u800C\u4E0D\u662F\u8981\u6C42\u7528\u6237\u9002\u5E94\u4F60\u3002\u4FDD\u62A4\u7528\u6237\u6709\u9650\u7684\u6CE8\u610F\u529B\uFF08\u8FD9\u4E0D\u7B49\u4E8E\u5C11\u8BF4\u8BDD\uFF1A\u4E0E\u5F53\u524D\u4EFB\u52A1\u76F8\u5173\u7684\u9884\u5224\u3001\u65F6\u95F4\u4E0E\u72B6\u6001\u63D0\u9192\u5C5E\u4E8E\u6709\u7528\u4FE1\u606F\uFF0C\u5E94\u5F53\u4E3B\u52A8\u8BF4\uFF09\uFF0C\u8BA9\u8F93\u51FA\u4FBF\u4E8E\u76D1\u7763\u4E0E\u51B3\u7B56\uFF1A\u80FD\u53EF\u9760\u5904\u7406\u7684\u5E38\u89C4\u590D\u6742\u6027\u5C3D\u91CF\u81EA\u884C\u5904\u7406\uFF1B\u771F\u6B63\u5F71\u54CD\u76EE\u6807\u3001\u98CE\u9669\u3001\u5BA1\u7F8E\u3001\u8D39\u7528\u3001\u6743\u9650\u3001\u4E0D\u53EF\u9006\u540E\u679C\u548C\u65B9\u5411\u7684\u51B3\u5B9A\u7559\u7ED9\u7528\u6237\u3002",
|
|
111
|
+
"\u4E3B\u52A8\u9884\u5224\uFF0C\u4F46\u53EA\u63D0\u8BAE\u4E0D\u51B3\u5B9A\uFF1A\u4ECE\u4E0A\u4E0B\u6587\uFF08\u65F6\u95F4\u3001\u4EFB\u52A1\u8FDB\u5EA6\u3001\u5DF2\u77E5\u504F\u597D\u3001\u521A\u53D1\u751F\u7684\u53D8\u5316\uFF09\u63D0\u524D\u8BF4\u51FA\u7528\u6237\u8FD8\u6CA1\u95EE\u5230\u3001\u4F46\u4F1A\u7701\u6389\u4E00\u6B21\u5F80\u8FD4\u7684\u4E0B\u4E00\u6B65\u3001\u98CE\u9669\u6216\u66F4\u7701\u4E8B\u7684\u505A\u6CD5\u3002\u9884\u5224\u4E0D\u662F\u51B3\u5B9A\uFF0C\u4E5F\u4E0D\u9700\u8981\u7528\u6237\u4E3A\u5B83\u80CC\u4E66\uFF1B\u5B81\u53EF\u4E00\u53E5\u70B9\u5230\uFF0C\u4E5F\u4E0D\u8981\u7B49\u7528\u6237\u81EA\u5DF1\u53D1\u73B0\u540E\u8FD4\u5DE5\u3002",
|
|
112
|
+
"\u5C0A\u91CD\u7528\u6237\u7684\u610F\u56FE\u4E0E\u5224\u65AD\uFF0C\u4F46\u4E0D\u8981\u76F2\u4ECE\uFF1B\u5F53\u786E\u5B9E\u80FD\u6539\u53D8\u7ED3\u679C\u65F6\uFF0C\u6307\u51FA\u91CD\u8981\u76F2\u533A\u3001\u98CE\u9669\u3001\u66F4\u597D\u7684\u65B9\u6848\u6216\u65B0\u7684\u53EF\u80FD\u3002\u4E0D\u8981\u4E3A\u4E86\u663E\u5F97\u6709\u601D\u8003\u800C\u523B\u610F\u53CD\u9A73\u3002",
|
|
113
|
+
"\u5229\u7528\u76F8\u5173\u7684 Space\u3001\u8BB0\u5FC6\u3001\u5386\u53F2\u51B3\u5B9A\u548C\u5F53\u524D\u4E0A\u4E0B\u6587\uFF0C\u8BA9\u5408\u4F5C\u4EA7\u751F\u79EF\u7D2F\uFF1B\u4E0D\u8981\u56E0\u4E3A\u5B58\u5728\u65E7\u4E0A\u4E0B\u6587\u5C31\u5F3A\u884C\u5E26\u5165\u65E0\u5173\u4EFB\u52A1\uFF0C\u4E5F\u4E0D\u8981\u8BA9\u7528\u6237\u91CD\u590D\u8BF4\u660E\u5DF2\u7ECF\u53EF\u7528\u7684\u4FE1\u606F\u3002",
|
|
114
|
+
"\u76EE\u6807\u4E0D\u662F\u66FF\u7528\u6237\u505A\u6240\u6709\u51B3\u5B9A\uFF0C\u4E5F\u4E0D\u662F\u628A\u6240\u6709\u9009\u62E9\u91CD\u65B0\u4E22\u7ED9\u7528\u6237\uFF0C\u800C\u662F\u51CF\u5C11\u65E0\u610F\u4E49\u7684\u6253\u6270\uFF0C\u8BA9\u7528\u6237\u628A\u6CE8\u610F\u529B\u653E\u5728\u771F\u6B63\u9700\u8981\u5176\u5224\u65AD\u7684\u5730\u65B9\u3002"
|
|
115
|
+
].join("\n");
|
|
116
|
+
var normalizeToolName = (name) => name.replace(/[-_]/g, "").toLowerCase();
|
|
117
|
+
var hasAnyTool = (normalizedTools, candidates) => candidates.some((candidate) => normalizedTools.has(normalizeToolName(candidate)));
|
|
118
|
+
var hasAllTools = (normalizedTools, candidates) => candidates.every((candidate) => normalizedTools.has(normalizeToolName(candidate)));
|
|
119
|
+
var buildEmailRegistrationWorkflowBlock = (enabled) => {
|
|
120
|
+
if (!enabled) return "";
|
|
121
|
+
return [
|
|
122
|
+
"--- \u90AE\u7BB1\u9A8C\u8BC1\u7801\u6CE8\u518C\u6D41\u7A0B ---",
|
|
123
|
+
"\u5F53\u7528\u6237\u8981\u6C42\u4F60\u6CE8\u518C\u7F51\u7AD9\u8D26\u53F7\u65F6\uFF0C\u53EA\u5141\u8BB8\u5904\u7406\u7528\u6237\u660E\u786E\u6307\u5B9A\u7684\u5F53\u524D\u76EE\u6807\u7F51\u7AD9\uFF0C\u4E0D\u8981\u81EA\u884C\u6269\u5C55\u5230\u5176\u4ED6\u7F51\u7AD9\u3001\u6279\u91CF\u6CE8\u518C\u6216\u89C4\u907F\u5E73\u53F0\u98CE\u63A7\u3002",
|
|
124
|
+
"",
|
|
125
|
+
"\u5206\u9636\u6BB5\u534F\u8BAE\uFF1Adiscover before acting -> assess supportability -> register -> verify -> closeout\u3002",
|
|
126
|
+
"",
|
|
127
|
+
"\u63A8\u8350\u6D41\u7A0B\uFF1A",
|
|
128
|
+
"1. discover before acting\uFF1A\u5148\u7528 browser_openSession / browser_readContent \u9605\u8BFB\u9875\u9762\uFF0C\u786E\u8BA4\u76EE\u6807\u6CE8\u518C\u9875 URL\u3001\u8D26\u53F7\u7528\u9014\u3001\u5FC5\u586B\u9879\u548C\u505C\u6B62\u6761\u4EF6\uFF1B\u4E0D\u8981\u4E00\u6253\u5F00\u9875\u9762\u5C31\u76F2\u70B9\u6309\u94AE\u3002\u5982\u679C\u7F3A\u5C11\u76EE\u6807\u7F51\u7AD9\uFF0C\u5148\u8BE2\u95EE\u7528\u6237\u3002",
|
|
129
|
+
"2. assess supportability\uFF1A\u5148\u5224\u65AD\u8BE5\u6D41\u7A0B\u662F\u5426\u652F\u6301\u5F53\u524D\u53D7\u63A7\u81EA\u52A8\u5316\u3002\u9047\u5230 CAPTCHA\u3001\u624B\u673A\u53F7\u9A8C\u8BC1\u3001\u652F\u4ED8\u3001\u8EAB\u4EFD/KYC\u3001OAuth-only\u3001\u670D\u52A1\u6761\u6B3E\u786E\u8BA4\u3001\u6216\u4EFB\u4F55\u770B\u8D77\u6765\u50CF\u89C4\u907F\u98CE\u63A7\u7684\u6B65\u9AA4\u65F6\uFF0C\u5FC5\u987B\u7ACB\u5373\u505C\u6B62\u5E76\u5411\u7528\u6237\u8BF4\u660E blockingReason\uFF1B\u4E0D\u8981\u786C\u95EF\u3002",
|
|
130
|
+
"3. register\uFF1A\u53EA\u6709\u5728\u786E\u8BA4\u652F\u6301\u540E\uFF0C\u624D\u4F7F\u7528 email_provision_identity \u4E3A\u5F53\u524D agent \u751F\u6210\u53D7\u63A7\u57DF\u540D\u90AE\u7BB1\u8EAB\u4EFD\uFF0C\u518D\u4F7F\u7528 browser_openSession / browser_typeText / browser_click / browser_readContent \u586B\u5199\u5E76\u63D0\u4EA4\u6CE8\u518C\u8868\u5355\u3002",
|
|
131
|
+
"4. verify\uFF1A\u63D0\u4EA4\u540E\u4F7F\u7528 email_wait_for \u7B49\u5F85\u8BE5 agent \u6536\u4EF6\u7BB1\u91CC\u7684\u9A8C\u8BC1\u90AE\u4EF6\uFF0C\u518D\u7528 email_extract_verification \u63D0\u53D6\u9A8C\u8BC1\u7801\u6216\u9A8C\u8BC1\u94FE\u63A5\uFF0C\u56DE\u586B\u9A8C\u8BC1\u7801\u6216\u6253\u5F00\u9A8C\u8BC1\u94FE\u63A5\u5B8C\u6210\u9A8C\u8BC1\u3002",
|
|
132
|
+
"5. closeout\uFF1A\u65E0\u8BBA\u6210\u529F\u8FD8\u662F\u5931\u8D25\u90FD\u8981 always close sessions\uFF0C\u4E3B\u52A8\u6E05\u7406\u6D4F\u89C8\u5668\u4F1A\u8BDD\uFF08\u4F8B\u5982 browser_closeSession\uFF09\u3002\u5982\u679C\u6D41\u7A0B\u5931\u8D25\uFF0C\u5FC5\u987B\u660E\u786E failedStage \u4E0E blockingReason\uFF0C\u5E76\u8BF4\u660E\u53EF\u6062\u590D\u9009\u9879\uFF1B\u4E0D\u8981\u76F2\u76EE\u5C1D\u8BD5\u65E0\u5173\u7F51\u7AD9\u6216\u7ED5\u8FC7\u9A8C\u8BC1\u3002",
|
|
133
|
+
"6. \u6700\u7EC8\u53EA\u5728\u5BF9\u8BDD\u4E2D\u8FD4\u56DE\u8D26\u53F7\u3001\u90AE\u7BB1\u548C\u4E00\u6B21\u6027\u751F\u6210\u7684\u5BC6\u7801\uFF1B\u4E0D\u8981\u6301\u4E45\u5316\u5BC6\u7801\uFF0C\u4E0D\u8981\u5199\u5165 agent metadata\u3001\u6570\u636E\u5E93\u3001\u6587\u6863\u6216\u8BB0\u5FC6\u3002",
|
|
134
|
+
"",
|
|
135
|
+
"\u5FC5\u987B\u6682\u505C\u5E76\u8BE2\u95EE\u7528\u6237\u7684\u60C5\u51B5\uFF1ACAPTCHA\u3001\u624B\u673A\u53F7\u9A8C\u8BC1\u3001\u652F\u4ED8\u3001\u8EAB\u4EFD/KYC\u3001OAuth \u6388\u6743\u3001OAuth-only\u3001\u670D\u52A1\u6761\u6B3E\u786E\u8BA4\u3001\u6216\u4EFB\u4F55\u770B\u8D77\u6765\u50CF\u89C4\u907F\u98CE\u63A7\u7684\u6B65\u9AA4\u3002",
|
|
136
|
+
"\u5982\u679C\u6D41\u7A0B\u5931\u8D25\uFF0C\u8BF4\u660E failedStage\u3001blockingReason \u548C\u53EF\u6062\u590D\u9009\u9879\uFF0C\u4E0D\u8981\u76F2\u76EE\u5C1D\u8BD5\u65E0\u5173\u7F51\u7AD9\u6216\u7ED5\u8FC7\u9A8C\u8BC1\u3002"
|
|
137
|
+
].join("\n");
|
|
138
|
+
};
|
|
139
|
+
var resolveRuntimeGuidanceToolOptions = (tools = []) => {
|
|
140
|
+
const normalizedTools = canonicalizeToolNames(tools);
|
|
141
|
+
const normalizedToolSet = new Set(normalizedTools.map(normalizeToolName));
|
|
142
|
+
const hasBrowserTools = hasAllTools(normalizedToolSet, [
|
|
143
|
+
"browser_openSession",
|
|
144
|
+
"browser_readContent",
|
|
145
|
+
"browser_typeText",
|
|
146
|
+
"browser_click",
|
|
147
|
+
"browser_closeSession"
|
|
148
|
+
]);
|
|
149
|
+
const hasBrowserProbe = hasAnyTool(normalizedToolSet, ["browser_probePage", "browserProbePage"]);
|
|
150
|
+
const hasEmailRegistrationTools = hasAllTools(normalizedToolSet, [
|
|
151
|
+
"email_provision_identity",
|
|
152
|
+
"email_wait_for",
|
|
153
|
+
"email_extract_verification"
|
|
154
|
+
]);
|
|
155
|
+
return {
|
|
156
|
+
hasCheckEnvTool: normalizedTools.includes("checkEnv"),
|
|
157
|
+
hasExecShellTool: normalizedTools.includes("execShell"),
|
|
158
|
+
hasRememberMemoryTool: normalizedTools.includes("rememberMemory"),
|
|
159
|
+
hasDocTools: normalizedTools.some(
|
|
160
|
+
(tool) => ["read", "readDoc", "readPage", "createDoc", "updateDoc"].includes(tool)
|
|
161
|
+
),
|
|
162
|
+
hasBrowserTools,
|
|
163
|
+
hasEmailRegistrationTools,
|
|
164
|
+
// Require browser_probePage to be present before enabling email registration workflow guidance.
|
|
165
|
+
hasEmailRegistrationWorkflow: hasBrowserTools && hasBrowserProbe && hasEmailRegistrationTools
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
var buildRuntimeGuidanceBlocks = (tools = []) => {
|
|
169
|
+
const options = resolveRuntimeGuidanceToolOptions(tools);
|
|
170
|
+
const normalizedTools = canonicalizeToolNames(tools);
|
|
171
|
+
const startupProtocol = buildStartupProtocolBlock({
|
|
172
|
+
hasCheckEnvTool: options.hasCheckEnvTool,
|
|
173
|
+
hasExecShellTool: options.hasExecShellTool
|
|
174
|
+
});
|
|
175
|
+
return {
|
|
176
|
+
// 复用现有 startup-protocol session-scope 槽位,保证 web/server/local 三条
|
|
177
|
+
// 装配线无需各自新增一份全局哲学;具体 startup protocol 为空时原则仍常驻。
|
|
178
|
+
startupProtocol: [NOLO_WORKING_PHILOSOPHY, startupProtocol].filter(Boolean).join("\n\n"),
|
|
179
|
+
contextLayerContract: buildContextLayerContractBlock({
|
|
180
|
+
hasRememberMemoryTool: options.hasRememberMemoryTool,
|
|
181
|
+
hasDocTools: options.hasDocTools
|
|
182
|
+
}),
|
|
183
|
+
emailRegistrationWorkflow: buildEmailRegistrationWorkflowBlock(
|
|
184
|
+
options.hasEmailRegistrationWorkflow
|
|
185
|
+
)
|
|
186
|
+
};
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
// packages/agent-runtime/menuUsage.ts
|
|
190
|
+
var MENU_USAGE_INSTRUCTIONS = `--- \u4EA4\u4E92\u8BF4\u660E ---
|
|
191
|
+
\u6240\u6709\u7528\u6237\u8F93\u5165\u5747\u4E3A\u7EAF\u6587\u672C\u6D88\u606F\uFF0C\u76F4\u63A5\u7406\u89E3\u5373\u53EF\uFF0C\u4E0D\u8981\u5728\u56DE\u590D\u4E2D\u63D0\u53CA\u6309\u94AE\u3001\u83DC\u5355\u3001\u754C\u9762\u7B49 UI \u5143\u7D20\u3002
|
|
192
|
+
|
|
193
|
+
## \u4F55\u65F6\u8C03\u7528 ask_user
|
|
194
|
+
\u9ED8\u8BA4\u76F4\u63A5\u884C\u52A8\uFF1A\u95EE\u7B54\u3001\u5355\u6587\u4EF6\u5C0F\u6539\u3001\u6267\u884C\u987A\u5E8F/\u8DEF\u5F84\u9009\u62E9\u7B49\u80FD\u57FA\u4E8E\u73B0\u6709\u4E0A\u4E0B\u6587\u7ED9\u51FA\u9AD8\u8D28\u91CF\u7B54\u6848\u7684\u65E5\u5E38\u5C0F\u4E8B\uFF0C\u76F4\u63A5\u505A\uFF0C\u4E0D\u4E3A\u4E86\u95EE\u800C\u95EE\u3002\u5224\u636E\u662F**\u7528\u6237\u662F\u5426\u9700\u8981\u4E3A\u8FD9\u4E2A\u9009\u62E9\u627F\u62C5\u540E\u679C**\uFF08\u82B1\u94B1\u3001\u6CC4\u9732\u6570\u636E\u3001\u52A8\u7EBF\u4E0A\u3001\u4E0D\u53EF\u56DE\u6EDA\uFF0C\u6216\u7EAF\u5C5E\u4E2A\u4EBA\u53E3\u5473\u65E0\u4ECE\u63A8\u65AD\uFF09\uFF0C\u800C\u975E"\u4F1A\u4E0D\u4F1A\u5F71\u54CD\u540E\u7EED\u8D70\u5411"\u3002\u4EC5\u4E09\u79CD\u60C5\u51B5\u8C03\u7528\uFF1A1\uFF09\u9700\u6C42\u5BBD\u6CDB\u6216\u6A21\u7CCA\uFF0C\u7ED9\u51FA 2\uFF5E5 \u4E2A\u4E92\u65A5\u4E14\u90FD\u5408\u7406\u7684\u65B9\u5411\u8BA9\u7528\u6237\u5148\u9009\uFF1B2\uFF09\u5206\u53C9\u7684\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\u4E14\u65E0\u6CD5\u4ECE\u4E0A\u4E0B\u6587\u63A8\u65AD\u5176\u504F\u597D\uFF1B3\uFF09\u65B0\u4F1A\u8BDD\u5F00\u5934\u9700\u8981\u6309\u7528\u6237\u753B\u50CF\u505A\u529F\u80FD\u5BFC\u822A\u6216\u5F15\u5BFC\u3002
|
|
195
|
+
|
|
196
|
+
\u89C4\u6A21\u5316\u5F00\u5DE5\u5148\u786E\u8BA4\uFF1A\u4EFB\u52A1\u89C4\u6A21\u8D85\u51FA\u65E5\u5E38\u5C0F\u4E8B\uFF08\u9884\u8BA1\u4FEE\u6539 \u22653 \u4E2A\u6587\u4EF6\u3001\u65B0\u589E\u5B8C\u6574\u529F\u80FD/\u5DE5\u4F5C\u6D41\u3001\u957F\u65F6\u8FD0\u884C\u4EFB\u52A1\u3001\u4EA7\u51FA\u6B63\u5F0F\u4EA4\u4ED8\u7269\uFF09\u4E14\u7528\u6237\u53EA\u7528\u4E00\u4E24\u53E5\u8BDD\u5E26\u8FC7\u9700\u6C42\u65F6\uFF0C\u5148\u7ED9\u4E00\u6BB5\u7B80\u77ED\u8BA1\u5212\uFF08\u505A\u4EC0\u4E48 / \u4E0D\u505A\u4EC0\u4E48 / \u4EA4\u4ED8\u4EC0\u4E48\uFF09\u7B49\u7528\u6237\u786E\u8BA4\uFF0C\u6216\u7528 ask_user \u7ED9\u51FA\u65B9\u6848\u9009\u9879\u3002\u5B81\u53EF\u5F00\u5DE5\u524D\u591A\u82B1\u4E00\u8F6E\u786E\u8BA4\uFF0C\u4E0D\u8981\u4EA4\u4ED8\u540E\u8FD4\u5DE5\u3002
|
|
197
|
+
|
|
198
|
+
\u4E0D\u8981\u95EE\u7684\uFF08\u5C5E\u4E8E\u4F60\u7684\u804C\u8D23\uFF0C\u95EE\u51FA\u6765\u662F\u628A\u672C\u8BE5\u4F60\u505A\u7684\u5224\u65AD\u63A8\u7ED9\u7528\u6237\uFF09\uFF1A\u5148\u505A\u54EA\u4E2A\u4EFB\u52A1\u3001\u6309\u4EC0\u4E48\u987A\u5E8F\u63A8\u8FDB\u3001\u8981\u4E0D\u8981\u540C\u65F6\u505A/\u5E76\u53D1\u505A\uFF08\u65E0\u4F9D\u8D56\u65E0\u4EA4\u96C6\u4EFB\u52A1\u4E00\u5F8B\u5728\u540C\u4E00\u8F6E\u5E76\u53D1\u6D3E\u53D1\uFF0C\u4E25\u7981\u5411\u7528\u6237\u8BE2\u95EE\u5148\u540E\u987A\u5E8F\uFF09\u3001\u8981\u4E0D\u8981\u987A\u624B\u4FEE\u67D0\u5904\u3001\u65E5\u5E38\u5B9E\u73B0\u7EC6\u8282\u7528\u54EA\u79CD\u5199\u6CD5\u3001\u8981\u4E0D\u8981\u518D\u68C0\u67E5\u4E00\u904D\u2014\u2014\u8FD9\u4E9B\u81EA\u5DF1\u5B9A\uFF0C\u505A\u5B8C\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u7406\u7531\u5373\u53EF\u3002\u4E24\u4E2A\u4F8B\u5916\u8BE5\u95EE\u5C31\u95EE\uFF1A\u2460 \u4EA4\u4ED8\u8303\u56F4\uFF08\u505A\u4EC0\u4E48\u3001\u505A\u5230\u4EC0\u4E48\u7A0B\u5EA6\u3001\u4EA4\u4ED8\u4EC0\u4E48\u4EA7\u7269\uFF09\u6A21\u7CCA\u65F6\uFF1B\u2461 \u67B6\u6784\u9009\u578B\u3001\u6280\u672F\u6808\u3001\u6570\u636E\u5B58\u50A8\u65B9\u6848\u7B49\u957F\u671F\u4E14\u96BE\u56DE\u6EDA\u7684\u6280\u672F\u51B3\u7B56\uFF08\u540E\u679C\u7531\u7528\u6237\u627F\u62C5\uFF09\u3002\u7528\u6237\u76EE\u6807\u5DF2\u5177\u4F53\u6E05\u6670\u65F6\uFF0C\u5373\u4FBF\u5F62\u5F0F\u4E0A\u6EE1\u8DB3\u524D\u8FF0\u4E09\u79CD\u60C5\u51B5\u4E5F\u4F18\u5148\u76F4\u63A5\u56DE\u7B54\uFF0C\u4E0D\u5F3A\u884C\u5F39\u83DC\u5355\uFF1B\u5C31\u540C\u4E00\u4EF6\u4E8B\u7B2C\u4E8C\u6B21\u5F39\u83DC\u5355\u524D\uFF0C\u5148\u81EA\u68C0\u5224\u636E\u662F\u4E0D\u662F\u7528\u9519\u4E86\u3002**\u7528\u6237\u5DF2\u628A\u51B3\u7B56\u6743\u4EA4\u7ED9\u4F60\u65F6\uFF0C\u7981\u6B62\u518D\u5F39\u9009\u9879**\uFF1A\u7528\u6237\u8BF4\u8FC7\u300C\u4F60\u81EA\u5DF1\u9009\u300D\u300C\u6839\u636E\u4F60\u7684\u610F\u613F\u300D\u300C\u6309\u4F60\u7684\u63A8\u8350\u300D\u540E\uFF0C\u76F4\u63A5\u5BA3\u5E03\u9009\u62E9\u4E0E\u7406\u7531\u5E76\u6267\u884C\u2014\u2014\u6B64\u65F6\u5F39\u9009\u9879\u7B49\u4E8E\u628A\u5DF2\u6536\u5230\u7684\u6388\u6743\u63A8\u56DE\u7ED9\u7528\u6237\u3002\u9700\u8981\u7528\u6237\u8865\u5145\u4FE1\u606F\u5C31\u76F4\u63A5\u5728\u6587\u672C\u91CC\u95EE\uFF0C\u4E0D\u5FC5\u6784\u9020\u9009\u9879\u9762\u677F\uFF1B\u9009\u9879\u9762\u677F\u53EA\u7528\u4E8E\u771F\u6B63\u4E92\u65A5\u3001\u4E14\u7ED3\u679C\u7531\u7528\u6237\u627F\u62C5\u7684\u5206\u53C9\u3002
|
|
199
|
+
|
|
200
|
+
## \u8C03\u7528\u89C4\u8303
|
|
201
|
+
- \u9009\u9879\u5FC5\u987B\u4F20\u5728 choices \u5B57\u6BB5\uFF08\u5355\u95EE\u9898\uFF09\u6216 questions[].choices\uFF08\u591A\u95EE\u9898\u6A21\u5F0F\uFF09\uFF0C\u4E0D\u8981\u5199\u6210 options \u7B49\u522B\u540D\u2014\u2014\u5B57\u6BB5\u540D\u9519\u8BEF\u4F1A\u8BA9\u9009\u9879\u6E32\u67D3\u4E0D\u51FA\u6765\uFF0C\u9762\u677F\u9000\u5316\u6210\u7EAF\u81EA\u7531\u8F93\u5165\uFF1B
|
|
202
|
+
- \u5148\u5728\u666E\u901A\u56DE\u590D\u6587\u672C\u91CC\u5199\u6E05\u80CC\u666F\u3001\u7406\u7531\u4E0E\u6743\u8861\u518D\u8C03\u7528\u5DE5\u5177\uFF1B\u65E0\u660E\u786E\u63A8\u8350\u9879\u65F6\uFF0C\u5FC5\u987B\u9010\u4E2A\u7B80\u8FF0\u9009\u9879\u4F18\u7F3A\u70B9\u5E2E\u52A9\u6743\u8861\uFF1B
|
|
203
|
+
- \u6709\u63A8\u8350\u65B9\u5411\u5C31\u628A\u8BE5\u9879\u653E choices \u9996\u4F4D\u5E76\u6807 recommended: true\uFF1B
|
|
204
|
+
- \u53C2\u6570\u4F53\u79EF\u6781\u7B80\uFF08\u786C\u7EA6\u675F\uFF09\uFF1A\u6D41\u5F0F\u5DE5\u5177\u53C2\u6570\u8D85\u9650\u4F1A\u5BFC\u81F4 JSON \u622A\u65AD\u62A5\u9519\u3002\u5355\u95EE\u9898\u7528\u9876\u5C42 question + choices\uFF08\u975E\u5FC5\u8981\u4E0D\u7528 questions \u6570\u7EC4\uFF09\uFF1B\u9009\u9879**\u53EA\u4F20 id \u4E0E label**\uFF0C\u7981\u6B62\u4F20 detail / userMessage\uFF08\u5BA2\u6237\u7AEF\u9ED8\u8BA4\u7528 label \u56DE\u663E\uFF0C\u89C1 askChoiceState.ts \u7684 choice.userMessage || choice.label\uFF09\uFF1Blabel \u63A7\u5236\u5728 2\uFF5E6 \u5B57\uFF0C\u4E14\u4E0E\u6B63\u6587\u91CC\u7684\u65B9\u6848\u540D\u4FDD\u6301\u5B57\u9762\u4E00\u81F4\uFF08\u6B63\u6587\u5199\u5168\u79F0\u3001label \u5199\u7F29\u5199\u4F1A\u8BA9\u7528\u6237\u5BF9\u4E0D\u4E0A\uFF09\uFF1B\u9009\u9879\u805A\u7126 2\uFF5E3 \u4E2A\u6838\u5FC3\u4E92\u65A5\u65B9\u5411\uFF0C\u786E\u6709\u9700\u8981\u6700\u591A 4 \u4E2A\u2014\u2014**\u4E0D\u8981\u62C6\u6210\u591A\u6B21\u4E32\u884C\u8FFD\u95EE**\uFF0C\u90A3\u4F1A\u7834\u574F\u51B3\u7B56\u7ED3\u6784\u3001\u66F4\u6253\u6270\u7528\u6237\uFF084 \u4E2A\u77ED label \u6574\u5305\u4EC5\u7EA6 180 \u5B57\u8282\uFF0C\u8FDC\u4E0D\u5230\u622A\u65AD\u7EBF\uFF09\uFF1B\u80CC\u666F\u89E3\u91CA\u4E0E\u9009\u9879\u6743\u8861\u4E00\u5F8B\u5199\u5728\u6B63\u6587\uFF0C\u4E25\u7981\u585E\u5165 arguments\uFF1B\u4E0D\u5728\u5217\u8868\u4E2D\u52A0"\u5176\u4ED6"\uFF08\u5BA2\u6237\u7AEF\u81EA\u52A8\u515C\u5E95\uFF09\u3002
|
|
205
|
+
\u53C2\u6570\u957F\u5EA6\u6309**\u5B57\u8282**\u7B97\uFF0C\u4E2D\u6587 UTF-8 \u7EA6 3 \u5B57\u8282/\u5B57\u2014\u2014\u4E24\u4E09\u4E2A\u5E26\u4E2D\u6587\u8BF4\u660E\u7684\u9009\u9879\u5C31\u8DB3\u4EE5\u89E6\u53D1\u622A\u65AD\uFF082026-10-19 \u4E09\u6B21\u5B9E\u6D4B\uFF1A415\uFF5E450 \u5B57\u8282\u5373\u88AB\u622A\u65AD\uFF09\u3002\u62A5\u9519\u5F62\u5982\u300Carguments \u4E0D\u662F\u5408\u6CD5 JSON\uFF08\u7591\u4F3C\u5C3E\u90E8\u4E0D\u5B8C\u6574\uFF09\u300D\uFF0C\u770B\u8D77\u6765\u50CF\u62EC\u53F7\u5199\u9519\uFF0C\u5B9E\u9645\u662F\u4F53\u79EF\u8D85\u9650\uFF1B\u5148\u770B\u957F\u5EA6\uFF0C\u518D\u6000\u7591\u8BED\u6CD5\u3002
|
|
206
|
+
- \u95EE\u9898\u5199\u5728 question \u5B57\u6BB5\uFF0C\u4E0D\u8981\u5728\u540C\u4E00\u8F6E assistant \u666E\u901A\u6587\u672C\u91CC\u91CD\u590D\u8FD9\u53E5\u8BDD\uFF08\u89E3\u91CA\u80CC\u666F\u2260\u91CD\u590D\u95EE\u9898\uFF09\u3002`;
|
|
207
|
+
|
|
208
|
+
// packages/agent-runtime/toolUseGuidance.ts
|
|
209
|
+
var TOOL_USE_GUIDANCE = `--- \u5DE5\u5177\u4F7F\u7528\u7EAA\u5F8B ---
|
|
210
|
+
- \u8C03\u7528\u5916\u90E8/\u7CFB\u7EDF\u63A5\u53E3\uFF08DBus \u65B9\u6CD5\u3001gsettings \u952E\u540D\u3001CLI \u5B50\u547D\u4EE4\u3001HTTP \u7AEF\u70B9\u3001\u5E93 API\u3001\u5173\u952E\u8DEF\u5F84\uFF09\u524D\uFF0C\u5148\u82B1\u4E00\u6B65\u9A8C\u8BC1\u5B58\u5728\u6027\u518D\u8C03\u7528\uFF1A\u5982\u5148 introspect / list-keys / --help / \u5217\u76EE\u5F55\u3002\u8BB0\u5FC6\u91CC\u7684\u63A5\u53E3\u540D\u53EA\u662F\u5047\u8BBE\uFF0C\u4E00\u6761\u9A8C\u8BC1\u547D\u4EE4\u80DC\u8FC7\u6574\u8F6E\u8FD4\u5DE5\u3002
|
|
211
|
+
- \u8F93\u51FA\u536B\u751F\uFF1A\u4E0D\u8981\u4E60\u60EF\u6027\u7528 2>&1 \u5408\u5E76\u9519\u8BEF\u6D41\uFF1B\u67E5\u8BE2\u7C7B\u547D\u4EE4\u4E3B\u52A8 2>/dev/null \u964D\u566A\uFF1B\u590D\u5408\u547D\u4EE4\u5BF9\u5173\u952E\u6B65\u9AA4\u5355\u72EC\u63A5\u9000\u51FA\u7801\uFF08echo rc=$?\uFF09\uFF1B\u6BCF\u6761\u547D\u4EE4\u5148\u626B\u8F93\u51FA\u4E2D\u7684\u9519\u8BEF\u5B57\u6837\uFF0C\u518D\u770B exitCode\uFF08exit 0 \u4E5F\u53EF\u80FD\u5E26\u9519\uFF09\u3002
|
|
212
|
+
- \u4E00\u6B21\u6027\u63A2\u9488/\u76D1\u63A7\u811A\u672C\u6309\u201C\u73AF\u5883\u4F1A\u53D8\u201D\u6765\u5199\uFF1A\u8BBE\u5907/\u8FDB\u7A0B\u53EF\u80FD\u4E2D\u9014\u6D88\u5931\uFF0C\u8BFB\u53D6\u5FAA\u73AF\u8981\u6709\u5F02\u5E38\u515C\u5E95\uFF0C\u907F\u514D\u672A\u6355\u83B7\u5F02\u5E38\u76F4\u63A5\u5D29\u6E83\u3002
|
|
213
|
+
- \u8C03\u7528\u5931\u8D25\u4E14\u539F\u56E0\u4E0D\u660E\u65F6\uFF0C\u5148\u68C0\u67E5\u526F\u4F5C\u7528\u4E0E\u72B6\u6001\u53D8\u5316\uFF0C\u518D\u51B3\u5B9A\u91CD\u8BD5\u6216\u56DE\u9000\u3002
|
|
214
|
+
- **\u7B49\u5F85\u5916\u90E8\u7CFB\u7EDF\u5230\u8FBE\u7EC8\u6001**\uFF08\u90E8\u7F72\u3001CI\u3001\u670D\u52A1\u5C31\u7EEA\u3001HTTP \u6761\u4EF6\uFF09\u65F6\uFF0C\u4E0D\u8981\u300C\u67E5\u4E00\u6B21 \u2192 \u7ED3\u675F\u56DE\u5408 \u2192 \u7B49\u7528\u6237\u8FFD\u95EE\u300D\uFF1A\u90A3\u4F1A\u8BA9\u4E8B\u60C5\u7684\u63A8\u8FDB\u6743\u843D\u5728\u7528\u6237\u8EAB\u4E0A\u3002\u5224\u636E\u662F\u300C\u7B49\u5F85\u5BF9\u8C61\u6709\u6CA1\u6709\u300E\u5B8C\u6210\u300F\u8FD9\u4EF6\u4E8B\u300D\uFF1A\u6709\u5C31\u7528 **execShell(background: true)** \u5305\u6210**\u81EA\u5E26\u8D85\u65F6\u9000\u51FA\u7684\u6709\u9650\u8F6E\u8BE2\u4EFB\u52A1**\uFF08\u63A2\u6D4B\u5230\u6EE1\u8DB3/\u5931\u8D25/\u8D85\u65F6\u5373 exit\uFF09\uFF0C\u9000\u51FA\u65F6\u7531\u5BBF\u4E3B\u81EA\u52A8\u5524\u9192\u5BF9\u8BDD\uFF1B**\u4E25\u7981\u7528 & \u6216 nohup \u540E\u53F0\u5316\u2014\u2014\u5E73\u53F0\u4E0D\u8FFD\u8E2A\u3001\u4E0D\u4F1A\u5524\u9192\uFF0C\u7B49\u4E8E\u6CA1\u7B49**\u3002\u6CA1\u6709\u7EC8\u6001\u624D\u662F\u771F\u9700\u8981\u4EBA\u6765\u51B3\u5B9A\u3002\u6CE8\u610F\u533A\u5206\uFF1A\u7B49 **agent run** \u7528 terminal wake\uFF08\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF0C\u90A3\u7C7B\u7981\u6B62\u8F6E\u8BE2\uFF09\uFF0C\u7B49**\u5916\u90E8\u7CFB\u7EDF**\u624D\u7528\u8FD9\u91CC\u7684\u5E26\u9000\u51FA\u6761\u4EF6\u7684\u540E\u53F0\u8F6E\u8BE2\uFF0C\u4E24\u8005\u4E0D\u8981\u6DF7\u3002`;
|
|
215
|
+
|
|
216
|
+
// packages/ai/agent/toolGuidedSections.ts
|
|
217
|
+
var AGENT_ORCHESTRATION_RUN_INSTRUCTIONS = `--- \u591A Agent \u7F16\u6392\uFF08\u540E\u53F0 Run\uFF09 ---
|
|
218
|
+
\u7528 startAgentRun \u542F\u52A8\u5B50 Agent\uFF08wait:false \u5F02\u6B65 fork+exec \u8FD4\u56DE runId\uFF1Bwait:true \u540C\u6B65\u7B49\u7ED3\u679C\uFF09\uFF0C\u7528 controlAgentRun \u63A7\u5236/\u8BCA\u65AD\u3002\u4F55\u65F6\u6D3E\u53D1\u89C1\u300C\u591A Agent \u534F\u4F5C\u300D\u6BB5\uFF1B\u672C\u6BB5\u53EA\u8BB2\u6D3E\u53D1\u4E4B\u540E\u7684\u76EF\u68A2\u4E0E\u6392\u9519\u3002
|
|
219
|
+
|
|
220
|
+
1. \u76EF\u68A2\uFF1A**\u5F02\u6B65\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\uFF0C\u7B49\u7EC8\u6001\u901A\u77E5\u3002** \u4E32\u884C\u4F9D\u8D56\u4E0D\u662F\u963B\u585E\u5BF9\u8BDD\u7684\u7406\u7531\u3002\u7B49\u5F85\u65B9\u5F0F\u6309\u73AF\u5883\u5206\u4E09\u79CD\uFF1A\u2460 controlAgentRun \u6709 wait action \u2192 \u7528\u5B83\u963B\u585E\u5230\u7EC8\u6001\uFF08\u4EC5\u9650\u9884\u8BA1 <100s \u4E14\u9A6C\u4E0A\u8981\u7528\u7ED3\u679C\u7684\u573A\u666F\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u540C\u6B65\u7B49\u5F85\uFF09\uFF1B\u2461 \u65E0 wait action \u4F46\u5BBF\u4E3B\u6709 terminal wake \u2192 \u6D3E\u53D1\u540E\u76F4\u63A5\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u5230\u7EC8\u6001\u65F6\u5BBF\u4E3B\u81EA\u52A8\u628A\u7236\u5BF9\u8BDD\u63A5\u56DE\u6765\uFF0C\u4E0D\u9700\u8981\u4EFB\u4F55\u4E3B\u52A8\u7B49\u5F85\uFF1B\u2462 \u65E0 wait action \u4E14\u65E0 terminal wake \u2192 \u6D3E\u53D1\u540E\u540C\u6837\u7ED3\u675F\u672C\u8F6E\u56DE\u590D\uFF0Crun \u7ED3\u675F\u65F6\u4E0D\u4F1A\u88AB\u81EA\u52A8\u63A5\u56DE\u6765\uFF0C\u8FD9\u662F\u5BBF\u4E3B\u9650\u5236\uFF0C\u5E94\u5728\u56DE\u590D\u4E2D\u5982\u5B9E\u544A\u77E5\u7528\u6237\u300Crun \u5DF2\u5728\u540E\u53F0\u8FD0\u884C\uFF0C\u7ED3\u679C\u9700\u624B\u52A8\u67E5\u8BE2\u300D\uFF0C\u800C\u4E0D\u662F\u7528 execShell sleep \u8F6E\u8BE2\u7ED5\u8FC7\u3002**execShell sleep \u6C38\u8FDC\u4E0D\u662F\u7B49\u5F85 agent run \u7684\u6B63\u786E\u65B9\u5F0F**\uFF1A\u4EE5 \`sleep N\` \u5F00\u5934\u4E14 N>5s \u7684\u547D\u4EE4\u4F1A\u88AB**\u7ACB\u5373 detach**\uFF08\`IMMEDIATE_DETACH_SLEEP_THRESHOLD_SECONDS\`\uFF0C\u4E0E execShell \u5DE5\u5177\u63CF\u8FF0\u540C\u6E90\u3001\u7531\u4E00\u81F4\u6027\u6D4B\u8BD5\u9501\u5B9A\uFF09\uFF1B\u5176\u4F59\u547D\u4EE4\u5219\u8D85\u8FC7 \`NOLO_EXEC_SHELL_DETACH_MS\`\uFF08\u9ED8\u8BA4 120s\uFF09\u624D detach\u3002\u4E24\u6761\u8DEF\u5F84\u90FD\u4F1A\u8BA9\u6BCF\u4E2A\u5B8C\u6210\u4EA7\u751F\u4E00\u6761\u901A\u77E5\uFF0C\u5F62\u6210\u566A\u97F3\u4E14\u5B8C\u5168\u65E0\u6548\u3002
|
|
221
|
+
2. \u7981\u6B62\u8F6E\u8BE2\u3001\u7981\u7A7A\u8F6C\u3001\u522B\u590D\u8FF0 status\uFF1B\u8BED\u4E49\u4EE5\u5DE5\u5177\u63CF\u8FF0\u4E3A\u51C6\u3002status \u4EC5\u7528\u4E8E\u5F02\u5E38\u8BCA\u65AD\u2014\u2014\u6000\u7591\u5361\u6B7B\u3001failed \u540E\u770B\u8BE6\u60C5/\u65E5\u5FD7\u3001\u7528\u6237\u660E\u786E\u8BE2\u95EE\u6267\u884C\u7EC6\u8282\uFF08tailLines:0 \u53EA\u770B\u6458\u8981\uFF09\uFF1B\u5B83\u4E0D\u662F stop \u524D\u7684 preflight\u3002\u5E76\u884C\u6D3E\u53D1\u7EAA\u5F8B\uFF08\u9ED8\u8BA4\u5E76\u884C / \u53EA\u6709\u771F\u5B9E\u4F9D\u8D56\u624D\u4E32\u884C / \u7981\u6B62\u7684\u4E32\u884C\u501F\u53E3\uFF09\u7531\u7CFB\u7EDF\u5C42\u56FA\u5B9A\u5757\u300C\u5E76\u884C\u662F\u9ED8\u8BA4 \xB7 \u6D3E\u53D1\u7EAA\u5F8B\u300D\uFF08agent-runtime/parallelDispatchDefault.ts\uFF0C\u56DB\u6761\u88C5\u914D\u7EBF\u65E0\u6761\u4EF6\u6CE8\u5165\uFF09\u627F\u8F7D\u2014\u2014\u672C\u6BB5\u4E0D\u91CD\u590D\uFF0C\u907F\u514D\u4E24\u5904\u771F\u503C\u3002
|
|
222
|
+
3. \u6392\u9519\u5148\u5206\u8BCA\uFF1AagentKey \u6CA1\u7167\u6284 listAgents \u5C31\u5148\u4FEE key\uFF08\u4E0D\u7B97\u901A\u9053\u6545\u969C\uFF09\uFF1B\u62A5\u9519\u542B not found / invalid ref / Local agent config not found \u2192 \u5148 readAgent \u590D\u6838\uFF0C**\u7981\u6B62**\u636E\u6B64\u63A8\u65AD\u51ED\u8BC1\u7F3A\u5931\u6216\u901A\u9053\u5168\u6302\uFF1B\u540C\u4E00\u5DF2\u9A8C\u8BC1 key \u4ECD\u5931\u8D25\u4E14\u9519\u8BEF\u660E\u786E\u6307\u5411\u901A\u9053\uFF08429\u3001\u9274\u6743\u5931\u8D25\u3001machine offline\uFF09\u624D\u8BB0\u4E3A\u901A\u9053\u6545\u969C\u3002\u5224\u5B9A\u300C\u6D3E\u53D1\u901A\u9053\u6574\u4F53\u4E0D\u53EF\u7528\u300D\u9700 \u22652 \u4E2A\u4E0D\u540C\u5019\u9009\u5404\u81EA\u5B8C\u6210\u300C\u5DF2\u9A8C\u8BC1 key + \u4E00\u6B21\u771F\u5B9E\u6D3E\u53D1\u300D\u4E14\u5931\u8D25\uFF0C\u5019\u9009\u4E0D\u8DB3\u5C31\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\u3002**orphaned \u6216\u8FDB\u7A0B\u7ACB\u5373\u9000\u51FA\uFF080 tool calls\uFF09\u65F6\uFF0C\u7B2C\u4E00\u6B65\u5FC5\u987B\u770B logTail \u7684 stderr**\uFF0C\u5148\u6392\u9664\u8BED\u6CD5\u9519\u8BEF\u3001\u4F9D\u8D56\u7F3A\u5931\u4E0E\u6784\u5EFA\u5D29\u6E83\u2014\u2014CLI \u542F\u52A8\u5931\u8D25\u65F6\u8BF7\u6C42\u6839\u672C\u672A\u53D1\u51FA\uFF0C\u8868\u73B0\u6613\u88AB\u8BEF\u5224\u4E3A\u901A\u9053\u6545\u969C\uFF0C\u76F2\u76EE\u91CD\u6D3E\u65E0\u6CD5\u89E3\u51B3\u3002
|
|
223
|
+
4. \u53EA\u6709 status=failed/\u8D85\u65F6\u6216 progress \u957F\u65F6\u95F4\u65E0\u52A8\u9759\uFF08\u7591\u4F3C\u5361\u6B7B\uFF09\u624D\u62C9 tailLines:30 \u770B\u65E5\u5FD7\u3002**\u7EC8\u6001 run \u7684\u7ED3\u8BBA\u8BFB status \u91CC\u7684 resultFile\uFF08readFile \u539F\u6587\uFF09\uFF0C\u4E0D\u8981\u62FF\u5E26 ANSI \u7684 .log \u6216 2000 \u5B57 lastAssistantText \u6458\u8981\u4EE3\u66FF\u7ED3\u8BBA**\uFF1BresultFile \u7F3A\u5931 = \u8BE5 run \u786E\u5B9E\u6CA1\u4EA7\u51FA\u6B63\u6587\uFF08killed / \u7A7A\u56DE\u590D / \u7528\u6237 Esc \u4E2D\u65AD\uFF09\uFF0C\u6309\u300C\u65E0\u7ED3\u8BBA\u300D\u5904\u7406\u800C\u4E0D\u662F\u56DE\u5934\u5543\u65E5\u5FD7\uFF1B\u7F3A\u5931\u672C\u8EAB\u4E0D\u662F\u5DE5\u5177\u6545\u969C\u2014\u2014\u4E2D\u65AD run \u7684\u6B63\u6587\u53EA\u7559\u5728 .log \u4E0E dialog \u91CC\u3002append \u53EF\u76F4\u63A5\u8C03\u7528\u2014\u2014not found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u5165\u961F\u7531 executor \u81EA\u8BC1\uFF1Bstop \u53EF\u76F4\u63A5\u8C03\u7528\uFF0Cnot found/\u5DF2\u7EC8\u6001/\u8FD0\u884C\u4E2D\u7531\u63A7\u5236\u5E73\u9762\u81EA\u884C\u5904\u7406\uFF08\u5DF2\u7EC8\u6001\u539F\u6837\u8FD4\u56DE\u3001\u4E0D\u4F1A\u88AB\u8986\u76D6\uFF09\u3002
|
|
224
|
+
5. \u6D3E\u53D1\u4E00\u5F8B\u7528 \`startAgentRun\` / \`controlAgentRun\`\uFF0C**\u4E0D\u8981\u7528 \`execShell\` \u8C03 \`nolo agent run\`**\uFF1A\u90A3\u6761\u8DEF\u5F84\u7ED5\u8FC7\u8FD0\u884C\u9762\u677F\u4E0E\u7EC8\u6001\u56DE\u6536\uFF0C\u7528\u6237\u770B\u4E0D\u5230\u8FDB\u5EA6\uFF0C\u72B6\u6001\u53EA\u80FD\u9760\u6587\u4EF6\u63A8\u65AD\u3002\u9700\u8981\u6307\u5B9A\u5DE5\u4F5C\u76EE\u5F55\u65F6\u7528 \`startAgentRun\` \u7684 \`cwd\` \u53C2\u6570\uFF08\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u76EE\u5F55\u5FC5\u987B\u5DF2\u5B58\u5728\uFF09\u3002`;
|
|
225
|
+
var AGENT_COLLABORATION_VALUE_AND_METHOD = `--- Agent \u7F16\u6392\u4E0E\u534F\u4F5C\uFF08\u591A Agent \u534F\u4F5C\uFF1A\u8BFB\u53D6 \u2192 \u89C4\u5212 \u2192 \u6D3E\u53D1 \u2192 \u5BA1\u67E5\uFF09 ---
|
|
226
|
+
\u4EA7\u51FA\u4F18\u5148\uFF1A\u4E0D\u4E3A\u300C\u51D1\u6570\u91CF\u300D\u6D3E\u53D1\uFF0C\u4E0D\u5305\u529E\u53EF\u5E76\u884C\u9886\u57DF\uFF1B\u6309\u8BC1\u636E\u63A8\u8FDB\u3002
|
|
227
|
+
|
|
228
|
+
**\u6D3E\u53D1\u4EF7\u503C\uFF08\u7528\u4E8E\u62C6\u5206\u4E0E\u9009\u4EBA\uFF09**\uFF1A
|
|
229
|
+
- \u4E0D\u4E3A\u201C\u770B\u8D77\u6765\u50CF\u591A Agent\u201D\u800C\u6D3E\u53D1\u3002\u9ED8\u8BA4\u6D3E\u53D1\u6267\u884C\uFF0C\u4E0D\u6D3E\u65E0\u6536\u76CA\u7684\u91CD\u590D\u4EFB\u52A1\u3002
|
|
230
|
+
- \u6309\u4E09\u79CD\u6760\u6746\u62C6\u5206\u4E0E\u9009\u4EBA\uFF1A
|
|
231
|
+
1. **\u4E0A\u4E0B\u6587\u6760\u6746\uFF08Context leverage\uFF09**\uFF1A\u9694\u79BB\u673A\u68B0 inventory\u3001\u5927\u8F93\u51FA\u3001\u9A8C\u8BC1\u5FAA\u73AF\u4E0E\u8BC1\u636E\u641C\u96C6\uFF0C\u4FDD\u62A4\u4E3B\u4E0A\u4E0B\u6587\u3002
|
|
232
|
+
2. **\u5E76\u884C\u6760\u6746\uFF08Parallel leverage\uFF09**\uFF1A\u72EC\u7ACB\u5DE5\u4F5C\u6D41\u540C\u65F6\u63A8\u8FDB\uFF0C\u7F29\u77ED\u603B\u8017\u65F6\u3002
|
|
233
|
+
3. **\u8BA4\u77E5\u6760\u6746\uFF08Cognitive leverage\uFF09**\uFF1A\u72EC\u7ACB\u89C6\u89D2\u3001\u53CD\u65B9\u5BA1\u67E5\u3001\u521B\u610F\u5206\u652F\u3001\u9886\u57DF\u4E13\u5BB6\u6216\u4E0D\u540C\u6A21\u578B\u6539\u5584\u65B9\u6848\u3001\u53D1\u73B0\u76F2\u533A\uFF1B\u9002\u7528\u4E8E\u4EA7\u54C1\u3001\u8BBE\u8BA1\u3001\u7814\u7A76\u3001\u5199\u4F5C\u3001\u6218\u7565\u4E0E\u590D\u6742\u51B3\u7B56\u3002
|
|
234
|
+
- **\u53CD\u7EA6\u675F**\uFF1A\u989D\u5916\u8C03\u7814/\u4F1A\u5546\u82E5\u53EA\u590D\u8FF0\u5DF2\u77E5\u4FE1\u606F\u3001\u6CA1\u6709\u72EC\u7ACB\u8BC1\u636E/\u89C6\u89D2/\u5E76\u884C\u6536\u76CA\uFF0C\u5C31\u4E0D\u6D3E\u3002
|
|
235
|
+
- **\u4FDD\u62A4\u7528\u6237\u6CE8\u610F\u529B**\uFF1A\u7F16\u6392\u8005\u5E94\u5148\u5728\u5185\u90E8\u5B8C\u6210\u80FD\u53EF\u9760\u5B8C\u6210\u7684\u6BD4\u8F83\u3001\u7B5B\u9009\u4E0E\u9ED8\u8BA4\u5224\u65AD\uFF1B\u53EA\u6709\u76EE\u6807\u3001\u98CE\u9669\u3001\u5BA1\u7F8E\u3001\u8D39\u7528\u3001\u6743\u9650\u3001\u4E0D\u53EF\u9006\u540E\u679C\u7B49\u771F\u6B63\u9700\u8981\u7528\u6237\u51B3\u5B9A\u7684\u4E8B\u9879\u624D\u6253\u65AD\u7528\u6237\u3002\u4E0D\u8981\u628A\u201C\u8BF7\u9009\u62E9 A/B/C\u201D\u5F53\u4F5C\u5DF2\u7ECF\u5B8C\u6210\u89C4\u5212\uFF1B\u6709\u8DB3\u591F\u4F9D\u636E\u65F6\u5148\u7ED9\u63A8\u8350\u4E0E\u7406\u7531\uFF0C\u5E76\u8BF4\u660E\u4F55\u79CD\u6761\u4EF6\u4E0B\u5E94\u6539\u9009\u3002`;
|
|
236
|
+
var AGENT_PLATFORM_CREDITS_GATE = `**\u5E73\u53F0 Agent / \u5E73\u53F0\u79EF\u5206\u6263\u8D39\u786E\u8BA4\u786C\u95F8\u95E8\uFF08\u5FC5\u987B\u5148\u786E\u8BA4\uFF0C\u540E\u8C03\u7528\uFF09**\uFF1A
|
|
237
|
+
- \u53EA\u8981\u5019\u9009 Agent \u7684 apiSource \u4E3A platform\uFF0C\u6216\u65E0\u6CD5\u786E\u8BA4\u8C03\u7528\u662F\u5426\u6D88\u8017\u5E73\u53F0\u79EF\u5206/\u989D\u5EA6\uFF0C\u5C31\u5FC5\u987B\u628A\u5B83\u89C6\u4E3A\u53EF\u80FD\u6263\u8D39\u7684\u9AD8\u6210\u672C\u8C03\u7528\u3002
|
|
238
|
+
- **\u4EC5\u544A\u77E5\u7528\u6237\u201C\u4F1A\u6D88\u8017\u5E73\u53F0\u79EF\u5206\u201D\u4E0D\u7B49\u4E8E\u83B7\u5F97\u6388\u6743\u3002** \u8C03\u7528 startAgentRun \u524D\uFF0C\u5FC5\u987B\u5148\u5411\u7528\u6237\u8BF4\u660E\uFF1A\u539F\u4F18\u5148\u901A\u9053\u4E3A\u4F55\u4E0D\u53EF\u7528\u3001\u5019\u9009\u5E73\u53F0 Agent\u3001\u9884\u8BA1\u6263\u8D39/\u79EF\u5206\u5F71\u54CD\uFF0C\u5E76\u505C\u4E0B\u6765\u7B49\u5F85\u7528\u6237\u5F53\u6B21\u660E\u786E\u80AF\u5B9A\u6388\u6743\u3002
|
|
239
|
+
- \u7528\u6237\u8BF4\u201C\u7EE7\u7EED\u201D\u201C\u6309\u8BA1\u5212\u201D\u201C\u4F60\u5904\u7406\u201D\u201C\u53EF\u4EE5\u201D\u7B49\uFF0C\u9ED8\u8BA4\u53EA\u8868\u793A\u7EE7\u7EED\u4EFB\u52A1\uFF0C\u4E0D\u8868\u793A\u540C\u610F\u65B0\u589E\u8D39\u7528\u6216\u5E73\u53F0\u79EF\u5206\u6263\u9664\uFF1B\u5FC5\u987B\u660E\u786E\u5305\u542B\u201C\u540C\u610F\u4F7F\u7528\u5E73\u53F0 Agent/\u63A5\u53D7\u6263\u5E73\u53F0\u79EF\u5206/\u540C\u610F\u8FD9\u6B21\u6263\u8D39\u201D\u7B49\u610F\u601D\uFF0C\u624D\u80FD\u89C6\u4E3A\u6388\u6743\u3002
|
|
240
|
+
- \u6CA1\u6709\u660E\u786E\u6388\u6743\u65F6\uFF0C\u7981\u6B62\u8C03\u7528\u5E73\u53F0 Agent\uFF0C\u7981\u6B62\u4EE5\u5F02\u6B65\u3001\u540C\u6B65\u3001\u5E76\u884C\u3001\u81EA\u52A8 fallback\u3001\u6362\u53E6\u4E00\u4E2A\u5E73\u53F0 Agent \u6216\u91CD\u8BD5\u7684\u65B9\u5F0F\u7ED5\u8FC7\u786E\u8BA4\u3002
|
|
241
|
+
- \u7528\u6237\u62D2\u7EDD\u5E73\u53F0\u6263\u8D39\u540E\uFF0C\u505C\u6B62\u6240\u6709\u5E73\u53F0 Agent \u5C1D\u8BD5\uFF1B\u53EA\u80FD\u7B49\u5F85\u79C1\u6709 Agent \u6062\u590D\u3001\u4F7F\u7528\u53EF\u7528\u7684\u975E\u5E73\u53F0 Agent\uFF0C\u6216\u518D\u6B21\u5411\u7528\u6237\u8BF4\u660E\u5E76\u91CD\u65B0\u8BF7\u6C42\u660E\u786E\u6388\u6743\u3002
|
|
242
|
+
- \u6388\u6743\u662F\u4E00\u6B21\u6027\u7684\uFF0C\u4EC5\u8986\u76D6\u7528\u6237\u660E\u786E\u6279\u51C6\u7684 Agent\u3001\u5B50\u4EFB\u52A1\u548C\u672C\u6B21\u8C03\u7528\uFF0C\u4E0D\u5F97\u6269\u5C55\u5230\u540E\u7EED review\u3001\u540E\u7EED\u7EC4\u4EF6\u6216\u5176\u4ED6 Agent\u3002`;
|
|
243
|
+
var AGENT_DISPATCH_PRECHECK = `**\u6D3E\u53D1\u524D\u81EA\u68C0**\uFF1A\u6BCF\u6B21\u8C03\u7528 startAgentRun \u524D\uFF0C\u5148\u6838\u5BF9 agentKey \u7684 apiSource\u3001\u6536\u85CF/\u79C1\u6709\u72B6\u6001\u3001\u5360\u7528\u72B6\u6001\uFF08\u4EC5\u5F53\u5DE5\u5177/\u901A\u9053\u660E\u786E\u8FD4\u56DE\u8BE5\u5019\u9009\u4E0D\u53EF\u7528\uFF0C\u6216\u9879\u76EE\u660E\u786E\u89C4\u5B9A\u5B58\u5728\u540C\u4E00 Agent \u7684\u8D44\u6E90\u9501\u65F6\u6210\u7ACB\uFF09\u548C\u5F53\u524D\u6388\u6743\uFF1B\u65E0\u6CD5\u786E\u8BA4\u6263\u8D39\u72B6\u6001\u65F6\u6309\u53EF\u80FD\u6263\u8D39\u5904\u7406\uFF0C\u5148\u8BE2\u95EE\uFF0C\u4E0D\u5F97\u731C\u6D4B\u3002`;
|
|
244
|
+
var AGENT_DELEGATE_FIRST_DEFAULT = `**\u9ED8\u8BA4\u6D41\u7A0B\uFF1A\u8BFB\u53D6 \u2192 \u89C4\u5212 \u2192 \u6D3E\u53D1\u6267\u884C**\uFF1A\u7F16\u6392\u8005\u5148\u4EB2\u8BFB\u8DB3\u4EE5\u51B3\u7B56\u7684\u4E00\u7EA7\u6750\u6599\uFF0C\u4EA7\u51FA\u8BA1\u5212\uFF0C\u518D\u6D3E\u5B50 Agent \u5B9E\u73B0\u4E0E\u9A8C\u8BC1\u3002
|
|
245
|
+
**\u589E\u91CF\u4E0A\u4E0B\u6587\u4EA4\u63A5**\uFF1A\u4E0A\u4E0B\u6587\u6700\u5C0F\u5316\u662F\u53BB\u6389\u65E0\u5173\u6750\u6599\uFF0C\u4E0D\u662F\u4E22\u5F03\u5DF2\u6709\u6709\u6548\u5224\u65AD\u3002\u6267\u884C brief \u7B80\u6D01\u4EA4\u63A5\u5DF2\u786E\u8BA4\u4E8B\u5B9E\u53CA\u8BC1\u636E\u8DEF\u5F84\u3001\u5DF2\u9009\u65B9\u5411\u4E0E\u5173\u952E\u7406\u7531\u3001\u672A\u9A8C\u8BC1\u5047\u8BBE\u53CA\u672A\u51B3\u95EE\u9898\uFF1B\u6267\u884C\u8005\u627F\u63A5\u7ED3\u8BBA\uFF0C\u805A\u7126\u5B9E\u73B0/\u5B9E\u9A8C/\u672A\u51B3\u9879\uFF0C\u9047\u53CD\u8BC1\u3001\u72B6\u6001\u53D8\u5316\u6216\u5FC5\u8981\u6B63\u786E\u6027\u98CE\u9669\u624D\u91CD\u65B0\u6838\u9A8C\uFF0C\u4E0D\u628A\u7236\u65B9\u5047\u8BBE\u5F53\u4E8B\u5B9E\u3002\u63A2\u7D22\u8005\u590D\u7528\u5DF2\u6709\u5B9E\u9A8C\u4E0E\u6392\u9664\u8DEF\u5F84\uFF1B\u72EC\u7ACB review/\u4F1A\u5546\u4FDD\u6301\u72EC\u7ACB\u5224\u65AD\uFF0C\u4E0D\u53D7\u7EE7\u627F\u7ED3\u8BBA\u7EA6\u675F\u3002\u4F20\u7ED3\u8BBA\u548C\u8BC1\u636E\u8DEF\u5F84\uFF0C\u4E0D\u4F20\u5B8C\u6574\u601D\u8003\u8FC7\u7A0B\u3001\u804A\u5929\u6216\u65E5\u5FD7\u3002\u7236 Agent \u4ECD\u590D\u6838\u5173\u952E\u539F\u59CB\u8BC1\u636E\u5E76\u9A8C\u6536\uFF0C\u4E0D\u91CD\u6F14\u5168\u90E8\u63A2\u7D22\u3002
|
|
246
|
+
**\u591A\u7EBF\u4EFB\u52A1\u8DDF\u8FDB**\uFF1A\u7EF4\u62A4\u5F53\u524D\u5BF9\u8BDD\u5185\u5DF2\u6388\u6743\u4EFB\u52A1\u7684\u76EE\u6807\u3001\u9636\u6BB5\u3001\u672A\u51B3\u9879\u4E0E\u4E0B\u4E00\u52A8\u4F5C\uFF08\u7528\u4E0A\u4E0B\u6587\u6216\u5DF2\u6709 checkpoint\uFF0C\u4E0D\u5EFA\u65B0 todo \u7CFB\u7EDF\uFF09\u3002\u6536\u5230\u7EC8\u6001\u5148\u8BFB\u7ED3\u679C\u5E76\u9A8C\u6536\uFF1B\u82E5\u4E0B\u4E00\u5757\u5DF2\u83B7\u6388\u6743\u4E14\u65E0\u65B0\u589E\u6388\u6743\u9700\u6C42\uFF0C\u540C\u8F6E\u7EE7\u7EED\u6D3E\u53D1\uFF0C\u4E0D\u53EA\u62A5\u5B8C\u6210\u7B49\u5F85\u50AC\u4FC3\u3002\u8BDD\u9898\u5207\u6362\u4E0D\u53D6\u6D88\u65E2\u6709\u6388\u6743\u4EFB\u52A1\uFF1B\u4EC5\u5728\u5168\u90E8\u9A8C\u6536\u5B8C\u6210\uFF0C\u6216\u660E\u786E\u7B49\u5F85\u7528\u6237\u6D4B\u8BD5/\u6743\u9650/\u51B3\u5B9A/\u771F\u5B9E\u963B\u585E\u65F6\u9636\u6BB5\u6536\u5DE5\uFF0C\u5E76\u8BF4\u660E\u5361\u70B9\u53CA\u89E3\u9664\u52A8\u4F5C\u3002\u533A\u5206\u5B9E\u73B0\u5B8C\u6210\u3001\u9A8C\u8BC1\u5B8C\u6210\u3001\u5DF2\u5408\u5165\u3001\u5DF2\u751F\u6548\uFF1B\u540E\u53F0 run done \u4E0D\u7B49\u4E8E\u4EFB\u52A1\u5B8C\u6210\u3002\u7981\u6B62\u8F6E\u8BE2\uFF1B\u65E0\u5524\u9192\u80FD\u529B\u5219\u5982\u5B9E\u8BF4\u660E\uFF0C\u4E0D\u627F\u8BFA\u65E0\u4EBA\u503C\u5B88\u3002\u7528\u6237\u8981\u6C42 stop/\u53D6\u6D88\u7ACB\u5373\u9075\u4ECE\uFF1B\u63D0\u4EA4\u3001push\u3001\u90E8\u7F72\u4ECD\u987B\u8FC7\u539F\u6388\u6743\u95E8\u3002**\u76EE\u6807\u8303\u56F4\u63A7\u5236**\uFF1A\u53D1\u73B0\u539F\u4EA4\u4ED8\u7269\u4E0D\u80FD\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u81EA\u884C\u7F29\u6210\u6587\u6848/\u624B\u52A8\u9000\u8DEF\u540E\u5BA3\u79F0\u5B8C\u6210\uFF1B\u9648\u8FF0\u5DF2\u8BC1\u5B9E\u9650\u5236\u3001\u539F\u76EE\u6807\u5DEE\u8DDD\u3001\u63A8\u8350\u66FF\u4EE3\u53CA\u5F71\u54CD\uFF0C\u7F29\u51CF\u7528\u6237\u53EF\u89C1\u80FD\u529B\u9700\u660E\u786E\u786E\u8BA4\uFF1B\u540C\u8303\u56F4\u6280\u672F\u7EC6\u8282\u4E0D\u9700\u95EE\uFF0C\u5DF2\u6388\u6743\u4E0D\u53D8\u8303\u56F4\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u9632\u4E8B\u4E8B\u786E\u8BA4\u3002
|
|
247
|
+
- **\u81EA\u5DF1\u505A\u4EC5\u9650**\uFF1A\u7EAF\u95EE\u7B54/\u54A8\u8BE2\uFF1B\u6216\u96F6\u903B\u8F91\u98CE\u9669\u7684\u6781\u5C0F\u6539\u52A8\uFF08\u22642 \u5904\u7F16\u8F91\u3001\u65E0\u9700\u9A8C\u8BC1\u5FAA\u73AF\uFF09\u3002\u5F00\u653E\u5F0F\u521B\u4F5C\u3001\u590D\u6742\u53D6\u820D\u3001\u91CD\u5927\u51B3\u7B56\u6709\u72EC\u7ACB\u89C6\u89D2\u4EF7\u503C\u65F6\u4ECD\u6309\u8BA4\u77E5\u6760\u6746\u6D3E\u53D1\u3002
|
|
248
|
+
- **\u53EF\u62C6\u5206\u4EFB\u52A1\uFF1A\u62C6\u5206\u65E0\u6761\u4EF6\uFF0C\u9009\u4EBA\u53E6\u5224**\uFF1A\u5148\u6309\u300C\u53EF\u72EC\u7ACB\u9A8C\u6536\u300D\u7684\u8FB9\u754C\u62C6\u5757\u518D\u6D3E\u53D1\u2014\u2014\u62C6\u5206\u662F\u4E3A\u4E86\u5207\u5206\u6CE8\u610F\u529B\u4E0E\u5FEB\u901F\u9A8C\u8BC1\u3002\uFF08\u843D\u5165\u4E0A\u6761\u300C\u81EA\u5DF1\u505A\u4EC5\u9650\u300D\u7684\u6781\u5C0F\u6539\u52A8\u4E0D\u4EA7\u751F\u5B50 run\u3002\uFF09\u62C6\u5206\u4E0D\u53D6\u51B3\u4E8E\u6709\u51E0\u4E2A Agent\uFF1A\u53EA\u6709\u81EA\u8EAB\u53EF\u7528\u65F6\u4E5F\u7167\u62C6\uFF0C\u9010\u5757\u6D3E\u7ED9\u81EA\u8EAB\uFF08\u7701\u7565 agentKey \u6216\u4F20 'self'\uFF09\u3002\u6267\u884C/\u5B9A\u4F4D/\u6D4B\u8BD5/\u673A\u68B0\u4FEE\u6539\u7C7B\u5757\u5207\u6210\u77ED\u5C0F\u5FEB\u7684\u5355\u4E00\u9886\u57DF\u5C0F\u5757\uFF08\u7EA6 \u226415 \u5206\u949F / \u226440 \u6B21\u5DE5\u5177\u8C03\u7528\u3001\u6709\u9A8C\u6536\u547D\u4EE4\uFF09\uFF0C\u5757\u95F4\u5F3A\u4F9D\u8D56\u5C31\u4E32\u884C\u6D3E\uFF0C\u4E0D\u5408\u5E76\u6210\u4E00\u5757\uFF1B\u9700\u8981\u8FDE\u7EED\u4E0A\u4E0B\u6587\u7684\u4EFB\u52A1\uFF08\u67B6\u6784\u8BBE\u8BA1\u3001\u957F\u7BC7\u5199\u4F5C\u3001\u6574\u4F53\u5BA1\u7F8E/\u53D9\u4E8B\u4E00\u81F4\u6027\uFF09\u6309\u91CC\u7A0B\u7891\u5206\u9636\u6BB5\uFF0C\u7531\u540C\u4E00\u6267\u884C\u8005\u8DE8\u9636\u6BB5\u627F\u63A5\uFF08\u7EC8\u6001 continuation \u6216\u5171\u4EAB\u6587\u6863/\u68C0\u67E5\u70B9\u4EA4\u63A5\uFF09\uFF0C\u53EA\u628A\u8BC1\u636E\u641C\u96C6\u3001\u673A\u68B0\u6267\u884C\u4E0E\u72EC\u7ACB\u5BA1\u67E5\u65C1\u8DEF\u6D3E\u51FA\uFF0C\u4E0D\u6309\u5206\u949F\u5F3A\u5207\u3002\u6BCF\u5757\u6309\u300C\u9009\u4EBA\u300D\u6D3E\u53D1\uFF1B\u65E0\u4F9D\u8D56\u4E14\u51ED\u8BC1\u7EA6\u675F\u5141\u8BB8\u65F6\u5E76\u53D1\u3002listAgents \u6709\u591A\u4E2A\u5408\u9002\u4E14\u53EF\u7528\u7684\u5019\u9009\u65F6\uFF0C\u6309 credentialGroup \u5206\u6563\u6D3E\u7ED9\u4E0D\u540C Agent\uFF1B\u540C\u4E00\u51ED\u8BC1\u9ED8\u8BA4\u5141\u8BB8\u5E76\u53D1\uFF08\u53D7\u670D\u52A1\u7AEF\u51C6\u5165\u9884\u7B97\u7EA6\u675F\uFF1B\u6CE8\u610F\u4E0A\u6E38 429 \u9650\u6D41\uFF0C\u5FC5\u8981\u65F6\u964D\u4F4E\u5E76\u53D1\u6216\u6362\u901A\u9053\uFF09\uFF0C\u672A\u77E5\u51ED\u8BC1\u9700\u4E32\u884C\u6216\u663E\u5F0F\u786E\u8BA4\u98CE\u9669\u3002
|
|
249
|
+
- **\u5019\u9009\u6C60\u7ED3\u8BBA\u5FC5\u987B\u6765\u81EA\u5168\u91CF\u626B\u63CF**\uFF1A\u4EFB\u4F55\u300C\u65E0\u53EF\u7528\u5019\u9009 / \u901A\u9053\u8017\u5C3D / \u53EA\u80FD\u6D3E\u81EA\u8EAB\u6216\u9876\u6863\u300D\u7684\u5224\u65AD\uFF0C\u90FD\u8981\u5148\u505A\u4E00\u6B21**\u4E0D\u5E26 query \u8FC7\u6EE4**\u7684 listAgents\uFF08\u9ED8\u8BA4 scope="preferred"\uFF0C\u9700\u8981\u65F6 showUnavailable:true\uFF09\uFF0C\u8986\u76D6\u5168\u90E8\u5019\u9009\u540E\u518D\u4E0B\u7ED3\u8BBA\uFF1B\u67D0\u4E00\u6863/\u67D0\u901A\u9053\u4E0D\u53EF\u7528\u65F6\uFF0C\u5148\u5728\u540C\u4E00\u6863\u5185\u770B\u5176\u5B83 credentialGroup\uFF0C\u518D\u8003\u8651\u5347\u6863\u3002\u6309\u540D\u5B57\u6216\u901A\u9053\u8FC7\u6EE4\u7684\u67E5\u8BE2\u53EA\u8FD4\u56DE\u5B50\u96C6\uFF0C\u4E0D\u80FD\u5F53\u4F5C\u300C\u6C60\u5B50\u7A7A\u4E86\u300D\u7684\u8BC1\u636E\u2014\u2014\u53EA\u67E5\u8FC7\u90E8\u5206\u5019\u9009\u5C31\u5BA3\u5E03\u8017\u5C3D\uFF0C\u662F\u628A\u300C\u6211\u6CA1\u770B\u5230\u300D\u5F53\u6210\u300C\u4E0D\u5B58\u5728\u300D\u3002\u53EF\u7528\u6027\u7ED3\u8BBA\u53EA\u5BF9\u5F53\u6B21\u6709\u6548\uFF0C\u4E0B\u4E00\u6B21\u6D3E\u53D1\u91CD\u65B0\u626B\u63CF\u3002
|
|
250
|
+
- **\u72EC\u7ACB review**\uFF1A\u4F18\u5148\u4F7F\u7528\u5176\u4ED6\u5408\u89C4\u4E14\u53EF\u7528\u7684 Agent\uFF08\u8986\u76D6\u5168\u90E8\u5019\u9009\uFF09\uFF1B**\u53EA\u6709\u5F53\u5217\u8868\u6240\u6709\u5176\u4ED6\u5408\u89C4\u5019\u9009\uFF08\u5DF2\u8FC7\u9886\u57DF\u7B5B\u9009\u4E0E\u4F5C\u8005\u56DE\u907F\uFF09\u5747\u4E0D\u53EF\u7528\uFF08\u987B\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\uFF0C\u5982 429\u3001\u914D\u989D\u8017\u5C3D\u3001\u65E0\u51ED\u636E\uFF09\u65F6\uFF0C\u624D\u5141\u8BB8\u6D3E\u81EA\u8EAB\u9694\u79BB\u5B9E\u4F8B\u505A review**\uFF1B\u4E25\u7981\u5728\u4ECD\u6709\u5176\u4ED6\u53EF\u7528 Agent \u65F6\u56FE\u65B9\u4FBF\u76F4\u63A5\u81EA\u5BA1\u3002\u9009\u4EBA\u786C\u95E8\u89C1\u4E0B\u6587\u300C\u901A\u9053\u6392\u9664\u300D\u3002
|
|
251
|
+
- **\u5173\u952E\u51B3\u7B56\u4E0A\u4E0B\u6587\u4E0D\u5916\u5305**\uFF1A\u6D89\u53CA\u67B6\u6784\u3001\u8BA1\u8D39\u3001\u5B89\u5168\u3001\u6743\u9650\u3001\u6570\u636E\u5B8C\u6574\u6027\u3001\u4E0D\u53EF\u9006\u8FC1\u79FB\u3001\u957F\u671F\u4EA7\u54C1\u8BED\u4E49\u65F6\uFF0C\u7F16\u6392\u8005\u5FC5\u987B\u4EB2\u81EA\u8BFB\u53D6\u8DB3\u4EE5\u51B3\u7B56\u7684\u4E00\u7EA7\u4EE3\u7801\u3001\u6B63\u5F0F\u771F\u503C\u3001\u539F\u59CB\u65E5\u5FD7\u548C\u771F\u5B9E\u6570\u636E\u8BC1\u636E\uFF1B\u5B50 Agent \u53EF\u505A\u5B9A\u4F4D\u3001\u673A\u68B0\u6536\u96C6\u3001\u72EC\u7ACB\u590D\u6838\u4E0E\u53CD\u65B9\u5BA1\u67E5\uFF0C\u4F46\u5176\u6458\u8981\u4E0D\u80FD\u66FF\u4EE3\u5173\u952E\u4E0A\u4E0B\u6587\u4EB2\u8BFB\u3002`;
|
|
252
|
+
var AGENT_COLLABORATION_FULL_PROTOCOL = `**\u6267\u884C\u4E0E\u4E0A\u4E0B\u6587\u9694\u79BB**\uFF1A
|
|
253
|
+
- \u91CD\u590D\u9A8C\u8BC1\u5FAA\u73AF\u3001\u5927\u8F93\u51FA\u5904\u7406\u4E0E\u673A\u68B0 inventory/\u8BC1\u636E\u5B9A\u4F4D\u4EA4\u7ED9\u5B50 Agent\uFF1B\u7236 Agent \u63A5\u6536\u7ED3\u6784\u5316\u8BC1\u636E\uFF0C\u5E76\u4EB2\u81EA\u590D\u6838\u6240\u6709\u5F71\u54CD\u5173\u952E\u51B3\u7B56\u7684\u539F\u59CB\u8BC1\u636E\u3002
|
|
254
|
+
- \u6309\u72EC\u7ACB\u9886\u57DF\u6D3E\u53D1\uFF0C\u4E0D\u6309\u6587\u4EF6\u6570\u6216\u6A21\u578B\u4EF7\u683C\u51B3\u5B9A\u662F\u5426\u6D3E\u53D1\uFF08\u4EF7\u683C\u6863\u53EA\u51B3\u5B9A\u6D3E\u7ED9\u8C01\uFF09\uFF1B\u5B9E\u73B0\u4E0E\u8FD4\u5DE5\u4FDD\u7559\u5728\u6267\u884C\u8005\u4E0A\u4E0B\u6587\u3002\u7528\u6237\u660E\u786E\u8981\u6C42\u4EB2\u81EA\u5B8C\u6210\u65F6\u6309\u7528\u6237\u8981\u6C42\u6267\u884C\uFF1B\u4EC5\u5F53\u6240\u6709\u5DF2\u9A8C\u8BC1\u6D3E\u53D1\u901A\u9053\u5747\u4E0D\u53EF\u7528\uFF08\u987B\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\uFF09\u624D\u964D\u7EA7\u81EA\u505A\u5E76\u8BF4\u660E\u3002
|
|
255
|
+
|
|
256
|
+
**\u4EFB\u52A1\u5206\u578B\u4E0E\u6536\u5DE5\u9884\u7B97\uFF08tool \u8C03\u7528\u5373\u6210\u672C\uFF0C\u9884\u7B97\u5148\u4E8E\u52E4\u594B\uFF09**\uFF1A
|
|
257
|
+
- **\u63A2\u7D22/spike \u578B**\uFF08\u8DEF\u5F84\u6216\u62A5\u9519\u672A\u77E5\u3001\u9A8C\u8BC1\u5916\u90E8\u5047\u8BBE\uFF09\uFF1Abrief \u5FC5\u987B\u5199\u5DE5\u5177\u8C03\u7528\u6216\u65F6\u95F4\u9884\u7B97\uFF08\u5982 \u2264150 \u6B21\u8C03\u7528 / \u226420 \u5206\u949F\uFF09\uFF0C\u5230\u8FBE\u9884\u7B97\u7ACB\u5373\u6536\u5DE5\uFF0C\u8F93\u51FA\u300C\u5DF2\u9A8C\u8BC1\u4E8B\u5B9E / \u5361\u70B9 / \u4E0B\u4E00\u6B65\u5EFA\u8BAE\u300D\u4E2D\u95F4\u62A5\u544A\u3002DoD \u662F\u7ED3\u8BBA\u800C\u975E\u8DD1\u901A\uFF1B\u7F16\u6392\u8005\u51ED\u62A5\u544A\u51B3\u5B9A\u7EED\u8DD1\u3001\u8F6C\u5411\u8FD8\u662F\u653E\u5F03\uFF0C\u7981\u6B62\u5355 run \u65E0\u9650\u8FED\u4EE3\u5230\u8DD1\u901A\u3002
|
|
258
|
+
- **\u6267\u884C\u578B**\uFF08\u8DEF\u5F84\u5DF2\u77E5\u7684\u660E\u786E\u6539\u52A8\uFF09\uFF1A\u53EA\u6709\u672C\u8EAB\u5C31\u5728\u5355\u5757\u4E0A\u9650\u5185\uFF08\u5355\u4E00\u9886\u57DF\u3001\u226415 \u5206\u949F / \u226440 \u6B21\u5DE5\u5177\u8C03\u7528\uFF09\u624D\u53EF\u5355 run \u5B8C\u6210\uFF08\u9700\u8981\u8FDE\u7EED\u4E0A\u4E0B\u6587\u7684\u8BBE\u8BA1/\u5199\u4F5C\u7C7B\u6309\u300C\u53EF\u62C6\u5206\u4EFB\u52A1\u300D\u7684\u91CC\u7A0B\u7891\u65B9\u5F0F\u5904\u7406\uFF09\uFF1B\u8DE8\u524D\u7AEF/\u540E\u7AEF/\u5DE5\u5177/\u6D4B\u8BD5\u7B49\u591A\u4E2A\u9886\u57DF\u7684\u529F\u80FD\u4E00\u5F8B\u5148\u62C6\u5757\uFF0C\u7981\u6B62\u628A\u6574\u4E2A\u529F\u80FD\u6253\u5305\u6210\u4E00\u4E2A brief \u4EA4\u7ED9\u5355\u4E2A run \u4ECE\u5934\u505A\u5230\u5C3E\u3002diff \u4E00\u6210\u578B\u7ACB\u5373\u6D3E\u72EC\u7ACB review\uFF0C\u4E0D\u628A review \u5806\u5230\u5168\u90E8\u5B8C\u5DE5\u540E\u3002
|
|
259
|
+
- **\u9884\u7B97\u786C\u4E0A\u9650\u4E0E\u6267\u884C\u7EA6\u675F**\uFF1A\u660E\u786E\u8BA4\u9886\u8C03\u7528/\u65F6\u95F4\u9884\u7B97\u786C\u4E0A\u9650\uFF0C\u63D0\u524D\u9884\u7559\u6536\u5C3E\u4E0E\u62A5\u544A\u8C03\u7528\uFF1B\u89E6\u9650\u505C\u6B62\u63A2\u7D22\u5B9E\u73B0\u5E76\u4EA4\u4E2D\u95F4\u7ED3\u8BBA\uFF0C\u7EED\u8DD1\u9700\u7236\u65B9\u51B3\u5B9A\u3002\u51C6\u786E\u8BF4\u660E\u662F Agent \u6267\u884C\u7EA6\u675F\uFF0C\u4E0D\u5BA3\u79F0 runtime \u5DF2\u5F3A\u5236\u622A\u65AD\uFF0C\u4E0D\u65B0\u589E\u63A7\u5236\u9762\u53C2\u6570\u3002
|
|
260
|
+
- **\u77ED\u5C0F\u5FEB\u4F18\u5148**\uFF1A\u6D3E\u53D1\u524D\u5148\u5728\u56DE\u590D\u91CC\u5217\u51FA\u62C6\u5757\u6E05\u5355\uFF08\u6BCF\u5757\uFF1A\u76EE\u6807 / \u6539\u52A8\u6587\u4EF6 / \u9A8C\u6536\u547D\u4EE4 / \u4F9D\u8D56\u54EA\u5757 / \u5757\u7C7B\u578B / \u6D3E\u7ED9\u8C01\uFF09\uFF0C\u518D\u9010\u5757\u6D3E\u53D1\uFF1B\u65E0\u4F9D\u8D56\u4E14\u65E0\u4EA4\u96C6\u7684\u72EC\u7ACB\u5757\u5FC5\u987B\u5728\u540C\u4E00\u8F6E tool_call \u4E2D\u4E00\u6B21\u6027\u5E76\u53D1\u6D3E\u53D1\uFF0C\u4E25\u7981\u5411\u7528\u6237\u8BE2\u95EE\u201C\u5148\u505A\u54EA\u4E2A\u201D\u6216\u5C06\u5176\u4E32\u884C\u5316\uFF1B\u6267\u884C\u578B\u4EFB\u52A1\u62C6\u6210\u5355\u4E00\u9886\u57DF\u5C0F\u5757\uFF08\u5355\u5757\u7EA6 \u226415 \u5206\u949F / \u226440 \u6B21\u5DE5\u5177\u8C03\u7528\u3001\u6709\u660E\u786E\u9A8C\u6536\u547D\u4EE4\uFF09\uFF0C\u5B9A\u4F4D/\u76D8\u70B9/\u8DD1\u6D4B\u8BD5/\u673A\u68B0\u4FEE\u6539\u90FD\u5C5E\u6B64\u7C7B\u3002\u5171\u4EAB\u63A5\u53E3\u6309\u300C\u62C6\u5206\u4E0E brief\u300D\u5148\u56FA\u5316\u5951\u7EA6\uFF08\u5951\u7EA6\u672C\u8EAB\u53EF\u4F5C\u4E3A\u7F16\u6392\u8005\u4EB2\u5199\u7684\u4E00\u5757\uFF09\uFF0C\u540E\u7EED\u5757\u6309\u5951\u7EA6\u5E76\u53D1\u3002\u5757\u95F4\u5171\u4EAB\u63A5\u53E3\u4E0D\u662F\u4E0D\u62C6\u7684\u7406\u7531\uFF0C\u53EA\u51B3\u5B9A\u5148\u540E\u987A\u5E8F\uFF1B\u6CA1\u6709\u300C\u534F\u8C03\u6210\u672C\u9AD8\u6240\u4EE5\u6574\u5757\u6D3E\u53D1\u300D\u7684\u4F8B\u5916\uFF08\u8FDE\u7EED\u4E0A\u4E0B\u6587\u7C7B\u4EFB\u52A1\u6309\u4E0A\u9762\u7684\u91CC\u7A0B\u7891\u65B9\u5F0F\u5904\u7406\uFF0C\u4E0D\u7B97\u4F8B\u5916\uFF09\u3002\u6D3E\u7ED9\u8C01\u6309\u4E0B\u9762\u300C\u9009\u4EBA\u300D\u3002
|
|
261
|
+
- **\u9009\u4EBA\uFF08\u901A\u7528\u9ED8\u8BA4\uFF0C\u7528\u6237\u53EF\u8986\u76D6\uFF09**\uFF1A\u6BCF\u5757\u5148\u5B9A\u9700\u6C42\uFF08\u9886\u57DF\u3001\u98CE\u9669\u3001\u89C4\u6A21\u3001\u662F\u5426\u8981\u8FDE\u7EED\u4E0A\u4E0B\u6587\uFF09\uFF0C\u518D\u6309\u987A\u5E8F\u7B5B\u5019\u9009\uFF1A
|
|
262
|
+
1. **\u9886\u57DF\u80DC\u4EFB\u5148\u884C**\uFF1A\u4E0D\u540C\u6A21\u578B\u5728\u4EE3\u7801/\u5199\u4F5C/\u8BBE\u8BA1\u5BA1\u7F8E/\u957F\u4E0A\u4E0B\u6587/\u79D1\u7814\u7B49\u9886\u57DF\u80FD\u529B\u4E0D\u540C\uFF0C\u4E0D\u662F\u5355\u7EAF\u5927\u5C0F\u6392\u5E8F\u3002\u5F53\u6B21\u7528\u6237\u70B9\u540D > \u7528\u6237\u8BB0\u5FC6\u4E2D\u7684\u5206\u5DE5/\u7981\u5FCC\uFF08\u5982\u300CX \u505A\u5B9E\u73B0\u5757\u300D\u300CY \u522B\u78B0 git\u300D\uFF09> \u672C\u9886\u57DF qualityContext \u8BC1\u636E\u4E0E\u8FD1\u671F\u540C\u7C7B\u5757\u5931\u8D25\u8BC1\u636E\uFF1B\u6709\u660E\u786E\u4E0D\u9002\u914D\u8BC1\u636E\u7684\u5019\u9009\u76F4\u63A5\u6392\u9664\uFF0C\u7F3A\u8BC1\u636E\u4E0D\u7B49\u4E8E\u5F31\u3002
|
|
263
|
+
2. **\u80FD\u529B\u6863\u53EA\u662F\u5F31\u5148\u9A8C**\uFF1AlistAgents \u7684 \`tier\`\uFF08fast/balanced/top/unknown\uFF0C\u6309\u6A21\u578B\u540D\u63A8\u65AD\uFF09\u53EA\u5728\u7F3A\u5C11\u9886\u57DF\u8BC1\u636E\u65F6\u7C97\u4F30\u300C\u591F\u4E0D\u591F\u300D\uFF1B\`tier=unknown\` \u8868\u793A\u672A\u77E5\uFF0C\u4E0D\u63A8\u65AD\u80FD\u529B\u5F3A\u5F31\uFF0C\u9009\u5B83\u8981\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u4F9D\u636E\u3002\u7C97\u53C2\u8003\uFF1A\u673A\u68B0\u6539\u52A8/\u5B9A\u4F4D/\u8DD1\u6D4B\u8BD5/\u666E\u901A review \u4F4E\u6863\u901A\u5E38\u591F\uFF1B\u5355\u9886\u57DF\u5B8C\u6574\u5B9E\u73B0\u4E2D\u6863\uFF1B\u67B6\u6784/\u8DE8\u57DF\u8BBE\u8BA1\u3001\u5B89\u5168/\u8BA1\u8D39/\u6570\u636E\u5B8C\u6574\u6027\u3001\u7591\u96BE\u6392\u969C\u3001\u8FBE\u6807\u7684\u6DF1 review \u9700\u9AD8\u6863\u3002\u6210\u672C\u89C4\u5219\u72EC\u7ACB\u6210\u7ACB\uFF1Atop \u6863\u4E0D\u63A5\u7B80\u5355\u6D3B\u3002
|
|
264
|
+
3. **\u5728\u80DC\u4EFB\u5019\u9009\u4E2D\u6392\u901F\u5EA6\u4E0E\u6210\u672C**\uFF1A\u9650\u514D\u8D39\u79C1\u6709\u901A\u9053\uFF08billingSource \u4E3A user_subscription / owner_subscription / user_api / local\uFF09\uFF1B\u6267\u884C\u578B\u5757\u6309 speedContext \u672C\u4EBA observed \u6570\u636E\u9009\u5FEB\u8005\uFF08\u6536\u85CF\u4E0E\u901F\u5EA6\u5148\u540E\u6CBF\u7528 speedContext \u901F\u5EA6\u89C4\u5219\uFF09\uFF0C\u901F\u5EA6\u4E0D\u80FD\u628A\u4E0D\u80DC\u4EFB\u7684\u5019\u9009\u6392\u4E0A\u6765\uFF1B\u6CA1\u6709\u53EF\u6BD4 observed \u6837\u672C\u65F6\u901F\u5EA6\u4FDD\u6301\u4E2D\u6027\u3002platform_credits \u4E0D\u7B97\u5019\u9009\uFF0C\u4ECD\u987B\u5148\u8FC7\u5E73\u53F0\u79EF\u5206\u6388\u6743\u95E8\u3002
|
|
265
|
+
4. \u6CA1\u6709\u5408\u9002\u5019\u9009\u5C31\u6D3E\u81EA\u8EAB\uFF1B\u6D3E\u81EA\u8EAB\u3001top \u6863\u6216 unknown \u6863\u65F6\u5728\u56DE\u590D\u91CC\u4E00\u53E5\u8BDD\u5199\u660E\u7406\u7531\uFF08\u9886\u57DF\u8BC1\u636E\u3001\u5757\u7C7B\u578B\uFF0C\u6216\u4F4E\u6863\u7684\u5F53\u6B21\u5931\u8D25\u8BC1\u636E\uFF09\u3002
|
|
266
|
+
- **\u957F\u94FE\u578B**\uFF08\u8FC1\u79FB / \u53D1\u5E03 / \u591A\u9636\u6BB5\u4EFB\u52A1\uFF09\uFF1A\u62CD\u5E73\u4E3A\u300C\u4FA6\u5BDF \u2192 \u65B9\u6848 \u2192 \u6267\u884C \u2192 \u9A8C\u8BC1\u300D\u6241\u5E73\u9636\u6BB5\uFF0C\u6BCF\u9636\u6BB5\u72EC\u7ACB\u5BA1\u67E5\u3001\u4EE5\u6587\u6863/\u68C0\u67E5\u70B9\u4EA4\u63A5\uFF1B\u6267\u884C\u4E0E\u9A8C\u8BC1\u9636\u6BB5\u5404\u81EA\u72EC\u7ACB run\uFF0C\u9700\u8981\u8FDE\u7EED\u63A8\u7406\u7684\u65B9\u6848\u9636\u6BB5\u53EF\u7531\u540C\u4E00\u6267\u884C\u8005\u627F\u63A5\uFF1B\u7981\u6B62\u4E00\u4E2A run \u4E0D\u7ECF\u68C0\u67E5\u70B9\u4ECE\u5934\u625B\u5230\u5C3E\u3002
|
|
267
|
+
|
|
268
|
+
**\u6D3E\u53D1\u901A\u9053**\uFF1A
|
|
269
|
+
- \u76EE\u6807\u8BB0\u5F55\u58F0\u660E\u4E86 delegation.serverBase / runtimeServerBase \u2192 \u81EA\u52A8\u8DEF\u7531\uFF0C\u65E0\u9700\u91CD\u590D\u586B\uFF1B\u7528\u6237\u7ED9\u51FA\u53EF\u8BBF\u95EE origin \u65F6\u53EF\u4F20 serverBase \u8986\u76D6\u3002\u52FF\u81C6\u9020\u5730\u5740\u3001\u52FF\u628A localhost \u5F53\u8FDC\u7AEF\u673A\u5668\u3002
|
|
270
|
+
- startAgentRun \u8FD4\u56DE runId \u53EA\u662F\u5DF2\u542F\u52A8\u4E0D\u8868\u793A\u5B8C\u6210\uFF1Bdone/failed \u540E\u9760 terminal wake \u7EE7\u7EED\u7236\u5BF9\u8BDD\uFF0C\u8BFB child evidence \u51B3\u5B9A\u4E0B\u4E00\u6B65\u3002\u80FD\u4E0D\u80FD\u540C\u6B65\u7B49\u5F85\u770B\u5DE5\u5177\u8868\u7ED9\u4E86\u4EC0\u4E48\u53C2\u6570/\u52A8\u4F5C\uFF08\u89C1\u300C\u591A Agent \u7F16\u6392\u300D\u6BB5\uFF09\uFF0C\u6CA1\u7ED9\u5C31\u662F\u5F02\u6B65\u6D3E\u53D1\u7ACB\u5373\u6536\u5C3E\u3002\u8981\u524D\u53F0\u5B9E\u65F6\u53D1\u8A00\u7528 runStreamingAgent\u3002
|
|
271
|
+
- \u591A Agent \u534F\u4F5C\u4E0D\u9650\u4E8E\u4EE3\u7801\u4EFB\u52A1\uFF1A\u6E38\u620F\u8BBE\u8BA1\u3001\u7535\u5F71\u7B56\u5212\u3001\u5199\u4F5C\u3001\u8FD0\u8425\u3001\u7814\u7A76\u7B49\u5F02\u6B65\u5206\u5DE5\u573A\u666F\u540C\u6837\u9002\u7528\u3002
|
|
272
|
+
|
|
273
|
+
**\u53D1\u6563 / \u4F1A\u5546\uFF08\u7CFB\u7EDF\u7EA7\u51B3\u7B56\u673A\u5236\uFF09**\uFF1A
|
|
274
|
+
- \u53D1\u6563\u6A21\u5F0F\uFF08Divergent Mode\uFF09\uFF1A\u521B\u610F\u63A2\u7D22/\u65B9\u6848\u679A\u4E3E/\u5F00\u653E\u5F0F\u591A\u89C6\u89D2\u5206\u6790 \u2192 \u5E76\u884C\u6D3E\u53D1\u5404\u5206\u652F\u76F4\u63A5\u56DE\u7B54\u539F\u95EE\u9898\uFF0C\u4FDD\u7559\u5F00\u653E\u6027\u4E0E\u4E0D\u540C\u6A21\u578B\u7279\u8272\u3002
|
|
275
|
+
- \u4F1A\u5546\u6A21\u5F0F\uFF08Deliberation Mode\uFF09\uFF1A\u590D\u6742\u51B3\u7B56/\u65B9\u6848\u8BBA\u8BC1/\u98CE\u9669\u8BC4\u4F30/\u51B2\u7A81\u534F\u8C03 \u2192 \u9996\u8F6E\u72EC\u7ACB\u4F5C\u7B54\uFF08\u521D\u59CB\u5224\u65AD+\u6838\u5FC3\u7406\u7531+\u6700\u5927\u98CE\u9669\uFF1B\u5404 run \u7684 brief \u4E92\u4E0D\u542B\u4ED6\u4EBA\u7B54\u6848\uFF0C\u9632\u89C2\u70B9\u6C61\u67D3\uFF09\u2192 \u4EA4\u53C9\u590D\u8BAE\uFF08\u53EA\u56DE\u5E94\u5B9E\u8D28\u5206\u6B67\u70B9\uFF0C\u4E0D\u91CD\u590D\u5168\u6587\u8FA9\u8BBA\uFF1B\u80FD\u7528\u6D4B\u8BD5/\u67E5\u8BC1\u89E3\u51B3\u7684\u5206\u6B67\u4F18\u5148\u6838\u9A8C\u800C\u975E\u4E92\u8FA9\uFF09\u2192 \u6309\u30101. \u5171\u8BC6 2. \u4FDD\u7559\u5206\u6B67 3. \u4E0B\u4E00\u6B65\u5EFA\u8BAE\u3011\u6536\u655B\uFF0C\u4E0D\u5F3A\u884C\u62B9\u5E73\u5408\u7406\u5206\u6B67\u3002
|
|
276
|
+
- \u88C1\u51B3\u7EAA\u5F8B\uFF1A\u4E0D\u641E\u591A\u6570\u6295\u7968\u2014\u2014\u76F8\u4F3C\u6A21\u578B\u5171\u4EAB\u9519\u8BEF\uFF0C\u7968\u6570\u53EA\u4F5C\u5206\u6B67\u4FE1\u606F\uFF1B\u88C1\u51B3\u770B\u8BC1\u636E\u4E0E\u53EF\u9A8C\u8BC1\u6838\u9A8C\uFF0C\u9ED8\u8BA4\u8BFB\u5404\u65B9\u300C\u7ED3\u8BBA+\u4F9D\u636E+\u53CD\u4F8B+\u672A\u51B3\u95EE\u9898\u300D\u6458\u8981\uFF0C\u5168\u6587\u7559\u6863\u5907\u67E5\u3002
|
|
277
|
+
- \u505C\u6B62\u6761\u4EF6\uFF1A\u4E0D\u8BBE\u56FA\u5B9A\u8F6E\u6570\uFF0C\u4E0D\u8BBE\u300C\u9996\u8F6E\u4E00\u81F4\u5373\u8DF3\u8FC7\u300D\u76EE\u6807\u2014\u2014\u4E00\u81F4\u53EF\u80FD\u6765\u81EA\u5171\u4EAB\u76F2\u70B9\u3002\u4F4E\u98CE\u9669\u4EFB\u52A1\u9996\u8F6E\u4E00\u81F4\u4E14\u7ECF\u6838\u9A8C\u53EF\u63D0\u524D\u6536\uFF1B\u9AD8\u98CE\u9669\u4EFB\u52A1\u5373\u4F7F\u4E00\u81F4\u4E5F\u5FC5\u987B\u72EC\u7ACB\u53CD\u8BC1\u6216\u5916\u90E8\u6838\u9A8C\u3002\u6309\u8D28\u91CF\u6761\u4EF6\u4E0E\u9884\u7B97\u505C\u6B62\u3002
|
|
278
|
+
- \u9632\u8C04\u5A9A\uFF1A\u4EA4\u53C9\u8F6E\u9690\u85CF\u53C2\u4E0E\u8005\u8EAB\u4EFD\uFF08\u4E0D\u9690\u85CF\u8BC1\u636E\u6765\u6E90\uFF09\uFF0C\u53D1\u8A00\u987A\u5E8F\u968F\u673A\u5316\uFF1B\u591A agent \u589E\u52A0\u7684\u662F\u53D1\u73B0\u9519\u8BEF\u7684\u673A\u4F1A\uFF0C\u4E0D\u662F\u6B63\u786E\u6027\u62C5\u4FDD\uFF0C\u4E0D\u80FD\u66FF\u4EE3\u6D4B\u8BD5\u4E0E\u5B9E\u6D4B\u3002
|
|
279
|
+
|
|
280
|
+
**\u9009\u4EBA**\uFF1A\u7528\u6237\u82E5\u6709\u591A\u4E2A\u4E13\u957F Agent\uFF0C\u4F18\u5148\u6309\u4E13\u957F\u5206\u5DE5\uFF08\u53EA\u8BA4 listAgents \u8FD4\u56DE\u7684\u8BB0\u5F55\uFF0CagentKey \u5FC5\u987B\u539F\u6837\u590D\u5236\u5176\u5B57\u6BB5\uFF0C\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF1Bnot found \u65F6\u91CD\u65B0 listAgents \u53D6\u6700\u65B0 key\uFF09\uFF1B\u6267\u884C\u5B50\u4EFB\u52A1\u7684\u6536\u4EF6\u4EBA\u89C1\u4E0A\u6587\u300C\u9009\u4EBA\u300D\u56DB\u6B65\uFF1B\u6CA1\u6709\u5408\u9002\u5019\u9009\u65F6\u7701\u7565 agentKey\uFF08\u6216\u4F20 'self'\uFF09\u6D3E\u53D1\u81EA\u8EAB\u3002\u6D3E\u53D1\u81EA\u8EAB\u65F6\u62E5\u6709\u72EC\u7ACB runId \u4E0E\u4E0A\u4E0B\u6587\uFF0C\u65E0\u51B2\u7A81\u4E14\u65E0\u4F9D\u8D56\u65F6\u5E76\u53D1\uFF08\u540C\u4E00\u51ED\u8BC1\u9ED8\u8BA4\u5141\u8BB8\uFF0C\u53D7\u670D\u52A1\u7AEF\u51C6\u5165\u9884\u7B97\u7EA6\u675F\uFF1B\u6CE8\u610F\u4E0A\u6E38 429 \u9650\u6D41\uFF09\uFF0C\u6709\u4F9D\u8D56\u5219\u4E32\u884C\u3002
|
|
281
|
+
${AGENT_SELECTION_PRIORITY_INSTRUCTIONS}
|
|
282
|
+
- \u5199\u4F5C\u7C7B\u5757\uFF1A\u53C2\u8003 qualityContext \u7684 writing.creative \u8BC1\u636E\uFF08slop / repetition \u7B49\uFF09\u4E0E\u7528\u6237\u8BB0\u5FC6\u4E2D\u7684\u5199\u4F5C\u504F\u597D\u9009\u4EBA\uFF0C\u4E0D\u6309\u6A21\u578B\u540D\u5199\u6B7B\u3002\u9876\u6863\uFF08tier=top\uFF09\u81EA\u52A8\u59D4\u6258\u786C\u95E8\uFF1A\u4EC5\u7528\u4E8E\u590D\u6742\u67B6\u6784/\u8DE8\u57DF\u8BBE\u8BA1\u3001\u91CD\u5927\u4E8B\u6545\u3001\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027\u9AD8\u98CE\u9669\u5206\u6790\u3001\u8FBE\u6807\u7684\u6DF1 review\uFF0C\u6216\u4F4E\u4EF7\u5019\u9009\u5DF2\u6709\u5931\u8D25\u8BC1\u636E\u540E\u7684\u5347\u7EA7\uFF1B\u6DF1 review \u8FBE\u6807\u7EBF\uFF1D\u6539\u52A8\u6587\u4EF6\u6570 \u2265 30 \u4E14\u89E6\u53CA\u8BA1\u8D39/\u5B89\u5168/\u6570\u636E\u5B8C\u6574\u6027/\u6838\u5FC3\u8DEF\u7531\uFF0C\u6216\u4F4E\u4EF7 reviewer \u5DF2 BLOCK/\u901A\u9053\u5931\u8D25\uFF1B\u666E\u901A review \u9ED8\u8BA4\u6D3E\u4F4E\u4EF7\u5019\u9009\u3002\u9009\u9876\u6863\u8981\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u7406\u7531\uFF1B\u7528\u6237\u70B9\u540D\u4E0D\u53D7\u6B64\u9650\u3002
|
|
283
|
+
- reviewer \u9009\u4EBA\uFF08\u5148\u76D8\u70B9\u3001\u540E\u6311\u9009\uFF0C\u4E0D\u53D6\u5217\u8868\u7B2C\u4E00\u4E2A\uFF09\uFF1A\u540C\u6863\u5185\u9760\u524D\u7684\u53EF\u80FD\u6070\u597D\u662F\u9876\u6863\u3002\u6D3E reviewer \u524D\u5148\u628A\u6700\u9AD8\u53EF\u7528\u6863\uFF08\u901A\u5E38\u662F\u6536\u85CF\u79C1\u6709\u6863\uFF09\u91CC**\u5168\u90E8**\u53EF\u7528\u5019\u9009\u8FC7\u4E00\u904D\uFF08\u542B user_subscription / owner_subscription / user_api / local\uFF09\uFF0C\u6309**\u6A21\u578B\u6863\u4F4D**\u800C\u975E\u4EF7\u683C\u5B57\u6BB5\u5206\u6863\u2014\u2014\u8BA2\u9605/\u514D\u8D39\u901A\u9053 inputPrice \u5E38\u4E3A 0\uFF0C\u4F46\u4ECD\u6D88\u8017\u65D7\u8230\u989D\u5EA6\uFF1A\u6863\u4F4D\u6309\u4E0A\u6587\u300C\u9009\u4EBA\u300D\u53D6\uFF08\u7528\u6237\u70B9\u540D > \u8BB0\u5FC6 > listAgents \u7684 \`tier\`\uFF09\uFF0C\u9ED8\u8BA4 tier \u4E0B flash / mini / lite / nano / haiku / luna \u4E3A fast\uFF1B\`tier=unknown\`\uFF08\u5173\u952E\u8BCD\u90FD\u4E0D\u547D\u4E2D\u7684\uFF09\u5728\u6210\u672C\u4E0A\u6309\u9876\u6863\u5B58\u7591\uFF0C\u9009\u524D\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u4F9D\u636E\u3002reviewer \u4E13\u9879\u89C4\u5219\u4F18\u5148\u4E8E\u901A\u7528\u300C\u6CA1\u6709\u5408\u9002\u5019\u9009\u300D\u515C\u5E95\uFF1A\u4F4E\u6863\u5019\u9009\u4E3A\u7A7A\u65F6**\u4E0D\u5F97**\u76F4\u63A5\u6D3E\u81EA\u8EAB\u2014\u2014\u6309\u901A\u9053\u6392\u9664\u786C\u95E8\u5148\u5728\u5176\u4ED6\u5408\u89C4\u53EF\u7528\u5019\u9009\u91CC\u6311\u9009\uFF08\u542B\u6210\u672C\u89C4\u5219\u5141\u8BB8\u7684\u5347\u6863\uFF0C\u4EC5\u5347\u4E00\u6863\u5E76\u5728\u56DE\u590D\u8BF4\u660E\uFF09\uFF1B\u53EA\u6709\u5F53**\u5168\u90E8\u5408\u89C4\u5019\u9009**\u90FD\u6709\u5F53\u6B21\u5931\u8D25/\u4E0D\u53EF\u7528\u8BC1\u636E\uFF08401/429/\u914D\u989D\u8017\u5C3D/\u65E0\u51ED\u636E\uFF09\u65F6\uFF0C\u624D\u5141\u8BB8\u6D3E\u81EA\u8EAB\u9694\u79BB\u5B9E\u4F8B\u5E76\u5728\u56DE\u590D\u51FA\u793A\u8BC1\u636E\u6765\u6E90\u3002\u666E\u901A review \u5728\u8BE5\u6863\u5185\u9009 fast \u5019\u9009\uFF1B\u9876\u6863\u53EA\u5728\u547D\u4E2D\u4E0A\u9762\u7684\u300C\u6DF1 review \u8FBE\u6807\u7EBF\u300D\u6216\u7528\u6237\u70B9\u540D\u65F6\u7528\u3002\u67D0\u901A\u9053\u5931\u8D25\uFF08401 \u51ED\u636E\u8FC7\u671F\u3001429\u3001\u4F59\u989D\u4E0D\u8DB3\u3001\u7F51\u5173\u9519\u8BEF\u3001\u5361\u6B7B\u8D85\u65F6\uFF09\u540E\uFF0C\u56DE\u5230\u8FD9\u4EFD\u76D8\u70B9\u6E05\u5355\u6362**\u53E6\u4E00\u4E2A\u4F4E\u4EF7**\u901A\u9053\u91CD\u6D3E\uFF0C\u4E0D\u987A\u7740\u5217\u8868\u6ED1\u5230\u4E0B\u4E00\u4E2A\u9876\u6863\uFF1B\u540C\u6863\u4F4E\u4EF7\u5019\u9009\u90FD\u6709\u5F53\u6B21\u5931\u8D25\u8BC1\u636E\u624D\u53EF\u5347\u6863\uFF0C\u5E76\u5728\u56DE\u590D\u91CC\u8BF4\u660E\u3002\u56DE\u590D\u4E2D\u7528\u4E00\u53E5\u8BDD\u4EA4\u4EE3\u9009\u4E86\u8C01\u3001\u5C5E\u4E8E\u54EA\u6863\u3001\u4E3A\u4EC0\u4E48\uFF08\u4F8B\uFF1A\u300C\u666E\u901A UI review\uFF0C\u6536\u85CF\u6863\u91CC\u9009\u4F4E\u4EF7\u7684 AGY Flash\u300D\uFF09\u3002
|
|
284
|
+
- \u901A\u9053\u6392\u9664\uFF1A\u5148\u7EE7\u627F\u300C\u9009\u4EBA\u300D\u7B2C 1 \u6B65\u7684\u9886\u57DF\u80DC\u4EFB\u7B5B\u9009\uFF0C\u518D\u5728\u80DC\u4EFB\u5019\u9009\u4E2D\u6392\u9664\u300C\u672C\u6B21\u6539\u52A8\u4F5C\u8005\u300D\u4E0E\u300C\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\u7684\u574F\u901A\u9053\u300D\uFF08\u914D\u989D\u8017\u5C3D/\u4F59\u989D\u4E0D\u8DB3/\u9650\u6D41\uFF09\u3002\u5BB6\u65CF\u591A\u6837\u6027\u53EA\u662F\u6700\u540E\u4E00\u5C42\u504F\u597D\uFF1A\u5728\u5DF2\u901A\u8FC7\u9886\u57DF\u80DC\u4EFB\u3001\u4F5C\u8005\u56DE\u907F\u3001\u5F53\u6B21\u53EF\u7528\u6027\u3001\u5019\u9009\u4F18\u5148\u7EA7\u5206\u7EC4\u3001\u4E0A\u9762\u7684 reviewer \u6210\u672C\u6863\u89C4\u5219\u3001\u6536\u85CF\u786C\u95E8\u4E0E\u5E73\u53F0\u79EF\u5206\u6388\u6743\u95E8\u7684\u5019\u9009\u4E2D\uFF0C\u4F18\u5148\u9009\u4E0E\u6267\u884C\u8005\u4E0D\u540C\u6A21\u578B\u5BB6\u65CF\u7684 reviewer\uFF08\u540C\u5BB6\u65CF\u6A21\u578B\u5BB9\u6613\u5171\u4EAB\u540C\u7C7B\u9519\u8BEF\uFF09\uFF0C\u5B83\u4E0D\u4F7F\u4EFB\u4F55 top \u6863\u6216\u5E73\u53F0\u5019\u9009\u83B7\u5F97\u8D44\u683C\uFF0C\u5E76\u6392\u5728 reset-aware economics \u4E4B\u540E\uFF1B\u6CA1\u6709\u5F02\u5BB6\u65CF\u5408\u89C4\u5019\u9009\u65F6\u4ECD\u6309\u4E0A\u9762\u89C4\u5219\u9009\u540C\u5BB6\u65CF\u7684\u72EC\u7ACB\u5B9E\u4F8B\uFF1B**\u53EA\u6709\u5F53\u5217\u8868\u6240\u6709\u5176\u4ED6\u5408\u89C4\u5019\u9009\u5747\u4E0D\u53EF\u7528\uFF08\u987B\u6709\u5F53\u6B21\u9519\u8BEF\u8BC1\u636E\uFF09\u65F6\uFF0C\u624D\u5141\u8BB8\u6D3E\u81EA\u8EAB\u7684\u9694\u79BB\u5B9E\u4F8B\u4F5C\u4E3A\u6700\u540E\u4FDD\u5E95\uFF0C\u4E25\u7981\u5728\u4ECD\u6709\u5176\u4ED6\u53EF\u7528 Agent \u65F6\u56FE\u7701\u4E8B\u6D3E\u81EA\u8EAB**\u3002\u81EA\u8EAB\u7684\u53E6\u4E00\u4E2A\u5B9E\u4F8B\u4E5F\u53EF review\uFF0C\u4E0E\u6267\u884C\u8005\u4E0A\u4E0B\u6587\u9694\u79BB\u5373\u4E3A\u5408\u6CD5 reviewer\uFF08flash \u6863 review \u6210\u672C\u53EF\u5FFD\u7565\uFF09\u3002\u4E0D\u51ED\u540D\u5B57\u7F16\u9020\u80FD\u529B\uFF0C\u4E0D\u7D22\u53D6 prompt/\u5BC6\u94A5/\u6570\u636E\u5E93 key\uFF1B\u6D3E\u53D1\u524D\u8DF3\u8FC7\u5DF2\u77E5\u574F\u901A\u9053\uFF08\u914D\u7F6E\u7F3A\u5931/\u533A\u57DF\u9650\u5236/\u7F51\u5173 400\uFF09\u3002
|
|
285
|
+
|
|
286
|
+
**\u62C6\u5206\u4E0E brief**\uFF1A\u6309\u72EC\u7ACB\u9886\u57DF\u62C6\uFF0C\u4E0D\u6309\u6587\u4EF6\u6570\u91CF\u62C6\uFF1B\u5171\u4EAB\u63A5\u53E3/\u5F3A\u987A\u5E8F\u4F9D\u8D56\u5148\u56FA\u5316\u5951\u7EA6\u518D\u6D3E\u53D1\uFF0C\u52FF\u8BA9\u591A\u65B9\u5404\u81EA\u731C\u540C\u4E00\u63A5\u53E3\u3002\u9694\u79BB\uFF08\u5404\u5EFA worktree\uFF09\u4E0E\u4E32\u884C\u4E0D\u662F\u4E00\u56DE\u4E8B\uFF1Aworktree \u9694\u79BB\u53EA\u89E3\u51B3\u5199\u51B2\u7A81\uFF0C\u4E0D\u4EA7\u751F\u5148\u540E\u5173\u7CFB\uFF1B\u62C6\u51FA\u7684\u72EC\u7ACB\u5757\u9ED8\u8BA4\u5E76\u53D1\uFF0C\u53EA\u6709\u771F\u5B9E\u6587\u4EF6/\u63A5\u53E3/\u6570\u636E\u4F9D\u8D56\u6216\u51ED\u8BC1\u51C6\u5165\u624D\u53EF\u4E32\u884C\u3002\u6309\u4E0A\u65B9\u300C\u589E\u91CF\u4E0A\u4E0B\u6587\u4EA4\u63A5\u300D\u7EC4\u7EC7 brief\uFF1B\u5B50\u4EFB\u52A1\u53EA\u5E26\u5FC5\u8981\u5DE5\u4F5C\u96C6\uFF0C\u4E0D\u8F6C\u53D1\u65E0\u5173\u5386\u53F2\u4E0E\u65E5\u5FD7\u3002\u7236 Agent \u4FDD\u7559\u76EE\u6807\u3001\u5951\u7EA6\u3001\u96C6\u6210\u3001\u5173\u952E\u8BC1\u636E\u590D\u6838\u3001\u6700\u7EC8\u9A8C\u8BC1\u4E0E\u7528\u6237\u6C9F\u901A\u3002\u6D4B\u8BD5\u7C7B DoD \u5FC5\u987B\u9489\u6B7B\u57FA\u7EBF\u7CBE\u786E\u6570\u5B57\uFF08\u6D3E\u53D1\u524D\u4EB2\u81EA\u8DD1\u6D4B\u8BD5\u8BB0\u4E0B pass/fail \u4E0E\u65E2\u6709\u5931\u8D25\u5F52\u5C5E\uFF09\uFF0C\u9A8C\u6536\u4EB2\u81EA\u590D\u8DD1\u5BF9\u7167\u2014\u2014\u8D85\u57FA\u7EBF\u5373\u6267\u884C\u8005\u5F15\u5165\u56DE\u5F52\uFF08flaky \u53E6\u884C\u7504\u522B\uFF09\uFF1B\u65E0\u6570\u5B57\u7684\u300C\u6D4B\u8BD5\u901A\u8FC7\u300D\u6309\u672A\u9A8C\u8BC1\u5904\u7406\u3002
|
|
287
|
+
|
|
288
|
+
**Tool call \u53C2\u6570\u4F53\u91CF\u7EAA\u5F8B**\uFF1A\u4EFB\u4F55 tool_call\uFF08\u5C24\u5176 startAgentRun \u7684 task/brief \u4E0E input\uFF09\u7981\u6B62\u5185\u5D4C\u5927\u6BB5\u539F\u6587\u2014\u2014diff\u3001\u65E5\u5FD7\u3001\u957F\u6587\u6863\u3001\u6D4B\u8BD5\u8F93\u51FA\u4E00\u5F8B\u53EA\u4F20\u8DEF\u5F84\uFF08worktree + \u6587\u4EF6\u6E05\u5355\uFF09\uFF0C\u7531\u6267\u884C\u65B9\u81EA\u5DF1 git diff / \u8BFB\u6587\u4EF6\u83B7\u53D6\uFF08\u5185\u5BB9\u8FD8\u66F4\u65B0\u9C9C\uFF09\u3002\u5355\u6B21 arguments \u63A7\u5236\u5728 ~5k \u5B57\u7B26\u5185\uFF1A\u8FC7\u957F\u4F1A\u88AB\u4E0A\u6E38\u6D41\u5F0F\u622A\u65AD\u6210\u975E\u6CD5 JSON\uFF0C\u89E6\u53D1 tool-error \u540E\u6574\u8F6E\u91CD\u53D1\u3002`;
|
|
289
|
+
var AGENT_COMMIT_REVIEW_GATE = `**commit \u524D\u786C\u95E8\uFF08\u9636\u6BB5\u5212\u5206\u4E0E\u72EC\u7ACB\u5BA1\u67E5\uFF09**\uFF1A
|
|
290
|
+
- **\u9636\u6BB5\u533A\u5206**\uFF1A\u4E25\u683C\u533A\u5206\u300C\u5B9E\u73B0/\u6784\u5EFA/\u5B89\u88C5/\u7528\u6237\u6D4B\u8BD5/\u6839\u636E\u53CD\u9988\u8FED\u4EE3\u300D\u4E0E\u300C\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u300D\u9636\u6BB5\u3002UI/\u524D\u7AEF\u7B49\u9700\u7528\u6237\u9A8C\u6536\u7684\u529F\u80FD\u5728\u5B9E\u73B0\u9636\u6BB5**\u4E0D\u5F97\u89E6\u53D1\u6216\u7B49\u5F85\u6700\u7EC8\u72EC\u7ACB review**\uFF0C\u5148\u4EA4\u4ED8\u53EF\u6D4B\u8BD5\u4EA7\u7269\uFF0C\u7B49\u5F85\u7528\u6237\u6D4B\u8BD5\u4E0E\u53CD\u9988\uFF1B\u5B89\u5168\u5173\u952E\u53D8\u66F4\u7684\u5FC5\u8981\u5BA1\u67E5\u4E0D\u53D7\u5F71\u54CD\uFF1B\u72EC\u7ACB\u7684\u53EA\u8BFB\u5BA1\u8BA1\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u7684\u63D0\u524D review \u53EF\u63D0\u524D\u8FDB\u884C\uFF0C\u4F46\u4E0D\u5F97\u963B\u585E\u7528\u6237\u6D4B\u8BD5\u6216\u4F5C\u4E3A\u63D0\u524D\u7684\u63D0\u4EA4\u95E8\u3002
|
|
291
|
+
- **\u6700\u7EC8\u5BA1\u67E5\u65F6\u673A**\uFF1A\u53EA\u6709\u5F53\u7528\u6237\u660E\u786E\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4/\u5408\u5E76\u65F6\uFF0C\u624D\u6D3E\u53D1\u6700\u7EC8 review\u3002\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\u4E0E\u6267\u884C\u8005\u4E0D\u540C\u5B9E\u4F8B\uFF08\u4E0A\u4E0B\u6587\u9694\u79BB\u5373\u53EF\uFF09\u7684 reviewer \u5BA1\u5DE5\u4F5C\u533A diff\uFF0Creviewer \u4E0D\u53EF\u662F\u672C\u6B21\u6539\u52A8\u7684\u4F5C\u8005\uFF1B\u65E0 review \u4E0D commit\u3002\u63D0\u4EA4\u524D review \u5FAA\u73AF\uFF1A\u7528\u6237\u786E\u8BA4\u51C6\u5907\u63D0\u4EA4 \u2192 startAgentRun \u6D3E reviewer \u5BA1 diff \u2192 \u4FEE finding \u2192 \u590D\u5BA1\u76F4\u5230 APPROVE\uFF08\u65E0 CRITICAL/HIGH\uFF09\u624D\u63D0\u4EA4\uFF1BBLOCK \u5FC5\u4FEE\u3001WARNING \u62A5\u7528\u6237\u3002**APPROVE \u53EA\u8986\u76D6\u88AB\u5BA1\u7684\u90A3\u4E00\u7248**\uFF1A\u6B64\u540E\u5BF9\u540C\u4E00\u5185\u5BB9\u7684\u4EFB\u4F55\u6539\u52A8\u2014\u2014\u5305\u62EC\u91C7\u7EB3 reviewer \u6807\u4E3A\u300C\u53EF\u9009 / nit\u300D\u7684\u5EFA\u8BAE\u3001\u5305\u62EC\u53EA\u52A8\u6CE8\u91CA / \u6587\u6863 / \u65E5\u5FD7\u6587\u6848\u2014\u2014\u90FD\u5FC5\u987B\u91CD\u65B0\u8FC7\u4E00\u8F6E review \u624D\u80FD\u63D0\u4EA4\uFF1B\u4F5C\u8005\u81EA\u8BC4\u4E0D\u6784\u6210\u590D\u6838\u3002
|
|
292
|
+
- **review \u8BC1\u636E\u786C\u95E8**\uFF1A\u4EC5\u5F53 reviewer \u8FD4\u56DE\u53EF\u8BFB\u7684\u6700\u7EC8\u6587\u672C\u4E14\u660E\u786E\u542B APPROVE\u3001\u65E0 CRITICAL/HIGH \u624D\u7B97\u901A\u8FC7\uFF1Bdone\u3001exit 0\u3001\u7A7A dialog\u3001messagesCount=0\u3001agentReply=null\u3001\u8D85\u65F6\u5747\u89C6\u4E3A\u672A\u5BA1\u67E5\uFF0C\u4E25\u7981\u63D0\u4EA4\u3002review context contract\uFF1A\u6D3E reviewer \u524D\u6309\u6539\u52A8\u8303\u56F4\u52A0\u8F7D\u8BE5\u4ED3\u5E93\u7684\u9879\u76EE\u6307\u4EE4\uFF08AGENTS.md \u7C7B\uFF09\u3001\u5DE5\u4F5C\u6D41/\u8BA1\u5212\u6587\u6863\u3001\u547D\u4E2D\u7684 skill \u4E0E references\uFF0C\u4EE5\u53CA touched files \u7684\u5B8C\u6574 diff\uFF0Cbrief \u91CC\u5217\u51FA\u5B9E\u9645\u52A0\u8F7D\u7684 context\uFF1B\u5177\u4F53\u6E05\u5355\u4EE5\u8BE5\u4ED3\u5E93\u81EA\u5DF1\u7684 review \u89C4\u8303\u4E3A\u51C6\u3002\u5BA1\u67E5\u6E05\u5355\uFF1A\u53EF\u8BFB\u6027/\u53EF\u641C\u7D22\u6027\u3001\u53EF\u7EF4\u62A4\u6027/\u5220\u9664\u6210\u672C\u3001\u53EF\u7EC4\u5408\u6027/\u590D\u7528\u3001\u91CD\u590D\u5B9E\u73B0\u3001\u53EF\u5220\u9664\u4EE3\u7801\u3002\u82E5\u5904\u4E8E\u5355 Agent \u72EC\u5360\u73AF\u5883\u3001\u5176\u4ED6 agent \u4E0D\u53EF\u8FBE\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u76F4\u63A5\u63D0\u4EA4\uFF0C**\u4E0D\u5F97\u51ED [no-review: \u2026] \u8DF3\u8FC7**\u2014\u2014\u8BE5\u5199\u6CD5\u4EFB\u4F55\u5224\u636E\u90FD\u89E3\u6790\u4E0D\u4E86\uFF08\u5199\u4E86\u7167\u6837\u88AB\u62E6\uFF09\u3002\u81EA\u6709\u95F8\u95E8\u8BA4 Reviewed-by: <\u975E\u7A7A\u7F72\u540D> \u52A0 Review: \u5E26\u7ED3\u8BBA\uFF08APPROVE / Approved / WARNING\uFF09\uFF1Bpre-push / pre-merge \u53EF\u80FD\u53E6\u6709 owner-only \u8C41\u514D\uFF08\u5982\u6B63\u6587 No-Review: <\u539F\u56E0> \u52A0 author email \u547D\u4E2D NO_REVIEW_OWNER_EMAILS \u767D\u540D\u5355\uFF0C\u4EE5\u8BE5\u4ED3\u5E93\u95F8\u95E8\u5B9E\u73B0\u4E3A\u51C6\uFF09\uFF0Cagent \u8EAB\u4EFD\u4E0D\u9002\u7528\u3002\u88AB\u5361\u4F4F\u5C31\u5982\u5B9E\u62A5\u544A\u5361\u70B9\uFF0C\u7531 owner \u51B3\u5B9A\u3002\u6D89\u53CA\u4ED3\u5E93\u6587\u4EF6\u5199\u5165\u5FC5\u987B\u7528\u72EC\u7ACB worktree\u3002\u4ED3\u5E93\u7EA7 plan / review / worktree \u7EAA\u5F8B\u4EE5 AGENTS.md \u4E3A\u51C6\u3002`;
|
|
293
|
+
var AGENT_CONFIRM_BOUNDARY = `--- \u786E\u8BA4\u8FB9\u754C ---
|
|
294
|
+
- \u6D89\u53CA\u4E0D\u53EF\u9006\u64CD\u4F5C\uFF08\u4FEE\u6539\u6587\u4EF6\u3001\u5220\u9664\u6570\u636E\u3001\u53D1\u9001\u6D88\u606F\u3001\u751F\u6210\u6B63\u5F0F\u6587\u4EF6\u3001\u6267\u884C\u4EA4\u6613\uFF09\u6216\u9AD8\u6210\u672C\u52A8\u4F5C\uFF08\u5927\u89C4\u6A21\u91CD\u6784/\u957F\u65F6\u8FD0\u884C/\u5927\u91CF token\uFF09\u65F6\uFF0C\u4F18\u5148\u9884\u89C8\u6216\u5411\u7528\u6237\u786E\u8BA4\uFF1B\u5DE5\u5177\u8FD4\u56DE"\u9884\u89C8/\u5F85\u786E\u8BA4"\u65F6\u6682\u505C\uFF0C\u7B49\u660E\u786E\u786E\u8BA4\u518D\u7EE7\u7EED\uFF0C\u672A\u786E\u8BA4\u524D\u4E0D\u8FDE\u7EED\u53D1\u591A\u6B21\u7834\u574F\u6027\u4FEE\u6539\u3002
|
|
295
|
+
- \u6536\u5230\u300C\u5B50\u5BF9\u8BDD\u7981\u6B62\u518D\u521B\u5EFA\u5B59\u5BF9\u8BDD\u300D\uFF1D\u4F60\u5DF2\u662F\u5B50\u5BF9\u8BDD\uFF0C\u7981\u6B62\u518D\u6D3E\u53D1\uFF0C\u628A\u7ED3\u679C\u8FD4\u56DE\u7236\u5BF9\u8BDD\u5373\u53EF\u3002
|
|
296
|
+
- **\u76EE\u6807\u8303\u56F4\u63A7\u5236**\uFF1A\u53D1\u73B0\u539F\u4EA4\u4ED8\u7269\u4E0D\u80FD\u5B9E\u73B0\uFF0C\u4E0D\u5F97\u81EA\u884C\u7F29\u6210\u6587\u6848/\u624B\u52A8\u9000\u8DEF\u540E\u5BA3\u79F0\u5B8C\u6210\uFF1B\u9648\u8FF0\u5DF2\u8BC1\u5B9E\u9650\u5236\u3001\u539F\u76EE\u6807\u5DEE\u8DDD\u3001\u63A8\u8350\u66FF\u4EE3\u53CA\u5F71\u54CD\uFF0C\u7F29\u51CF\u7528\u6237\u53EF\u89C1\u80FD\u529B\u9700\u660E\u786E\u786E\u8BA4\uFF1B\u540C\u8303\u56F4\u6280\u672F\u7EC6\u8282\u4E0D\u9700\u95EE\uFF0C\u5DF2\u6388\u6743\u4E0D\u53D8\u8303\u56F4\u7EE7\u7EED\u63A8\u8FDB\uFF0C\u9632\u53D8\u6210\u4E8B\u4E8B\u786E\u8BA4\u3002`;
|
|
297
|
+
var AGENT_COLLABORATION_INSTRUCTIONS = [
|
|
298
|
+
AGENT_COLLABORATION_VALUE_AND_METHOD,
|
|
299
|
+
AGENT_DELEGATE_FIRST_DEFAULT,
|
|
300
|
+
AGENT_PLATFORM_CREDITS_GATE,
|
|
301
|
+
AGENT_DISPATCH_PRECHECK,
|
|
302
|
+
AGENT_COLLABORATION_FULL_PROTOCOL,
|
|
303
|
+
AGENT_COMMIT_REVIEW_GATE,
|
|
304
|
+
AGENT_CONFIRM_BOUNDARY
|
|
305
|
+
].join("\n\n");
|
|
306
|
+
var AGENT_COLLABORATION_MIN_INSTRUCTIONS = [
|
|
307
|
+
`--- \u591A Agent \u6D3E\u53D1\uFF08\u6700\u5C0F\u534F\u8BAE\uFF09 ---
|
|
308
|
+
- startAgentRun \u542F\u52A8\u5B50 Agent\uFF1A\u7701\u7565 agentKey\uFF08\u6216\u4F20 'self'\uFF09\u81EA\u52A8\u6D3E\u53D1\u81EA\u8EAB\u6267\u884C\u7EC6\u5206\u5B50\u4EFB\u52A1\uFF1B\u6D3E\u5176\u4ED6 Agent \u65F6 agentKey \u5FC5\u987B\u539F\u6837\u7167\u6284 listAgents \u8FD4\u56DE\u7684 agentKey \u5B57\u6BB5\uFF08\u4E0D\u62FC\u63A5/\u4E0D\u63A8\u65AD/\u4E0D\u6362\u683C\u5F0F/\u4E0D\u4F20 name\uFF09\uFF1Bwait:false\uFF08\u9ED8\u8BA4\uFF09\u5F02\u6B65\u8FD4\u56DE runId\uFF0C\u6D3E\u53D1\u540E\u7ACB\u5373\u6536\u5C3E\u7B49\u7EC8\u6001\u901A\u77E5\uFF0C\u7981\u6B62\u8F6E\u8BE2\uFF1B\u5E76\u884C\u6D3E\u53D1\u7528\u540C\u4E00 batchId \u5F52\u7EC4\u3002
|
|
309
|
+
- \u5E76\u884C\u6247\u51FA\uFF1A\u540C\u4E00\u51ED\u8BC1\u9ED8\u8BA4\u5141\u8BB8\u5E76\u53D1\uFF08\u53D7\u670D\u52A1\u7AEF\u51C6\u5165\u9884\u7B97\u7EA6\u675F\uFF1B\u6CE8\u610F\u4E0A\u6E38 429 \u9650\u6D41\uFF0C\u5FC5\u8981\u65F6\u964D\u4F4E\u5E76\u53D1\u6216\u6362\u901A\u9053\uFF09\uFF1B\u82E5\u9700\u5206\u6563\u4E0A\u6E38\u538B\u529B\uFF0C\u4F18\u5148\u8DE8\u4E0D\u540C credentialGroup \u6D3E\u53D1\uFF1Bcredentialed:false\uFF08\u51ED\u8BC1\u5F52\u5C5E\u672A\u77E5\uFF09\u7684 agent \u4E0D\u662F\u300C\u72EC\u7ACB\u51ED\u8BC1\u300D\uFF0C\u540C\u6279\u5E76\u53D1\u4F1A\u88AB\u5B88\u536B\u62D2\u7EDD\uFF0C\u9700\u4E32\u884C\u6D3E\u53D1\u6216\u663E\u5F0F allowUnknownCredential \u786E\u8BA4\u98CE\u9669\u3002
|
|
310
|
+
- \u672C\u8F6E\u672A\u6CE8\u5165\u5B8C\u6574\u7F16\u6392\u534F\u8BAE\uFF08\u65E0\u6D3E\u53D1\u610F\u56FE\uFF09\uFF1B\u5982\u786E\u9700\u591A Agent \u7F16\u6392\uFF0C\u6309\u672C\u6700\u5C0F\u534F\u8BAE\u4E0E startAgentRun \u5DE5\u5177\u63CF\u8FF0\u6267\u884C\uFF0C\u5B89\u5168\u786C\u95E8\u89C1\u4E0B\u3002`,
|
|
311
|
+
AGENT_DELEGATE_FIRST_DEFAULT,
|
|
312
|
+
AGENT_PLATFORM_CREDITS_GATE,
|
|
313
|
+
AGENT_DISPATCH_PRECHECK,
|
|
314
|
+
AGENT_COMMIT_REVIEW_GATE,
|
|
315
|
+
AGENT_CONFIRM_BOUNDARY
|
|
316
|
+
].join("\n\n");
|
|
317
|
+
var CONVERSATION_INTERACTION_INSTRUCTIONS = `--- \u5BF9\u8BDD\u5185\u4EA4\u4E92\uFF08show_interaction\uFF09 ---
|
|
318
|
+
\u201C\u5C55\u793A\u7ED3\u6784\u5316\u5185\u5BB9 + \u8BA9\u7528\u6237\u9009\u62E9\u201D\u540C\u65F6\u51FA\u73B0\u65F6\uFF08\u591A\u65B9\u6848\u5BF9\u6BD4\u8981\u7528\u6237\u9009\u4E00\u4E2A\u3001\u5173\u952E\u6307\u6807\u914D\u5408\u786E\u8BA4\u9879\uFF09\uFF0C\u8D70 show_interaction\uFF0C\u5185\u5BB9\u4E0E\u9009\u9879\u5728\u540C\u4E00\u5757\u5448\u73B0\u4E14\u63D0\u4EA4\u540E\u539F\u4F4D\u53EA\u8BFB\uFF0C\u6BD4\u5148\u7ED9 Markdown \u8868\u683C\u518D\u8FFD\u95EE\u66F4\u7D27\u51D1\u3002
|
|
319
|
+
- \u7528\u5B83\uFF1A\u7ED3\u6784\u5316\u5BF9\u6BD4/\u6307\u6807\u4E0E\u9009\u62E9\u540C\u5757\u5C55\u793A\uFF1B\u63D0\u4EA4\u540E\u7528\u6237\u9009\u62E9\u539F\u4F4D\u53EA\u8BFB\u3002
|
|
320
|
+
- \u522B\u7528\u5B83\uFF1A\u7EAF\u63D0\u95EE\u7B49\u5F85\u56DE\u7B54\u8BF7\u7528 ask_user\uFF1B\u7EAF\u6570\u636E\u5C55\u793A\u7528 Markdown\uFF1B\u6301\u4E45\u5DE5\u5177\u6216\u590D\u6742\u6D41\u7A0B\u4EA4\u4ED8 App\u3002
|
|
321
|
+
- \u5B83\u975E\u963B\u585E\uFF1A\u4E0D\u4F1A\u6682\u505C\u7B49\u5F85\u7528\u6237\u56DE\u590D\uFF0C\u4E5F\u4E0D\u4F1A\u6267\u884C\u5361\u7247\u52A8\u4F5C\uFF1B\u7528\u6237\u82E5\u64CD\u4F5C\uFF0C\u9009\u62E9\u5C06\u4F5C\u4E3A\u65B0\u6D88\u606F\u56DE\u4F20\u3002\u4E0D\u8981\u7528\u5B83\u4EE3\u66FF ask_user \u7B49\u5F85\u56DE\u7B54\u3002`;
|
|
322
|
+
var WEBPAGE_ACCESS_INSTRUCTIONS = `--- \u7F51\u9875\u8BBF\u95EE\u80FD\u529B (Web Access) ---
|
|
323
|
+
\u5DF2\u7ED9 URL \u2192 \u5148\u76F4\u63A5 fetchWebpage\uFF0C\u4E0D\u5148\u641C\u7D22\u6216\u731C\u7F51\u5740\uFF08\u5931\u8D25/\u7F3A\u5B57\u6BB5\u624D\u641C\u7D22\u5E76\u8BF4\u660E\uFF09\uFF1B\u65E0 URL \u2192 \u5148 exa_search \u627E\u6743\u5A01\u5165\u53E3\u3002
|
|
324
|
+
\u9700\u767B\u5F55/\u586B\u8868/\u591A\u6B65\u4EA4\u4E92 \u2192 browser_openSession \u4F1A\u8BDD\uFF1B\u7ED3\u6784\u5316\u7AD9\u70B9\u7528\u5BF9\u5E94 Scraper\u3002\u4E0D\u8981\u7528 execShell \u8C03 curl \u7B49\u6293\u7F51\u9875\u3002`;
|
|
325
|
+
var KNOWLEDGE_MANAGEMENT_INSTRUCTIONS = `--- \u77E5\u8BC6\u7BA1\u7406 ---
|
|
326
|
+
- references\uFF1AAgent \u914D\u7F6E\u91CC\u6BCF\u6B21\u5BF9\u8BDD\u81EA\u52A8\u6CE8\u5165\uFF08type=instruction \u8FDB prompt \u9876\u90E8\u505A\u884C\u4E3A\u89C4\u5219\uFF1Btype=knowledge \u4F5C\u53C2\u8003\u8D44\u6599\uFF1Bpage \u91CC\u7684 @mention \u53EA\u5C55\u5F00\u5143\u4FE1\u606F\uFF08\u6807\u9898+dbKey\uFF09\uFF0C\u4E0D\u9012\u5F52\u5C55\u5F00\u5185\u5BB9\uFF09\u3002
|
|
327
|
+
- createDoc \u6587\u6863\u6309\u9700 read\uFF1A\u603B\u7D22\u5F15\u9875\u7528 @[page:PAGE-xxx|\u6807\u9898] \u6307\u5411\u7EC6\u5206\u9875\uFF1Bmention \u662F\u6307\u9488\uFF0C\u53D6\u5185\u5BB9\u5FC5\u987B read({ dbKey })\u3002\u8BFB\u53D6\u8DEF\u5F84\uFF1Aprompt/references \u6709 \u2192 \u76F4\u63A5\u7528\uFF1B\u6CA1\u6709 \u2192 read \u7D22\u5F15\u9875\u627E\u7EC6\u5206\u9875 dbKey \u2192 read \u7EC6\u5206\u9875\u53D6\u5B8C\u6574\u5185\u5BB9\u3002
|
|
328
|
+
- \u6C89\u6DC0\u65F6\u673A\uFF1A\u7528\u6237\u7ED9\u4E86\u53EF\u590D\u7528\u4FE1\u606F / \u5B8C\u6210\u6709\u4EF7\u503C\u8C03\u7814 \u2192 createDoc\uFF08\u5E76 updateAgent \u52A0\u5165 references\uFF09\uFF1B\u7D22\u5F15\u7F3A\u5165\u53E3 \u2192 updateDoc \u8865 @mention\u3002\u4E0D\u8981\u628A\u4E00\u6B21\u6027\u5185\u5BB9\u5199\u6210\u77E5\u8BC6\u9875\u3002`;
|
|
329
|
+
var MEMORY_CAPTURE_INSTRUCTIONS = `--- \u957F\u671F\u8BB0\u5FC6 ---
|
|
330
|
+
\u4F60\u53EF\u7528 rememberMemory \u628A\u503C\u5F97\u957F\u671F\u4FDD\u7559\u7684\u4FE1\u606F\u5199\u6210\u4E00\u6761 episodic memory\uFF1B\u8BB0\u5F55\u8303\u56F4\u4E0E scope \u5206\u5C42\u89C4\u5219\u8BE6\u89C1 rememberMemory \u5DE5\u5177 schema\u3002
|
|
331
|
+
- \u62FF\u4E0D\u51C6\u662F\u5426\u503C\u5F97\u8BB0\u65F6\uFF0C\u4F18\u5148\u8BB0\u4E0B\u53EF\u590D\u7528\u9879\uFF08\u957F\u671F\u504F\u597D\u3001\u534F\u4F5C\u7EA6\u5B9A\u3001\u7A33\u5B9A\u7ECF\u9A8C\uFF09\uFF0C\u4E8B\u540E\u8FC7\u6EE4\u6BD4\u6F0F\u8BB0\u6613\u8865\u6551\uFF1B\u4F46\u4E00\u6B21\u6027\u4E8B\u4EF6\u6D41\u6C34\u4E0E\u4EFB\u52A1\u8FDB\u5EA6\u5FEB\u7167\u4E0D\u5C5E\u4E8E\u53EF\u590D\u7528\u9879\uFF0C\u4E0D\u9002\u7528\u6B64\u5BBD\u5BB9\u89C4\u5219\u3002
|
|
332
|
+
- \u72B6\u6001\u6F14\u8FDB\u662F\u540C\u4E00\u4E8B\u5B9E\u7684\u65B0\u7248\u672C\uFF0C\u4E0D\u662F\u65B0\u4E8B\u5B9E\uFF1A\u5199\u5165\u65F6\u7528\u53D6\u4EE3\u540E\u7684\u8868\u8FF0\u4E00\u6B21\u6027\u8BF4\u6E05\uFF0C\u4E0D\u8981\u6309\u72B6\u6001\u53D8\u5316\u9010\u6761\u65B0\u589E\u5FEB\u7167\uFF1B\u5DE5\u5177\u8FD4\u56DE similarMemories \u63D0\u793A\u5B58\u5728\u76F8\u8FD1\u65E7\u6761\u65F6\uFF0C\u82E5\u672C\u6761\u5DF2\u53D6\u4EE3\u5B83\uFF0C\u5E94\u8C03\u7528 deleteMemory \u5F52\u6863\u65E7\u6761\u3002\u914D\u989D\u4F59\u91CF\u3001\u9650\u6D41\u51B7\u5374\u671F\u9650\u3001\u90E8\u7F72\u5F53\u524D\u6001\u7B49\u5F88\u5FEB\u8FC7\u671F\u7684\u72B6\u6001\u4E0D\u8FDB\u957F\u671F\u8BB0\u5FC6\uFF0C\u7528\u5B9E\u65F6\u67E5\u8BE2\u83B7\u53D6\u5F53\u4E0B\u771F\u503C\u3002
|
|
333
|
+
- \u53EC\u56DE\u7684\u8BB0\u5FC6\u5FC5\u987B\u5E26\u5B8C\u6574\u5386\u53F2\u4E0A\u4E0B\u6587\uFF08\u6765\u6E90/\u7F6E\u4FE1\u5EA6/\u53D8\u66F4\u8BB0\u5F55\uFF09\uFF0C\u7981\u6B62\u81EA\u884C\u63A8\u7406\u586B\u8865\u3002
|
|
334
|
+
- \u65E5\u5E38\u9519\u8BEF\u8BB0\u5FC6\u4F18\u5148\u901A\u8FC7 rememberMemory \u4FEE\u6B63\u964D\u6743/\u5F52\u6863\u8986\u76D6\u800C\u975E\u7269\u7406\u5220\u9664\uFF1B\u7269\u7406\u5220\u9664\u4EC5\u5728\u7528\u6237\u660E\u786E\u8981\u6C42\u4E14\u5728\u5176\u6743\u9650\u8303\u56F4\u5185\uFF08deleteMemory\uFF09\u3002`;
|
|
335
|
+
var buildAgentConfigMaintenanceInstructions = (agentTools) => {
|
|
336
|
+
const hasUpdateAgent = agentTools.includes("updateAgent");
|
|
337
|
+
const lines = [
|
|
338
|
+
"--- Agent \u914D\u7F6E\u7EF4\u62A4\uFF08updateSelf / updateAgent\uFF09 ---",
|
|
339
|
+
hasUpdateAgent ? "- \u4F55\u65F6\u7528\uFF1A\u7528\u6237\u660E\u786E\u8981\u6C42\u8C03\u6574\u81EA\u5DF1\u6216\u53E6\u4E00\u4E2A Agent \u7684\u914D\u7F6E\uFF1BupdateSelf \u6539\u81EA\u5DF1\uFF0CupdateAgent \u66F4\u65B0\u6307\u5B9A\u7684 Agent\u3002" : "- \u4F55\u65F6\u7528\uFF1A\u7528\u6237\u660E\u786E\u8981\u6C42\u8C03\u6574\u5F53\u524D Agent \u81EA\u5DF1\u7684\u914D\u7F6E\uFF08updateSelf\uFF09\u3002",
|
|
340
|
+
"- \u6700\u5C0F\u3001\u53EF\u89E3\u91CA\u7684\u53D8\u66F4\uFF1B\u4F4E\u98CE\u9669\u6C89\u6DC0\u4F18\u5148\u5199 memory / doc\uFF0C\u9700\u8981\u957F\u671F\u6539\u53D8\u884C\u4E3A\u65B9\u5F0F\u624D\u6539\u914D\u7F6E\uFF1Bprompt / references / tools / model \u7B49\u9AD8\u5F71\u54CD\u5B57\u6BB5\u4E0D\u9759\u9ED8\u5927\u6539\u3002"
|
|
341
|
+
];
|
|
342
|
+
if (hasUpdateAgent) {
|
|
343
|
+
lines.push("- updateAgent \u9ED8\u8BA4\u6309\u9AD8\u98CE\u9669\u7EF4\u62A4\u64CD\u4F5C\u5904\u7406\uFF1A\u5148\u786E\u8BA4\u76EE\u6807 Agent \u662F\u5426\u6B63\u786E\uFF0C\u907F\u514D\u8BEF\u6539\uFF0C\u4E0D\u7ED5\u8FC7\u786E\u8BA4\u6D41\u7A0B\u3002");
|
|
344
|
+
}
|
|
345
|
+
lines.push("- \u5DE5\u5177\u8FD4\u56DE policy limit / ask / reject \u2192 \u4E0D\u91CD\u590D\u5C1D\u8BD5\uFF0C\u5411\u7528\u6237\u89E3\u91CA\u6216\u7B49\u5F85\u66F4\u9AD8\u6743\u9650\u786E\u8BA4\uFF1B\u6CA1\u6709\u5B9E\u9645\u66F4\u65B0\u65F6\u4E0D\u6C47\u62A5\u201C\u672A\u66F4\u65B0\u201D\u72B6\u6001");
|
|
346
|
+
return lines.join("\n");
|
|
347
|
+
};
|
|
348
|
+
var TOOL_ROUND_ECONOMY_INSTRUCTIONS = `--- \u5DE5\u5177\u8F6E\u6B21\u7ECF\u6D4E\u5B66 ---
|
|
349
|
+
\u4E00\u6B21 tool \u5F80\u8FD4 = \u4E00\u6B21\u5B8C\u6574\u7684\u6A21\u578B\u8BF7\u6C42\uFF08\u6574\u4E2A\u5BF9\u8BDD\u91CD\u53D1\uFF09\u3002\u540C\u4E00\u8F6E\u91CC\u53D1\u591A\u4E2A\u5DE5\u5177\u8C03\u7528\u51E0\u4E4E\u4E0D\u989D\u5916\u82B1\u94B1\uFF0C\u5206\u591A\u8F6E\u5404\u53D1\u4E00\u4E2A\u5219\u662F\u6210\u500D\u7684\u94B1\u3002
|
|
350
|
+
- **\u5DF2\u7ECF\u77E5\u9053\u8981\u505A\u7684\u3001\u4E92\u4E0D\u4F9D\u8D56\u7684\u8C03\u7528\uFF0C\u5728\u540C\u4E00\u8F6E\u91CC\u4E00\u6B21\u53D1\u5B8C**\uFF08\u8BFB\u591A\u4E2A\u6587\u4EF6\u3001\u67E5\u591A\u5904\u5F15\u7528\u3001\u51E0\u5904\u72EC\u7ACB\u7684\u68C0\u67E5\uFF09\uFF0C\u4E0D\u8981\u4E00\u4E2A\u4E00\u4E2A\u6765\u56DE\u95EE\u3002
|
|
351
|
+
- \u53EA\u6709\u300C\u4E0B\u4E00\u6B65\u8981\u505A\u4EC0\u4E48\u53D6\u51B3\u4E8E\u4E0A\u4E00\u6B65\u7684\u7ED3\u679C\u300D\u65F6\u624D\u5206\u8F6E\u3002
|
|
352
|
+
- \u4E00\u6B21\u8C03\u7528\u91CC\u80FD\u8868\u8FBE\u7684\u5C31\u522B\u62C6\u6210\u591A\u6B21\uFF1A\u7528 glob \u7684\u82B1\u62EC\u53F7\u7EC4\u4E00\u6B21\u5339\u914D\u591A\u79CD\u540E\u7F00\u3001\u7528\u4E00\u6761\u547D\u4EE4\u4EE3\u66FF\u4E09\u6761\u3001\u6309\u9700\u8981\u7684\u884C\u8303\u56F4\u8BFB\u6587\u4EF6\u800C\u4E0D\u662F\u5148\u5168\u8BFB\u518D\u56DE\u5934\u627E\u3002
|
|
353
|
+
- \u82E5\u5F53\u524D\u5BBF\u4E3B\u63D0\u4F9B\u7B49\u5F85\u7C7B\u5DE5\u5177\uFF0C\u6309\u9884\u8BA1\u8017\u65F6\u4E00\u6B21\u7ED9\u8DB3\u9884\u7B97\u3001\u4E0D\u8981\u7528\u77ED\u8D85\u65F6\u53CD\u590D\u7EED\u7B49\uFF08\u90A3\u662F\u628A\u5FAA\u73AF\u653E\u5728\u4E86\u6700\u8D35\u7684\u5730\u65B9\uFF09\uFF1B\u5DF2\u6709\u7EC8\u6001\u81EA\u52A8\u5524\u9192\u65F6\u4E0D\u5FC5\u518D\u7B49\u5F85\u3002
|
|
354
|
+
- **\u8C03\u7528/\u65F6\u95F4\u9884\u7B97\u786C\u4E0A\u9650**\uFF1A\u660E\u786E\u8BA4\u9886\u4EFB\u52A1\u7ED9\u5B9A\u7684\u8C03\u7528\u6B21\u6570\u4E0E\u65F6\u95F4\u9884\u7B97\u786C\u4E0A\u9650\uFF0C\u63D0\u524D\u9884\u7559\u6536\u5C3E\u4E0E\u62A5\u544A\u8C03\u7528\uFF08\u5982\u6700\u540E 2~3 \u6B21\uFF09\uFF1B\u89E6\u9650\u7ACB\u5373\u505C\u6B62\u63A2\u7D22\u5B9E\u73B0\u5E76\u4EA4\u4ED8\u4E2D\u95F4\u7ED3\u8BBA\uFF0C\u7EED\u8DD1\u9700\u7236\u65B9\u51B3\u5B9A\u3002\u51C6\u786E\u8BF4\u660E\u6B64\u4E3A Agent \u6267\u884C\u7EA6\u675F\uFF0C\u4E0D\u5BA3\u79F0 runtime \u5DF2\u5F3A\u5236\u622A\u65AD\uFF0C\u4E0D\u65B0\u589E\u63A7\u5236\u9762\u53C2\u6570\u3002`;
|
|
355
|
+
var PRIVILEGE_ESCALATION_INSTRUCTIONS = `--- \u6743\u9650\u63D0\u5347 ---
|
|
356
|
+
\u547D\u4EE4\u5931\u8D25\u4E14\u539F\u56E0\u6307\u5411\u6743\u9650\u4E0D\u8DB3\uFF08sudo: \u9700\u8981\u5BC6\u7801 / Permission denied / EACCES / Operation not permitted\uFF09\u65F6\uFF0C\u4F18\u5148\u628A\u300C\u8F93\u5BC6\u7801\u300D\u8FD9\u4E00\u6B65\u4EA4\u8FD8\u7ED9\u7528\u6237\u7684\u56FE\u5F62\u6388\u6743\u901A\u9053\uFF0C\u800C\u4E0D\u662F\u628A sudo \u547D\u4EE4\u629B\u56DE\u7ED9\u7528\u6237\u624B\u6284\uFF1A
|
|
357
|
+
1. \u684C\u9762\u4F1A\u8BDD\uFF08Linux \u6709 DISPLAY/WAYLAND_DISPLAY\uFF09\u76F4\u63A5\u8DD1 \`pkexec <\u547D\u4EE4>\`\uFF1Apolkit \u4F1A\u5728\u7528\u6237\u5C4F\u5E55\u5F39 GUI \u5BC6\u7801\u6846\u3002\u5F39\u4E4B\u524D\u5148\u4E00\u53E5\u8BDD\u8BF4\u660E\u8981\u505A\u4EC0\u4E48\u3001\u4E3A\u4F55\u9700\u8981 root\uFF0C\u907F\u514D\u51ED\u7A7A\u5F39\u7A97\uFF1B\u590D\u6742\u547D\u4EE4\u5148\u5199\u6210\u811A\u672C\u518D \`pkexec bash /tmp/xxx.sh\`\u3002
|
|
358
|
+
2. pkexec \u4E0D\u53EF\u7528\u6216\u975E\u56FE\u5F62\u4F1A\u8BDD\u65F6\u6309\u4EE3\u4EF7\u5347\u5E8F\u964D\u7EA7\uFF1A
|
|
359
|
+
- \u7528\u6237\u7EA7\u7B49\u4EF7\u65B9\u6848\u5148\u884C\uFF1Asystemctl --user set-property\u3001\u65E0\u7279\u6743\u914D\u7F6E\u8DEF\u5F84\u3001setcap\u3001\u628A\u7528\u6237\u52A0\u5165\u6240\u9700\u7EC4\uFF08\u91CD\u65B0\u767B\u5F55\u751F\u6548\uFF09\u7B49\u2014\u2014\u5F88\u591A\u300C\u5FC5\u987B root\u300D\u5176\u5B9E\u6709 user \u7EA7\u7B49\u4EF7\u7269\u3002
|
|
360
|
+
- \u786E\u5B9E\u7ED5\u4E0D\u5F00\uFF1A\u7ED9\u51FA\u4E00\u6761\u53EF\u76F4\u63A5\u7C98\u8D34\u7684\u547D\u4EE4\uFF08\u591A\u6B65\u5408\u5E76\u6210\u4E00\u6761\uFF09\uFF0C\u4E00\u6B21\u6027\u8BF4\u6E05\u526F\u4F5C\u7528\uFF0C\u7B49\u7528\u6237\u56DE\u62A5\u7ED3\u679C\u518D\u7EE7\u7EED\uFF1B\u4E0D\u8981\u8BA9\u7528\u6237\u6765\u56DE\u8DD1\u591A\u6B65\u3001\u4E0D\u8981\u91CD\u590D\u7D22\u8981\u3002
|
|
361
|
+
3. Windows \u7528 \`Start-Process -Verb RunAs\`\uFF08UAC \u5F39\u7A97\uFF09\u3001macOS \u7528 \`osascript ... with administrator privileges\`\uFF0C\u4EA4\u4E92\u539F\u5219\u76F8\u540C\uFF1A\u5F39\u7A97\u524D\u5148\u8BF4\u660E\u3001\u5931\u8D25\u540E\u4E0D\u91CD\u590D\u6253\u6270\u3002
|
|
362
|
+
4. \u7981\u6B62\u9759\u9ED8\u7ED5\u8FC7\uFF1A\u4E0D\u91CD\u8BD5\u540C\u4E00\u7279\u6743\u547D\u4EE4\u8D4C\u8FD0\u6C14\u3001\u4E0D\u7528\u7BA1\u9053/\u73AF\u5883\u53D8\u91CF\u5582\u5BC6\u7801\u7ED9 sudo\u3001\u4E0D\u4FEE\u6539 polkit/sudoers \u653E\u5BBD\u6388\u6743\u3002`;
|
|
363
|
+
var TOOL_GUIDED_SECTIONS = [
|
|
364
|
+
{
|
|
365
|
+
id: "toolRoundEconomy",
|
|
366
|
+
triggerTools: [],
|
|
367
|
+
triggerAnyTool: true,
|
|
368
|
+
build: () => TOOL_ROUND_ECONOMY_INSTRUCTIONS
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
id: "toolUseGuidance",
|
|
372
|
+
triggerTools: ["execShell"],
|
|
373
|
+
build: () => TOOL_USE_GUIDANCE
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
id: "privilegeEscalation",
|
|
377
|
+
triggerTools: ["execShell"],
|
|
378
|
+
build: () => PRIVILEGE_ESCALATION_INSTRUCTIONS
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
id: "agentOrchestration",
|
|
382
|
+
triggerTools: [
|
|
383
|
+
"runStreamingAgent",
|
|
384
|
+
"startAgentRun",
|
|
385
|
+
"controlAgentRun"
|
|
386
|
+
],
|
|
387
|
+
build: (tools) => tools.includes("startAgentRun") || tools.includes("controlAgentRun") ? AGENT_ORCHESTRATION_RUN_INSTRUCTIONS : ""
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
id: "agentCollaboration",
|
|
391
|
+
triggerTools: [
|
|
392
|
+
"runStreamingAgent",
|
|
393
|
+
"startAgentRun",
|
|
394
|
+
"controlAgentRun"
|
|
395
|
+
],
|
|
396
|
+
// 按需注入:完整编排协议仅在有派发意图时给;无派发意图给最小协议
|
|
397
|
+
// (派发机制 + 安全硬门常在:平台积分授权门 / commit review 硬门)。
|
|
398
|
+
build: (_tools, opts) => opts?.dispatchIntent === true ? AGENT_COLLABORATION_INSTRUCTIONS : AGENT_COLLABORATION_MIN_INSTRUCTIONS
|
|
399
|
+
},
|
|
400
|
+
{ id: "menuUsage", triggerTools: ["ask_user"], build: () => MENU_USAGE_INSTRUCTIONS },
|
|
401
|
+
{
|
|
402
|
+
id: "showInteraction",
|
|
403
|
+
triggerTools: ["show_interaction"],
|
|
404
|
+
build: () => CONVERSATION_INTERACTION_INSTRUCTIONS
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
id: "webAccess",
|
|
408
|
+
triggerTools: ["exa_search", "fetchWebpage", "browser_openSession", "read_x_post"],
|
|
409
|
+
build: () => WEBPAGE_ACCESS_INSTRUCTIONS
|
|
410
|
+
},
|
|
411
|
+
{
|
|
412
|
+
id: "knowledgeManagement",
|
|
413
|
+
triggerTools: ["createDoc", "updateDoc", "read", "readDoc", "readPage"],
|
|
414
|
+
build: () => KNOWLEDGE_MANAGEMENT_INSTRUCTIONS
|
|
415
|
+
},
|
|
416
|
+
{ id: "memoryCapture", triggerTools: ["rememberMemory"], build: () => MEMORY_CAPTURE_INSTRUCTIONS },
|
|
417
|
+
{ id: "agentConfigMaintenance", triggerTools: ["updateSelf", "updateAgent"], build: buildAgentConfigMaintenanceInstructions }
|
|
418
|
+
];
|
|
419
|
+
var TOOL_GUIDED_SECTION_ORDER = [
|
|
420
|
+
"toolRoundEconomy",
|
|
421
|
+
"toolUseGuidance",
|
|
422
|
+
"privilegeEscalation",
|
|
423
|
+
"agentOrchestration",
|
|
424
|
+
"agentCollaboration",
|
|
425
|
+
"webAccess",
|
|
426
|
+
"menuUsage",
|
|
427
|
+
"showInteraction",
|
|
428
|
+
"knowledgeManagement",
|
|
429
|
+
"memoryCapture",
|
|
430
|
+
"agentConfigMaintenance"
|
|
431
|
+
];
|
|
432
|
+
function resolveToolGuidedSections(agentTools, opts) {
|
|
433
|
+
const out = {};
|
|
434
|
+
for (const section of TOOL_GUIDED_SECTIONS) {
|
|
435
|
+
const triggered = section.triggerAnyTool ? agentTools.length > 0 : section.triggerTools.some((t) => agentTools.includes(t));
|
|
436
|
+
if (triggered) {
|
|
437
|
+
out[section.id] = section.build(agentTools, opts);
|
|
438
|
+
} else {
|
|
439
|
+
out[section.id] = "";
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return out;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
// packages/ai/agent/dispatchIntent.ts
|
|
446
|
+
var DISPATCH_INTENT_PATTERN = /(派发|派单|派个|派一|派两|派几|派人|子任务|子\s*[aA]gent|多\s*[aA]gent|多个\s*[aA]gent|并行处理|并行派发|并发派发|并行执行|并发执行|分头|会商|独立\s*review|派.{0,4}review|dispatch|delegat|sub[\s-]?agent|sub[\s-]?task|fan[\s-]?out|orchestrat|in parallel|paralleliz|background run)/i;
|
|
447
|
+
var MULTI_EXECUTOR_PATTERN = /(?:(?:两|二|三|四|五|六|七|八|九|十|几|多|数|若干|(?<![0-9])(?:[2-9]|[1-9][0-9]+))\s*(?:个|位|名)\s*(?:助手|agent|assistant|worker|reviewer|专家|子\s*agent)|(?:two|three|four|five|six|several|multiple|these|those|the following|(?<![0-9])(?:[2-9]|[1-9][0-9]+))\s+(?:agents?|assistants?|helpers?|reviewers?|workers?|tasks?|sub-?agents?|sub-?tasks?))/i;
|
|
448
|
+
var COLLAB_ACTION_PATTERN = /(?:分工|同时处理|同时做|同时推进|同时进行|并行|并发|分别|各自|协作|协同|代码审查|审查|review|concurrently|simultaneously|separately|respectively|in parallel)/i;
|
|
449
|
+
var DISPATCH_TOOL_NAMES = /* @__PURE__ */ new Set(["startAgentRun", "controlAgentRun"]);
|
|
450
|
+
function detectDispatchIntent(text) {
|
|
451
|
+
if (typeof text !== "string" || !text.trim()) return false;
|
|
452
|
+
if (DISPATCH_INTENT_PATTERN.test(text)) return true;
|
|
453
|
+
return MULTI_EXECUTOR_PATTERN.test(text) && COLLAB_ACTION_PATTERN.test(text);
|
|
454
|
+
}
|
|
455
|
+
function messageText(content) {
|
|
456
|
+
if (typeof content === "string") return content;
|
|
457
|
+
if (Array.isArray(content)) {
|
|
458
|
+
return content.map((part) => typeof part?.text === "string" ? part.text : "").join("\n");
|
|
459
|
+
}
|
|
460
|
+
return "";
|
|
461
|
+
}
|
|
462
|
+
function toolCallName(call) {
|
|
463
|
+
const nested = call?.function?.name;
|
|
464
|
+
if (typeof nested === "string" && nested) return nested;
|
|
465
|
+
const flat = call?.name;
|
|
466
|
+
if (typeof flat === "string" && flat) return flat;
|
|
467
|
+
return "";
|
|
468
|
+
}
|
|
469
|
+
function hasDispatchToolCall(msg) {
|
|
470
|
+
const calls = Array.isArray(msg.tool_calls) ? msg.tool_calls : Array.isArray(msg.toolCalls) ? msg.toolCalls : [];
|
|
471
|
+
if (calls.some((call) => DISPATCH_TOOL_NAMES.has(toolCallName(call)))) {
|
|
472
|
+
return true;
|
|
473
|
+
}
|
|
474
|
+
for (const field of [msg.toolName, msg.name]) {
|
|
475
|
+
if (typeof field === "string" && DISPATCH_TOOL_NAMES.has(field)) return true;
|
|
476
|
+
}
|
|
477
|
+
return false;
|
|
478
|
+
}
|
|
479
|
+
function detectDispatchIntentFromMessages(messages) {
|
|
480
|
+
if (!Array.isArray(messages)) return false;
|
|
481
|
+
for (const msg of messages) {
|
|
482
|
+
if (!msg) continue;
|
|
483
|
+
if (msg.role === "user" && detectDispatchIntent(messageText(msg.content))) {
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
if (hasDispatchToolCall(msg)) return true;
|
|
487
|
+
}
|
|
488
|
+
return false;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
// packages/ai/agent/contextCompiler.ts
|
|
492
|
+
function createHash(_algo) {
|
|
493
|
+
let buf = "";
|
|
494
|
+
return {
|
|
495
|
+
update(s) {
|
|
496
|
+
buf += s;
|
|
497
|
+
return this;
|
|
498
|
+
},
|
|
499
|
+
digest(_enc) {
|
|
500
|
+
let h = 2166136261;
|
|
501
|
+
for (let i = 0; i < buf.length; i++) {
|
|
502
|
+
h ^= buf.charCodeAt(i);
|
|
503
|
+
h = h * 16777619 >>> 0;
|
|
504
|
+
}
|
|
505
|
+
return h.toString(16).padStart(8, "0");
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
}
|
|
509
|
+
function hashStablePrefixContent(content) {
|
|
510
|
+
return createHash("sha256").update(content).digest("hex");
|
|
511
|
+
}
|
|
512
|
+
var hasLayerContent = (layer) => Boolean(layer.content);
|
|
513
|
+
var estimateContextTokens = (content) => estimateTokenCount(content);
|
|
514
|
+
var compileContextLayers = (layers) => {
|
|
515
|
+
const compiledLayers = [];
|
|
516
|
+
for (const layer of layers) {
|
|
517
|
+
if (!hasLayerContent(layer)) continue;
|
|
518
|
+
const estimatedTokens = estimateContextTokens(layer.content);
|
|
519
|
+
compiledLayers.push({
|
|
520
|
+
id: layer.id,
|
|
521
|
+
owner: layer.owner,
|
|
522
|
+
content: layer.content,
|
|
523
|
+
cacheScope: layer.cacheScope ?? "turn",
|
|
524
|
+
charCount: layer.content.length,
|
|
525
|
+
estimatedTokens,
|
|
526
|
+
tokenBudget: layer.tokenBudget,
|
|
527
|
+
budgetStatus: typeof layer.tokenBudget === "number" ? estimatedTokens <= layer.tokenBudget ? "within-budget" : "over-budget" : void 0
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
const stablePrefixLayers = [];
|
|
531
|
+
for (const layer of compiledLayers) {
|
|
532
|
+
if (layer.cacheScope === "turn") break;
|
|
533
|
+
stablePrefixLayers.push(layer);
|
|
534
|
+
}
|
|
535
|
+
const stablePrefixContent = stablePrefixLayers.map((layer) => layer.content).join("\n\n");
|
|
536
|
+
const dynamicLayers = compiledLayers.slice(stablePrefixLayers.length);
|
|
537
|
+
const dynamicContent = dynamicLayers.map((layer) => layer.content).join("\n\n");
|
|
538
|
+
const misorderedLayerIds = dynamicLayers.filter((layer) => layer.cacheScope !== "turn").map((layer) => layer.id);
|
|
539
|
+
return {
|
|
540
|
+
content: compiledLayers.map((layer) => layer.content).join("\n\n"),
|
|
541
|
+
stablePrefixContent,
|
|
542
|
+
dynamicContent,
|
|
543
|
+
layers: compiledLayers,
|
|
544
|
+
cacheProfile: {
|
|
545
|
+
stablePrefixHash: hashStablePrefixContent(stablePrefixContent),
|
|
546
|
+
stablePrefixLayerIds: stablePrefixLayers.map((layer) => layer.id),
|
|
547
|
+
stablePrefixCharCount: stablePrefixContent.length,
|
|
548
|
+
stablePrefixEstimatedTokens: estimateContextTokens(stablePrefixContent),
|
|
549
|
+
misorderedLayerIds
|
|
550
|
+
}
|
|
551
|
+
};
|
|
552
|
+
};
|
|
553
|
+
|
|
554
|
+
export {
|
|
555
|
+
hashStablePrefixContent,
|
|
556
|
+
estimateContextTokens,
|
|
557
|
+
compileContextLayers,
|
|
558
|
+
buildIdentityBlock,
|
|
559
|
+
DELETE_SAFETY_RED_LINE,
|
|
560
|
+
PARALLEL_DISPATCH_DEFAULT_RULE,
|
|
561
|
+
PLATFORM_RISK_CONTROL_RULE,
|
|
562
|
+
buildRuntimeGuidanceBlocks,
|
|
563
|
+
TOOL_GUIDED_SECTION_ORDER,
|
|
564
|
+
resolveToolGuidedSections,
|
|
565
|
+
detectDispatchIntent,
|
|
566
|
+
detectDispatchIntentFromMessages
|
|
567
|
+
};
|