
Finyuus
Finyuus 是一個程式碼優先的平台,它使用基於縮排的 DSL 和基於 Temporal 的運行時來構建、運行、版本控制和治理持久的 AI 工作流程,包括代理、工具、防護、人工批准、可觀察性和 API 發布。
https://github.com/mariusndini/Finyuus?ref=producthunt&utm_source=aipure

產品資訊
更新時間: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) 建置並啟動網頁儀表板(建議用於更快導航): 執行:pnpm build-web 然後 pnpm start-web (儀表板運行於 http://localhost:3001)。
10) 啟動工作者(執行引擎): 在第二個終端機中,執行:pnpm start-worker (這個 Temporal 工作者執行管道)。
11) 開啟本地使用者介面: 開啟 Finyuus 儀表板:http://localhost:3001。可選的支援使用者介面: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: 分支(如果需要,還有 timeout actions)。審閱者在儀表板或透過 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 token 和 idempotency key 呼叫它,例如: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 執行它們,同時提供一個集中式環境,用於工作流程的版本控制、觀察、稽核和操作。











