Computer
运行桌面环境的 sandboxes 可以暴露截图、鼠标和键盘控制。当静态配置的 sandbox 支持 computer 能力时,workspace 会注册 computer 工具。
DaytonaSandbox 和 E2BDesktopSandbox 支持此能力。其他 sandbox 后端不会注册 computer 工具。解析器支持的 sandboxes 也不会注册它们,因为 workspace 在创建工具列表时无法检查解析后 sandbox 的能力。
Computer 工具Computer 工具的直接链接
| 工具 | 作用 |
|---|---|
mastra_workspace_computer_screenshot | 将桌面捕获为 PNG 图像,并作为原生媒体返回给模型。 |
mastra_workspace_computer_click | 在像素坐标处按下并释放鼠标左键。 |
mastra_workspace_computer_double_click | 在像素坐标处按下鼠标左键两次。 |
mastra_workspace_computer_right_click | 在像素坐标处按下并释放鼠标右键。 |
mastra_workspace_computer_move_mouse | 将光标移动到像素坐标,而不按下按钮。 |
mastra_workspace_computer_drag | 在两点之间按下、拖动并释放。 |
mastra_workspace_computer_type | 将文本输入到聚焦元素中。 |
mastra_workspace_computer_press_key | 按下按键或组合键,例如 Enter 或 ctrl+s。 |
mastra_workspace_computer_scroll | 向上或向下滚动。 |
mastra_workspace_computer_get_screen_info | 获取屏幕尺寸和光标位置。 |
mastra_workspace_computer_wait | 等待界面稳定。 |
配置 computer 工具配置 computer 工具的直接链接
操作工具默认在每次操作后截取屏幕截图。为每个工具配置截图行为:
src/mastra/workspaces.ts
import { Workspace, WORKSPACE_TOOLS } from '@mastra/core/workspace'
import { E2BDesktopSandbox } from '@mastra/e2b-desktop'
const workspace = new Workspace({
sandbox: new E2BDesktopSandbox(),
tools: {
[WORKSPACE_TOOLS.COMPUTER.CLICK]: {
screenshotAfterAction: true,
screenshotDelayMs: 1000,
},
[WORKSPACE_TOOLS.COMPUTER.TYPE]: {
requireApproval: true,
},
},
})
Computer 工具接受与其他 workspace 工具相同的单工具 enabled 和 requireApproval 配置。