Quickstart 不是背命令:读懂第一个 Flue 项目会出现什么
今天只学一个技能:看到 Flue quickstart 的命令后,能预测每一步会创建什么、注册什么、运行什么。
1. 为什么不是立刻跑命令?
Flue 官方 quickstart 确实很短:安装 runtime 和 CLI,运行 flue init,创建 agents/hello-world.ts,再用 flue run 执行一次 prompt。
Primary source: Flue Getting Started。官方要求 Node.js >=22.19.0,并需要至少一个模型 provider 配置;Cloudflare 的 cloudflare/* 模型可走 Cloudflare 内置访问。
2. Quickstart 的三步地图
| 步骤 | 你输入 | 你应该预期发生什么 |
|---|---|---|
| 安装依赖 | npm install @flue/runtimenpm install --save-dev @flue/cli | 项目获得运行时 API 与 CLI;还没有 agent,只是具备 Flue 能力。 |
| 初始化 target | npx flue init --target node或 --target cloudflare | 生成 flue.config.ts 等目标运行时配置;告诉 Flue 以后如何启动应用。 |
| 创建 agent module | agents/hello-world.ts 默认导出 defineAgent(...) | 文件名注册 agent 名称:hello-world;默认导出定义模型、instructions、能力。 |
| 运行一次 | npx flue run hello-world --input '{"message":"Tell me a joke."}' | CLI 启动配置的 runtime,通过应用调用这个 agent,打印响应并退出。 |
3. 第一个 agent module:最小形状
先把官方例子读成一张 mental map:
// agents/hello-world.ts
import { defineAgent } from '@flue/runtime';
export default defineAgent(() => ({
model: 'anthropic/claude-sonnet-4-6',
instructions: 'Tell a funny "hello world" engineering joke.',
}));agents/hello-world.ts
文件位置与文件名让 Flue 发现 agent;名字变成 hello-world。
defineAgent
声明 harness:模型是谁、instructions 是什么、将来有哪些 tools / skills / sandbox。
model
不是硬编码只能用 Anthropic;官方 quickstart 只是示例。模型 specifier 取决于 provider。
instructions
agent 的长期行为规则。后续复杂项目通常会抽到 markdown 文件中。
安全习惯:provider key 放在 .env,并把 .env 加入 .gitignore;不要把 API key 写进 lesson、代码仓库或聊天记录。
4. Node target vs Cloudflare target:先选哪个?
你现在学习阶段,我建议先理解 Node target,因为它最像本地 TypeScript 项目。等你理解 agent/workflow/sandbox 后,再切到 Cloudflare target 学 durable runtime 与 deployment。
| 目标 | 适合 | 学习时的风险 |
|---|---|---|
--target node | 本地实验、理解文件结构、接入本地工具。 | 本地凭据和 local sandbox 要谨慎。 |
--target cloudflare | 部署 durable agent、Cloudflare Workers/DO 场景。 | 概念更多:账号、绑定、部署、runtime 差异。 |
5. 练习:命令→结果配对
先遮住答案,自己说:
npx flue init --target node的产物主要是什么?- 为什么
agents/hello-world.ts会注册出hello-world这个 agent 名? flue run是直接调模型 API,还是通过配置的应用 runtime 调用 agent?
查看参考答案
- 初始化 Flue 配置,例如
flue.config.ts,让项目知道目标 runtime。 - Flue 会发现 agent module,文件名成为 agent 名称;默认导出
defineAgent(...)定义行为。 - 官方描述是启动配置的 Node.js 或 Cloudflare runtime,通过应用调用 agent,然后打印结果退出。
小测验
哪一项最准确描述 defineAgent 的作用?
再来一题
Quickstart 中,哪一步让 hello-world 成为可运行的 agent 名?
本课结束后你应该能说出
- 安装依赖 ≠ 已经有 agent;只是项目具备 Flue runtime/CLI。
flue init建立 target 配置;agent module 负责注册具体 agent。defineAgent是 harness 的声明入口。flue run通过配置 runtime 执行一次 agent 输入,而不是让你手写 raw LLM call。
下一课建议:0003 — Workflow 的最小代码:输入 schema、输出 schema、run 函数。这样你会同时掌握 Flue 的两个基本构建块。
如果你想真的在本地跑,我也可以下一轮生成一个“可复制命令 + 常见报错排查”的实操课。