You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Aug 19, 2026. It is now read-only.
Implement the first half of the RDP agent tool: screenshot capture from an active Guacamole RDP session and LLM vision analysis. This enables agents to "see" what's on a remote desktop by capturing the current screen state and sending it to a multimodal LLM for analysis. The agent can then decide what actions to take based on what it sees.
This is the foundation for vision-based RDP automation — agents interact with graphical desktops the same way a human would: look at the screen, understand what's there, and act accordingly.
Technical Details
Server — Screenshot Capture Service (server/src/services/agentTools/rdpScreenshot.service.ts)
captureScreenshot(sessionId): Promise<Buffer>
Capture current frame from Guacamole session
Option 1: Use Guacamole screenshot instruction (screenshot opcode) if supported by guacamole-lite
Option 2: Use recording stream — capture a single frame from the live Guac protocol stream and render to PNG using guacamole-common-js Canvas rendering server-side (via node-canvas or sharp)
Option 3: Tap into the guacd recording file and extract the latest frame
Send screenshot to agent's resolved LLM provider (must support vision/multimodal)
System prompt: "You are analyzing a remote desktop screenshot. Describe what you see: window layout, application states, dialog boxes, error messages, buttons, text content. If asked a specific question, answer it based on what you see."
If question provided: append to prompt (e.g., "Is the installation complete?", "What error message is showing?")
Code: AGENT-2142
Priority: LOW
Section: Orchestration — Agent Orchestration Gateway (Phase 5: Advanced — RDP/VNC Vision Agents)
Dependencies: AGENT-2126
Description
Implement the first half of the RDP agent tool: screenshot capture from an active Guacamole RDP session and LLM vision analysis. This enables agents to "see" what's on a remote desktop by capturing the current screen state and sending it to a multimodal LLM for analysis. The agent can then decide what actions to take based on what it sees.
This is the foundation for vision-based RDP automation — agents interact with graphical desktops the same way a human would: look at the screen, understand what's there, and act accordingly.
Technical Details
Server — Screenshot Capture Service (
server/src/services/agentTools/rdpScreenshot.service.ts)captureScreenshot(sessionId): Promise<Buffer>screenshotopcode) if supported by guacamole-liteguacamole-common-jsCanvas rendering server-side (via node-canvas or sharp)analyzeScreen(agentId, screenshot: Buffer, question?: string): Promise<ScreenAnalysis>{ description, elements: [{ type, text, location, confidence }], rawResponse }Server — Vision Tool Handler (
server/src/services/agentTools/rdpVisionTool.service.ts)rdp_screenshottool:{ connectionId, question? }{ description, elements[], imageBase64? }Server — Session Management
rdp.service.tstoken generation + guacamole-liteServer — LLM Provider Validation
Files Involved
server/src/services/agentTools/rdpScreenshot.service.ts— Screenshot capture from Guacamoleserver/src/services/agentTools/rdpVisionTool.service.ts— RDP vision tool handlerserver/src/services/agentToolRegistry.service.ts— Register rdp_screenshot toolserver/src/types/llm.types.ts— Add ImageContent message type for multimodalReference: Agent Orchestration Gateway — Phase 5.1