章节 01
导读 / 主楼:Ageflow:用 TypeScript 打造类型安全的多智能体 AI 工作流
Ageflow 是一个基于 TypeScript 的嵌入式 DSL,让开发者能够以类型安全的方式定义和运行多智能体 AI 工作流,支持 DAG 执行、循环迭代、会话共享和人工介入等高级特性。
正文
Ageflow 是一个基于 TypeScript 的嵌入式 DSL,让开发者能够以类型安全的方式定义和运行多智能体 AI 工作流,支持 DAG 执行、循环迭代、会话共享和人工介入等高级特性。
章节 01
Ageflow 是一个基于 TypeScript 的嵌入式 DSL,让开发者能够以类型安全的方式定义和运行多智能体 AI 工作流,支持 DAG 执行、循环迭代、会话共享和人工介入等高级特性。
章节 02
typescript\nimport { defineAgent, defineWorkflow, registerRunner } from \"@ageflow/core\";\nimport { ClaudeRunner } from \"@ageflow/runner-claude\";\nimport { z } from \"zod\";\n\nregisterRunner(\"claude\", new ClaudeRunner());\n\nconst reviewAgent = defineAgent({\n runner: \"claude\",\n model: \"claude-sonnet-4-6\",\n input: z.object({ code: z.string() }),\n output: z.object({ issues: z.array(z.string()), approved: z.boolean() }),\n prompt: ({ code }) => `Review this code and list issues:\n\n${code}`,\n});\n\nexport default defineWorkflow({\n name: \"code-review\",\n tasks: {\n review: { agent: reviewAgent, input: { code: \"const x = eval(input)\" } },\n },\n});\n\n\n这段代码展示了 Ageflow 的精髓:通过 Zod 模式定义输入输出类型,智能体的接口在编译时就被严格约束。\n\n## 类型安全:Zod 模式的威力\n\nAgeflow 使用 Zod 作为模式验证库,这是其类型安全保证的关键。每个智能体都必须显式声明输入和输出的结构:\n\n- 输入验证:确保进入智能体的数据符合预期格式\n- 输出验证:保证智能体返回的数据能够被下游任务正确消费\n- 类型推断:Zod 模式可以自动推断出 TypeScript 类型,提供完整的 IDE 支持\n\n这种设计彻底消除了传统多智能体系统中常见的"格式错误导致整个流程崩溃"的问题。当工作流复杂到数十个智能体协同工作时,这种保证尤为重要。\n\n## 高级特性:超越简单的顺序执行\n\nAgeflow 不仅仅是一个任务调度器,它还提供了一系列面向生产环境的高级特性:\n\n### 循环与迭代\n\n支持迭代优化模式——智能体可以基于上一轮的结果进行修正,形成"分析 → 修复 → 评估 → 再修复"的闭环。循环可以配置为保持会话上下文(让模型记住之前的对话)或重置上下文(获得全新的视角)。\n\n### 会话共享\n\n多个智能体可以共享同一个会话上下文,实现记忆传递**。这在需要多轮对话的场景中特别有用,比如一个智能体提出问题,另一个智能体基于之前的回答继续深入。\n\n### 人工介入(HITL)\n\n关键节点可以设置人工检查点,在工作流执行到特定步骤时暂停,等待人工审批后再继续。这在高风险场景(如自动代码提交、财务操作)中是必要的安全保障。\n\n### 预算控制\n\n可以为整个工作流设置成本上限,当预估费用超过阈值时自动停止执行,避免意外的高额 API 账单。\n\n## 子进程模型:简化部署与认证\n\nAgeflow 采用了独特的子进程执行模型。智能体不是通过 HTTP API 调用远程服务,而是作为本地 CLI 子进程运行(如 Claude CLI、Codex CLI)。这种设计带来了几个实际好处:\n\n- 认证简化:复用本地已配置的 CLI 认证,无需额外管理 API 密钥\n- 网络隔离:工作流可以在完全离线的环境中运行(只要 CLI 工具可用)\n- 资源控制:通过操作系统原生机制控制子进程的资源使用\n\n## 测试友好:毫秒级工作流测试\n\nAgeflow 提供了专门的测试工具包(@ageflow/testing),支持将真实的 AI 运行器替换为模拟实现。这意味着:\n\n- 测试可以在毫秒级完成,无需等待真实的 LLM API 响应\n- 可以精确控制智能体的返回值,测试各种边界情况\n- 可以验证智能体被调用的次数和顺序\n\n这种可测试性对于持续集成和重构至关重要。\n\n## 快速开始\n\nAgeflow 的安装和使用非常简洁:\n\nbash\n# 安装核心依赖\nbun add @ageflow/core @ageflow/runner-claude\n\n# 全局安装 CLI\nbun add -g @ageflow/cli\n\n# 初始化新项目\nagentwf init my-workflow\ncd my-workflow\nbun install\n\n# 验证工作流\nagentwf validate workflow.ts\n\n# 执行工作流\nagentwf run workflow.ts\n\n\nCLI 还提供了 dry-run 模式,可以在不实际调用 AI 的情况下预览工作流结构和生成的提示词,这对于调试和优化非常有帮助。\n\n## 生态与扩展\n\nAgeflow 采用模块化架构,核心功能被拆分为多个包:\n\n- @ageflow/core:DSL 定义和类型系统\n- @ageflow/executor:DAG 执行引擎、循环运行器、会话管理\n- @ageflow/runner-claude / @ageflow/runner-codex:特定平台的运行器实现\n- @ageflow/cli:命令行工具\n\n这种设计允许社区贡献新的运行器实现,支持更多的 LLM 平台。\n\n## 总结与展望\n\nAgeflow 代表了多智能体 AI 开发工具的一个重要方向:在保持灵活性的同时提供严格的类型安全保证。它将工作流定义从配置文件的领域拉回到代码领域,让开发者能够利用成熟的软件工程实践来构建 AI 应用。\n\n对于正在探索多智能体架构的团队,Ageflow 提供了一个值得认真考虑的选择。它的类型安全特性、丰富的执行语义和测试友好设计,都是构建生产级多智能体系统的重要基石。\n\n项目地址:https://github.com/Neftedollar/ageflow\n\n---\n\n*关键词:多智能体、TypeScript、DAG、工作流编排、Zod、AI 工作流、Claude、Codex*章节 03
Ageflow:用 TypeScript 打造类型安全的多智能体 AI 工作流\n\n在 AI 应用开发领域,单个 LLM 调用往往难以满足复杂业务需求。越来越多的开发者开始探索多智能体协作的架构模式——将任务拆解给多个专门的 AI 智能体,通过编排实现更强大的能力。然而,多智能体系统的开发面临着类型安全、执行顺序、状态管理等挑战。\n\n今天要介绍的 Ageflow,正是为解决这些问题而生的 TypeScript 嵌入式 DSL。\n\n项目背景与设计哲学\n\nAgeflow 的核心理念是**"类型安全的多智能体工作流"。它允许开发者用纯 TypeScript 代码定义智能体和工作流,而不需要学习额外的配置语言或 YAML 文件。这种设计选择带来了几个显著优势:\n\n首先,TypeScript 的静态类型检查能够在编译阶段捕获大部分错误,避免运行时才发现智能体输入输出不匹配的问题。其次,代码即配置的模式让开发者可以在熟悉的 IDE 中获得完整的自动补全和类型提示。最后,嵌入式 DSL 的设计让工作流定义可以无缝集成到现有的 TypeScript 项目中。\n\n核心架构:DAG 驱动的执行引擎\n\nAgeflow 的执行引擎基于有向无环图(DAG)构建。这意味着工作流中的任务会根据依赖关系自动排序:没有依赖的任务并行执行,有依赖关系的任务按序执行。这种设计充分利用了现代硬件的多核能力,同时保证了执行的正确性。\n\n以一个代码审查工作流为例:\n\ntypescript\nimport { defineAgent, defineWorkflow, registerRunner } from \"@ageflow/core\";\nimport { ClaudeRunner } from \"@ageflow/runner-claude\";\nimport { z } from \"zod\";\n\nregisterRunner(\"claude\", new ClaudeRunner());\n\nconst reviewAgent = defineAgent({\n runner: \"claude\",\n model: \"claude-sonnet-4-6\",\n input: z.object({ code: z.string() }),\n output: z.object({ issues: z.array(z.string()), approved: z.boolean() }),\n prompt: ({ code }) => `Review this code and list issues:\n\n${code}`,\n});\n\nexport default defineWorkflow({\n name: \"code-review\",\n tasks: {\n review: { agent: reviewAgent, input: { code: \"const x = eval(input)\" } },\n },\n});\n\n\n这段代码展示了 Ageflow 的精髓:通过 Zod 模式定义输入输出类型,智能体的接口在编译时就被严格约束。\n\n类型安全:Zod 模式的威力\n\nAgeflow 使用 Zod 作为模式验证库,这是其类型安全保证的关键。每个智能体都必须显式声明输入和输出的结构:\n\n- 输入验证:确保进入智能体的数据符合预期格式\n- 输出验证:保证智能体返回的数据能够被下游任务正确消费\n- 类型推断:Zod 模式可以自动推断出 TypeScript 类型,提供完整的 IDE 支持\n\n这种设计彻底消除了传统多智能体系统中常见的"格式错误导致整个流程崩溃"的问题。当工作流复杂到数十个智能体协同工作时,这种保证尤为重要。\n\n高级特性:超越简单的顺序执行\n\nAgeflow 不仅仅是一个任务调度器,它还提供了一系列面向生产环境的高级特性:\n\n循环与迭代\n\n支持迭代优化模式——智能体可以基于上一轮的结果进行修正,形成"分析 → 修复 → 评估 → 再修复"的闭环。循环可以配置为保持会话上下文(让模型记住之前的对话)或重置上下文(获得全新的视角)。\n\n会话共享\n\n多个智能体可以共享同一个会话上下文,实现记忆传递**。这在需要多轮对话的场景中特别有用,比如一个智能体提出问题,另一个智能体基于之前的回答继续深入。\n\n人工介入(HITL)\n\n关键节点可以设置人工检查点,在工作流执行到特定步骤时暂停,等待人工审批后再继续。这在高风险场景(如自动代码提交、财务操作)中是必要的安全保障。\n\n预算控制\n\n可以为整个工作流设置成本上限,当预估费用超过阈值时自动停止执行,避免意外的高额 API 账单。\n\n子进程模型:简化部署与认证\n\nAgeflow 采用了独特的子进程执行模型。智能体不是通过 HTTP API 调用远程服务,而是作为本地 CLI 子进程运行(如 Claude CLI、Codex CLI)。这种设计带来了几个实际好处:\n\n- 认证简化:复用本地已配置的 CLI 认证,无需额外管理 API 密钥\n- 网络隔离:工作流可以在完全离线的环境中运行(只要 CLI 工具可用)\n- 资源控制:通过操作系统原生机制控制子进程的资源使用\n\n测试友好:毫秒级工作流测试\n\nAgeflow 提供了专门的测试工具包(@ageflow/testing),支持将真实的 AI 运行器替换为模拟实现。这意味着:\n\n- 测试可以在毫秒级完成,无需等待真实的 LLM API 响应\n- 可以精确控制智能体的返回值,测试各种边界情况\n- 可以验证智能体被调用的次数和顺序\n\n这种可测试性对于持续集成和重构至关重要。\n\n快速开始\n\nAgeflow 的安装和使用非常简洁:\n\nbash\n安装核心依赖\nbun add @ageflow/core @ageflow/runner-claude\n\n全局安装 CLI\nbun add -g @ageflow/cli\n\n初始化新项目\nagentwf init my-workflow\ncd my-workflow\nbun install\n\n验证工作流\nagentwf validate workflow.ts\n\n执行工作流\nagentwf run workflow.ts\n\n\nCLI 还提供了 dry-run 模式,可以在不实际调用 AI 的情况下预览工作流结构和生成的提示词,这对于调试和优化非常有帮助。\n\n生态与扩展\n\nAgeflow 采用模块化架构,核心功能被拆分为多个包:\n\n- @ageflow/core:DSL 定义和类型系统\n- @ageflow/executor:DAG 执行引擎、循环运行器、会话管理\n- @ageflow/runner-claude / @ageflow/runner-codex:特定平台的运行器实现\n- @ageflow/cli:命令行工具\n\n这种设计允许社区贡献新的运行器实现,支持更多的 LLM 平台。\n\n总结与展望\n\nAgeflow 代表了多智能体 AI 开发工具的一个重要方向:在保持灵活性的同时提供严格的类型安全保证。它将工作流定义从配置文件的领域拉回到代码领域,让开发者能够利用成熟的软件工程实践来构建 AI 应用。\n\n对于正在探索多智能体架构的团队,Ageflow 提供了一个值得认真考虑的选择。它的类型安全特性、丰富的执行语义和测试友好设计,都是构建生产级多智能体系统的重要基石。\n\n项目地址:https://github.com/Neftedollar/ageflow\n\n---\n\n*关键词:多智能体、TypeScript、DAG、工作流编排、Zod、AI 工作流、Claude、Codex*