iPolloWork Docs

可观测性与恢复

使用明确的健康信号、有限范围的日志、发布证据与保持工作区所有权的恢复路径运行 iPolloWork。

好的运维不从 dashboard 开始,而是先区分真正不健康的层:桌面应用、iPolloWork Server、OpenCode sidecar、某个具体工作区、可选控制平面资源,还是外部连接器。每层的证据和恢复负责人都不同。

运维证据通过各自的健康与恢复信号衡量每一层

进程显示绿色并不足够。信号必须回答用户路径、已配置工作区和所需能力是否可用。

01
产品路径

用户实际可以使用什么

桌面端 / Web 界面

可见 UI 能打开目标工作区并呈现真实任务状态。

任务结果

一个真实的小动作能够在目标界面中完成。

02
本地运行时

什么执行本地工作

Server health 与 status

证明可达性与实际解析出的运行时状态。

Capabilities 与工作区事件

证明所需能力和工作区专属活动都可用。

03
Sidecar 与 Host

什么运行智能体任务

Orchestrator status

以配对系统的方式检查 iPolloWork Server 与 OpenCode。

运行关联

稳定 run ID 关联 Host 与 sidecar 证据,同时不暴露凭据。

04
可选控制平面

什么增加共享组织能力

资源状态

Worker、connector event、grant 与 provider 状态都按 ID 重新读取。

审计线索

特权组织动作应通过控制平面记录评估,而不是只看本地日志。

健康是分层探针,不是一个布尔值

问题第一个信号后续信号
客户端能否到达本地运行时?GET /healthGET /statusGET /capabilities
当前调用方能否访问工作区?GET /whoamiGET /workspaces工作区专属 config 或 event 路由
智能体任务能否运行?ipollowork status通过真实客户端路径完成一个小型端到端任务
远程操作是否完成?请求返回的资源 ID当前 Worker、connector target、discovery 或 sync event 表示
导入或文件动作是否可见?明确的 artifact 或 file-session 读取目标操作后的 event/catalog 重新读取

对于自托管运行时,不应只发布 HTTP 可达性检查。只有正确范围的调用方可以到达已配置工作区并使用所需能力时,部署才真正可用。

关联日志但不泄露凭据

Orchestrator 可以从 OpenCode 与 iPolloWork Server 输出统一日志流。日志进入支持结构化字段的系统时,使用 JSON:

IPOLLOWORK_LOG_FORMAT=json \
ipollowork start --workspace /path/to/workspace --run-id release-2026-07-15

本地服务会记录请求 method、path、status 和 duration。Host 启动 OpenCode 时可通过 --opencode-log-level <DEBUG|INFO|WARN|ERROR> 传递日志级别。不要把 client token、host token、provider key 或原始配对凭据放进 run ID、shell history、复制的日志或支持工单。

证据环路收集、分类、修复,再证明原始路径

每次恢复都要以最小的、原本失败的真实任务作为结束。

  1. 01收集

    记录精确用户路径、工作区 ID、请求时间、状态信号和已脱敏的运行关联值。

  2. 02分类

    识别归属边界:UI、本地服务、sidecar、工作区配置、控制平面或外部连接器。

  3. 03小范围修复

    只修改失败归属:配置、sidecar 来源、过期凭据或远程资源状态。

  4. 04重新证明

    重复原路径,并重新读取能证明成功的 health、status、event、artifact 或资源状态。

发布门禁:证明的不只是编译

使用分阶段发布门禁。具体命令因交付目标而异,但证据应保持可比较:

  1. 静态正确性 — 为变更边界运行最窄的 type、test 或 build 检查。
  2. 产物正确性 — 解包 Electron 应用足以验证桌面流程时使用 package:dir;验证安装包时再使用原生 package。
  3. 运行时正确性 — 启动真实本地服务或 Orchestrator 路径,并检查 health 和 capabilities。
  4. 用户路径正确性 — 在 UI 或远程客户端完成一次使用变更功能的聚焦任务。
  5. 回滚准备 — 变更远程部署前,明确上一个产物、配置版本和负责的 owner。

仓库中的 ./ipollowork check 是验证命令,不是部署机制。package:dir 创建本地验证产物;package 创建当前宿主机的原生安装包。两者都不会自行发布、修改 GitHub tag 或更新托管控制平面。

恢复手册

Server 可达但工作区无法使用

读取 GET /whoamiGET /workspaces,再读取目标工作区 config 与 events。检查工作区声明、token scope、审批姿态和 CORS origin 是否与真实客户端匹配。在保留错误与解析配置证据后,仅重启拥有该边界的 Server 进程。

Host 更新后 sidecar 失败

使用 ipollowork status,开启 --verbose,并在改变任何其他项前确认解析出来的 sidecar 策略。downloaded、bundled 和显式 external 二进制是不同的发布输入。先修正来源选择,再运行一个小型端到端任务。

异步 Cloud 操作看似卡住

使用返回的资源 ID 读取 Worker、connector target、discovery 或 sync event。不要因为最初请求只是 accepted 就创建重复 account 或 Worker。只在理解当前状态后重试明确可重试的资源。

破坏性或权限敏感请求待处理

通过 approval 或 owner 流程审核。不要用生产环境全局 auto 设置绕过手动审批。若访问不正确,修复 token 或 grant 边界,再用最小合适范围重复请求。

运行时的准确组装方式请继续阅读 Orchestrator 与 Sandbox;私有网络与服务配置请继续阅读 自托管拓扑