diff --git a/src/agents/multimodal-looker.test.ts b/src/agents/multimodal-looker.test.ts new file mode 100644 index 000000000..f2f282644 --- /dev/null +++ b/src/agents/multimodal-looker.test.ts @@ -0,0 +1,27 @@ +import { describe, test, expect } from "bun:test" +import { createMultimodalLookerAgent } from "./multimodal-looker" + +describe("createMultimodalLookerAgent", () => { + test("prompt explicitly enumerates the agent's available tools to prevent death loop on small VL models", () => { + // given + const agent = createMultimodalLookerAgent("openai/gpt-5-nano") + + // when + const prompt = typeof agent.prompt === "string" ? agent.prompt : "" + + // then + expect(prompt).toMatch(/available tools/i) + expect(prompt).toContain("read") + }) + + test("prompt instructs the agent never to call other tools", () => { + // given + const agent = createMultimodalLookerAgent("openai/gpt-5-nano") + + // when + const prompt = typeof agent.prompt === "string" ? agent.prompt : "" + + // then + expect(prompt.toLowerCase()).toContain("never") + }) +}) diff --git a/src/agents/multimodal-looker.ts b/src/agents/multimodal-looker.ts index 2d89e422b..2a4b80431 100644 --- a/src/agents/multimodal-looker.ts +++ b/src/agents/multimodal-looker.ts @@ -23,6 +23,8 @@ export function createMultimodalLookerAgent(model: string): AgentConfig { ...restrictions, prompt: `You interpret media files that cannot be read as plain text. +Your only available tools are 'read' and 'call_omo_agent'. Always use 'read' to load the file first, then analyze the returned content. Never attempt to call any other tool. + Your job: examine the attached file and extract ONLY what was requested. When to use you: