6.7 KiB
6.7 KiB
Web UI + MCP 功能矩阵
状态以 GET /api/v1/capabilities 为准;implemented 不代表 validated,数据库指纹也不代表当前 UI 账号绑定。
多 Client 约束:平台可同时连接多个 Desktop Agent/Client;任务、事件、账号绑定和 UI 业务上下文按
client_id(内部可兼容node_id)隔离。单个 Client 掉线只影响其自身任务和事件流,不得让其它 Client 进入离线或停止操作。
| 操作 | REST | MCP | 当前状态 | 说明 |
|---|---|---|---|---|
| 服务/微信诊断 | GET /api/v1/status、/api/v1/diagnostics |
agent_status、agent_diagnose |
Ready/环境依赖 | 脱敏;服务在线不等于微信可用,不执行恢复或 UI 写操作 |
| 能力清单 | GET /api/v1/capabilities |
agent_capabilities |
Ready | 各项 implemented/validated/enabled 分离 |
| 数据库账号发现 | GET /api/v1/accounts |
accounts_list |
只读 | 仅返回指纹和绑定状态,不返回密钥 |
| 窗口枚举/显式绑定 | GET /api/v1/ui-targets、POST /api/v1/accounts/bind、/unbind |
ui_targets、account_bind、account_unbind |
Ready/需真机 | 用户选择 PID+HWND;绑定前读取 UI 身份并与已验证 contact.db 身份匹配,重复/不匹配拒绝 |
| 可见会话 | GET /api/v1/sessions?accountId=...、/search、/current;POST /open、/scroll |
sessions_list、sessions_search、session_current |
只读/导航 | 所有 UI 调用必须携带已绑定 accountId;精确匹配拒绝猜测;open/scroll 需 manage 且当前仍待导航验收 |
| 可见消息 | GET /api/v1/messages?accountId=... |
messages_read |
只读 | 必须使用已绑定 accountId;默认摘要;includeContent 需要 content 权限 |
| 数据库消息/合并记录 | GET /api/v1/db/messages、/api/v1/db/merged |
db_messages、db_merged |
Implemented but disabled | 仅接受显式已验证账号 fingerprint;只读 SQLCipher,未提供通用 SQL |
| 任务查询/取消 | GET /api/v1/operations、/api/v1/operations/{id}、POST /api/v1/operations/{id}/cancel |
operations_list、operation_get、operation_cancel |
Ready | 按 principal 隔离;accountId 仅为调用方视图筛选,不是账号授权;取消不撤销已发生副作用 |
| 事件流 | GET /api/v1/events |
暂未注册 | Explicit opt-in | SSE 有界缓存、Last-Event-ID gap、Windows ListenEventsAsync 已接入;默认关闭,需受控真机验收后开启 |
| 单目标文本发送 | POST /api/v1/operations,kind=send-text |
operation_submit |
Implemented(仅验证模式开放) | 已完成单 Client 账号绑定、目标唯一性、确认、幂等和 Windows 真机写后确认;默认部署仍只读,Web UI 直接提交继续门控 |
| 多目标文本群发 | POST /api/v1/operations,kind=broadcast-text |
operation_submit |
Implemented(仅验证模式开放) | 冻结 1–20 个可见且唯一的会话 automation ID,串行逐项发送、记录结果、按错误停止并支持幂等重放;真实单 Client 最终已完成两个白名单目标均成功的群发验收,并保留失败停止证据 |
| 文件/卡片发送、联系人/群管理、朋友圈 | — | — | Deferred/Disabled | 遵循 docs/PENDING.md,需单项授权和真机证据 |
| 任意 SQL/UI 菜单/shell | — | — | Unsupported | 不提供 |
本轮普通用户工作台状态(2026-09-19)
| 范围 | 当前状态 | 验证边界 |
|---|---|---|
| 消息首页、会话和消息正文 | 已实现/只读已验证 | 通过真实控制面读取任务和双 Client 联调;仅显示当前 Client 的数据 |
| 通讯录/群列表 | 已实现/只读已验证 | 通过真实控制面读取任务联调;添加好友保持禁用 |
| 任务中心 | 已实现/只读已验证 | 展示 Client 归属、状态和结果;不提供未经验收的写操作重试 |
| 多 Client 选择与隔离 | 已实现/协议及浏览器已验证 | client_id/node_id、连接代次、任务和事件按 Client 隔离;掉线任务进入等待/待核对,不自动跨 Client 改投 |
| 发送、群发、添加好友 | 发送/群发已具备验证模式入口;添加好友禁用 | 单 Client 白名单对象已完成发送与 broadcast-text 多目标逐项/停止/幂等验证;默认部署和 Web UI 直接写入口仍安全门控,添加好友不在本轮 |
详细步骤、自动检查和 Windows 证据见 WebUI-MCP-2026-09-19 验收记录。
单 Client 生产验证状态(2026-09-19)
| 范围 | 状态 | 说明 |
|---|---|---|
.mcp.json Windows 直连、真实 Session 1、账号绑定 |
已验证 | 使用真实微信 UI 和本地 Client 服务;未使用 Session 0 或 fake Client |
| 会话、消息、联系人、群只读 | 已验证 | 真实账号 Rogee;会话/消息/白名单联系人及群查询通过 |
| 单消息发送 | 已验证(受控) | 文件传输助手通过 Windows MCP 发送并在 UIA 中确认;服务 send-text 保留确认、幂等和目标校验 |
| 普通群消息 | 已验证(受控) | 吉祥三宝通过可见会话 automation ID 发送并返回 Succeeded;群预览完成写后确认 |
| 多目标文本群发 | 已验证(受控) | 最终真实 broadcast-text 冻结“文件传输助手”和“吉祥三宝”两个目标,逐项均返回 Succeeded,并确认幂等重放不创建第二次群发;此前失败项按 stopOnError 停止的记录也保留。 |
@所有人 / group-at-all |
禁用 | 当前没有注册独立操作,不能宣称已验证 |
| 添加好友 | 禁用 | 本轮明确排除,未进行真实联系人变更 |
| 多 Client / 跨 Client 故障恢复 | 未纳入 | 本轮只验收单 Client |
详细操作 ID、失败结果、版本差异和剩余风险见 单 Client 生产验证记录。
运行边界
- Windows Agent 只接受双击
WxAgent.Tray.exe启动;首次运行或托盘菜单/托盘图标双击会打开“服务设置...”配置窗口。WxAgent.Host serve --config及命令行配置入口均禁用。默认监听127.0.0.1,外部 IP 必须显式allowExternal: true。 - 本机回环访问 Web UI、HTTP API 和 Streamable HTTP MCP (
/mcp) 不需要 Token;远程访问仍使用 Bearer Token,Token 只放Authorization,不放 URL。 - 远程浏览器登录后仅保留短期 HttpOnly SameSite Cookie,写请求需可信 Host/Origin、CSRF;本机浏览器写请求还需同源本机请求头;普通日志不记录正文、Token、Cookie、密钥或完整 UI 树。
- 明文 HTTP 不提供传输保密性,只适合可信隔离网络;不应直接暴露公网。外部监听必须使用具体 IP,不能使用
0.0.0.0/::作为工作台地址。