Zing 论坛

正文

Work:本地安全工作流引擎与 AI 智能体执行环境

Work 是一个让用户在自己的机器上运行任意工作流的工具,支持 YAML 定义的 DAG 任务,每个任务在安全的微虚拟机中隔离执行,具备持久化运行能力,并可选择性地集成 AI 智能体步骤。

工作流引擎微虚拟机AI智能体本地执行数据隐私DAG自动化GitHub
发布时间 2026/06/14 02:46最近活动 2026/06/14 02:54预计阅读 9 分钟
Work:本地安全工作流引擎与 AI 智能体执行环境
1

章节 01

导读 / 主楼:Work:本地安全工作流引擎与 AI 智能体执行环境

Work 是一个让用户在自己的机器上运行任意工作流的工具,支持 YAML 定义的 DAG 任务,每个任务在安全的微虚拟机中隔离执行,具备持久化运行能力,并可选择性地集成 AI 智能体步骤。

2

章节 02

原作者与来源

  • 原作者/维护者:nullbytelabs
  • 来源平台:github
  • 原始标题:work
  • 原始链接:https://github.com/nullbytelabs/work
  • 来源发布时间/更新时间:2026-06-13T18:46:14Z
3

章节 03

原作者与来源\n\n- 原作者/维护者:nullbytelabs\n- 来源平台:GitHub\n- 原始标题:work\n- 原始链接:https://github.com/nullbytelabs/work\n- 来源发布时间/更新时间:2026-06-13\n\n## 项目背景与核心理念\n\n在 CI/CD 和自动化工作流领域,GitHub Actions、GitLab CI、Argo Workflows 等云原生解决方案已经相当成熟。然而,这些方案都有一个共同的特点:它们要求用户将代码和敏感数据上传到云端基础设施。对于注重数据隐私、需要处理敏感信息或希望在本地环境中完全控制执行过程的用户来说,这种云优先的架构存在天然的限制。\n\nWork 项目提出了一个不同的理念:将工作流执行的能力带回用户自己的机器,同时不牺牲现代工作流引擎的核心特性。它让用户能够在本地环境中运行复杂的 DAG 工作流,每个任务都在安全的隔离环境中执行,支持持久化状态,并且可以无缝集成 AI 智能体。\n\n这种设计哲学特别适用于以下场景:\n- 处理敏感数据(如个人财务记录、医疗数据、商业机密)\n- 需要离线运行的自动化任务\n- 对执行环境有特殊要求的科学计算\n- 希望在本地测试 CI/CD 流程后再推送到云端\n\n## 核心架构与技术特性\n\n### YAML 定义的工作流 DAG\n\nWork 使用 YAML 作为工作流定义语言,支持有向无环图(DAG)结构。这种设计借鉴了成熟的云原生工作流引擎,让用户能够定义复杂的任务依赖关系。\n\n一个典型的工作流定义可能如下:\n\n```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\n### AI 智能体集成\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\n```yaml\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\n```yaml\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\n```yaml\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 |

|------|------|----------------|----------------|---------|\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 提供了一个值得探索的选择。

4

章节 04

补充观点 1

原作者与来源

  • 原作者/维护者:nullbytelabs
  • 来源平台:github
  • 原始标题:work
  • 原始链接:https://github.com/nullbytelabs/work
  • 来源发布时间/更新时间:2026-06-13T18:46:14Z 原作者与来源\n\n- 原作者/维护者:nullbytelabs\n- 来源平台:GitHub\n- 原始标题:work\n- 原始链接:https://github.com/nullbytelabs/work\n- 来源发布时间/更新时间:2026-06-13\n\n项目背景与核心理念\n\n在 CI/CD 和自动化工作流领域,GitHub Actions、GitLab CI、Argo Workflows 等云原生解决方案已经相当成熟。然而,这些方案都有一个共同的特点:它们要求用户将代码和敏感数据上传到云端基础设施。对于注重数据隐私、需要处理敏感信息或希望在本地环境中完全控制执行过程的用户来说,这种云优先的架构存在天然的限制。\n\nWork 项目提出了一个不同的理念:将工作流执行的能力带回用户自己的机器,同时不牺牲现代工作流引擎的核心特性。它让用户能够在本地环境中运行复杂的 DAG 工作流,每个任务都在安全的隔离环境中执行,支持持久化状态,并且可以无缝集成 AI 智能体。\n\n这种设计哲学特别适用于以下场景:\n- 处理敏感数据(如个人财务记录、医疗数据、商业机密)\n- 需要离线运行的自动化任务\n- 对执行环境有特殊要求的科学计算\n- 希望在本地测试 CI/CD 流程后再推送到云端\n\n核心架构与技术特性\n\nYAML 定义的工作流 DAG\n\nWork 使用 YAML 作为工作流定义语言,支持有向无环图(DAG)结构。这种设计借鉴了成熟的云原生工作流引擎,让用户能够定义复杂的任务依赖关系。\n\n一个典型的工作流定义可能如下:\n\nyaml\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 |