diff --git a/neo/assistant/api.go b/neo/assistant/api.go
index 33ef8ec079..35f488ee51 100644
--- a/neo/assistant/api.go
+++ b/neo/assistant/api.go
@@ -497,7 +497,8 @@ func (ast *Assistant) withPrompts(messages []chatMessage.Message) []chatMessage.
// Add tool_calls
if ast.Tools != nil && ast.Tools.Tools != nil && len(ast.Tools.Tools) > 0 {
- if settings, has := connectorSettings[ast.Connector]; has && !settings.Tools {
+ settings, has := connectorSettings[ast.Connector]
+ if !has || !settings.Tools {
raw, _ := jsoniter.MarshalToString(ast.Tools.Tools)
messages = append(messages, *chatMessage.New().Map(map[string]interface{}{
"role": "system",
@@ -515,13 +516,13 @@ func (ast *Assistant) withPrompts(messages []chatMessage.Message) []chatMessage.
messages = append(messages, *chatMessage.New().Map(map[string]interface{}{
"role": "system",
"content": "## Tool Calls Response Rules:\n" +
- "1. The response should be a valid JSON object.\n" +
- "2. The JSON object should be wrapped by and .\n" +
- "3. The structure of the JSON object is { \"arguments\": {...}, function:\"function_name\"}\n" +
- "4. The function_name should be the name of the function defined in tool_calls.\n" +
- "5. The arguments should be the arguments of the function defined in tool_calls.\n" +
- "6. Do not add any additional information to the response.\n" +
- "7. e.g: {\"arguments\":{\"assistant_id\":\"xxxx\"},\"function\":\"select_assistant\"}",
+ "1. The response should be a valid JSON object:\n" +
+ " 1.1. e.g: {\"arguments\":{\"assistant_id\":\"xxxx\"},\"function\":\"select_assistant\"}\n" +
+ " 1.2. strict the example format, do not add any additional information.\n" +
+ " 1.3. The JSON object should be wrapped by and .\n" +
+ "2. The structure of the JSON object is { \"arguments\": {...}, function:\"function_name\"}\n" +
+ "3. The function_name should be the name of the function defined in tool_calls.\n" +
+ "4. The arguments should be the arguments of the function defined in tool_calls.\n",
}))
// Add tool_calls prompts