Просмотр исходного кода

fix: user invoked subtasks causing tool_use or missing thinking signa… (#5650)

Aiden Cline 2 месяцев назад
Родитель
Сommit
5f57cee8e4
2 измененных файлов с 25 добавлено и 0 удалено
  1. 1 0
      .opencode/command/commit.md
  2. 24 0
      packages/opencode/src/session/prompt.ts

+ 1 - 0
.opencode/command/commit.md

@@ -1,6 +1,7 @@
 ---
 description: git commit and push
 model: opencode/glm-4.6
+subtask: true
 ---
 
 commit and push

+ 24 - 0
packages/opencode/src/session/prompt.ts

@@ -396,6 +396,30 @@ export namespace SessionPrompt {
             },
           } satisfies MessageV2.ToolPart)
         }
+
+        // Add synthetic user message to prevent certain reasoning models from erroring
+        // If we create assistant messages w/ out user ones following mid loop thinking signatures
+        // will be missing and it can cause errors for models like gemini for example
+        const summaryUserMsg: MessageV2.User = {
+          id: Identifier.ascending("message"),
+          sessionID,
+          role: "user",
+          time: {
+            created: Date.now(),
+          },
+          agent: lastUser.agent,
+          model: lastUser.model,
+        }
+        await Session.updateMessage(summaryUserMsg)
+        await Session.updatePart({
+          id: Identifier.ascending("part"),
+          messageID: summaryUserMsg.id,
+          sessionID,
+          type: "text",
+          text: "Summarize the task tool output above and continue with your task.",
+          synthetic: true,
+        } satisfies MessageV2.TextPart)
+
         continue
       }