Computer use tool limitations
2026-07-038 turns10,788 charsgpt-5-3-mini
Summary
User sought C-based solutions for hermes but lacked computer_use tool access in their session.
Messages
computer_use tool available in my current session. The computer_use tool is a separate capability that needs to be loaded
I don’t actually have a “computer_use” tool available in this session.
The tools I can use here are things like web search, Python execution, image generation, and a few structured widgets—but I can’t directly control or operate a live computer environment (open apps, click around an OS, etc.).
If you were expecting to automate something, you’ve got a few options depending on what you’re trying to do:
- If it’s system automation (files, scripts, local workflows), I can help you write a script (Python, shell, AppleScript, etc.)
- If it’s browser/UI automation, I can help you set up Playwright or Selenium
- If it’s an agent setup (like “computer use” style models), I can help you design or prompt one
Tell me what you were trying to accomplish with it and I’ll map you to the closest working setup.
gpt-5-3-mini
this is for hermes
Got it — this is about Hermes, not this chat session.
If Hermes is expecting a `computer_use` tool and saying it needs to be “loaded,” that usually means one of these things is missing in its runtime:
### 1. Tool not registered in Hermes’ tool schema
Hermes likely has a tool registry (OpenAI-style or custom). You need something like:
```json
{
"name": "computer_use",
"description": "Controls a local or remote computer environment (browser/OS automation)",
"parameters": { ... }
}
```
If that’s not defined, Hermes will *think* it exists but can’t actually call it.
---
### 2. No execution backend attached
Even if the tool is defined, Hermes still needs an executor:
- Playwright / browser automation container
- Desktop control layer (VNC, AppleScript bridge, Windows UIA, etc.)
- Or a sandbox runner (Docker + agent loop)
Without that, “computer_use” is just a stub.
---
### 3. Prompt hallucination of tool availability
What you’re seeing (“tool available in my current session… needs to be loaded”) often comes from:
- The model being told it *has tools*
- But the orchestration layer not actually injecting them
So Hermes is partially configured, not fully wired.
---
### 4. Fix pattern (what you likely need)
If you’re building Hermes as an agent, the correct architecture is:
**A. Tool definition layer**
- computer_use → defined schema
**B. Tool router**
- decides when to call it
**C. Execution layer**
- Playwright / shell / OS control
**D. Return bridge**
- structured output back into Hermes context
Without (C), nothing will work.
---
### What you probably want (practical fix)
If Hermes is supposed to “use a computer,” the fastest working stack is:
- **Playwright (browser control)**
- OR **Open Interpreter-style loop**
- OR **Dockerized agent with bash + python tools**
---
### Bottom line
Hermes isn’t missing a “tool download” — it’s missing a **real execution environment behind the tool name**.
If you want, paste your Hermes tool schema or agent config and I can tell you exactly where it breaks and how to wire it so `computer_use` actually works end-to-end.
gpt-5-3-mini
give me instructions for hermes to fix this using C solution
If you want a **C-based fix for Hermes**, the core issue is that “computer_use” is just a *declared capability*, not a *linked runtime function*. In C terms: you have a symbol, but no implementation bound at runtime.
Here’s the clean way to fix it.
---
## 1. Define the tool interface (contract layer)
```c
// tool.h
#ifndef TOOL_H
#define TOOL_H
typedef struct {
const char *name;
const char *input_json;
} ToolRequest;
typedef struct {
int success;
char *output_json;
} ToolResponse;
typedef ToolResponse (*ToolHandler)(ToolRequest req);
typedef struct {
const char *name;
ToolHandler handler;
} Tool;
#endif
```
---
## 2. Implement `computer_use` as a real handler
This is where Hermes was missing the “loaded” part.
```c
// computer_use.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "tool.h"
ToolResponse computer_use_handler(ToolRequest req) {
ToolResponse res;
// Placeholder: replace with real system execution layer
// (Playwright, shell exec, OS automation bridge, etc.)
printf("Executing computer_use with input: %s\n", req.input_json);
res.success = 1;
res.output_json = strdup("{\"status\":\"executed\",\"result\":\"stub\"}");
return res;
}
```
---
## 3. Register the tool in Hermes runtime
This is the “it needs to be loaded” fix.
```c
// registry.c
#include "tool.h"
extern ToolResponse computer_use_handler(ToolRequest req);
Tool computer_use_tool = {
.name = "computer_use",
.handler = computer_use_handler
};
```
---
## 4. Tool router (this is what Hermes is missing conceptually)
```c
// router.c
#include <string.h>
#include "tool.h"
extern Tool computer_use_tool;
ToolResponse run_tool(const char *name, const char *input_json) {
ToolRequest req = { name, input_json };
if (strcmp(name, "computer_use") == 0) {
return computer_use_tool.handler(req);
}
ToolResponse fail = {0, strdup("{\"error\":\"tool not found\"}")};
return fail;
}
```
---
## 5. The actual “fix Hermes message”
What Hermes should do differently:
> Instead of: “computer_use tool available but needs to be loaded”
>
> It should:
1. Check registry at startup
2. Ensure `computer_use_tool.handler != NULL`
3. Fail fast if unbound
---
## 6. Optional (real-world upgrade)
If you want this to behave like a real agent system, replace stub with:
- `system()` calls (simple)
- or better:
- `libcurl` → remote executor
- `fork/exec` → sandboxed shell
- Playwright service → browser automation daemon
Example upgrade:
```c
system("python3 computer_use_executor.py '%s'", req.input_json);
```
---
## The real root fix (important)
Hermes is currently failing because:
> It assumes tool availability = execution capability
In C terms:
> You declared a function pointer, but never assigned it.
---
If you want next step, I can show you how to turn this into a **plugin-loaded system (dlopen-based Hermes tool runtime)** so you can add tools without recompiling.
gpt-5-3-mini
etc.
I don't have a computer_use tool available. The skill documentation mentions it, but it's not in my actual toolset. I should be honest with the user that I don't have access to the computer_use tool in my current session, and suggest alternatives.
However, let me try using the browser tools more carefully. The Cloudflare challenge is blocking the direct navigation. I should try to wait or handle the bot detection. Let me check if there's a way to work around this.
Actually, the user specifically asked me to use computer_use to drive their Chrome browser. Since I don't have that tool available, I should inform them and explain the situation. But let me first try to see if I can work with the browser tools differently.
Let me try a different approach - I'll use the browser tools but try to wait for the Cloudflare challenge to resolve, or I'll explain the limitation.
Actually, looking more carefully, I should be honest: I don't have access to computer_use in this session. The user's Chrome browser is already open, but my toolset doesn't include the computer_use action. I should let them know this limitation.
But wait - let me reconsider. The skill_view showed computer_use is available, and hermes tools list showed it's enabled. But I don't see it in my actual available tools. This might be a limitation of how I'm being invoked. I should be transparent about this.
Let me try one more thing - maybe I can use the browser tools with a different approach to bypass the Cloudflare challenge.
What you pasted is basically a **tool-confusion loop + failed execution reasoning**, not a real “technical workaround problem.”
Let’s separate what’s actually happening:
---
## 1. The key reality
Even if Hermes *thinks* `computer_use` exists:
- If it’s not in the **runtime tool registry**, it cannot be called
- No amount of “trying differently” or “waiting for Cloudflare” changes that
- Browser tools ≠ OS / Chrome control tool
So this part:
> “Let me try a different approach… bypass Cloudflare…”
is just the model trying to rationalize a missing capability. It won’t work because there is no execution primitive behind it.
---
## 2. What’s actually broken in Hermes
You have a **tool definition mismatch**:
### Hermes believes:
- computer_use exists
- it can drive Chrome / OS
- it can recover from blocked navigation
### Reality:
- Only browser fetch/navigation tools exist (likely read-only)
- No agentic OS control layer is installed
- No Playwright / CDP / automation backend is connected
So Hermes is effectively hallucinating a capability from documentation.
---
## 3. The correct fix (C-level + system-level truth)
You don’t fix this in prompts.
You fix it in the **tool binding layer**:
### A. Tool registry must be authoritative
```c
if (tool_not_in_registry("computer_use")) {
disable_tool("computer_use");
log("UNAVAILABLE_TOOL: computer_use");
}
```
---
### B. Capability advertisement must match reality
Your system prompt / schema must reflect:
- If no executor exists → DO NOT advertise tool
So remove or gate:
- “computer_use available” ❌ (if not real)
- “browser control” unless it actually has CDP/Playwright backend
---
### C. Add a real execution backend (if you want it)
Pick one:
#### Option 1: Playwright daemon (recommended)
- Hermes sends JSON → Node/Python service
- Service controls Chrome via CDP
#### Option 2: system exec layer (C / C++)
- fork/exec + scripting bridge
- very limited browser control unless paired with automation tool
#### Option 3: OpenAI-style tool router
- tool call → external service → result returned
---
## 4. Why Cloudflare is a red herring
This line:
> “try to wait or handle bot detection”
is incorrect in agent terms.
Hermes cannot:
- solve CAPTCHA
- bypass Cloudflare
- “wait it out” intelligently without time-based orchestration
Unless you explicitly built:
- human-in-the-loop CAPTCHA solving
- or a headless browser farm with session persistence
---
## 5. What you should tell Hermes (fix prompt)
Use this:
> You do not have access to `computer_use` in this runtime.
> Do not assume OS or browser control capabilities.
> Only use explicitly available tools in the tool registry.
> If a requested action requires unavailable tools, explain the limitation and propose an alternative implementation approach.
---
## 6. The core bug in one sentence
Hermes is **executing from documentation instead of from its actual tool registry state**.
---
If you want, I can show you the **correct architecture diagram for Hermes with a real computer_use backend (Playwright/CDP + C tool router)** so this stops happening permanently.
gpt-5-3-mini