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
|
# Build conversation text like summarize_conversation_as_note
|
||||||
conv_lines = []
|
conv_lines = []
|
||||||
for m in messages:
|
for m in messages:
|
||||||
if m["role"] == "system":
|
if m["role"] in ("system", "tool"):
|
||||||
continue
|
continue
|
||||||
label = "User" if m["role"] == "user" else "Assistant"
|
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
|
# Keep only last 6 pairs worth of text
|
||||||
conv_lines = conv_lines[-12:]
|
conv_lines = conv_lines[-12:]
|
||||||
|
|
||||||
|
|||||||
@@ -538,6 +538,11 @@ async def build_context(
|
|||||||
"Delete tools require an explicit user request. "
|
"Delete tools require an explicit user request. "
|
||||||
"Never proactively search notes or comment on absent context."
|
"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)
|
tool_guidance = "\n".join(tool_lines)
|
||||||
|
|
||||||
static_block = (
|
static_block = (
|
||||||
|
|||||||
Reference in New Issue
Block a user