Skip to content

Routine turns are told about a browser they do not have #347

Description

@will-bogusz

At v0.0.5, a routine run is headless: server/src/routines/run-turn.ts:465-467 passes tools: [] with the comment that a headless turn has no browser to register frontend tools. But the Bot is still handed the computer guidance:

  • server/src/index.ts:646 passes config.computer ? COMPUTER_GUIDANCE : undefined into the routines path, and AGENT_COMPUTER_URL is baked into the image (Dockerfile:184), so config.computer is always truthy in the published image.
  • agent-langgraph/src/history.ts:25 prepends COMPUTER_GUIDANCE unconditionally for managed coworkers.

server/src/copilot.ts:1099-1103 states the intended rule for the chat path: "Absent computer, absent guidance: a Bot is not told about hands it has not got." Routines get the opposite. Observed effect on a hosted deployment (routines fired from a cron container of the same image): a scheduled instruction that asks for a web check produces an apology narrated as if the browser had failed, rather than a clear "this routine cannot browse". A text-only routine works fine and correctly lists only its plugin tools.

Suggested fix: pass undefined for the guidance on the routines path (and skip it in history.ts when the run carries no computer tools), so the model knows it is text + plugin tools only. Happy to open a PR if you agree with the direction.

Found while building the Railway template (see the Deploy-on-Railway PR).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions