From 94a1a701f6af430f2f8388bffb4d98090878748d Mon Sep 17 00:00:00 2001 From: shivammittal274 <56757235+shivammittal274@users.noreply.github.com> Date: Mon, 23 Mar 2026 17:42:03 +0530 Subject: [PATCH] fix(eval): include browser context in agent prompt (#530) The eval's single-agent was passing raw task.query as the prompt, without browser context (active tab URL, title). The agent didn't know which page it was on, causing it to ask "which website?" instead of browsing. Use formatUserMessage() (same as chat-service.ts) to include browser context in the prompt. Re-export formatUserMessage from agent/tool-loop. --- .../apps/eval/src/agents/single-agent.ts | 10 ++++++++-- .../apps/server/src/agent/ai-sdk-agent.ts | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/browseros-agent/apps/eval/src/agents/single-agent.ts b/packages/browseros-agent/apps/eval/src/agents/single-agent.ts index 2c64199bc..a0cd92d65 100644 --- a/packages/browseros-agent/apps/eval/src/agents/single-agent.ts +++ b/packages/browseros-agent/apps/eval/src/agents/single-agent.ts @@ -1,5 +1,8 @@ import { randomUUID } from 'node:crypto' -import { AiSdkAgent } from '@browseros/server/agent/tool-loop' +import { + AiSdkAgent, + formatUserMessage, +} from '@browseros/server/agent/tool-loop' import type { ResolvedAgentConfig } from '@browseros/server/agent/types' import { Browser } from '@browseros/server/browser' import { CdpBackend } from '@browseros/server/browser/backends/cdp' @@ -91,8 +94,11 @@ export class SingleAgentEvaluator implements AgentEvaluator { capture, async (signal) => { if (!agent) throw new Error('Agent was not initialized') + // Format prompt with browser context so the agent knows what page it's on + // (same formatting as chat-service.ts → formatUserMessage) + const prompt = formatUserMessage(task.query, browserContext) const result = await agent.toolLoopAgent.generate({ - prompt: task.query, + prompt, abortSignal: signal, experimental_onToolCallStart: ({ toolCall }) => { diff --git a/packages/browseros-agent/apps/server/src/agent/ai-sdk-agent.ts b/packages/browseros-agent/apps/server/src/agent/ai-sdk-agent.ts index ab952561e..f1e8c61d1 100644 --- a/packages/browseros-agent/apps/server/src/agent/ai-sdk-agent.ts +++ b/packages/browseros-agent/apps/server/src/agent/ai-sdk-agent.ts @@ -254,3 +254,5 @@ export class AiSdkAgent { logger.info('Agent disposed', { conversationId: this.conversationId }) } } + +export { formatUserMessage } from './format-message'