XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEWorkflow

【WinUI】XFE基于windows的工作流

公开
关注 0 Fork 0 Star 0
UTF-8

Agent 浏览器

官方页面插件 xfe.agent-browser 在导航栏添加“Agent 浏览器”。左侧为 WebView2,右侧是可拖动调宽的 DeepSeek 聊天栏。切换页面保留浏览器、登录状态和对话;禁用、卸载插件或退出应用会停止任务并释放页面。

首次使用

  1. 打开 Agent 浏览器,点击聊天栏右上角设置。
  2. 默认服务 https://api.deepseek.com/,模型 deepseek-v4-flash。可选择 deepseek-v4-pro 或填写服务当前支持的模型名。
  3. 输入 API Key,保存到凭据 agent-browser.deepseek,也可以选择已有凭据。密钥使用宿主的 Windows 当前用户 DPAPI 凭据库,插件设置只保存引用。
  4. 默认技能目录是 C:\Users\XFEstudio\Desktop\work\AI\skill\browser-debugger。点击“检查技能与运行环境”验证 Node.js 22+ 与技能依赖。依赖缺失时在技能目录运行 npm.cmd ci --ignore-scripts --no-audit --no-fund,不会下载浏览器。Node 可执行文件默认为 PATH 中的 node,也可填写绝对路径。
  5. 在左侧打开需要的网站并手动登录,再描述任务,例如“读取当前表格,整理成 Markdown,先不要提交表单”。

Enter 发送,Shift+Enter 换行。“停止”取消模型请求和技能进程,已经完成的网页操作保留。“新对话”清除当前模型上下文和聊天记录,保留浏览器登录。修改模型、服务或技能设置会开启新对话。

自动使用技能

每次发送消息重新读取 SKILL.md、计算 SHA256,并创建新的 Node helper 进程。它实际导入指定目录的 scripts/browser-session.mjs,通过 openSession 连接本应用的 WebView2。该轮工具调用共用一个 Playwright 会话;结束调用 session.close() 刷盘并断开,WebView2 继续由宿主持有。技能缺失或连接失败时明确报错,不退回普通聊天。

工具 用途
browser_observe URL、标题、ARIA、所有 iframe 文本;每次用户发送后先自动观察
browser_execute 异步 JavaScript 函数体;使用技能的 session、Playwright page/context 和 outputDir,用 return 返回结果
browser_screenshot 截取当前 WebView2 并在聊天中显示
read_skill 按需读取技能的 references/*.md,拒绝目录越界

支持 Playwright 定位、填写、点击、iframe、真实文件上传、下载、页面脚本及 session.cdp。弹出的新窗口在当前浏览器导航。网页和工具返回内容是待处理数据,不能改变用户指令;登录、验证码和系统确认由用户在可见页面完成。

浏览器使用独立 profile 和随机回环 CDP 端口,连接记录器前核对真实 targetId。不会附加个人 Edge/Chrome,也不共享聊天渲染器或其他浏览器 profile。端口冲突或策略阻止 CDP 时会报告错误,重新启用插件可分配新端口。

DeepSeek、Markdown 与执行记录

实现 Chat Completions 流式 SSE 和多轮工具调用:累计函数名与参数,依次执行,再回传对应 tool_call_id。流断开、截断或未正常完成不会标记成功。默认最多 32 轮工具调用,可设置为 1–100;模型请求最长 5 分钟,单个技能操作最长 75 秒。取消会停止该轮 Node 进程。

默认关闭思考模式。开启时保留并向 DeepSeek 回传协议要求的 reasoning_content,不在界面或日志展示、保存推理正文。界面展示公开回复、工具调用、实际结果、错误和截图。默认以文本模型运行;只有使用支持图片输入的模型时才开启“将截图发送给模型”。文本模型仍可根据 DOM/ARIA 操作网页,不能声称看过截图内容。

聊天支持流式 Markdown、标题、引用、嵌套列表、任务列表、表格、代码块、高亮、链接和复制。工具调用为可展开记录,输入输出作为文本呈现。链接在左侧浏览器打开。marked、DOMPurify、highlight.js 离线随插件分发;HTML 过滤配合 CSP 禁止外部脚本、外部图片和渲染器网络请求,截图只由宿主提供。

数据与运行

设置通过 AutoConfig 保存;密钥在凭据库。浏览器和技能产物位于工作区:

  • PluginData/xfe.agent-browser/BrowserProfile
  • PluginData/xfe.agent-browser/ChatProfile
  • PluginData/xfe.agent-browser/Downloads(浏览器下载,使用唯一文件名前缀)
  • PluginData/xfe.agent-browser/Conversations/<时间-ID>/captures/...

原始 HAR、请求响应体和 session 文件仅保存在本地,可能包含网页凭据;聊天通过宿主管理的敏感字段过滤器。对话上下文仅保留在插件实例内,取消或失败会移除不完整工具消息,以便下一轮继续。

与首版其他插件一样,插件运行受信任的本地代码。Agent JavaScript 在独立 Node 进程中执行,并非操作系统安全沙箱;仅连接信任的模型、技能与账号。模型请求和技能进程通信在后台执行;WebView2 的宿主操作在 UI 线程执行。

开发与验证

XFEWorkflow.Plugins.AgentBrowser 包含平台独立的入口、技能加载和工具循环;XFEWorkflow.Plugins.AgentBrowser.WinUI 提供原生界面。构建自动复制到 BundledPlugins,发布脚本生成可上传 Space 的 .xfeplugin。页面 SDK。

dotnet XFEWorkflow/XFEWorkflow.Test/bin/x64/Release/net10.0-windows/XFEWorkflow.Test.dll --no-parallel --filter AgentBrowserTests --artifacts .artifacts/agent-browser-unit

原生增量检查名为 agent-browser-plugin-deepseek-skill-webview-markdown-tools-and-stop,支持 --ui-background。它用本机模拟 DeepSeek SSE,实际执行指定技能并操作 WebView2,验证填写、点击、iframe、截图、Markdown、主题、面板尺寸、跨页面会话和停止。不发送真实 AI 请求,不操作个人浏览器。以生成报告的 passed 字段为准。

2026-10-16 的增量 UI 检查已通过,包含真实文件选择上传、下载内容校验、设置页技能 doctor、凭据加密引用、插件禁用释放及立即重新启用并打开页面。报告、验证摘要。

界面:深色、浅色、设置。整页图由本应用的 WinUI RenderTargetBitmap 和两个 WebView2 的实际 CDP 渲染按控件坐标合成;未采集其他窗口,也不是生成式设计图。设置截图中的凭据仅为本地测试值。

接口依据:DeepSeek 首次调用、工具调用、思考模式、Playwright WebView2。