fix: 子代理工具结果不再截断,num_ctx跟随主AI设置

This commit is contained in:
thzxx
2026-06-20 14:24:42 +08:00
parent 730518a38a
commit f1533b07b0
+3 -8
View File
@@ -89,7 +89,7 @@ ${context ? `\n附加上下文:\n${context}` : ''}`;
stream: true, stream: true,
think: false, think: false,
tools: tools as any, tools: tools as any,
options: { num_ctx: 16384, temperature: 0.3 } options: { num_ctx: state.get<number>(KEYS.NUM_CTX, 24576), temperature: 0.3 }
} as any, (chunk: any) => { } as any, (chunk: any) => {
if (chunk.message?.content) content += chunk.message.content; if (chunk.message?.content) content += chunk.message.content;
if (chunk.message?.tool_calls?.length) { if (chunk.message?.tool_calls?.length) {
@@ -141,13 +141,8 @@ ${context ? `\n附加上下文:\n${context}` : ''}`;
return { success: true, content: '达到最大轮次限制', loops: loopCount, duration: Date.now() - startTime, partial: true }; return { success: true, content: '达到最大轮次限制', loops: loopCount, duration: Date.now() - startTime, partial: true };
} }
/** 简洁格式化工具结果给子代理 */ /** 格式化工具结果给子代理(不截断,和主AI一致) */
function formatResult(name: string, r: ToolResult): string { function formatResult(name: string, r: ToolResult): string {
if (!r.success) return JSON.stringify({ success: false, error: r.error }); if (!r.success) return JSON.stringify({ success: false, error: r.error });
switch (name) { return JSON.stringify(r);
case 'web_search': return JSON.stringify({ success: true, query: r.query, total: r.total, results: (r.results as any[])?.slice(0, 8) });
case 'web_fetch': return JSON.stringify({ success: true, url: r.url, content: String(r.content || '').slice(0, 5000) });
case 'read_file': return JSON.stringify({ success: true, path: r.path, content: String(r.content || '').slice(0, 5000) });
default: return JSON.stringify(r);
}
} }