← all conversations

Computer use tool limitations

2026-07-038 turns10,788 charsgpt-5-3-mini
tool-availabilityhermesc-solutions

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