章节 01
导读 / 主楼:Work:本地安全工作流引擎与 AI 智能体执行环境
Work 是一个让用户在自己的机器上运行任意工作流的工具,支持 YAML 定义的 DAG 任务,每个任务在安全的微虚拟机中隔离执行,具备持久化运行能力,并可选择性地集成 AI 智能体步骤。
正文
Work 是一个让用户在自己的机器上运行任意工作流的工具,支持 YAML 定义的 DAG 任务,每个任务在安全的微虚拟机中隔离执行,具备持久化运行能力,并可选择性地集成 AI 智能体步骤。
章节 01
Work 是一个让用户在自己的机器上运行任意工作流的工具,支持 YAML 定义的 DAG 任务,每个任务在安全的微虚拟机中隔离执行,具备持久化运行能力,并可选择性地集成 AI 智能体步骤。
章节 02
章节 03
|------|------|----------------|----------------|---------|\n| 执行位置 | 本地 | 云端 | 云端/私有 | 私有 | | 任务隔离 | 微虚拟机 | 容器 | 容器 | 进程/容器 | | 持久化 | 支持 | 有限 | 支持 | 支持 | | AI 集成 | 原生 | 需自定义 | 需自定义 | 需自定义 | | 离线运行 | 支持 | 不支持 | 部分支持 | 支持 | | 数据隐私 | 完全本地 | 上传云端 | 依赖部署 | 依赖部署 | \n## 技术实现考量\n\n### 微虚拟机技术选型\n\nWork 可能采用的虚拟化技术:\n\nFirecracker:\n- AWS 开源,专为无服务器计算设计\n- 毫秒级启动时间\n- 内存开销极低(约 5MB)\n- 安全性经过大规模验证\n\nCloud Hypervisor:\n- Intel 开源,基于 Rust\n- 现代虚拟化技术,性能优异\n- 适合现代云原生工作负载\n\nKata Containers:\n- 容器与虚拟机的结合\n- 兼容容器生态\n- 提供更强的隔离性\n\n### AI 智能体架构\n\nWork 的 AI 集成可能采用以下设计:\n\n模型支持:\n- 本地模型(Ollama、llama.cpp)\n- 云端 API(OpenAI、Anthropic 等)\n- 混合模式:简单任务本地处理,复杂任务调用云端\n\n上下文管理:\n- 自动收集工作流上下文\n- 文件内容自动读取和摘要\n- 历史步骤输出作为上下文\n\n工具调用:\n- 智能体可以调用工作流中定义的工具\n- 支持文件操作、命令执行\n- 安全沙箱限制智能体能力\n\n## 安全与隐私考量\n\nWork 的设计将安全放在核心位置:\n\n密钥管理:\n- 集成系统密钥链(macOS Keychain、Windows Credential Manager、Linux Secret Service)\n- 密钥只在需要时注入,不持久化到工作流文件\n- 支持硬件安全模块(HSM)\n\n网络隔离:\n- 任务默认无网络访问\n- 需要显式声明网络权限\n- 支持代理和出站流量审计\n\n审计日志:\n- 完整记录工作流执行历史\n- 文件访问日志\n- 网络请求日志\n\n## 总结与展望\n\nWork 代表了工作流自动化领域的一个重要发展方向:将云原生工作流的能力与本地优先的隐私保护相结合。通过微虚拟机隔离、持久化执行和 AI 智能体集成,它为需要处理敏感数据或在受限环境中工作的用户提供了一个强大的解决方案。\n\n随着 AI 能力的普及和数据隐私意识的提升,这类本地优先、安全隔离的工作流工具可能会获得越来越多的关注。对于注重数据主权、需要在离线环境工作或希望将 AI 能力集成到自动化流程的用户,Work 提供了一个值得探索的选择。
章节 04
原作者与来源
yaml\nname: data-pipeline\njobs:\n fetch:\n runs: curl -o data.csv https://example.com/data\n outputs:\n - data.csv\n \n process:\n needs: fetch\n runs: python process.py data.csv\n outputs:\n - processed.json\n \n analyze:\n needs: process\n runs: python analyze.py processed.json\n \n report:\n needs: analyze\n agent: true AI 智能体步骤\n prompt: |\n 根据分析结果生成一份执行摘要报告\n 输入文件: {{ jobs.analyze.outputs.summary }}\n\n\n微虚拟机隔离\n\nWork 最具特色的技术特性是每个任务都在独立的微虚拟机(micro-VM)中执行。这种架构提供了多重优势:\n\n安全性:\n- 任务之间完全隔离,一个任务无法访问其他任务的文件系统或内存\n- 即使任务包含恶意代码,其影响也被限制在虚拟机内部\n- 网络访问可以被细粒度控制,防止数据外泄\n\n可重现性:\n- 每个任务都在干净的环境中启动\n- 避免了"在我机器上能跑"的问题\n- 依赖关系清晰明确\n\n资源管理:\n- 可以为每个任务分配特定的 CPU、内存和磁盘配额\n- 支持优先级调度和资源抢占\n- 任务超时和自动清理机制\n\n微虚拟机的实现可能基于 Firecracker、Cloud Hypervisor 或其他轻量级虚拟化技术,这些技术能够在毫秒级启动虚拟机, overhead 极低。\n\n持久化运行\n\n与临时性的 CI 作业不同,Work 支持持久化的工作流执行。这意味着:\n\n- 断点续传:如果工作流因机器重启而中断,可以从上次保存的状态恢复\n- 长时间运行:支持需要数小时甚至数天才能完成的工作流\n- 状态检查点:工作流状态定期持久化到本地存储\n- 后台执行:工作流可以在后台持续运行,用户可以随时检查进度\n\n这种特性使 Work 不仅适用于 CI/CD 场景,也适用于数据管道、机器学习训练、科学计算等需要长时间运行的任务。\n\nAI 智能体集成\n\nWork 的一个创新特性是原生支持 AI 智能体步骤。在工作流中,某些步骤可以标记为 agent: true,这些步骤将由 AI 智能体执行而非传统的命令。\n\n智能体步骤的工作方式:\n\n1. 上下文收集:系统收集工作流当前状态、前置步骤的输出、文件内容等作为上下文\n2. 智能体执行:将上下文和提示词发送给配置的大语言模型\n3. 输出生成:智能体生成输出,可以是文本、代码、配置或决策\n4. 结果集成:智能体的输出可以作为后续步骤的输入\n\n这种集成模式开启了诸多可能性:\n\n智能数据处理:\n- 让 AI 分析非结构化数据并提取结构化信息\n- 自动分类、标注和总结文档\n- 生成数据质量报告\n\n自适应工作流:\n- 根据前置步骤的结果动态调整后续流程\n- 智能错误处理和重试策略\n- 条件分支的智能决策\n\n内容生成:\n- 根据代码变更自动生成发布说明\n- 基于数据生成报告和可视化\n- 创建文档和注释\n\n代码辅助:\n- 自动代码审查\n- 生成测试用例\n- 重构建议和实施\n\n使用场景示例\n\n场景一:个人数据管道\n\n用户每天需要从多个来源收集个人财务数据,进行整合分析:\n\nyaml\nname: daily-finance\ntrigger:\n schedule: \"0 8 * * *\" 每天上午8点\n\njobs:\n fetch-bank:\n runs: python fetch_bank.py\n secrets:\n - BANK_API_KEY\n \n fetch-crypto:\n runs: python fetch_crypto.py\n secrets:\n - CRYPTO_API_KEY\n \n consolidate:\n needs: [fetch-bank, fetch-crypto]\n runs: python consolidate.py\n \n analyze:\n needs: consolidate\n agent: true\n prompt: |\n 分析我的财务状况,识别异常支出,\n 并提供本周的预算建议\n\n\n所有数据都保留在本地,API 密钥存储在系统的密钥管理器中,敏感信息不会离开用户的机器。\n\n场景二:离线文档处理\n\n研究人员需要在无网络环境下处理大量文档:\n\nyaml\nname: document-analysis\n\njobs:\n ocr:\n runs: tesseract {{ input.pdf }} output.txt\n \n translate:\n needs: ocr\n agent: true\n local_model: llama3 使用本地模型\n prompt: 将以下内容翻译成中文\n input: output.txt\n \n summarize:\n needs: translate\n agent: true\n local_model: llama3\n prompt: 生成内容摘要\n\n\n场景三:本地 CI/CD 测试\n\n开发者在推送代码到云端 CI 之前,先在本地验证:\n\nyaml\nname: local-ci\n\njobs:\n lint:\n runs: npm run lint\n \n test:\n runs: npm test\n \n build:\n needs: [lint, test]\n runs: npm run build\n \n security-scan:\n needs: build\n runs: trivy fs .\n\n\n与现有工具的比较\n\n| 特性 | Work | GitHub Actions | Argo Workflows | Jenkins |