Hi! First of all, thank you for the project. We have been testing WindsurfPoolAPI in a private self-hosted/home-lab setup and it has been very useful for exposing Windsurf models through an OpenAI-compatible interface.
I wanted to open this issue to check whether other users have experienced similar behavior around tool/function calling.
Context
We are using WindsurfPoolAPI as part of a local agent stack, roughly like this:
- OMP / Pi Coding Agent / Hermes Agent
- CLIProxyAPI as a central OpenAI-compatible gateway
- WindsurfPoolAPI as a provider behind CLIProxyAPI
- Models such as
swe-1.6 and deepseek-v4
- Deployment through Docker/Coolify on a private Ubuntu Server, accessible only through Tailscale
So the path is generally:
OMP / Pi / Hermes
→ CLIProxyAPI
→ WindsurfPoolAPI
→ Windsurf Language Server / Windsurf models
I am not sure yet whether the issue is specific to our setup with Coolify + CLIProxyAPI, or whether it can also happen when using WindsurfPoolAPI directly.
Problem observed
In multiple agent clients, tool calls sometimes worked correctly, but in other cases the model output appeared as visible text instead of being parsed/executed as a structured tool call.
Examples of the kind of behavior we observed:
- The assistant would print something resembling a tool call in the chat instead of executing it.
- Files that should have been created by a tool call were not created.
- The agent would stop after emitting something that looked like a tool call.
- Some runs ended with no useful final answer after a tool operation.
- The behavior was intermittent: sometimes the same model/client path produced proper tool calls, sometimes it leaked tool-call-like markup into the visible response.
The issue appeared especially noticeable in coding-agent style workflows, where the user asks the agent to create/edit/validate files and then provide a final summary.
Affected clients in our tests
We observed this while experimenting with:
- OMP
- Pi Coding Agent
- Hermes Agent
- Telegram/Hermes workflows
- Windows and Ubuntu clients using the same backend gateway
This made it feel like the issue was not isolated to one frontend client.
What we changed locally
We made some local changes to improve the behavior in our environment, mainly around making the tool-call handling/parsing more tolerant of different model output formats.
We are not posting the exact patch in this issue yet because we first wanted to ask:
- Is this a known issue?
- Have other users seen similar tool-call parsing problems?
- Is there an expected/canonical tool-call format that WindsurfPoolAPI currently supports?
- Could this be caused by using WindsurfPoolAPI behind another OpenAI-compatible gateway such as CLIProxyAPI?
- Would you be interested in a reproduction case or in us sharing the local adjustments we made?
Why I am opening this issue
We managed to get our local stack working better after some adjustments, but before assuming our fix is generally useful, I wanted to check whether this behavior is known or expected.
If helpful, I can provide:
- examples of leaked tool-call outputs;
- a minimal reproduction request;
- details about our OpenAI-compatible request payload;
- information about the models involved;
- the local parser changes we made.
Thanks again for the project.
Hi! First of all, thank you for the project. We have been testing WindsurfPoolAPI in a private self-hosted/home-lab setup and it has been very useful for exposing Windsurf models through an OpenAI-compatible interface.
I wanted to open this issue to check whether other users have experienced similar behavior around tool/function calling.
Context
We are using WindsurfPoolAPI as part of a local agent stack, roughly like this:
swe-1.6anddeepseek-v4So the path is generally:
OMP / Pi / Hermes
→ CLIProxyAPI
→ WindsurfPoolAPI
→ Windsurf Language Server / Windsurf models
I am not sure yet whether the issue is specific to our setup with Coolify + CLIProxyAPI, or whether it can also happen when using WindsurfPoolAPI directly.
Problem observed
In multiple agent clients, tool calls sometimes worked correctly, but in other cases the model output appeared as visible text instead of being parsed/executed as a structured tool call.
Examples of the kind of behavior we observed:
The issue appeared especially noticeable in coding-agent style workflows, where the user asks the agent to create/edit/validate files and then provide a final summary.
Affected clients in our tests
We observed this while experimenting with:
This made it feel like the issue was not isolated to one frontend client.
What we changed locally
We made some local changes to improve the behavior in our environment, mainly around making the tool-call handling/parsing more tolerant of different model output formats.
We are not posting the exact patch in this issue yet because we first wanted to ask:
Why I am opening this issue
We managed to get our local stack working better after some adjustments, but before assuming our fix is generally useful, I wanted to check whether this behavior is known or expected.
If helpful, I can provide:
Thanks again for the project.