feat(ext): add systemInstruction to ExecuteConfig
Expose a serializable `systemInstruction` string field on the page-facing ExecuteConfig, mapped to `instructions.system` when creating MultiPageAgent. Functions cannot cross the postMessage boundary, so this flat string field replaces the object form. Closes #359
This commit is contained in:
@@ -118,6 +118,10 @@ export interface ExecuteConfig {
|
||||
model: string
|
||||
apiKey?: string
|
||||
|
||||
// Global system-level instructions for the agent.
|
||||
// Equivalent to AgentConfig.instructions.system.
|
||||
systemInstruction?: string
|
||||
|
||||
// Include the initial tab where page JS starts. Default: true.
|
||||
includeInitialTab?: boolean
|
||||
|
||||
@@ -212,6 +216,9 @@ interface ExecuteConfig {
|
||||
baseURL: string
|
||||
model: string
|
||||
apiKey?: string
|
||||
|
||||
systemInstruction?: string
|
||||
|
||||
includeInitialTab?: boolean
|
||||
experimentalIncludeAllTabs?: boolean
|
||||
onStatusChange?: (status: AgentStatus) => void
|
||||
|
||||
@@ -70,11 +70,15 @@ async function exposeAgentToPage() {
|
||||
|
||||
try {
|
||||
const { task, config } = payload
|
||||
const { systemInstruction, ...agentConfig } = config
|
||||
|
||||
// Dispose old instance before creating new one
|
||||
multiPageAgent?.dispose()
|
||||
|
||||
multiPageAgent = new MultiPageAgent(config)
|
||||
multiPageAgent = new MultiPageAgent({
|
||||
...agentConfig,
|
||||
instructions: systemInstruction ? { system: systemInstruction } : undefined,
|
||||
})
|
||||
|
||||
// events
|
||||
|
||||
|
||||
@@ -7,6 +7,12 @@ export interface ExecuteConfig {
|
||||
model: string
|
||||
apiKey?: string
|
||||
|
||||
/**
|
||||
* Global system-level instructions for the agent.
|
||||
* Equivalent to `AgentConfig.instructions.system`.
|
||||
*/
|
||||
systemInstruction?: string
|
||||
|
||||
/**
|
||||
* Whether to include the initial tab (that holds this main world script) in the task.
|
||||
* @default true
|
||||
@@ -89,6 +95,7 @@ export default defineUnlistedScript(() => {
|
||||
baseURL: config.baseURL,
|
||||
model: config.model,
|
||||
apiKey: config.apiKey,
|
||||
systemInstruction: config.systemInstruction,
|
||||
includeInitialTab: config.includeInitialTab,
|
||||
experimentalIncludeAllTabs: config.experimentalIncludeAllTabs,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user