From c330e40531e77e570e47c01364ed21a958aa6426 Mon Sep 17 00:00:00 2001 From: LindenWang Date: Mon, 3 Nov 2025 19:19:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=BD=93=E5=89=8DBTC/ETH=E4=B8=8E=E4=B8=BB?= =?UTF-8?q?=E6=B5=81=E5=B8=81=E6=9D=A0=E6=9D=86=E5=80=8D=E6=95=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=8D=E4=B8=80=E8=87=B4=E5=B9=B6=E4=B8=94=E5=BC=80?= =?UTF-8?q?=E4=BB=93=E5=8F=AA=E6=9C=89BTC=E6=97=B6,=E5=A4=A7=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=E4=BC=9A=E8=BF=94=E5=9B=9E=E5=85=B6=E4=BB=96=E5=B8=81?= =?UTF-8?q?=E7=A7=8D=E7=9A=84=E5=BC=80=E4=BB=93=E5=80=8D=E6=95=B0=E4=B8=8E?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E6=8C=81=E4=BB=93BTC=E5=80=8D=E6=95=B0?= =?UTF-8?q?=E4=B8=80=E8=87=B4,=E5=AF=BC=E8=87=B4=E5=BC=80=E4=BB=93?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- decision/engine.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/decision/engine.go b/decision/engine.go index df48d534..2866997c 100644 --- a/decision/engine.go +++ b/decision/engine.go @@ -114,13 +114,18 @@ func GetFullDecisionWithCustomPrompt(ctx *Context, mcpClient *mcp.Client, custom // 4. 解析AI响应 decision, err := parseFullDecisionResponse(aiResponse, ctx.Account.TotalEquity, ctx.BTCETHLeverage, ctx.AltcoinLeverage) + + // 无论是否有错误,都要保存 SystemPrompt 和 UserPrompt(用于调试和决策未执行后的问题定位) + if decision != nil { + decision.Timestamp = time.Now() + decision.SystemPrompt = systemPrompt // 保存系统prompt + decision.UserPrompt = userPrompt // 保存输入prompt + } + if err != nil { return decision, fmt.Errorf("解析AI响应失败: %w", err) } - decision.Timestamp = time.Now() - decision.SystemPrompt = systemPrompt // 保存系统prompt - decision.UserPrompt = userPrompt // 保存输入prompt return decision, nil } @@ -264,9 +269,10 @@ func buildSystemPrompt(accountEquity float64, btcEthLeverage, altcoinLeverage in sb.WriteString("# 硬约束(风险控制)\n\n") sb.WriteString("1. 风险回报比: 必须 ≥ 1:3(冒1%风险,赚3%+收益)\n") sb.WriteString("2. 最多持仓: 3个币种(质量>数量)\n") - sb.WriteString(fmt.Sprintf("3. 单币仓位: 山寨%.0f-%.0f U(%dx杠杆) | BTC/ETH %.0f-%.0f U(%dx杠杆)\n", - accountEquity*0.8, accountEquity*1.5, altcoinLeverage, accountEquity*5, accountEquity*10, btcEthLeverage)) - sb.WriteString("4. 保证金: 总使用率 ≤ 90%\n\n") + sb.WriteString(fmt.Sprintf("3. 单币仓位: 山寨%.0f-%.0f U | BTC/ETH %.0f-%.0f U\n", + accountEquity*0.8, accountEquity*1.5, accountEquity*5, accountEquity*10)) + sb.WriteString(fmt.Sprintf("4. 杠杆限制: **山寨币最大%dx杠杆** | **BTC/ETH最大%dx杠杆** (⚠️ 严格执行,不可超过)\n", altcoinLeverage, btcEthLeverage)) + sb.WriteString("5. 保证金: 总使用率 ≤ 90%\n\n") // 3. 输出格式 - 动态生成 sb.WriteString("#输出格式\n\n")