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")
|
system_message = tool_result.get("system_message")
|
||||||
if system_message:
|
if system_message:
|
||||||
self._record_sub_agent_message(system_message, tool_result.get("task_id"), inline=False)
|
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. 在终端显示执行信息(不保存到历史)
|
# 4. 在终端显示执行信息(不保存到历史)
|
||||||
if collected_tool_calls:
|
if collected_tool_calls:
|
||||||
|
|||||||
@ -161,8 +161,7 @@ class TodoManager:
|
|||||||
todo["forced_finish"] = False
|
todo["forced_finish"] = False
|
||||||
todo["forced_reason"] = None
|
todo["forced_reason"] = None
|
||||||
self._save(todo)
|
self._save(todo)
|
||||||
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报。"
|
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报,如果已经进行过汇报,请忽略这条信息。"
|
||||||
self.context_manager.add_conversation("system", system_note)
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"message": "所有任务已完成,待办列表已结束。",
|
"message": "所有任务已完成,待办列表已结束。",
|
||||||
|
|||||||
@ -162,7 +162,6 @@ class TodoManager:
|
|||||||
todo["forced_reason"] = None
|
todo["forced_reason"] = None
|
||||||
self._save(todo)
|
self._save(todo)
|
||||||
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报。"
|
system_note = "✅ TODO 列表中的所有任务已完成,可以整理成果并向用户汇报。"
|
||||||
self.context_manager.add_conversation("system", system_note)
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"message": "所有任务已完成,待办列表已结束。",
|
"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
|
system_message = result_data.get("system_message") if isinstance(result_data, dict) else None
|
||||||
if system_message:
|
if system_message:
|
||||||
web_terminal._record_sub_agent_message(system_message, result_data.get("task_id"), inline=False)
|
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继续对话)
|
# 添加到消息历史(用于API继续对话)
|
||||||
messages.append({
|
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
|
system_message = result_data.get("system_message") if isinstance(result_data, dict) else None
|
||||||
if system_message:
|
if system_message:
|
||||||
web_terminal._record_sub_agent_message(system_message, result_data.get("task_id"), inline=False)
|
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继续对话)
|
# 添加到消息历史(用于API继续对话)
|
||||||
messages.append({
|
messages.append({
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user