Finyuus

Finyuus

WebsiteFree TrialAI Code Assistant
Finyuus 是一个代码优先的平台,它使用基于缩进的 DSL 和 Temporal 支持的运行时来构建、运行、版本化和治理具有代理、工具、防护、人工审批、可观测性和 API 发布功能的持久 AI 工作流。
https://github.com/mariusndini/Finyuus?ref=producthunt&utm_source=aipure
Finyuus

产品信息

更新于:2026年08月06日

什么是 Finyuus

Finyuus 是一个平台,用于将 AI 行为定义和操作为独立的、版本化的系统,而不是将提示和编排逻辑嵌入到应用程序代码中。它将一种小型、可读、基于缩进的工作流语言 (DSL) 与生产运行时和控制平面相结合,因此团队可以用文本编写代理、工具、策略检查(防护)、人工批准和嵌套工作流。Finyuus 使用 Temporal 持久地运行工作流,提供用于编写和审查运行的仪表板,并通过版本控制、审计和集中式可观测性支持企业级操作。

Finyuus 的主要功能

Finyuus 是一个代码优先的平台,用于使用基于缩进的小型 DSL 定义、运行和管理持久 AI 工作流。它将 AI 行为(代理、提示、工具、守卫、审批、模式和管道)与应用程序代码分离,然后在 Temporal 上执行工作流,以实现持久状态、重试、取消和可重放性。该平台增加了集中式版本控制、审计和运行历史(包括嵌套工作流)、通过 Langfuse 跟踪和成本报告实现的可观察性、通过 ClickHouse 和对象存储(MinIO/S3)处理数据和工件,以及将管道发布为具有验证、幂等性、速率限制和服务器发送事件的认证 API 的能力。
基于缩进的管道 DSL: 一种专注于文本的 DSL,用于组合代理、工具、守卫、审批、控制流(if/else、循环、路由、并行)、子管道和结构化返回——针对可读的差异和代码审查进行了优化。
在 Temporal 上持久执行: 运行具有持久状态、重试、取消、长时间运行执行和可重放性的工作流;支持子工作流编排和嵌套管道的一致语义。
版本化的 AI 构建块: 代理、工具、守卫、模式和管道的中央注册表,具有版本历史和不可变版本固定(例如,pipeline@v3),以确保可重现性和受控发布。
治理:守卫 + 人工审批: 一流的策略检查(基于 LLM 的守卫,具有通过/阻止路由和置信度)以及审批步骤,暂停执行以进行人工审查,包括受让人、超时和明确的批准/拒绝分支。
工具注册表(原生、HTTP、管道支持): 支持 TypeScript 原生工具、可配置的 HTTP 工具和管道支持的工具,可在 DSL 中或由代理在工具循环期间调用,从而实现可重用的操作能力。
生产 API + 可观察性堆栈: 将管道发布为具有速率限制、幂等性、输入验证和 SSE 流的认证端点;通过 Langfuse 和仪表板检查运行事件、工作流历史、工具调用以及模型跟踪/成本。

Finyuus 的使用场景

金融服务合规工作流: 创建面向客户的内容管道,通过财务建议守卫路由请求,生成教育性重写,并在发布前需要合规审批——完全可审计和可重放。
企业支持和 IT 自动化: 通过安全守卫、人工升级审批和针对不稳定集成的持久重试,编排多步骤代理/工具工作流(工单分类、通过 HTTP 工具进行诊断、补救清单)。
研究和报告管道: 通过结合数据获取工具(例如,SEC EDGAR/Yahoo Finance 示例)、具有结构化输出的分析代理、发布策略守卫和工件存储来自动化市场/公司研究。
医疗保健或受监管的内容生成: 生成患者/提供者材料或内部摘要,并带有策略守卫和强制性人工审批,保留完整的运行历史以进行审计和事件审查。
内部数据操作和分析工作流: 构建读写 ClickHouse 表、在对象存储中管理文件/工件并生成结构化返回的管道——适用于 ETL 类的 AI 增强和可重复的数据丰富。
用于应用程序的产品化 AI 端点: 将稳定的 AI 工作流公开为 API,以便多个应用程序可以调用相同的版本化管道,同时运营团队在应用程序代码库之外管理行为更改、监控和治理。

