fix: reinforce no-project-inference in system prompt; filter tool messages from title generation
This commit is contained in:
@@ -122,10 +122,13 @@ async def _generate_title(messages: list[dict], user_id: int) -> str:
|
||||
# Build conversation text like summarize_conversation_as_note
|
||||
conv_lines = []
|
||||
for m in messages:
|
||||
if m["role"] == "system":
|
||||
if m["role"] in ("system", "tool"):
|
||||
continue
|
||||
label = "User" if m["role"] == "user" else "Assistant"
|
||||
conv_lines.append(f"{label}: {m['content']}")
|
||||
content = m.get("content", "")
|
||||
if not content:
|
||||
continue
|
||||
conv_lines.append(f"{label}: {content}")
|
||||
# Keep only last 6 pairs worth of text
|
||||
conv_lines = conv_lines[-12:]
|
||||
|
||||
|
||||
@@ -538,6 +538,11 @@ async def build_context(
|
||||
"Delete tools require an explicit user request. "
|
||||
"Never proactively search notes or comment on absent context."
|
||||
)
|
||||
tool_lines.append(
|
||||
"IMPORTANT: When creating tasks or notes, NEVER infer or guess a project name. "
|
||||
"Only set the project parameter if the user explicitly names a project. "
|
||||
"If the user says 'create a task to buy milk', do NOT assign it to a project."
|
||||
)
|
||||
tool_guidance = "\n".join(tool_lines)
|
||||
|
||||
static_block = (
|
||||
|
||||
Reference in New Issue
Block a user