growthxai/output
The open-source TypeScript framework for building AI workflows and agents. Designed for Claude Code describe what you want, Claude builds it, with all the best practices already in place.
Output – 用于 AI 工作流和代理的 TypeScript 框架
它是什么 – 一个开源 TypeScript SDK,可让您定义、运行和监控端到端的 LLM 驱动工作流。它捆绑了提示管理、评估、追踪、成本核算和编排(通过 Temporal),因此您可以将整个 AI 堆栈保留在代码库中。
核心概念
| 概念 | 重要性 |
|---|---|
| AI 为 AI – 该框架的构建使得 Claude Code(或类似的编码代理)可以读取工作流文件夹、生成代码并自动迭代。 | 对于让 LLM 编写自己的管道的团队,可加快“提示到生产”的循环。 |
提示文件 – 带有 YAML 前置元数据和 Liquid 模板的 .prompt 文件是版本控制的,并且与提供商无关。 |
使提示像任何其他源文件一样可审查,并允许您通过一行代码切换模型。 |
自动追踪 – 每次 LLM 调用、HTTP 请求、令牌计数、延迟和成本都会写入 logs/runs/。 |
为调试和编码代理推理失败提供单一事实来源。 |
| LLM 作为评判者的评估器 – 内置评估器返回带有置信度分数和推理的布尔结果。 | 支持确定性重试循环和模型输出质量的离线测试。 |
| 提供商无关的 LLM 层 – Anthropic、OpenAI、Azure、Vertex AI、Bedrock 共享相同的 API 表面。 | 避免供应商锁定,并允许您在不更改代码的情况下在模型之间切换。 |
| Temporal 编排 – 工作流是确定性协调代码;步骤执行 I/O 并缓存以供重放。 | 处理重试、并行、子工作流和历史记录,而无需您自己管理工作流引擎。 |
| 加密凭据 – 按环境/工作流范围的 AES-256-GCM 加密,通过 CLI 管理。 | 在共享代码或 AI 代理运行代码时防止意外泄露秘密。 |
主要包(npm)
| 包 | 角色 |
|---|---|
@outputai/core |
原语:workflow、step、evaluator 定义。 |
@outputai/llm |
多提供商 LLM 客户端、提示加载、流式传输、工具调用。 |
@outputai/cli |
项目脚手架、本地开发服务器(Temporal + API + UI)、工作流运行/调试命令。 |
工作流的样子
// src/workflows/research/workflow.ts
workflow({
name: 'research',
fn: async (input) => {
const data = await gatherSources(input);
const analysis = await analyzeContent(data);
const quality = await checkQuality(analysis);
return quality.passed ? analysis : await reviseContent(analysis, quality);
}
});
workflow – 确定性编排,无副作用。
// src/workflows/research/steps.ts
step({
name: 'gatherSources',
fn: async (input) => {
const results = await searchApi(input.topic);
return { sources: results };
}
});
step – 执行 I/O;结果缓存以供重放。
---
provider: anthropic
model: claude-sonnet-4-20250514
temperature: 0
---
<system>You are a research analyst.</system>
<user>Analyze the following sources about {{ topic }}: {{ sources }}</user>
.prompt – YAML 前置元数据配置 + Liquid 变量。
// src/workflows/research/evaluators.ts
evaluator({
name: 'checkQuality',
fn: async (content) => {
const { output } = await generateText({
prompt: 'evaluate_quality',
variables: { content },
output: Output.object({
schema: z.object({
isQuality: z.boolean(),
confidence: z.number().describe('0-100'),
reasoning: z.string()
})
})
});
return new EvaluationBooleanResult({
value: output.isQuality,
confidence: output.confidence,
reasoning: output.reasoning
});
}
});
evaluator – LLM 作为评判者,返回结构化结果。
快速入门(快速步骤)
- 先决条件 – Node 20+、Docker Desktop、Anthropic/OpenAI 等 API 密钥。
- 搭建新项目:
npx @outputai/cli init cd <project-name> - 启动本地开发堆栈(Temporal 服务器 + UI + 热重载工作器):
npx output dev - 运行示例工作流,例如博客评估器:
npx output workflow run blog_evaluator paulgraham_hwh - 检查执行或使用
output workflow debug <id>进行调试。
完整文档在 docs/guides/start-here/getting-started.mdx。
示例工作流画廊
配套仓库 output-examples 提供了可立即运行的工作流,例如:
- blog_evaluator – 博客文章质量评分(使用 Jina Reader)。
- call_scorer – 根据 MEDDIC/BANT/SPIN 对销售电话记录进行评分。
- changelog_generator – 将 GitHub 提交/PR 转换为分类变更日志。
- dependency_audit – 通过 OSV 扫描 npm 包漏洞。
- recipe_extractor、url_summarizer、youtube_summarizer – 内容提取和摘要。
- ai_hn_digest – 发布到 Beehiiv 的个性化 Hacker News 通讯。
- sales_call_processor – 电话记录的多步骤处理。
所有工作流都可以克隆、编辑并在本地运行,以查看框架的实际效果。
谁在使用它?
- CheckThat.ai – 一个 AI 增强的品牌监控平台,运行基于 Output 构建的确定性 LLM 工作流,跟踪数百万条 AI 生成的品牌提及。
何时选择 Output
- 您想要一个代码优先的堆栈,用于提示、追踪、评估和编排。
- 您的团队(或 LLM 编码代理)需要自动生成或修改工作流。
- 您需要与供应商无关的 LLM 调用,以及一种无需代码更改即可切换提供商的方式。
- 您需要可靠的重试、并行和重放 – Temporal 在底层处理这些。
- 您更喜欢自托管秘密管理,而不是单独的金库服务。
许可证
Apache 2.0 – 免费用于商业和开源用途。
底线 – Output 是一个全栈、TypeScript 优先的框架,统一了 LLM 应用程序的不同部分(提示、运行、成本、评估),并增加了生产级工作流编排,使人类工程师和 AI 编码代理都能更轻松地构建、测试和交付 AI 驱动的产品。
相关
- 项目
- 项目
- 项目
- 项目
- 项目