yuangs 6.9.22 → 6.9.24
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/dist/agent/ExecutionStabilizer.js +3 -1
- package/dist/agent/ExecutionStabilizer.js.map +1 -1
- package/dist/agent/llmAdapter.d.ts +1 -0
- package/dist/agent/llmAdapter.js +76 -52
- package/dist/agent/llmAdapter.js.map +1 -1
- package/dist/agent/protocolV2_2.d.ts +12 -0
- package/dist/agent/protocolV2_2.js +99 -0
- package/dist/agent/protocolV2_2.js.map +1 -1
- package/package.json +1 -1
- package/dist/agent/prompt.js.map +0 -1
|
@@ -83,7 +83,9 @@ class StabilizationDetector {
|
|
|
83
83
|
renderAndFinish(context, output, agentRenderer) {
|
|
84
84
|
context.addMessage('assistant', output);
|
|
85
85
|
if (agentRenderer) {
|
|
86
|
-
|
|
86
|
+
// 将工具结果写入 buffer(而非清空),否则 finish() 在 quietMode 下
|
|
87
|
+
// 因 buffer 为空而不输出任何内容(工具结果只进了对话历史,终端看不到)。
|
|
88
|
+
agentRenderer.buffer = output;
|
|
87
89
|
agentRenderer.quietMode = true;
|
|
88
90
|
agentRenderer.finish();
|
|
89
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionStabilizer.js","sourceRoot":"","sources":["../../src/agent/ExecutionStabilizer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ExecutionStabilizer.js","sourceRoot":"","sources":["../../src/agent/ExecutionStabilizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
package/dist/agent/llmAdapter.js
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
//
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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:
|
|
81
|
-
type:
|
|
103
|
+
isDone: true,
|
|
104
|
+
type: 'answer',
|
|
82
105
|
payload: {
|
|
83
|
-
|
|
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:
|
|
99
|
-
type:
|
|
100
|
-
payload: {
|
|
101
|
-
|
|
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,
|
|
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,102 @@ 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
|
+
- 严格满足用户明确要求的篇幅/字数/条数:若要求"不少于 N 字""详细介绍""分 N 点",必须给出充分展开、详尽完整的长回答,不要简短敷衍。
|
|
279
|
+
|
|
280
|
+
2. **只有当问题确实需要操作用户本地环境时,才调用工具。**
|
|
281
|
+
- 读取/查看/分析用户指定的具体文件 → read_file
|
|
282
|
+
- 在项目里搜索代码/文本 → search_in_files / search_symbol
|
|
283
|
+
- 查看或操作 Git → git_status / git_diff / git_log
|
|
284
|
+
- 执行 shell 命令、运行测试、构建 → shell_cmd
|
|
285
|
+
- 写入/修改文件 → write_file
|
|
286
|
+
只要问题不涉及"本地文件/命令行/Git/项目代码",就一定不要调工具。
|
|
287
|
+
|
|
288
|
+
3. **不要把整句话当搜索词。** 只有用户明确要在文件里找东西时才搜索,且用关键词,不要把自然语言提问原样塞进 pattern。
|
|
289
|
+
|
|
290
|
+
=== 输出格式(唯一允许的格式)===
|
|
291
|
+
|
|
292
|
+
每次只输出一个 JSON 对象,不要输出 JSON 之外的文字、代码块标记或阶段标签。
|
|
293
|
+
|
|
294
|
+
情况 A —— 直接回答(绝大多数情况,优先使用):
|
|
295
|
+
{
|
|
296
|
+
"action_type": "answer",
|
|
297
|
+
"content": "你的完整回答,支持 Markdown,可以很长",
|
|
298
|
+
"is_done": true,
|
|
299
|
+
"risk_level": "low"
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
情况 B —— 调用工具(仅当确实要操作本地环境):
|
|
303
|
+
{
|
|
304
|
+
"action_type": "tool_call",
|
|
305
|
+
"tool_name": "工具名",
|
|
306
|
+
"parameters": { "参数": "值" },
|
|
307
|
+
"risk_level": "low"
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
(可选)执行 shell 命令:
|
|
311
|
+
{
|
|
312
|
+
"action_type": "shell_cmd",
|
|
313
|
+
"command": "命令",
|
|
314
|
+
"risk_level": "medium"
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
=== 可用工具(仅在确实需要时使用)===
|
|
318
|
+
|
|
319
|
+
read_file / read_file_lines / read_file_lines_from_end:读取文件内容
|
|
320
|
+
list_files / list_directory_tree:列出目录与项目结构
|
|
321
|
+
search_in_files:在文件中搜索文本(类似 grep);search_symbol:搜索代码符号(函数/类/接口)
|
|
322
|
+
write_file / append_file:写入或追加文件
|
|
323
|
+
git_status / git_diff / git_log:查看 Git 状态/差异/历史
|
|
324
|
+
shell_cmd:执行 shell 命令(危险命令会被拦截)
|
|
325
|
+
file_info:查看文件元信息
|
|
326
|
+
|
|
327
|
+
=== 示例 ===
|
|
328
|
+
|
|
329
|
+
用户:"Linux 的作用有哪些,详细介绍,不少于3000字"
|
|
330
|
+
你的输出(直接 answer,不调任何工具,不输出 PHASE 标签):
|
|
331
|
+
{ "action_type": "answer", "content": "Linux 是一个开源的类 Unix 操作系统内核……(详细长文)", "is_done": true, "risk_level": "low" }
|
|
332
|
+
|
|
333
|
+
用户:"继续"
|
|
334
|
+
你的输出(基于上一轮继续,不拒绝、不搜索):
|
|
335
|
+
{ "action_type": "answer", "content": "(接着上一轮的内容继续详细展开)", "is_done": true, "risk_level": "low" }
|
|
336
|
+
|
|
337
|
+
用户:"读一下 package.json"
|
|
338
|
+
你的输出(确实要读文件,调工具):
|
|
339
|
+
{ "action_type": "tool_call", "tool_name": "read_file", "parameters": { "path": "package.json" }, "risk_level": "low" }
|
|
340
|
+
|
|
341
|
+
用户:"现在改了哪些文件"
|
|
342
|
+
你的输出(要查 Git):
|
|
343
|
+
{ "action_type": "tool_call", "tool_name": "git_status", "parameters": {}, "risk_level": "low" }
|
|
344
|
+
|
|
345
|
+
=== 安全约束 ===
|
|
346
|
+
- risk_level: low(只读)/ medium(写文件、常规 git 操作)/ high(rm、sudo、git reset --hard 等危险操作)
|
|
347
|
+
- 语言:除非用户特别要求,否则主要使用中文。
|
|
348
|
+
`;
|
|
349
|
+
}
|
|
251
350
|
//# 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;
|
|
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,0DAsFC;AApWD,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoFR,CAAC;AACF,CAAC"}
|
package/package.json
CHANGED
package/dist/agent/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agent/prompt.ts"],"names":[],"mappings":"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"}
|