修改guideline_prompt:只需要列出详细的工具调用步骤即可,不需要考虑回复用户的话术,步骤数量根据实际需求调整。

This commit is contained in:
朱潮 2025-12-04 13:50:25 +08:00
parent 25f8f7c98f
commit c58b20e56f
2 changed files with 26 additions and 6 deletions

View File

@ -18,7 +18,7 @@
- **优先级排序**: 确定任务执行顺序
### 3. 计划阶段 (Planning)
- **步骤制定**: 详细的执行步骤,步骤数量根据实际需求调整,每个步骤应具体可执行
- **步骤制定**: 只需要列出详细的工具调用步骤即可,不需要考虑回复用户的话术,步骤数量根据实际需求调整。
---

View File

@ -57,6 +57,25 @@ def append_user_last_message(messages: list, content: str) -> bool:
messages[-1]['content'] += content
return messages
def append_assistant_last_message(messages: list, content: str) -> bool:
"""向最后一条用户消息追加内容
Args:
messages: 消息列表
content: 要追加的内容
condition: 可选条件如果提供则检查消息角色是否匹配此条件
Returns:
bool: 是否成功追加内容
"""
if not messages or len(messages) == 0:
return messages
last_message = messages[-1]
if last_message and last_message.get('role') == 'assistant':
messages[-1]['content'] += content
else:
messages.append({"role":"assistant","content":content})
return messages
async def process_guidelines_and_terms(
@ -243,12 +262,12 @@ async def enhanced_generate_stream_response(
# 准备最终的消息
final_messages = messages.copy()
final_messages = append_user_last_message(final_messages, f"\n\nlanguage:{get_language_text(language)}")
if guideline_reasoning:
# 用###分割guideline_reasoning取最后一段作为Guidelines
guidelines_text = guideline_reasoning.split('###')[-1].strip() if guideline_reasoning else ""
final_messages = append_user_last_message(final_messages, f"\n\nGuidelines:\n{guidelines_text}\nPlease follow these guidelines step by step.")
final_messages = append_assistant_last_message(final_messages, f"language:{get_language_text(language)}\n\nGuidelines:\n{guidelines_text}\n I will follow these guidelines step by step.")
else:
final_messages = append_assistant_last_message(final_messages, f"\n\nlanguage:{get_language_text(language)}")
# 第三阶段agent响应流式传输
logger.info(f"Starting agent stream response")
@ -359,13 +378,14 @@ async def create_agent_and_generate_response(
# 准备最终的消息
final_messages = messages.copy()
final_messages = append_user_last_message(final_messages, f"\n\nlanguage:{get_language_text(language)}")
pre_message_list = []
if guideline_reasoning:
# 用###分割guideline_reasoning取最后一段作为Guidelines
guidelines_text = guideline_reasoning.split('###')[-1].strip() if guideline_reasoning else ""
final_messages = append_user_last_message(final_messages, f"\n\nGuidelines:\n{guidelines_text}\nPlease follow these guidelines step by step.")
final_messages = append_assistant_last_message(final_messages, f"language:{get_language_text(language)}\n\nGuidelines:\n{guidelines_text}\n I will follow these guidelines step by step.")
pre_message_list.append({"role": "assistant","reasoning_content": guideline_reasoning+ "\n"})
else:
final_messages = append_assistant_last_message(final_messages, f"\n\nlanguage:{get_language_text(language)}")
# 非流式响应
agent_responses = agent.run_nonstream(final_messages)