wavetermdev/waveterm · error
missing values parameter
Error message
missing values parameter
What it means
The tool callback successfully coerced input to a map but the required key "values" is absent. The tool's JSON schema declares "values" as required, so a call omitting it violates the contract and this error is returned to the model so it can retry with correct arguments.
Source
Thrown at pkg/aiusechat/tools.go:294
"type": "array",
"items": map[string]any{
"type": "integer",
},
"description": "Array of numbers to add together",
},
},
"required": []string{"values"},
"additionalProperties": false,
},
ToolAnyCallback: func(input any, toolUseData *uctypes.UIMessageDataToolUse) (any, error) {
inputMap, ok := input.(map[string]any)
if !ok {
return nil, fmt.Errorf("invalid input format")
}
valuesInterface, ok := inputMap["values"]
if !ok {
return nil, fmt.Errorf("missing values parameter")
}
valuesSlice, ok := valuesInterface.([]any)
if !ok {
return nil, fmt.Errorf("values must be an array")
}
if len(valuesSlice) == 0 {
return 0, nil
}
sum := 0
for i, val := range valuesSlice {
floatVal, ok := val.(float64)
if !ok {
return nil, fmt.Errorf("value at index %d is not a number", i)
}
sum += int(floatVal)View on GitHub (pinned to a4447c1563)
Solutions
- Include the required "values" key in the tool arguments: {"values": [1,2,3]}
- Improve the tool description/prompt so the model uses the exact parameter name "values"
- If the schema is rendered for the model, confirm the required:["values"] constraint is being advertised to the client
Example fix
// before
anySum({})
// after
anySum({"values": [1, 2, 3]}) Defensive patterns
Strategy: validation
Validate before calling
m, ok := raw.(map[string]any); if !ok { return errors.New("input not an object") }; if _, ok := m["values"]; !ok { return errors.New("values is required") } Type guard
func hasValues(m map[string]any) bool { _, ok := m["values"]; return ok } Try / catch
out, err := tool.Call(input); if err != nil && strings.Contains(err.Error(), "missing values") { retryWithCorrection(err.Error()) } Prevention
- Name the parameter explicitly in prompts/tool descriptions so models use "values"
- Keep required:["values"] advertised in the schema sent to the model
- Validate arguments client-side before dispatching the tool call
When it happens
Trigger: LLM invokes the any-sum tool with an object that lacks the "values" key, e.g. {} or {"numbers": [1,2]} — schema-required parameter missing from the arguments map.
Common situations: Model hallucinating alternate parameter names (numbers, list, items); truncation of generated arguments; hand-written tool call payloads missing the key; prompt instructions that don't name the parameter explicitly.
Understand the failure class
Background: "missing required argument" and "the following required arguments were not provided": what required-argument errors mean and how to fix them — this error's family across 20 libraries.
Related errors
- invalid input format
- missing contents parameter
- missing edits parameter
- values must be an array
- value at index %d is not a number
AI-assisted analysis of wavetermdev/waveterm@a4447c1563 (2026-09-01).
Data as JSON: /api/errors/2c33a44c6aa238be.
Report an issue: GitHub.