fix: ensure todo system note follows tool result
This commit is contained in:
parent
5bd61ae80d
commit
20ff71bda0
@ -605,6 +605,15 @@ class MainTerminal:
|
||||
system_message = tool_result.get("system_message")
|
||||
if system_message:
|
||||
self._record_sub_agent_message(system_message, tool_result.get("task_id"), inline=False)
|
||||
# 补充TODO完成提示,放在tool消息之后保证格式正确
|
||||
todo_note = None
|
||||
try:
|
||||
parsed = json.loads(tool_result["content"])
|
||||
todo_note = parsed.get("system_note")
|
||||
except Exception:
|
||||
todo_note = None
|
||||
if todo_note:
|
||||
self.context_manager.add_conversation("system", todo_note)
|
||||
|
||||
# 4. 在终端显示执行信息(不保存到历史)
|
||||
if collected_tool_calls:
|
||||
|
||||
@ -161,8 +161,7 @@ class TodoManager:
|
||||
todo["forced_finish"] = False
|
||||
todo["forced_reason"] = None
|
||||
self._save(todo)
|
||||
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报。"
|
||||
self.context_manager.add_conversation("system", system_note)
|
||||
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报,如果已经进行过汇报,请忽略这条信息。"
|
||||
return {
|
||||
"success": True,
|
||||
"message": "所有任务已完成,待办列表已结束。",
|
||||
|
||||
@ -162,7 +162,6 @@ class TodoManager:
|
||||
todo["forced_reason"] = None
|
||||
self._save(todo)
|
||||
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报。"
|
||||
self.context_manager.add_conversation("system", system_note)
|
||||
return {
|
||||
"success": True,
|
||||
"message": "所有任务已完成,待办列表已结束。",
|
||||
|
||||
@ -4121,6 +4121,9 @@ async def handle_task_with_sender(terminal: WebTerminal, message, sender, client
|
||||
system_message = result_data.get("system_message") if isinstance(result_data, dict) else None
|
||||
if system_message:
|
||||
web_terminal._record_sub_agent_message(system_message, result_data.get("task_id"), inline=False)
|
||||
todo_note = result_data.get("system_note") if isinstance(result_data, dict) else None
|
||||
if todo_note:
|
||||
web_terminal.context_manager.add_conversation("system", todo_note)
|
||||
|
||||
# 添加到消息历史(用于API继续对话)
|
||||
messages.append({
|
||||
|
||||
@ -3426,6 +3426,9 @@ async def handle_task_with_sender(terminal: WebTerminal, message, sender, client
|
||||
system_message = result_data.get("system_message") if isinstance(result_data, dict) else None
|
||||
if system_message:
|
||||
web_terminal._record_sub_agent_message(system_message, result_data.get("task_id"), inline=False)
|
||||
todo_note = result_data.get("system_note") if isinstance(result_data, dict) else None
|
||||
if todo_note:
|
||||
web_terminal.context_manager.add_conversation("system", todo_note)
|
||||
|
||||
# 添加到消息历史(用于API继续对话)
|
||||
messages.append({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user