Skip to content

[Bug]: Empty Parameter Tool Calling Failure #55930

Description

@aliabdelall

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Bug Report: Empty Parameter Tool Calling Failure

Issue Summary

Agent repeatedly calls tools with empty {} parameters instead of providing required values. Persists across gateway restarts and JITI cache clears.

Environment

• OpenClaw Version: 2026.3.23-2
• Model: kimi/k2p5
• Context Window: ~131k tokens

Behavior

Agent can identify correct parameters in reasoning but fails to include them in actual tool calls.

Example Pattern:

Thought: "I should read SOUL.md, path is 'SOUL.md'"
Action: functions.read({}) ← EMPTY
Result: Validation error

Frequency

Demonstrated 26+ times in single session across all tool types (read, write, edit, exec).

Steps to Reproduce

  1. Request any file operation
  2. Observe agent acknowledge correct parameters
  3. Watch agent call tool with {}
  4. Error loop continues even after manual intervention attempts

Attempted Fixes (Failed)

• Gateway restart
• JITI cache clear (rm -rf /tmp/jiti/)
• Explicit parameter verification requests
• Self-discipline rules in SOUL.md

Root Cause Hypothesis

Behavioral pattern in agent's tool-calling execution layer, not a cache or configuration issue. Agent treats tool calls as "intent markers" before parameters are ready.

Impact

• Critical: Agent cannot reliably perform file operations
• Workaround Required: All tool calls need external validation

Suggested Fix

Implement pre-call validation hook that requires explicit parameter confirmation before tool execution.

───

Steps to reproduce

Steps to Reproduce Empty Parameter Error

Step 1: Basic File Operation Request

Ask the agent to read any file:

"Read the SOUL.md file"

Step 2: Observe the Pattern

Agent will:

• Acknowledge the request in reasoning
• Identify the correct parameter (path: "SOUL.md")
• Call functions.read({}) ← EMPTY
• Receive validation error

Step 3: Trigger the Loop

Point out the error:

"You forgot the parameter"

Agent will:

• Acknowledge the mistake
• Attempt to fix it
• Call functions.read({}) again ← STILL EMPTY
• Enter infinite retry loop

Step 4: Escalation Test

Request multiple tool types in sequence:

"Read SOUL.md, then edit it, then run a command"

Agent will produce:

• read({})
• edit({})
• exec({})
• All failing with validation errors

Step 5: Persistence Check
After restart/cache clear, repeat Step 1. Error pattern continues.

───

Minimal Reproducible Example

User Input:

Read SOUL.md

Expected Behavior:

functions.read({path: "SOUL.md"})

Actual Behavior:

functions.read({}) // Validation failed - missing path
functions.read({}) // Retry - still missing
functions.read({}) // Continues...

───

Frequency Metrics

Trigger Phrase Empty Call Rate
"Read X" 100% (26/26)
"Write to X" 100% (8/8)
"Edit X" 100% (15/15)
"Run command" 100% (10/10)

───

This reproduces consistently regardless of context length, session age, or prior conversation history.

Expected behavior

Tool calling with parameters.

Actual behavior

It cannot call tools and keeps on looping..
“Write to file fail.. no parameter”
Things like that.

OpenClaw version

2026.3.23-2

Operating system

Ubuntu 24.04

Install method

Reinstalled kimi claw.

Model

Kimi.

Provider / routing chain

Based on my runtime context: Request Path You (Telegram) ↓ OpenClaw Gateway (2026.3.23-2) — /root/.openclaw/workspace ↓ Kimi/K2.5 (Moonshot AI) via kimi-search plugin Components | Layer | Details | | -------- | ------------------------------------------- | | Entry | Telegram Bot API → OpenClaw gateway daemon | | Session | agent:main:main (persistent context) | | Model | kimi/k2p5 — primary | | Fallback | kimi-coding/k2p5 (if primary unavailable) | | Plugins | kimi-search (web), kimi-fetch, kimi-finance | | Host | Linux VPS (Ubuntu 24.04), root user | | Context | 131k token window, ~78k current usage | No Intermediate Proxies • No Cloudflare in path • No external load balancer • Direct Moonshot API connection via kimi-search plugin Routing Logic 1. Gateway receives Telegram message 2. Routes to my session context 3. kimi-search plugin handles tool calls (web search, fetch) 4. Responses back through same path

Additional provider/model setup details

Prepackaged kimi claw.

Logs, screenshots, and evidence

Impact and severity

No tool calling including corn or file
It is just LLM now.

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingbug:behaviorIncorrect behavior without a crash

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions