mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-10-15 12:15:32 +00:00
fix: 修复 Tool Calls 格式 - 保留 assistant 的 tool_calls 消息
This commit is contained in:
@ -582,6 +582,7 @@ class OpenClawClient:
|
|||||||
|
|
||||||
# 用于累积工具结果
|
# 用于累积工具结果
|
||||||
tool_results = []
|
tool_results = []
|
||||||
|
last_assistant_msg = None
|
||||||
|
|
||||||
# 首次请求
|
# 首次请求
|
||||||
response = self.send_message(user_input, tool_results)
|
response = self.send_message(user_input, tool_results)
|
||||||
@ -593,6 +594,13 @@ class OpenClawClient:
|
|||||||
if message.content:
|
if message.content:
|
||||||
print(f"\n[模型] {message.content}")
|
print(f"\n[模型] {message.content}")
|
||||||
|
|
||||||
|
# 保存包含 tool_calls 的 assistant 消息
|
||||||
|
last_assistant_msg = {
|
||||||
|
"role": "assistant",
|
||||||
|
"content": message.content,
|
||||||
|
"tool_calls": [{"id": tc.id, "function": {"name": tc.function.name, "arguments": tc.function.arguments}} for tc in message.tool_calls]
|
||||||
|
}
|
||||||
|
|
||||||
# 执行所有工具调用
|
# 执行所有工具调用
|
||||||
for tool_call in message.tool_calls:
|
for tool_call in message.tool_calls:
|
||||||
tool_name = tool_call.function.name
|
tool_name = tool_call.function.name
|
||||||
@ -609,11 +617,16 @@ class OpenClawClient:
|
|||||||
"content": result
|
"content": result
|
||||||
})
|
})
|
||||||
|
|
||||||
# 继续调用 - 只包含 system + tool_results + user(不再重复添加)
|
# 继续调用 - 包含 system + assistant消息(with tool_calls) + tool_results + user
|
||||||
|
messages = [{"role": "system", "content": self.system_prompt}]
|
||||||
|
if last_assistant_msg:
|
||||||
|
messages.append(last_assistant_msg)
|
||||||
|
messages.extend(tool_results)
|
||||||
|
messages.append({"role": "user", "content": user_input})
|
||||||
|
|
||||||
response = self.client.chat.completions.create(
|
response = self.client.chat.completions.create(
|
||||||
model=MODEL_NAME,
|
model=MODEL_NAME,
|
||||||
messages=[{"role": "system", "content": self.system_prompt}] + tool_results +
|
messages=messages,
|
||||||
[{"role": "user", "content": user_input}],
|
|
||||||
tools=self.tools
|
tools=self.tools
|
||||||
)
|
)
|
||||||
message = response.choices[0].message
|
message = response.choices[0].message
|
||||||
|
|||||||
Reference in New Issue
Block a user