@jarvis-agent/core 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -12
- package/dist/agent/agent-context.d.ts +32 -0
- package/dist/agent/agent-context.d.ts.map +1 -0
- package/dist/agent/agent-llm.d.ts +13 -0
- package/dist/agent/agent-llm.d.ts.map +1 -0
- package/dist/agent/base.d.ts +12 -10
- package/dist/agent/base.d.ts.map +1 -1
- package/dist/agent/browser/browser-base.d.ts +52 -0
- package/dist/agent/browser/browser-base.d.ts.map +1 -0
- package/dist/agent/browser/browser-labels.d.ts +43 -0
- package/dist/agent/browser/browser-labels.d.ts.map +1 -0
- package/dist/agent/browser/browser-screen.d.ts +17 -0
- package/dist/agent/browser/browser-screen.d.ts.map +1 -0
- package/dist/agent/browser/browser_labels.d.ts +1 -1
- package/dist/agent/browser/browser_labels.d.ts.map +1 -1
- package/dist/agent/browser/browser_screen.d.ts +1 -1
- package/dist/agent/browser/browser_screen.d.ts.map +1 -1
- package/dist/agent/browser/build-dom-tree.d.ts +2 -0
- package/dist/agent/browser/build-dom-tree.d.ts.map +1 -0
- package/dist/agent/browser/index.d.ts +3 -3
- package/dist/agent/browser/utils.d.ts +21 -1
- package/dist/agent/browser/utils.d.ts.map +1 -1
- package/dist/agent/chain.d.ts +45 -0
- package/dist/agent/chain.d.ts.map +1 -0
- package/dist/agent/computer.d.ts +1 -1
- package/dist/agent/computer.d.ts.map +1 -1
- package/dist/agent/eko.d.ts +25 -0
- package/dist/agent/eko.d.ts.map +1 -0
- package/dist/agent/file.d.ts +1 -1
- package/dist/agent/file.d.ts.map +1 -1
- package/dist/agent/index.d.ts +4 -5
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/plan.d.ts +13 -0
- package/dist/agent/plan.d.ts.map +1 -0
- package/dist/agent/replan.d.ts +4 -0
- package/dist/agent/replan.d.ts.map +1 -0
- package/dist/agent/shell.d.ts +1 -1
- package/dist/agent/shell.d.ts.map +1 -1
- package/dist/chat/chat-agent.d.ts +21 -0
- package/dist/chat/chat-agent.d.ts.map +1 -0
- package/dist/chat/chat-context.d.ts +15 -0
- package/dist/chat/chat-context.d.ts.map +1 -0
- package/dist/chat/chat-llm.d.ts +8 -0
- package/dist/chat/chat-llm.d.ts.map +1 -0
- package/dist/chat/index.d.ts +9 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/tools/agent-wrap-tool.d.ts +24 -0
- package/dist/chat/tools/agent-wrap-tool.d.ts.map +1 -0
- package/dist/chat/tools/deep-action.d.ts +16 -0
- package/dist/chat/tools/deep-action.d.ts.map +1 -0
- package/dist/chat/tools/variable-storage.d.ts +15 -0
- package/dist/chat/tools/variable-storage.d.ts.map +1 -0
- package/dist/chat/tools/web-search.d.ts +15 -0
- package/dist/chat/tools/web-search.d.ts.map +1 -0
- package/dist/chat/tools/webpage-qa.d.ts +16 -0
- package/dist/chat/tools/webpage-qa.d.ts.map +1 -0
- package/dist/common/tree.d.ts +1 -1
- package/dist/common/tree.d.ts.map +1 -1
- package/dist/common/utils.d.ts +13 -2
- package/dist/common/utils.d.ts.map +1 -1
- package/dist/common/workflow.d.ts +3 -0
- package/dist/common/workflow.d.ts.map +1 -0
- package/dist/common/xml.d.ts +1 -1
- package/dist/common/xml.d.ts.map +1 -1
- package/dist/config/global.d.ts +4 -0
- package/dist/config/global.d.ts.map +1 -0
- package/dist/config/index.d.ts +4 -22
- package/dist/config/index.d.ts.map +1 -1
- package/dist/index.cjs +46108 -0
- package/dist/index.cjs.js +87 -76
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +15 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +26449 -17475
- package/dist/index.esm.js.map +1 -1
- package/dist/llm/index.d.ts +2 -21
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/react.d.ts +9 -0
- package/dist/llm/react.d.ts.map +1 -0
- package/dist/llm/rlm.d.ts +22 -0
- package/dist/llm/rlm.d.ts.map +1 -0
- package/dist/memory/index.d.ts +3 -2
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/memory.d.ts +6 -17
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/snapshot.d.ts +1 -1
- package/dist/memory/snapshot.d.ts.map +1 -1
- package/dist/prompt/agent.d.ts +3 -3
- package/dist/prompt/agent.d.ts.map +1 -1
- package/dist/prompt/chat.d.ts +3 -0
- package/dist/prompt/chat.d.ts.map +1 -0
- package/dist/prompt/plan.d.ts +3 -3
- package/dist/prompt/plan.d.ts.map +1 -1
- package/dist/prompt/prompt-template.d.ts +30 -0
- package/dist/prompt/prompt-template.d.ts.map +1 -0
- package/dist/service/browser-service.d.ts +7 -0
- package/dist/service/browser-service.d.ts.map +1 -0
- package/dist/service/chat-service.d.ts +17 -0
- package/dist/service/chat-service.d.ts.map +1 -0
- package/dist/service/index.d.ts +4 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/tools/foreach-task.d.ts +13 -0
- package/dist/tools/foreach-task.d.ts.map +1 -0
- package/dist/tools/human-interact.d.ts +15 -0
- package/dist/tools/human-interact.d.ts.map +1 -0
- package/dist/tools/index.d.ts +6 -6
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/task-node-status.d.ts +13 -0
- package/dist/tools/task-node-status.d.ts.map +1 -0
- package/dist/tools/task-result-check.d.ts +18 -0
- package/dist/tools/task-result-check.d.ts.map +1 -0
- package/dist/tools/todo-list-manager.d.ts +16 -0
- package/dist/tools/todo-list-manager.d.ts.map +1 -0
- package/dist/tools/variable-storage.d.ts +13 -0
- package/dist/tools/variable-storage.d.ts.map +1 -0
- package/dist/tools/watch-trigger.d.ts +17 -0
- package/dist/tools/watch-trigger.d.ts.map +1 -0
- package/dist/tools/wrapper.d.ts +2 -2
- package/dist/tools/wrapper.d.ts.map +1 -1
- package/dist/types/agent.types.d.ts +124 -0
- package/dist/types/agent.types.d.ts.map +1 -0
- package/dist/types/chat.types.d.ts +105 -0
- package/dist/types/chat.types.d.ts.map +1 -0
- package/dist/types/config.types.d.ts +51 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/index.d.ts +10 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/llm.types.d.ts +94 -6
- package/dist/types/llm.types.d.ts.map +1 -1
- package/dist/types/service.types.d.ts +26 -0
- package/dist/types/service.types.d.ts.map +1 -0
- package/dist/types/tools.types.d.ts +1 -1
- package/dist/types/tools.types.d.ts.map +1 -1
- package/package.json +13 -11
package/dist/index.cjs.js
CHANGED
|
@@ -34268,25 +34268,31 @@ class Agent {
|
|
|
34268
34268
|
this.description = params.description;
|
|
34269
34269
|
this.tools = params.tools;
|
|
34270
34270
|
this.llms = params.llms;
|
|
34271
|
-
this.
|
|
34271
|
+
this.mcpClients = params.mcpClients || (params.mcpClient ? [params.mcpClient] : []);
|
|
34272
34272
|
this.planDescription = params.planDescription;
|
|
34273
34273
|
this.requestHandler = params.requestHandler;
|
|
34274
34274
|
}
|
|
34275
34275
|
async run(context, agentChain) {
|
|
34276
|
-
const
|
|
34276
|
+
const mcpClients = this.mcpClients.length > 0
|
|
34277
|
+
? this.mcpClients
|
|
34278
|
+
: (context.config.defaultMcpClient ? [context.config.defaultMcpClient] : []);
|
|
34277
34279
|
const agentContext = new AgentContext(context, this, agentChain);
|
|
34278
34280
|
try {
|
|
34279
34281
|
this.agentContext = agentContext;
|
|
34280
|
-
|
|
34281
|
-
!
|
|
34282
|
-
|
|
34283
|
-
|
|
34282
|
+
for (const client of mcpClients) {
|
|
34283
|
+
if (!client.isConnected()) {
|
|
34284
|
+
await client.connect(context.controller.signal);
|
|
34285
|
+
}
|
|
34286
|
+
}
|
|
34287
|
+
return await this.runWithContext(agentContext, mcpClients, exports.config.maxReactNum);
|
|
34284
34288
|
}
|
|
34285
34289
|
finally {
|
|
34286
|
-
|
|
34290
|
+
for (const client of mcpClients) {
|
|
34291
|
+
await client.close();
|
|
34292
|
+
}
|
|
34287
34293
|
}
|
|
34288
34294
|
}
|
|
34289
|
-
async runWithContext(agentContext,
|
|
34295
|
+
async runWithContext(agentContext, mcpClients, maxReactNum = 100, historyMessages = []) {
|
|
34290
34296
|
let loopNum = 0;
|
|
34291
34297
|
let checkNum = 0;
|
|
34292
34298
|
this.agentContext = agentContext;
|
|
@@ -34310,16 +34316,19 @@ class Agent {
|
|
|
34310
34316
|
];
|
|
34311
34317
|
agentContext.messages = messages;
|
|
34312
34318
|
const rlm = new RetryLanguageModel(context.config.llms, this.llms, context.config.globalConfig?.streamFirstTimeout, context.config.globalConfig?.streamTokenTimeout, agentContext);
|
|
34319
|
+
const resolvedMcpClients = Array.isArray(mcpClients)
|
|
34320
|
+
? mcpClients
|
|
34321
|
+
: (mcpClients ? [mcpClients] : []);
|
|
34313
34322
|
let agentTools = tools;
|
|
34314
34323
|
while (loopNum < maxReactNum) {
|
|
34315
34324
|
await context.checkAborted();
|
|
34316
|
-
if (
|
|
34325
|
+
if (resolvedMcpClients.length > 0) {
|
|
34317
34326
|
const controlMcp = await this.controlMcpTools(agentContext, messages, loopNum);
|
|
34318
34327
|
if (controlMcp.mcpTools) {
|
|
34319
|
-
const mcpTools = await this.
|
|
34328
|
+
const mcpTools = await this.listMcpTools(context, resolvedMcpClients, agentNode, controlMcp.mcpParams);
|
|
34320
34329
|
const usedTools = extractUsedTool(messages, agentTools);
|
|
34321
|
-
const
|
|
34322
|
-
agentTools = mergeTools(
|
|
34330
|
+
const mergedTools = mergeTools(tools, usedTools);
|
|
34331
|
+
agentTools = mergeTools(mergedTools, mcpTools);
|
|
34323
34332
|
}
|
|
34324
34333
|
}
|
|
34325
34334
|
await this.handleMessages(agentContext, messages, tools);
|
|
@@ -34476,33 +34485,32 @@ class Agent {
|
|
|
34476
34485
|
async extSysPrompt(agentContext, tools) {
|
|
34477
34486
|
return "";
|
|
34478
34487
|
}
|
|
34479
|
-
async
|
|
34480
|
-
|
|
34481
|
-
|
|
34482
|
-
|
|
34488
|
+
async listMcpTools(context, clients, agentNode, mcpParams) {
|
|
34489
|
+
const allTools = [];
|
|
34490
|
+
for (const client of clients) {
|
|
34491
|
+
try {
|
|
34492
|
+
if (!client.isConnected()) {
|
|
34493
|
+
await client.connect(context.controller.signal);
|
|
34494
|
+
}
|
|
34495
|
+
const list = await client.listTools({
|
|
34496
|
+
taskId: context.taskId,
|
|
34497
|
+
nodeId: agentNode?.id,
|
|
34498
|
+
environment: exports.config.platform,
|
|
34499
|
+
agent_name: agentNode?.name || this.name,
|
|
34500
|
+
params: {},
|
|
34501
|
+
prompt: agentNode?.task || context.chain.taskPrompt,
|
|
34502
|
+
...(mcpParams || {}),
|
|
34503
|
+
}, context.controller.signal);
|
|
34504
|
+
for (const toolSchema of list) {
|
|
34505
|
+
const execute = this.toolExecuter(client, toolSchema.name);
|
|
34506
|
+
allTools.push(new McpTool(new ToolWrapper(toolSchema, execute)));
|
|
34507
|
+
}
|
|
34508
|
+
}
|
|
34509
|
+
catch (e) {
|
|
34510
|
+
Log.error("Mcp listTools error", e);
|
|
34483
34511
|
}
|
|
34484
|
-
let list = await mcpClient.listTools({
|
|
34485
|
-
taskId: context.taskId,
|
|
34486
|
-
nodeId: agentNode?.id,
|
|
34487
|
-
environment: exports.config.platform,
|
|
34488
|
-
agent_name: agentNode?.name || this.name,
|
|
34489
|
-
params: {},
|
|
34490
|
-
prompt: agentNode?.task || context.chain.taskPrompt,
|
|
34491
|
-
...(mcpParams || {}),
|
|
34492
|
-
}, context.controller.signal);
|
|
34493
|
-
let mcpTools = [];
|
|
34494
|
-
for (let i = 0; i < list.length; i++) {
|
|
34495
|
-
let toolSchema = list[i];
|
|
34496
|
-
let execute = this.toolExecuter(mcpClient, toolSchema.name);
|
|
34497
|
-
let toolWrapper = new ToolWrapper(toolSchema, execute);
|
|
34498
|
-
mcpTools.push(new McpTool(toolWrapper));
|
|
34499
|
-
}
|
|
34500
|
-
return mcpTools;
|
|
34501
|
-
}
|
|
34502
|
-
catch (e) {
|
|
34503
|
-
Log.error("Mcp listTools error", e);
|
|
34504
|
-
return [];
|
|
34505
34512
|
}
|
|
34513
|
+
return allTools;
|
|
34506
34514
|
}
|
|
34507
34515
|
async controlMcpTools(agentContext, messages, loopNum) {
|
|
34508
34516
|
return {
|
|
@@ -34545,9 +34553,9 @@ class Agent {
|
|
|
34545
34553
|
};
|
|
34546
34554
|
}
|
|
34547
34555
|
async loadTools(context) {
|
|
34548
|
-
if (this.
|
|
34549
|
-
|
|
34550
|
-
if (mcpTools
|
|
34556
|
+
if (this.mcpClients.length > 0) {
|
|
34557
|
+
const mcpTools = await this.listMcpTools(context, this.mcpClients);
|
|
34558
|
+
if (mcpTools.length > 0) {
|
|
34551
34559
|
return mergeTools(this.tools, mcpTools);
|
|
34552
34560
|
}
|
|
34553
34561
|
}
|
|
@@ -34579,8 +34587,11 @@ class Agent {
|
|
|
34579
34587
|
get PlanDescription() {
|
|
34580
34588
|
return this.planDescription;
|
|
34581
34589
|
}
|
|
34590
|
+
get McpClients() {
|
|
34591
|
+
return this.mcpClients;
|
|
34592
|
+
}
|
|
34582
34593
|
get McpClient() {
|
|
34583
|
-
return this.
|
|
34594
|
+
return this.mcpClients[0];
|
|
34584
34595
|
}
|
|
34585
34596
|
get AgentContext() {
|
|
34586
34597
|
return this.agentContext;
|
|
@@ -34589,8 +34600,8 @@ class Agent {
|
|
|
34589
34600
|
|
|
34590
34601
|
const AGENT_NAME$3 = "File";
|
|
34591
34602
|
class BaseFileAgent extends Agent {
|
|
34592
|
-
constructor(work_path, llms, ext_tools,
|
|
34593
|
-
const
|
|
34603
|
+
constructor(work_path, llms, ext_tools, mcpClients, planDescription) {
|
|
34604
|
+
const initTools = [];
|
|
34594
34605
|
const prompt = work_path
|
|
34595
34606
|
? `Your working directory is: ${work_path}
|
|
34596
34607
|
- When viewing file lists and outputting file paths, always include the working directory
|
|
@@ -34603,9 +34614,9 @@ class BaseFileAgent extends Agent {
|
|
|
34603
34614
|
super({
|
|
34604
34615
|
name: AGENT_NAME$3,
|
|
34605
34616
|
description: `You are a file agent, handling file-related tasks such as creating, finding, reading, modifying files, etc.${prompt}`,
|
|
34606
|
-
tools:
|
|
34617
|
+
tools: initTools,
|
|
34607
34618
|
llms: llms,
|
|
34608
|
-
|
|
34619
|
+
mcpClients: Array.isArray(mcpClients) ? mcpClients : (mcpClients ? [mcpClients] : []),
|
|
34609
34620
|
planDescription: planDescription ||
|
|
34610
34621
|
`File operation agent, handles file-related tasks such as creating, finding, reading, modifying files, etc. Only supports text file output
|
|
34611
34622
|
- Output file names must be in English
|
|
@@ -34613,11 +34624,11 @@ class BaseFileAgent extends Agent {
|
|
|
34613
34624
|
- For data-related content, combine with visualization tools for display
|
|
34614
34625
|
- For visualizations, generate charts first before page generation to minimize repetitive work`,
|
|
34615
34626
|
});
|
|
34616
|
-
let
|
|
34627
|
+
let builtTools = this.buildInitTools();
|
|
34617
34628
|
if (ext_tools && ext_tools.length > 0) {
|
|
34618
|
-
|
|
34629
|
+
builtTools = mergeTools(builtTools, ext_tools);
|
|
34619
34630
|
}
|
|
34620
|
-
|
|
34631
|
+
builtTools.forEach((tool) => initTools.push(tool));
|
|
34621
34632
|
}
|
|
34622
34633
|
async do_file_read(agentContext, path, write_variable) {
|
|
34623
34634
|
let file_context = await this.file_read(agentContext, path);
|
|
@@ -34772,24 +34783,24 @@ class BaseFileAgent extends Agent {
|
|
|
34772
34783
|
|
|
34773
34784
|
const AGENT_NAME$2 = "Shell";
|
|
34774
34785
|
class BaseShellAgent extends Agent {
|
|
34775
|
-
constructor(llms, ext_tools,
|
|
34776
|
-
const
|
|
34786
|
+
constructor(llms, ext_tools, mcpClients, planDescription) {
|
|
34787
|
+
const initTools = [];
|
|
34777
34788
|
super({
|
|
34778
34789
|
name: AGENT_NAME$2,
|
|
34779
34790
|
description: `Run commands in a bash shell,
|
|
34780
34791
|
* You must first call create_session to create a new session when using it for the first time.
|
|
34781
34792
|
* Please execute delete commands with caution, and never perform dangerous operations like \`rm -rf /\`.
|
|
34782
34793
|
* Please avoid commands that may produce a very large amount of output.`,
|
|
34783
|
-
tools:
|
|
34794
|
+
tools: initTools,
|
|
34784
34795
|
llms: llms,
|
|
34785
|
-
|
|
34796
|
+
mcpClients: Array.isArray(mcpClients) ? mcpClients : (mcpClients ? [mcpClients] : []),
|
|
34786
34797
|
planDescription: planDescription || "Shell command agent, use to execute shell commands.",
|
|
34787
34798
|
});
|
|
34788
|
-
let
|
|
34799
|
+
let builtTools = this.buildInitTools();
|
|
34789
34800
|
if (ext_tools && ext_tools.length > 0) {
|
|
34790
|
-
|
|
34801
|
+
builtTools = mergeTools(builtTools, ext_tools);
|
|
34791
34802
|
}
|
|
34792
|
-
|
|
34803
|
+
builtTools.forEach((tool) => initTools.push(tool));
|
|
34793
34804
|
}
|
|
34794
34805
|
buildInitTools() {
|
|
34795
34806
|
return [
|
|
@@ -34854,8 +34865,8 @@ class BaseShellAgent extends Agent {
|
|
|
34854
34865
|
|
|
34855
34866
|
const AGENT_NAME$1 = "Computer";
|
|
34856
34867
|
class BaseComputerAgent extends Agent {
|
|
34857
|
-
constructor(llms, ext_tools,
|
|
34858
|
-
const
|
|
34868
|
+
constructor(llms, ext_tools, mcpClients, keyboardKeys) {
|
|
34869
|
+
const initTools = [];
|
|
34859
34870
|
super({
|
|
34860
34871
|
name: AGENT_NAME$1,
|
|
34861
34872
|
description: `You are a computer operation agent, who interacts with the computer using mouse and keyboard, completing specified tasks step by step based on the given tasks and screenshots. After each of your operations, you will receive the latest computer screenshot to evaluate the task execution status.
|
|
@@ -34863,9 +34874,9 @@ This is a computer GUI interface, observe the execution through screenshots, and
|
|
|
34863
34874
|
* COMPUTER OPERATIONS:
|
|
34864
34875
|
- You can operate the application using shortcuts.
|
|
34865
34876
|
- If stuck, try alternative approaches`,
|
|
34866
|
-
tools:
|
|
34877
|
+
tools: initTools,
|
|
34867
34878
|
llms: llms,
|
|
34868
|
-
|
|
34879
|
+
mcpClients: Array.isArray(mcpClients) ? mcpClients : (mcpClients ? [mcpClients] : []),
|
|
34869
34880
|
planDescription: "Computer operation agent, interact with the computer using the mouse and keyboard."
|
|
34870
34881
|
});
|
|
34871
34882
|
if (!keyboardKeys) {
|
|
@@ -34896,11 +34907,11 @@ This is a computer GUI interface, observe the execution through screenshots, and
|
|
|
34896
34907
|
];
|
|
34897
34908
|
}
|
|
34898
34909
|
}
|
|
34899
|
-
let
|
|
34910
|
+
let builtTools = this.buildInitTools(keyboardKeys);
|
|
34900
34911
|
if (ext_tools && ext_tools.length > 0) {
|
|
34901
|
-
|
|
34912
|
+
builtTools = mergeTools(builtTools, ext_tools);
|
|
34902
34913
|
}
|
|
34903
|
-
|
|
34914
|
+
builtTools.forEach((tool) => initTools.push(tool));
|
|
34904
34915
|
}
|
|
34905
34916
|
buildInitTools(keyboardKeys) {
|
|
34906
34917
|
return [
|
|
@@ -36027,7 +36038,7 @@ function run_build_dom_tree() {
|
|
|
36027
36038
|
}
|
|
36028
36039
|
|
|
36029
36040
|
class BaseBrowserLabelsAgent extends BaseBrowserAgent {
|
|
36030
|
-
constructor(llms, ext_tools,
|
|
36041
|
+
constructor(llms, ext_tools, mcpClients) {
|
|
36031
36042
|
let description = `You are a browser operation agent, use structured commands to interact with the browser.
|
|
36032
36043
|
* This is a browser GUI interface where you need to analyze webpages by taking screenshot and page element structures, and specify action sequences to complete designated tasks.
|
|
36033
36044
|
* For your first visit, please start by calling either the \`navigate_to\` or \`current_page\` tool. After each action you perform, I will provide you with updated information about the current state, including page screenshots and structured element data that has been specially processed for easier analysis.
|
|
@@ -36062,20 +36073,20 @@ class BaseBrowserLabelsAgent extends BaseBrowserAgent {
|
|
|
36062
36073
|
- When filling out a form, fields that are not dependent on each other should be filled simultaneously
|
|
36063
36074
|
- Avoid parallel processing for dependent operations, such as those that need to wait for page loading, DOM changes, redirects, subsequent operations that depend on the results of previous operations, or operations that may interfere with each other and affect the same page elements. In these cases, please do not use parallelization.`;
|
|
36064
36075
|
}
|
|
36065
|
-
const
|
|
36076
|
+
const initTools = [];
|
|
36066
36077
|
super({
|
|
36067
36078
|
name: AGENT_NAME,
|
|
36068
36079
|
description: description,
|
|
36069
|
-
tools:
|
|
36080
|
+
tools: initTools,
|
|
36070
36081
|
llms: llms,
|
|
36071
|
-
|
|
36082
|
+
mcpClients: Array.isArray(mcpClients) ? mcpClients : (mcpClients ? [mcpClients] : []),
|
|
36072
36083
|
planDescription: "Browser operation agent, interact with the browser using the mouse and keyboard.",
|
|
36073
36084
|
});
|
|
36074
|
-
let
|
|
36085
|
+
let builtTools = this.buildInitTools();
|
|
36075
36086
|
if (ext_tools && ext_tools.length > 0) {
|
|
36076
|
-
|
|
36087
|
+
builtTools = mergeTools(builtTools, ext_tools);
|
|
36077
36088
|
}
|
|
36078
|
-
|
|
36089
|
+
builtTools.forEach((tool) => initTools.push(tool));
|
|
36079
36090
|
}
|
|
36080
36091
|
async input_text(agentContext, index, text, enter) {
|
|
36081
36092
|
await this.execute_script(agentContext, typing, [{ index, text, enter }]);
|
|
@@ -36780,7 +36791,7 @@ function scroll_by(params) {
|
|
|
36780
36791
|
}
|
|
36781
36792
|
|
|
36782
36793
|
class BaseBrowserScreenAgent extends BaseBrowserAgent {
|
|
36783
|
-
constructor(llms, ext_tools,
|
|
36794
|
+
constructor(llms, ext_tools, mcpClients) {
|
|
36784
36795
|
const description = `You are a browser operation agent, use a mouse and keyboard to interact with a browser.
|
|
36785
36796
|
* This is a browser GUI interface, observe the webpage execution through screenshots, and specify action sequences to complete designated tasks.
|
|
36786
36797
|
* For the first visit, please call the \`navigate_to\` or \`current_page\` tool first. After that, each of your actions will return a screenshot of the page.
|
|
@@ -36792,20 +36803,20 @@ class BaseBrowserScreenAgent extends BaseBrowserAgent {
|
|
|
36792
36803
|
- Wait for elements to load
|
|
36793
36804
|
- Scroll pages and handle infinite scroll
|
|
36794
36805
|
- YOU CAN DO ANYTHING ON THE BROWSER - including clicking on elements, filling forms, submitting data, etc.`;
|
|
36795
|
-
const
|
|
36806
|
+
const initTools = [];
|
|
36796
36807
|
super({
|
|
36797
36808
|
name: AGENT_NAME,
|
|
36798
36809
|
description: description,
|
|
36799
|
-
tools:
|
|
36810
|
+
tools: initTools,
|
|
36800
36811
|
llms: llms,
|
|
36801
|
-
|
|
36812
|
+
mcpClients: Array.isArray(mcpClients) ? mcpClients : (mcpClients ? [mcpClients] : []),
|
|
36802
36813
|
planDescription: "Browser operation agent, interact with the browser using the mouse and keyboard.",
|
|
36803
36814
|
});
|
|
36804
|
-
let
|
|
36815
|
+
let builtTools = this.buildInitTools();
|
|
36805
36816
|
if (ext_tools && ext_tools.length > 0) {
|
|
36806
|
-
|
|
36817
|
+
builtTools = mergeTools(builtTools, ext_tools);
|
|
36807
36818
|
}
|
|
36808
|
-
|
|
36819
|
+
builtTools.forEach((tool) => initTools.push(tool));
|
|
36809
36820
|
}
|
|
36810
36821
|
buildInitTools() {
|
|
36811
36822
|
return [
|