From 17c483dfa734ee42a73acf44d971b1c0c34e95e3 Mon Sep 17 00:00:00 2001 From: Autumn-27 <53844290+Autumn-27@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:36:34 -0400 Subject: [PATCH] =?UTF-8?q?fix(llm):=20=E8=BF=9E=E6=8E=A5=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E5=AF=B9=E6=8E=A8=E7=90=86=E6=A8=A1=E5=9E=8B=E6=94=BE?= =?UTF-8?q?=E8=B6=B3=20MaxTokens=EF=BC=8C=E9=81=BF=E5=85=8D=E5=8D=A1?= =?UTF-8?q?=E5=9C=A8=E6=80=9D=E8=80=83=E9=87=8C=E8=A2=AB=E6=88=AA=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TestConnection 原本 MaxTokens=32:推理模型(deepseek-v4-pro)对一句 ping 也会先烧 ~2900 思考 token,永远在"思考阶段"就撞输出上限(finish=length)被截断——连接虽算通 但显示成"已中断/length/resume"一团糟。抬到 8192 让它把 OK 干净吐完(finish=stop); 提示词也明确要求别思考。推理耗时不变(思考本就会发生),仅放行最终答案。 --- agent/provider.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/agent/provider.go b/agent/provider.go index 0e1938d..7a0a78e 100644 --- a/agent/provider.go +++ b/agent/provider.go @@ -201,12 +201,17 @@ func TestConnection(ctx context.Context, c Config) (time.Duration, error) { ctx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() start := time.Now() + // MaxTokens 要给足:推理模型(如 deepseek-v4-pro)在给出答案前会先产出一大段 + // 思考(实测对一句 "ping" 也能烧 ~2900 token)。若只给 32,模型会一直卡在"思考阶段" + // 就撞到输出上限(finish=length)、被截断,连接测试虽仍算通(err=nil)但显示成 + // "已中断/length/resume" 一团糟。给足预算让它把 OK 干净吐完(finish=stop)。 + // EscalateMaxTokens 保持 false:不因截断而抬额重试,避免 resume 循环空烧。 _, err = agentcore.Run(ctx, agentcore.Options{ Provider: prov, - SystemPrompt: []string{"你是连接测试。只回复 OK,不要别的。"}, + SystemPrompt: []string{"你是连接测试。直接输出两个字符 OK 即可,不要思考、不要解释、不要别的。"}, PermissionMode: acperm.ModeBypass, MaxTurns: 1, - MaxTokens: 32, + MaxTokens: 8192, }, "ping") return time.Since(start), err }