This commit is contained in:
Cheney 2026-08-16 22:10:00 +08:00
parent 422a4b9d71
commit 9ad61eef3b

View File

@ -70,6 +70,7 @@ async function log(level: string, category: string, data: any) {
try {
if (!existsSync(LOG_DIR)) await mkdir(LOG_DIR, { recursive: true });
await appendFile(`${LOG_DIR}/chat-${ts.slice(0, 10)}.log`, line, "utf-8");
await appendFile(`${LOG_DIR}/global.log`, line, "utf-8");
} catch {
/* 忽略日志写入失败 */
}
@ -457,8 +458,9 @@ async function runConversation(initialMessages: ChatMsg[], res: any, fromApprova
messages: messages.map((m) => ({ role: m.role, content: clip(m.content, 800) })),
});
// 工具循环(最多 5 轮避免死循环)
for (let round = 0; round < 5; round++) {
// 工具循环(最多 10 轮避免死循环)
for (let round = 0; round < 10; round++) {
log("debug", "round_start", { round: round + 1, pendingMessages: messages.length });
const gen = streamLLM(messages);
let content = "";
let toolCall: any = null;
@ -475,6 +477,7 @@ async function runConversation(initialMessages: ChatMsg[], res: any, fromApprova
sseSend(res, { type: "token", content: "\n\n⚠ " + ev.content });
}
}
log("debug", "assistant_round", { round: round + 1, content: clip(content, 1000), wantsTool: !!toolCall });
if (errored) { sseSend(res, { type: "done" }); res.end(); return; }
@ -526,6 +529,7 @@ async function runConversation(initialMessages: ChatMsg[], res: any, fromApprova
return;
}
log("warn", "round_limit", { round: 10 });
sseSend(res, { type: "token", content: "\n[达到最大工具调用轮数]" });
sseSend(res, { type: "done" });
res.end();