Skip to content

第五课:Workflow

目标

不用特殊语法,明确写出节点、状态、分支、循环和结束条件。

源码:05-workflow.ts

运行:

bash
npm run lesson:05

流程

正在绘制流程图…

所有节点:

typescript
type NodeName = "decide" | "search" | "answer" | "done";

共享状态:

typescript
interface ResearchState {
  question: string;
  context: string;
  answer: string;
  searchCount: number;
}

当前位置:

typescript
let currentNode: NodeName = "decide";

运行器:

typescript
while (currentNode !== "done") {
  switch (currentNode) {
    case "decide":
      currentNode = state.context ? "answer" : "search";
      break;
    case "search":
      state.context = "搜索结果";
      currentNode = "decide";
      break;
    case "answer":
      state.answer = `根据资料:${state.context}`;
      currentNode = "done";
      break;
  }
}

Workflow 是否依赖 AI

不依赖。Workflow 只是组织步骤的结构,可以完全由普通代码组成。

三者职责不同:

  • Workflow:规定整体步骤和允许的路线。
  • LLM:理解、分类、总结或生成内容。
  • Agent:让模型在运行过程中选择行动并观察结果。

真实系统经常在固定 Workflow 的局部嵌入 Agent。

本课结论

text
state       = 任务数据
currentNode = 当前步骤
switch      = 执行节点
while       = 持续运行
done        = 结束

内容仅供学习参考 · 隐私说明与免责声明见“关于”页面