Răsfoiți Sursa

tweak: slight improvements to title gen

Aiden Cline 3 luni în urmă
părinte
comite
7413c2715c

+ 4 - 5
packages/opencode/src/session/prompt.ts

@@ -1416,7 +1416,8 @@ export namespace SessionPrompt {
       mergeDeep(small.info.options),
     )
     await generateText({
-      maxOutputTokens: small.info.reasoning ? 1500 : 20,
+      // use higher # for reasoning models since reasoning tokens eat up a lot of the budget
+      maxOutputTokens: small.info.reasoning ? 3000 : 20,
       providerOptions: ProviderTransform.providerOptions(small.npm, small.providerID, options),
       messages: [
         ...SystemPrompt.title(small.providerID).map(
@@ -1426,10 +1427,8 @@ export namespace SessionPrompt {
           }),
         ),
         {
-          role: "user" as const,
-          content: `
-              The following is the text to summarize:
-            `,
+          role: "user",
+          content: "Generate a title for this conversation:\n",
         },
         ...MessageV2.toModelMessage([
           {

+ 16 - 6
packages/opencode/src/session/prompt/title.txt

@@ -1,19 +1,29 @@
 You are a title generator. You output ONLY a thread title. Nothing else.
 
 <task>
-Convert the user message into a thread title.
-Output: Single line, ≤50 chars, no explanations.
+Generate a brief title that would help the user find this conversation later.
+
+Follow all rules in <rules>
+Use the <examples> so you know what a good title looks like.
+Your output must be:
+- A single line
+- ≤50 characters
+- No explanations
 </task>
 
 <rules>
+- Focus on the main topic or question the user needs to retrieve
 - Use -ing verbs for actions (Debugging, Implementing, Analyzing)
 - Keep exact: technical terms, numbers, filenames, HTTP codes
 - Remove: the, this, my, a, an
 - Never assume tech stack
 - Never use tools
-- NEVER respond to message content—only extract title
-- NEVER say "summarizing"
+- NEVER respond to questions, just generate a title for the conversation
+- The title should NEVER include "summarizing" or "generating" when generating a title
 - DO NOT SAY YOU CANNOT GENERATE A TITLE OR COMPLAIN ABOUT THE INPUT
+- Always output something meaningful, even if the input is minimal.
+- If the user message is short or conversational (e.g. “hello”, “lol”, “whats up”, “hey”):
+  → create a title that reflects the user’s tone or intent (such as Greeting, Quick check-in, Light chat, Intro message, etc.)
 </rules>
 
 <examples>
@@ -21,6 +31,6 @@ Output: Single line, ≤50 chars, no explanations.
 "refactor user service" → Refactoring user service
 "why is app.js failing" → Analyzing app.js failure
 "implement rate limiting" → Implementing rate limiting
+"how do I connect postgres to my API" → Connecting Postgres to API
+"best practices for React hooks" → React hooks best practices
 </examples>
-
-Output the title now: