XFEWorkflow
基于 .NET 10、WinUI 3 和 XFEExtension 的本地自动化工作台。提供节点画布、C# 节点、纯 C# 工作流、独立 Runner、插件管理和分享插件与工作流的 Space。
启动
开发环境需要 Windows、.NET 10 SDK 和 WinUI 构建工具:
dotnet build XFEWorkflow.slnx -p:Platform=x64 -nr:false -m:1
& .\XFEWorkflow\XFEWorkflow\bin\x64\Debug\net10.0-windows10.0.22621.0\win-x64\XFEWorkflow.exe
首次启动自动安装官方插件并创建欢迎工作流。点击“运行”即可验证本地执行。发布包包含 .NET 运行时、Runner、Roslyn 引用程序集和本地 Monaco;运行代码无需另装 SDK。WebView2 使用 Windows 安装的 Evergreen Runtime。
完整发布与测试:
powershell -NoProfile -ExecutionPolicy Bypass -File tools/Test.ps1 -Ui
powershell -NoProfile -ExecutionPolicy Bypass -File tools/Publish-Release.ps1 -Platform x64 -IncludeLinuxServer
输出在 .artifacts/。保留 x86、ARM64 构建配置;首轮运行验证使用 Windows 11 x64。输入框架的 5.0.0-driver-local 包随仓库放在 vendor/nuget,由 NuGet.Config 引用,其余依赖从 NuGet 恢复。
使用
插件可注册原生 WinUI 页面。“Agent 浏览器”插件提供 WebView2 和可调宽的 Markdown 聊天栏,优先适配 DeepSeek;browser-debugger 技能、Node 和 Playwright 随插件内置,每轮自动导入,无需配置技能目录或检测本地环境。设置中直接填写、验证和更换 API Key,留空保存保留原密钥及对话。用户消息显示登录账号头像与名称并靠右,AI 回复及工具调用靠左显示头像。使用说明、页面 SDK。
Agent 浏览器支持多个独立会话,每个会话拥有自己的多标签浏览器和登录配置;切换会话同时切换网页,重启恢复标签列表、选中标签、网址、登录状态、聊天、草稿及完成的模型上下文。操作次数默认不限,设置为
0表示不限,正整数表示上限。中断任务不会自动重做。会话与浏览器说明。内置基础节点现有 164 个动作和 4 个系统触发器。本轮新增 141 个,涵盖文本拼接/拆分/替换/正则、数学与布尔、数组筛选/排序/字段投影、对象与 JSON、日期时间、编码与路径,以及计数循环、break/continue/throw。Ctrl+K 可搜索中文或 C# 方法名;节点教程与四份可导入模板、完整能力目录。参数通过类型化连线传递,普通消息不插值,中文与组合表情保持原样。
“新建工作流”只需填写名称,默认创建图形化工作流;进入编辑器后可随时切换图形化与 C#,分别保留图形和代码。节点库使用可折叠分类和紧凑列表,标注插件名称;支持收藏、最近使用和按插件筛选。Ctrl+K 搜索节点、功能或插件,多个关键词用空格分隔,Enter 添加首个结果、Esc 清空;搜索自动展开命中分类,清空后恢复原先的折叠状态。
拖动面板之间的分隔条调整节点库和属性区宽度、运行输出高度;展开的导航栏与浏览器拾取结果区也可拖动调整。尺寸按工作区保存,窗口缩小时限制到可用空间,放大后恢复偏好尺寸。分隔条可用方向键微调,双击或 Home 恢复默认值;顶部“视图”菜单提供“重置面板布局”。
将节点拖到带边框的画布,按住圆环端口拖出预览线,松开到另一端口完成连接;也可依次点击两端。蓝色连接执行顺序,数据端口按类型区分颜色;悬停查看用途,属性显示连接来源和去向。拖动已连接的目标圆环可改接,松到空白画布可断开,Ctrl+Z/Y 撤销或重做;Esc 取消改接并保留原线。也可选中连线按 Delete 或右键端口断开。左侧节点库使用系统强调色并跟随浅/深色主题,详见端口与类型转换。
拖动空白处、按住空格拖动或中键拖动可平移;Shift 拖动框选、Shift 点击多选;直接滚动鼠标滚轮,以鼠标位置为中心缩放,“适应画布”查看全图。滚动条默认隐藏。
Ctrl+C/V 复制粘贴,Ctrl+Z/Y 撤销重做,右键删除连线。窄窗口通过“节点属性”按钮展开属性面板;循环、并行与异常处理通过“编辑子图”组织。
遍历数组使用“逻辑控制 → 遍历集合”,在
body子图中放置“当前循环项”,把item输出直接连到“日志操作 → 输出日志”的message,消息参数无需修改;index输出从 0 开始的数字序号。主图后续步骤在全部完成后执行。可导入模板与完整教程。企业微信联系人可用可导入模板:读取缓存联系人 → 遍历 → 逐项原样输出联系人,通过数据连线传递完整对象。在“插件中心 → 企业微信”先连接客户端;当前接口只提供已加载缓存,不保证完整通讯录。配置与连线。
读取联系人 ID、名称或其他对象字段,使用“变量与数据 → 读取对象字段”,把
value输出连到后续节点,found可用于系统条件判断。消息参数无需表达式。联系人字段模板、无需插件的示例及字段路径与连线教程。JSON 日志、调试、运行记录和导出完整显示中文与表情,包括组合表情、肤色和旗帜,保留原文中的字面转义。C# 工作流实现
IWorkflow。C# 节点填写方法体,使用context.InvokeAsync调用插件。诊断列表双击跳转,运行错误可以从历史记录定位。编辑器 F5 运行/继续、F9 设置选中节点断点、F10 单步越过、F11 进入循环/子流程,Shift+F5 停止。底部“调试”页显示参数、变量、输入与已有输出;自动任务忽略断点。节点调试教程。
标题栏与左下角用户选项卡同步显示真实登录账号的昵称和头像。点击右上角先打开用户弹窗,再选择个人中心、Space、登录/注册、切换账号或退出登录。个人中心提供资料编辑、头像预览和作者中心,适配浅深主题与窄窗口。账号界面说明。
“工作流”列表与“工作流编辑器”独立:列表可展开查看触发状态、下次运行时间和优先级,并统一开启、关闭工作流。触发器从节点库拖入,在节点属性中配置。导入、复制的工作流默认关闭。
编辑器支持多个可关闭、可重排的标签页;重复打开定位到已有标签,切换标签保留各自编辑状态。文件、编辑、工作流、视图、工具命令放在顶部菜单;Ctrl+N 新建、Ctrl+S 保存、Ctrl+W 关闭标签。保存编辑内容不会覆盖列表中的启停状态与优先级。
展开工作流列表可查看触发器与下次运行时间。支持间隔、每日、文件变化、插件事件和上游工作流完成;事件可映射为工作流输入,完成事件可把上游输出交给下游。托盘驻留期间继续运行。触发器与联动说明。
“插件中心”管理本地插件;独立的“Space”页面提供插件、工作流、我的发布及管理员审核。可上传
.xfeplugin,也可选择本地工作流或.xfeworkflow/.json文件发布。下载前可只读预览图形、结构化子图、对应 C# 与插件依赖;下载时自动获取锁定的插件版本,导入为默认关闭的新副本。账号和 Space 固定共用http://localhost:3300/space/v1/,客户端不提供地址修改入口。上传、预览、审核与下载说明。在“设置 → 凭据”保存
ai.key、wecom.webhook等引用;“设置 → 桌面输入”管理标准输入、HID 与紧急停止。AI 模板需要配置数据源、兼容 Chat Completions 的服务地址、模型与凭据。真实 AI 和企业微信服务由使用者配置。内置浏览器为不同登录配置保存独立会话;点击“拾取元素”获取选择器和 iframe 路径。桌面插件使用 UIA3,支持按窗口、进程 ID 和 AutomationId 定位。
“屏幕与识别”插件提供 17 个节点:屏幕/图像区域框选、离线中英文 OCR、文字与模板图像的查找/等待/点击、颜色判断、鼠标操作和剪贴板。区域及坐标可在属性面板可视化拾取;顶部“工具”菜单提供“新建框选 OCR 模板”。使用说明与示例。
找图节点支持直接从屏幕框选目标模板、缩略图与原图预览、重新框选、本地图像导入、1%~100% 匹配相似度和无点击的测试预览。模板内嵌到工作流,随保存、复制和导入导出携带;旧版容差规则可以保留。
关闭主窗口会隐藏到托盘。托盘使用支持浅深主题的原生 WinUI 云母菜单,可打开、紧急停止、恢复调度或退出。Ctrl+Alt+F12 紧急停止任务、暂停自动调度并释放按键;从托盘或“设置 → 桌面输入”恢复调度。HID 仅在 Windows 11 x64 显式安装、启用;标准输入为默认后端。托盘菜单说明。
运行输出、诊断和日志页面统一使用 XFE 日志,只显示主动日志和必要错误;开始、结束、遍历等生命周期不写入日志或导出。计数徽章保持正圆,内容区与选中选项卡背景相连并同步浅深主题。运行记录可查看输入、输出、节点日志并跳转到完整日志;日志可筛选工作流与运行、定位节点和导出。“日志操作 → 导出运行日志”可在流程中保存本次运行的日志快照,支持 UTF-8 文本与 JSON。导出格式与范围。
命令行节点提供 PowerShell 脚本(Windows PowerShell 5.1)和 CMD 命令,支持多行脚本、工作目录、环境变量、最长执行时间与管理员启动。管理员模式由 Windows 显示 UAC,取消后不会执行命令。stdout、stderr、exitCode、succeeded 可以连到后续节点;result 提供完整结果。默认保留非零退出码供条件节点判断,也可开启“非零退出码报错”。每个输出流最多保留 256 Ki 字符,超出后继续排空并设置 truncated;停止或超时会终止所属命令及子进程。
工作区通过 AutoPath 放在应用本地数据目录的 Workspace 中;XFE_WORKFLOW_DATA 可指定独立工作区。工作流、运行记录、插件与浏览器配置分别保存,凭据使用当前 Windows 用户 DPAPI 加密。
节点库交互参考 Node-RED 的分类折叠与搜索及 Unreal Blueprint 的收藏、筛选与拖放,使用原生 WinUI 控件和系统强调色实现。画布内节点保留原有样式。
模块
| 项目 | 职责 |
|---|---|
| XFEWorkflow | WinUI、MVVM、画布、Monaco、浏览器、托盘与管理页面 |
| XFEWorkflow.Abstractions | 工作流数据模型、插件 SDK、能力和触发器接口 |
| XFEWorkflow.Core | 图校验、结构化逻辑、执行上下文和变量作用域 |
| XFEWorkflow.Infrastructure | AutoConfig 存储、Roslyn、插件加载、调度、IPC、Space 客户端 |
| XFEWorkflow.Runner | 每次运行或插件监听的独立执行进程 |
| XFEWorkflow.Space.Contracts / Server | 发布协议、账号、上传、审核与下载服务 |
| XFEWorkflow.Plugins.Standard / Desktop | HTTP、文件、AI、企微、网页、定时触发和桌面能力 |
| XFEWorkflow.Plugins.WeCom | 企业微信收到消息触发、独立字段输出、引用回复与持久化去重;筛选使用系统条件,兼容群机器人接口 |
| XFEWorkflow.Plugins.Vision | 离线 OCR、区域截图、文字/图像定位、颜色与鼠标能力 |
| XFEWorkflow.Test | XFE XUnit 自动测试与本地模拟服务 |
文档
- 架构与执行语义
- 工作流与 C# 示例
- 基础节点、文本拼接、C# 语义对照与导入示例
- 数组常量、对象与变量的可视化编辑,以及三位联系人自动回复模板
- 164 个核心动作节点的端口与能力 ID 目录
- 遍历数组、逐项输出与可导入模板
- 读取对象字段、联系人 ID/名称与完整 Unicode JSON
- 节点断点、F5 运行与 F10/F11 单步调试
- 端口、类型转换、连线改接与撤销
- 工作台页面、触发器联动与设计图
- 企业微信本机消息触发、原工程迁移与适配范围
- 屏幕区域与 OCR 自动化
- 个人中心与用户弹窗
- 托盘菜单
- 插件开发与打包
- 将图形工作流保存为插件节点
- Space 部署和协议
- 验收范围与手工检查
- 第三方依赖说明
插件与 C# 按本地受信任代码执行。Runner 提供故障隔离,程序集加载上下文负责依赖隔离。Windows 凭据文件应连同工作区一起备份,且只能由原用户解密。