yuangs 6.9.21 → 6.9.23

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.
@@ -3,6 +3,7 @@ import type { AIRequestMessage } from '../core/validation';
3
3
  import { ContextManager } from './contextManager';
4
4
  export declare class LLMAdapter {
5
5
  static think(messages: AIRequestMessage[], mode?: 'chat' | 'command' | 'command+exec', onChunk?: (chunk: string, type?: 'thought' | 'json') => void, model?: string, customSystemPrompt?: string, contextManager?: ContextManager): Promise<AgentThought>;
6
+ private static VALID_ACTION_TYPES;
6
7
  static parseThought(raw: string): AgentThought;
7
8
  /**
8
9
  * 从 AI 响应中鲁棒地提取 JSON
@@ -10,20 +10,26 @@ const json5_1 = __importDefault(require("json5"));
10
10
  const protocolV2_2_1 = require("./protocolV2_2");
11
11
  class LLMAdapter {
12
12
  static async think(messages, mode = 'chat', onChunk, model, customSystemPrompt, contextManager) {
13
- const v2Config = {
14
- mode: mode === 'chat' ? 'chat' : 'command',
15
- enableStrictOutput: mode !== 'chat',
16
- enableReasoningTrace: true
17
- };
18
- let protocol = (0, protocolV2_2_1.buildV2_3ProtocolPrompt)(v2Config);
19
- const outputConstraints = (0, protocolV2_2_1.buildOutputConstraints)();
20
- protocol += `\n${outputConstraints}`;
21
- if (mode === 'command' || mode === 'command+exec') {
22
- protocol += `\n\nCOMMAND MODE ACTIVE:
13
+ // chat 模式使用轻量 chat prompt(通用助手 + 默认直接回答,不输出 PHASE 标签);
14
+ // command/workflow/replanning 模式沿用完整 agent 协议。
15
+ const protocol = mode === 'chat'
16
+ ? (0, protocolV2_2_1.buildChatProtocolPrompt)()
17
+ : (() => {
18
+ const v2Config = {
19
+ mode: 'command',
20
+ enableStrictOutput: true,
21
+ enableReasoningTrace: true
22
+ };
23
+ let p = (0, protocolV2_2_1.buildV2_3ProtocolPrompt)(v2Config);
24
+ p += `\n${(0, protocolV2_2_1.buildOutputConstraints)()}`;
25
+ if (mode === 'command' || mode === 'command+exec') {
26
+ p += `\n\nCOMMAND MODE ACTIVE:
23
27
  - Prioritize "shell_cmd" for any terminal-based task.
24
28
  - Minimize "answer" type unless task is purely conversational.
25
29
  - Direct execution is expected.`;
26
- }
30
+ }
31
+ return p;
32
+ })();
27
33
  const prompt = {
28
34
  system: customSystemPrompt ? `${protocol}\n\nGOVERNANCE POLICY:\n${customSystemPrompt}` : protocol,
29
35
  messages,
@@ -42,63 +48,81 @@ class LLMAdapter {
42
48
  thought.usedRouter = result.usedRouter;
43
49
  return thought;
44
50
  }
51
+ // 合法 action_type(与 state.ts ProposedAction.type / llm.ts AgentActionSchema 一致)
52
+ static VALID_ACTION_TYPES = new Set(['tool_call', 'shell_cmd', 'answer', 'code_diff']);
45
53
  static parseThought(raw) {
46
54
  // CoT V2.3: 提取 PHASE 1: THINK 块或 [THOUGHT] 块
47
55
  const thoughtMatch = raw.match(/\[PHASE 1: THINK - 深度推理\]([\s\S]*?)\[PHASE 2/) ||
48
56
  raw.match(/\[THOUGHT\]([\s\S]*?)\[\/THOUGHT\]/);
49
57
  const thoughtContent = thoughtMatch ? thoughtMatch[1].trim() : '';
50
58
  const parsed = this.extractJSON(raw);
51
- if (parsed) {
52
- // 如果明确标记为 done,或者动作为 answer,则视为任务结束
53
- if (parsed.is_done === true || parsed.action_type === 'answer') {
54
- return {
55
- raw,
56
- parsedPlan: parsed,
57
- isDone: true,
58
- type: 'answer',
59
- payload: {
60
- content: parsed.final_answer || parsed.content || parsed.text || raw
61
- },
62
- reasoning: thoughtContent
63
- };
64
- }
65
- // 智能推断动作类型:如果 AI 没给 action_type,我们根据字段猜测
66
- let inferredType = parsed.action_type;
67
- if (!inferredType) {
68
- if (parsed.tool_name || parsed.tool)
69
- inferredType = 'tool_call';
70
- else if (parsed.command || parsed.cmd)
71
- inferredType = 'shell_cmd';
72
- else if (parsed.diff || parsed.patch)
73
- inferredType = 'code_diff';
74
- else
75
- inferredType = 'answer';
76
- }
59
+ if (!parsed) {
60
+ // 解析失败时,回退到将原始内容作为回答
61
+ return {
62
+ raw,
63
+ parsedPlan: {},
64
+ isDone: true,
65
+ type: 'answer',
66
+ payload: { content: raw },
67
+ reasoning: ''
68
+ };
69
+ }
70
+ // === 校正 action_type ===
71
+ // 弱模型常见错误:把工具名当 action_type(如 "action_type":"search_in_files"),或给出非法值。
72
+ // 统一兜底,避免非法 type 把"本应直接回答"拖入工具死循环。
73
+ const rawActionType = parsed.action_type;
74
+ const hasTool = !!(parsed.tool_name || parsed.tool);
75
+ const hasCommand = !!(parsed.command || parsed.cmd);
76
+ const hasDiff = !!(parsed.diff || parsed.patch);
77
+ let inferredType;
78
+ if (typeof rawActionType === 'string' && LLMAdapter.VALID_ACTION_TYPES.has(rawActionType)) {
79
+ inferredType = rawActionType;
80
+ }
81
+ else if (hasTool) {
82
+ inferredType = 'tool_call';
83
+ }
84
+ else if (hasCommand) {
85
+ inferredType = 'shell_cmd';
86
+ }
87
+ else if (hasDiff) {
88
+ inferredType = 'code_diff';
89
+ }
90
+ else {
91
+ inferredType = 'answer';
92
+ }
93
+ // 合法但语义矛盾:声明要调工具/执行命令,却缺少必要字段 → 当作回答,避免执行失败死循环
94
+ if (inferredType === 'tool_call' && !hasTool)
95
+ inferredType = 'answer';
96
+ if (inferredType === 'shell_cmd' && !hasCommand)
97
+ inferredType = 'answer';
98
+ // 明确 answer 或 is_done → 任务结束
99
+ if (parsed.is_done === true || inferredType === 'answer') {
77
100
  return {
78
101
  raw,
79
102
  parsedPlan: parsed,
80
- isDone: inferredType === 'answer' || parsed.is_done === true,
81
- type: inferredType,
103
+ isDone: true,
104
+ type: 'answer',
82
105
  payload: {
83
- tool_name: parsed.tool_name || parsed.tool || '',
84
- parameters: parsed.parameters || parsed.params || {},
85
- command: parsed.command || parsed.cmd || '',
86
- diff: parsed.diff || parsed.patch || '',
87
- content: parsed.content || parsed.text || '',
88
- risk_level: parsed.risk_level || 'low',
89
- risk_explanation: parsed.risk_explanation || ''
106
+ content: parsed.final_answer || parsed.content || parsed.text || raw
90
107
  },
91
108
  reasoning: thoughtContent
92
109
  };
93
110
  }
94
- // 解析失败时,回退到将原始内容作为回答
95
111
  return {
96
112
  raw,
97
- parsedPlan: {},
98
- isDone: true,
99
- type: 'answer',
100
- payload: { content: raw },
101
- reasoning: ''
113
+ parsedPlan: parsed,
114
+ isDone: false,
115
+ type: inferredType,
116
+ payload: {
117
+ tool_name: parsed.tool_name || parsed.tool || '',
118
+ parameters: parsed.parameters || parsed.params || {},
119
+ command: parsed.command || parsed.cmd || '',
120
+ diff: parsed.diff || parsed.patch || '',
121
+ content: parsed.content || parsed.text || '',
122
+ risk_level: parsed.risk_level || 'low',
123
+ risk_explanation: parsed.risk_explanation || ''
124
+ },
125
+ reasoning: thoughtContent
102
126
  };
103
127
  }
104
128
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"llmAdapter.js","sourceRoot":"","sources":["../../src/agent/llmAdapter.ts"],"names":[],"mappings":";;;;;;AACA,+BAA+B;AAG/B,yCAA6C;AAC7C,kDAA0B;AAE1B,iDAAqG;AAErG,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,KAAK,CAChB,QAA4B,EAC5B,OAA4C,MAAM,EAClD,OAA4D,EAC5D,KAAc,EACd,kBAA2B,EAC3B,cAA+B;QAE/B,MAAM,QAAQ,GAAuB;YACjC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1C,kBAAkB,EAAE,IAAI,KAAK,MAAM;YACnC,oBAAoB,EAAE,IAAI;SAC7B,CAAC;QAEF,IAAI,QAAQ,GAAG,IAAA,sCAAuB,EAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,iBAAiB,GAAG,IAAA,qCAAsB,GAAE,CAAC;QACnD,QAAQ,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAErC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAClD,QAAQ,IAAI;;;gCAGc,CAAC;QAC7B,CAAC;QAED,MAAM,MAAM,GAAgB;YAC1B,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,QAAQ,2BAA2B,kBAAkB,EAAE,CAAC,CAAC,CAAC,QAAQ;YAClG,QAAQ;SACT,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,GAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,WAAW,CAAC;QAE/D,MAAM,MAAM,GAAG,MAAM,IAAA,YAAM,EAAC;YAC1B,MAAM;YACN,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,CAAC,CAAC,OAAO;YACjB,OAAO;YACP,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,8CAA8C;SACrE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,UAAU,CAAC;QACnD,OAAO,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACvC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,6CAA6C;QAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC;YAC1D,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,MAAM,EAAE,CAAC;YACX,oCAAoC;YACpC,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO;oBACL,GAAG;oBACH,UAAU,EAAE,MAAM;oBAClB,MAAM,EAAE,IAAI;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACP,OAAO,EAAE,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,GAAG;qBACrE;oBACD,SAAS,EAAE,cAAc;iBAC1B,CAAC;YACJ,CAAC;YAED,yCAAyC;YACzC,IAAI,YAAY,GAAyB,MAAM,CAAC,WAAmC,CAAC;YACpF,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI;oBAAE,YAAY,GAAG,WAAW,CAAC;qBAC3D,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG;oBAAE,YAAY,GAAG,WAAW,CAAC;qBAC7D,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;oBAAE,YAAY,GAAG,WAAW,CAAC;;oBAC5D,YAAY,GAAG,QAAQ,CAAC;YAC/B,CAAC;YAED,OAAO;gBACL,GAAG;gBACH,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE,YAAY,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;gBAC5D,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE;oBACP,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE;oBAChD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE;oBACpD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;oBAC3C,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE;oBACvC,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,EAAE;oBAC5C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;oBACtC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;iBAChD;gBACD,SAAS,EAAE,cAAc;aAC1B,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,OAAO;YACL,GAAG;YACH,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;YACzB,SAAS,EAAE,EAAE;SACd,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,WAAW,CAAC,GAAW;QACpC,oBAAoB;QACpB,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnE,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,OAAO,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACzE,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBAAC,OAAO,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACzE,CAAC;QAED,2BAA2B;QAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBAAC,OAAO,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;QACpE,CAAC;QAED,uBAAuB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC;gBAAC,OAAO,eAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,GAAW;QACzC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAElB,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,GAAG,KAAK,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,QAAQ,GAAG,CAAC,QAAQ,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,QAAQ;gBAAE,SAAS;YAEvB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,IAAI,UAAU,KAAK,CAAC;oBAAE,KAAK,GAAG,CAAC,CAAC;gBAChC,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACtB,UAAU,EAAE,CAAC;gBACb,IAAI,UAAU,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACrC,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,cAAc,CAAC,GAAW;QACvC,kBAAkB;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9B,IAAI,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,iBAAiB;QACjB,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,SAAS;QACT,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QACpD,qBAAqB;QACrB,MAAM,UAAU,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACxD,IAAI,UAAU,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW;QACtD,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAjND,gCAiNC"}
1
+ {"version":3,"file":"llmAdapter.js","sourceRoot":"","sources":["../../src/agent/llmAdapter.ts"],"names":[],"mappings":"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"}
@@ -19,3 +19,15 @@ export declare function buildOutputConstraints(): string;
19
19
  * 构建动态上下文注入模板
20
20
  */
21
21
  export declare function buildDynamicContextTemplate(): string;
22
+ /**
23
+ * 轻量 CHAT 模式 Prompt(通用助手 + 默认直接回答)
24
+ *
25
+ * 与 buildV2_3ProtocolPrompt 的关键差异:
26
+ * - 身份通用化(不再以"技术助手"自我设限);
27
+ * - 明确"默认直接 answer,不调工具"的规则,避免把知识问题误判为工具任务;
28
+ * - 不输出 [PHASE ...] 阶段标签(chat 推理内联);
29
+ * - 内联精简工具列表,不加载重型 JSON Schema(弱模型看长 schema 反被诱导调工具)。
30
+ *
31
+ * 仅用于 mode === 'chat'。command/workflow/replanning 仍走 buildV2_3ProtocolPrompt。
32
+ */
33
+ export declare function buildChatProtocolPrompt(): string;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.buildV2_3ProtocolPrompt = buildV2_3ProtocolPrompt;
8
8
  exports.buildOutputConstraints = buildOutputConstraints;
9
9
  exports.buildDynamicContextTemplate = buildDynamicContextTemplate;
10
+ exports.buildChatProtocolPrompt = buildChatProtocolPrompt;
10
11
  const toolCapability_1 = require("./toolCapability");
11
12
  /**
12
13
  * 构建完整的 V2.3 协议 Prompt
@@ -248,4 +249,101 @@ function buildDynamicContextTemplate() {
248
249
  - 查看错误日志。
249
250
  `;
250
251
  }
252
+ /**
253
+ * 轻量 CHAT 模式 Prompt(通用助手 + 默认直接回答)
254
+ *
255
+ * 与 buildV2_3ProtocolPrompt 的关键差异:
256
+ * - 身份通用化(不再以"技术助手"自我设限);
257
+ * - 明确"默认直接 answer,不调工具"的规则,避免把知识问题误判为工具任务;
258
+ * - 不输出 [PHASE ...] 阶段标签(chat 推理内联);
259
+ * - 内联精简工具列表,不加载重型 JSON Schema(弱模型看长 schema 反被诱导调工具)。
260
+ *
261
+ * 仅用于 mode === 'chat'。command/workflow/replanning 仍走 buildV2_3ProtocolPrompt。
262
+ */
263
+ function buildChatProtocolPrompt() {
264
+ return `[CHAT MODE PROTOCOL]
265
+
266
+ 你是一个通用 AI 助手。你可以回答任何领域的问题,包括但不限于:知识问答、写作、翻译、解释、
267
+ 分析、闲聊,以及编程、文件操作、Git、命令行等技术任务。你不限于"技术助手"——遇到任何问题,
268
+ 请用自己的知识直接回答。
269
+
270
+ === 最重要的规则(必须严格遵守)===
271
+
272
+ 1. **默认直接回答,不要调用工具。** 对能用自己知识回答的问题,直接输出 JSON 回答,不调任何工具,
273
+ 不套用任何流程框架,不输出 [PHASE ...] 之类的阶段标签。一律直接 answer 的情况:
274
+ - 知识问答(如"Linux 的作用""什么是闭包""光合作用原理")
275
+ - 写作与创作(如"写一首诗""详细介绍 X,不少于 N 字""帮我写封邮件")
276
+ - 解释与教学、翻译、总结、头脑风暴、建议、观点、闲聊
277
+ - 用户说"继续""接着说""详细讲讲":基于上一轮对话直接继续,不要拒绝、不要搜索。
278
+
279
+ 2. **只有当问题确实需要操作用户本地环境时,才调用工具。**
280
+ - 读取/查看/分析用户指定的具体文件 → read_file
281
+ - 在项目里搜索代码/文本 → search_in_files / search_symbol
282
+ - 查看或操作 Git → git_status / git_diff / git_log
283
+ - 执行 shell 命令、运行测试、构建 → shell_cmd
284
+ - 写入/修改文件 → write_file
285
+ 只要问题不涉及"本地文件/命令行/Git/项目代码",就一定不要调工具。
286
+
287
+ 3. **不要把整句话当搜索词。** 只有用户明确要在文件里找东西时才搜索,且用关键词,不要把自然语言提问原样塞进 pattern。
288
+
289
+ === 输出格式(唯一允许的格式)===
290
+
291
+ 每次只输出一个 JSON 对象,不要输出 JSON 之外的文字、代码块标记或阶段标签。
292
+
293
+ 情况 A —— 直接回答(绝大多数情况,优先使用):
294
+ {
295
+ "action_type": "answer",
296
+ "content": "你的完整回答,支持 Markdown,可以很长",
297
+ "is_done": true,
298
+ "risk_level": "low"
299
+ }
300
+
301
+ 情况 B —— 调用工具(仅当确实要操作本地环境):
302
+ {
303
+ "action_type": "tool_call",
304
+ "tool_name": "工具名",
305
+ "parameters": { "参数": "值" },
306
+ "risk_level": "low"
307
+ }
308
+
309
+ (可选)执行 shell 命令:
310
+ {
311
+ "action_type": "shell_cmd",
312
+ "command": "命令",
313
+ "risk_level": "medium"
314
+ }
315
+
316
+ === 可用工具(仅在确实需要时使用)===
317
+
318
+ read_file / read_file_lines / read_file_lines_from_end:读取文件内容
319
+ list_files / list_directory_tree:列出目录与项目结构
320
+ search_in_files:在文件中搜索文本(类似 grep);search_symbol:搜索代码符号(函数/类/接口)
321
+ write_file / append_file:写入或追加文件
322
+ git_status / git_diff / git_log:查看 Git 状态/差异/历史
323
+ shell_cmd:执行 shell 命令(危险命令会被拦截)
324
+ file_info:查看文件元信息
325
+
326
+ === 示例 ===
327
+
328
+ 用户:"Linux 的作用有哪些,详细介绍,不少于3000字"
329
+ 你的输出(直接 answer,不调任何工具,不输出 PHASE 标签):
330
+ { "action_type": "answer", "content": "Linux 是一个开源的类 Unix 操作系统内核……(详细长文)", "is_done": true, "risk_level": "low" }
331
+
332
+ 用户:"继续"
333
+ 你的输出(基于上一轮继续,不拒绝、不搜索):
334
+ { "action_type": "answer", "content": "(接着上一轮的内容继续详细展开)", "is_done": true, "risk_level": "low" }
335
+
336
+ 用户:"读一下 package.json"
337
+ 你的输出(确实要读文件,调工具):
338
+ { "action_type": "tool_call", "tool_name": "read_file", "parameters": { "path": "package.json" }, "risk_level": "low" }
339
+
340
+ 用户:"现在改了哪些文件"
341
+ 你的输出(要查 Git):
342
+ { "action_type": "tool_call", "tool_name": "git_status", "parameters": {}, "risk_level": "low" }
343
+
344
+ === 安全约束 ===
345
+ - risk_level: low(只读)/ medium(写文件、常规 git 操作)/ high(rm、sudo、git reset --hard 等危险操作)
346
+ - 语言:除非用户特别要求,否则主要使用中文。
347
+ `;
348
+ }
251
349
  //# sourceMappingURL=protocolV2_2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocolV2_2.js","sourceRoot":"","sources":["../../src/agent/protocolV2_2.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,0DAsGC;AAqHD,wDAOC;AAKD,kEAeC;AAjQD,qDAAiE;AAQjE;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAA0B;IAChE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CtB,CAAC;IAEA,YAAY;IACZ,MAAM,eAAe,GAAG,IAAA,8CAA6B,GAAE,CAAC;IAExD,OAAO;IACP,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CxB,CAAC;IAEA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExD,OAAO,GAAG,YAAY,KAAK,eAAe,KAAK,cAAc,KAAK,YAAY,EAAE,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFZ,CAAC;QAEE,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO;;;;;CAKZ,CAAC;QAEE,KAAK,YAAY;YACf,OAAO;;;;;CAKZ,CAAC;QAEE;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO;;;;;CAKR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B;IACzC,OAAO;;;;;;;;;;;;;CAaR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"protocolV2_2.js","sourceRoot":"","sources":["../../src/agent/protocolV2_2.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,0DAsGC;AAqHD,wDAOC;AAKD,kEAeC;AAaD,0DAqFC;AAnWD,qDAAiE;AAQjE;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAA0B;IAChE,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CtB,CAAC;IAEA,YAAY;IACZ,MAAM,eAAe,GAAG,IAAA,8CAA6B,GAAE,CAAC;IAExD,OAAO;IACP,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CxB,CAAC;IAEA,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAExD,OAAO,GAAG,YAAY,KAAK,eAAe,KAAK,cAAc,KAAK,YAAY,EAAE,CAAC;AACnF,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAY;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFZ,CAAC;QAEE,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO;;;;;CAKZ,CAAC;QAEE,KAAK,YAAY;YACf,OAAO;;;;;CAKZ,CAAC;QAEE;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,sBAAsB;IACpC,OAAO;;;;;CAKR,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B;IACzC,OAAO;;;;;;;;;;;;;CAaR,CAAC;AACF,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,uBAAuB;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFR,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yuangs",
3
- "version": "6.9.21",
3
+ "version": "6.9.23",
4
4
  "description": "苑广山的个人应用集合 CLI(彩色版)",
5
5
  "author": "苑广山",
6
6
  "license": "ISC",
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"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"}