先思考几个关键问题:如何在本地运行一个文档处理任务,实现从“接收指令”到“生成报告”的全程无人值守?如果中途模型崩溃、显存溢出、甚至电脑意外关机,能否自动续接而不丢失进度?答案的核心,就是下面这套基于本地状态文件、显式阶段划分以及模型协同路由构建的自动化工作流方案。

从根本上说,将人工操作逻辑拆解为可复用、可追踪、可恢复的状态机,远比依赖云端调度更加稳定可靠。Skywork 采用本地状态文件作为“大脑”,每个阶段的任务内容与执行进度都通过 JSON 格式固化并记录,阶段之间确保关键输出完全落盘后,系统才会允许进入下一步。
明确任务阶段与状态定义
每个 Skywork 任务启动时,系统会自动分配一个唯一的 task_id,并按照预设的阶段序列逐步推进。例如:
intent_recognition → document_parsing → clause_extraction → semantic_comparison → report_generation
这些并非抽象概念,而是切实写入到 %LOCALAPPDATA%SkyworkDesktopstates{task_id}.json 文件中的字段 "phase" 和 "progress"。系统坚持采用保守的推进逻辑:只有当一个阶段完全完成,并且关键输出(如 PDF 文本层解析完整、条款提取结果写入 SQLite)成功落盘后,才会启动下一阶段。
建议在新任务启动前,打开 Settings → Advanced → Long-Task Resilience,开启「自动快照间隔」并设置为 120 秒。这样即便中途意外中断,也能从最近的完整节点恢复,无需重新执行 OCR 或向量计算等前期工作。
配置跨阶段容错与模型降级
长任务最容易在哪个环节出现问题?模型推理阶段。比如 Claude Opus 在语义比对时突然超时。为此,Skywork 提供了两级弹性策略:
- 勾选「跨模型失败降级」后,一旦指定的高精度模型超时或不可用,系统会自动切换到同能力域的轻量模型。例如从
skywork-32b-document降级为skywork-14b-document,流程不会因此卡死。 - 启用「显存优先降级策略」,当 GPU 显存低于预设阈值时,表格分析类任务会自动切换为流式 CSV 解析结合
skywork-7b-spreadsheet-light模型,有效避免因内存溢出导致整个任务崩溃。
绑定关键节点 Hook 实现自动触发
状态机不仅用于“执行”,更重要的是用于“触发下一动作”。这正是状态机的核心价值。你可以在任意阶段完成后挂载外部操作:
- 在
"phase": "risk_summary_report_generated"后,自动运行一个 PowerShell 脚本,向法务团队发送邮件通知。 - 在
"phase": "ppt_exported"后,调用 Windows COM 接口,将生成的 PPT 直接插入到当前打开的 PowerPoint 演示文稿中。 - 在
"phase": "data_validation_passed"后,触发本地 Python 脚本,将校验结果写入企业内部数据库。
所有 Hook 都通过 JSON 配置文件绑定,无需修改核心代码即可灵活调整,同时支持错误重试与超时控制。这才是真正的工程化思维。
手动干预与状态可视化
自动化并不等于完全黑盒操作。你可以随时介入查看或调整任务进展:
- 在命令面板输入
status [task_id],即可立即查看当前阶段、进度百分比、已耗时长以及剩余预估时间。 - 运行过程中,按 Ctrl+Shift+S 可以呼出悬浮栏。点击「详情」即可看到最近 3 条日志、内存占用情况,以及各个子步骤的完成标记,例如
"last_success_step": "pdf_text_layer_parsed"。 - 直接打开对应的
task_id.json文件,也能手动翻阅状态——但请注意,不要手动编辑该文件,否则会触发校验失败并被标记为corrupted。
如果确实需要强制从某个阶段重试,可以使用 resume_task(task_id, phase="semantic_comparison") 命令跳转。系统会自动加载当前阶段所需的上下文快照,确保衔接无缝。