优点

通过 Temporal 实现持久、生产级的执行语义(重试、取消、可重放性、长时间运行的工作流)。
强大的治理原语(守卫、版本固定、审批)以及集中式审计/运行历史。
代码优先的 DSL 实现了基于 Git 的审查、重用和可维护的差异,与大型可视化工作流相比。

缺点

操作复杂性:需要运行和维护多个服务(Temporal、Postgres、Redis、ClickHouse、对象存储、Langfuse)。
学习曲线:团队必须采用新的 DSL 和工作流模型,而不是完全停留在应用程序代码中。
最佳价值出现在规模化时;对于小型原型或简单的提示链来说可能比所需更重。

如何使用 Finyuus

1) 安装先决条件: 安装 Node.js 22+、pnpm 10+ 和 Docker Desktop(引擎正在运行)。准备至少一个 LLM 提供商密钥:OPENAI_API_KEY 或 ANTHROPIC_API_KEY。
2) 获取代码: 在本地克隆 Finyuus 存储库(例如,从 https://github.com/mariusndini/Finyuus)并 cd 到存储库根目录。
3) 安装依赖项: 运行:pnpm install
4) 创建本地环境文件: 复制模板:cp .env.local.example .env.local
5) 配置所需的环境变量: 编辑 .env.local 并添加至少一个提供商密钥(OPENAI_API_KEY 或 ANTHROPIC_API_KEY)。如果您计划使用已发布的 Pipeline API,请设置 PIPELINE_API_TOKEN。可选:为 SEC EDGAR 演示工具设置 SEC_USER_AGENT。对于对象存储:如果想使用本地 MinIO,请保持未设置;如果想使用 AWS S3,请设置 OBJECT_STORAGE_PROVIDER=s3 以及 S3 变量。
6) 生成本地密钥和应用程序环境文件: 运行:make init(这将生成 infra/.env 和其他由本地服务(如 Langfuse)使用的生成环境文件)。
7) 启动本地基础设施(Temporal、Postgres、ClickHouse、MinIO、Redis、Langfuse): 运行:make up
8) (可选) 填充演示内容: 全新安装时为空。如果您想探索示例工具/模式/代理/管道,请运行:make demos
9) 构建并启动 Web 仪表板(推荐用于更快导航): 运行:pnpm build-web 然后 pnpm start-web(仪表板运行在 http://localhost:3001)。
10) 启动工作程序(执行引擎): 在第二个终端中,运行:pnpm start-worker(此 Temporal 工作程序执行管道)。
11) 打开本地 UI: 打开 Finyuus 仪表板:http://localhost:3001。可选支持 UI:Langfuse http://localhost:3000、Temporal UI http://localhost:8080、MinIO Console http://localhost:9001、Redis Insight http://localhost:5540。
12) 使用基于缩进的 DSL 创建或编辑管道: 在仪表板管道编辑器中,使用一流的语句编写工作流,例如 agent:、tool:、guard:、approval:、pipeline:、http:*、read/save file/table、if/else、for、parallel、route、return。将其保存为版本化管道,以便可以按版本运行和锁定。
13) 从仪表板运行管道: 从仪表板中的管道页面,使用输入值启动运行。观察运行事件、防护结果、工具调用和嵌套工作流步骤。根据 Temporal 支持的执行,使用取消/重试。
14) 使用防护(策略检查)添加治理: 在代理调用之前/之后插入 guard:<key> 步骤。实现通过/阻止分支以路由执行。在您的返回负载或分支逻辑中使用防护返回的字段(例如,message/confidence)。
15) 添加人工审批: 插入 approval:<key> 步骤以暂停执行,直到审阅者解决。配置 -assigned-to 和 -timeout,并定义 approved:/rejected: 分支(如果需要,还可以定义超时操作)。审阅者在仪表板或通过 API 解决审批。
16) 使用工具(原生、HTTP 或管道支持): 使用 tool:<name> 和参数直接在 DSL 中调用工具。在仪表板中配置 HTTP 工具(标头/URL 可以引用服务器端环境密钥,如 {{env.MY_API_KEY}})。通过保存管道并允许代理在工具循环期间调用它们来创建管道支持的工具。
17) 使用持久数据和工件(表 + 文件): 使用 read:table/save:table 进行 ClickHouse 支持的结构化数据操作,以及 read:file/save:file 进行对象存储支持的文件/工件(默认情况下为本地 MinIO,如果配置则为 S3)。
18) 锁定版本以实现可重现性: 引用不可变版本,如 pipeline:company_research@v3 或 agent:research_analyst@v2,以确保跨运行的稳定行为并实现可审计性。
19) 将管道发布为经过身份验证的 HTTP API: 在仪表板中将管道发布为端点。然后使用 bearer 令牌和幂等性密钥调用它,例如:curl -X POST http://localhost:3001/api/v1/responses/<pipeline-slug> -H "Authorization: Bearer $PIPELINE_API_TOKEN" -H "Idempotency-Key: request-001" -H "Content-Type: application/json" -d '{"input": {"query": "example"}}'。如果启用,请使用 SSE 流式端点进行实时运行更新。
20) 观察和审计运行: 使用仪表板检查运行历史记录、嵌套工作流、防护/审批决策和事件。使用 Temporal UI 查看工作流时间线和持久性语义(重试/取消/可重放性)。使用 Langfuse 跟踪、令牌使用情况和模型成本报告(如果需要,可通过 LLM_TRACING_ENABLED=false 全局禁用)。
21) 更改代码时在本地开发(监视模式): 如果您正在修改 Finyuus 本身,请运行 pnpm dev 进入监视模式。在开发期间使用 pnpm typecheck(或包过滤的类型检查)。
22) 添加新的原生工具(扩展 Finyuus): 在 packages/tools/src/metadata.ts 中添加工具元数据,在 packages/tools/src/registry.ts 中添加工厂,在 packages/tools/src/ 中实现工具,然后对受影响的包运行类型检查。
23) 添加新的 DSL 语句(扩展语言/运行时): 在 packages/pipelines/src/types.ts 中添加 AST 类型,在 packages/pipelines/src/parser.ts 中添加解析器支持,在 apps/worker/src/workflows.ts 中实现执行逻辑,如果存在副作用,则在 apps/worker/src/activities.ts 中添加活动,并在 apps/web/src/lib/pipeline-intelligence.ts 和 apps/web/src/components/pipeline/pipeline-completions.ts 中更新编辑器智能/自动完成。
24) 停止或重置本地基础设施: 要停止服务同时保留数据:make down。要查看日志:make logs。要验证健康状况:make verify。要销毁本地服务数据:make reset。

Finyuus 常见问题

Finyuus 是一个代码优先的平台,用于构建、运行和管理持久的 AI 工作流。它提供了一种基于缩进的 DSL 来组合代理、工具、守卫、人工审批、结构化数据操作和嵌套工作流,并使用 Temporal 运行它们,同时提供一个集中式环境用于工作流的版本控制、观察、审计和操作。

与 Finyuus 类似的最新 AI 工具

Gait
Gait
Gait是一个集成了AI辅助代码生成和版本控制的协作工具,使团队能够高效地跟踪、理解和共享AI生成代码的上下文。
invoices.dev
invoices.dev
invoices.dev 是一个自动化发票平台,直接从开发人员的 Git 提交生成发票,并具有与 GitHub、Slack、Linear 和 Google 服务的集成能力。
EasyRFP
EasyRFP
EasyRFP 是一个 AI 驱动的边缘计算工具包,通过深度学习技术简化 RFP(请求提案)响应并实现实时田间表型。
Cart.ai
Cart.ai
Cart.ai是一个AI驱动的服务平台,提供全面的业务自动化解决方案,包括编码、客户关系管理、视频编辑、电子商务设置和自定义AI开发,并提供24/7支持。