Skip to content

Commit 43ba4cf

Browse files
authored
feat(o-gui-agent): insert preset messages before real query from user (#1661)
1 parent 221eb37 commit 43ba4cf

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

multimodal/omni-tars/gui-agent/src/GuiAgentPlugin.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { ConsoleLogger, createGUIErrorResponse, LogLevel } from '@tarko/shared-u
88
import { Base64ImageParser } from '@agent-infra/media-utils';
99
import { ImageCompressor, formatBytes } from '@tarko/shared-media-utils';
1010
import { OperatorManager } from './OperatorManager';
11+
import { sleep } from '@gui-agent/shared/utils';
1112

1213
interface GuiAgentPluginOption {
1314
operatorManager: OperatorManager;
@@ -36,7 +37,9 @@ export class GuiAgentPlugin extends AgentPlugin {
3637

3738
async initialize(): Promise<void> {
3839
if (this.agentMode && this.agentMode.id === 'game') {
40+
await this.emitPresetUserQuey();
3941
await this.emitScreenshotEvent();
42+
await this.emitPresetAssistantMessage();
4043
}
4144

4245
this.agent.registerTool(
@@ -101,8 +104,9 @@ export class GuiAgentPlugin extends AgentPlugin {
101104
await this.emitScreenshotEvent();
102105
}
103106

104-
private async emitScreenshotEvent(): Promise<void> {
107+
private async emitScreenshotEvent(interval = 0): Promise<void> {
105108
const operator = await this.operatorManager.getInstance();
109+
if (interval > 0) await sleep(interval);
106110
const output = await operator?.doScreenshot();
107111
if (!output?.base64) {
108112
guiLogger.error('Failed to get screenshot');
@@ -158,4 +162,26 @@ export class GuiAgentPlugin extends AgentPlugin {
158162
});
159163
eventStream.sendEvent(event);
160164
}
165+
166+
private async emitPresetUserQuey(): Promise<void> {
167+
const eventStream = this.agent.getEventStream();
168+
const events = eventStream.getEvents();
169+
if (events.length === 0) {
170+
const event = eventStream.createEvent('user_message', {
171+
content: `Goto: ${this.agentMode!.link}`,
172+
});
173+
eventStream.sendEvent(event);
174+
}
175+
}
176+
177+
private async emitPresetAssistantMessage(): Promise<void> {
178+
const eventStream = this.agent.getEventStream();
179+
const events = eventStream.getEvents();
180+
if (events.length === 0) {
181+
const event = eventStream.createEvent('assistant_message', {
182+
content: `Successfully navigated to ${this.agentMode!.link}, page loaded successfully`,
183+
});
184+
eventStream.sendEvent(event);
185+
}
186+
}
161187
}

0 commit comments

Comments
 (0)