tools: return empty arguments object instead of null (#11113)

This commit is contained in:
Jeffrey Morgan
2025-06-18 05:20:43 -07:00
committed by GitHub
parent 6bda1d2479
commit 55bbf3b4a1
2 changed files with 17 additions and 12 deletions

View File

@@ -115,11 +115,10 @@ func (p *Parser) findTag() (int, bool) {
// parseToolCall finds the next complete tool call in the buffer // parseToolCall finds the next complete tool call in the buffer
// incrementing n and advancing the buffer. // incrementing n and advancing the buffer.
func (p *Parser) parseToolCall() *api.ToolCall { func (p *Parser) parseToolCall() *api.ToolCall {
var args map[string]any
var tool *api.Tool var tool *api.Tool
var end int = len(p.buffer) var end int = len(p.buffer)
var i int var i int
// find tool name // find tool name
for _, t := range p.tools { for _, t := range p.tools {
n := t.Function.Name n := t.Function.Name
@@ -136,6 +135,7 @@ func (p *Parser) parseToolCall() *api.ToolCall {
} }
// only look for arguments if the tool has parameters // only look for arguments if the tool has parameters
args := map[string]any{}
if len(tool.Function.Parameters.Properties) > 0 { if len(tool.Function.Parameters.Properties) > 0 {
if args, i = p.findArguments(*tool); args == nil { if args, i = p.findArguments(*tool); args == nil {
return nil return nil

View File

@@ -190,8 +190,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
@@ -265,8 +266,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
{ {
@@ -413,8 +415,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
@@ -441,8 +444,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },
@@ -577,8 +581,9 @@ func TestParser(t *testing.T) {
calls: []api.ToolCall{ calls: []api.ToolCall{
{ {
Function: api.ToolCallFunction{ Function: api.ToolCallFunction{
Index: 0, Index: 0,
Name: "say_hello", Name: "say_hello",
Arguments: api.ToolCallFunctionArguments{},
}, },
}, },
}, },