Nika——面向AI工作流的“意圖即程式碼”
Nika 是一種將可重複的 AI 工作流轉化為可執行、可審查、可比較和可共享檔案的語言。它採用“意圖即程式碼”理念,透過四個核心動詞(infer、exec、invoke、agent)構建工作流,並以單個 Rust 二進位制檔案執行。Nika 支援本地和雲端 LLM,提供靜態審計、安全邊界、成本核算和可追溯性,強調開放、主權和可驗證。
在 AI 應用日益複雜、可複用工作流需求激增的今天,Nika 專案提出了一種全新的思路:將意圖轉化為程式碼。它不是又一款雲服務或工具,而是一個開放的語言規範和一個參考引擎,類似於 SQL 之於資料庫、Dockerfile 之於容器。Nika 的核心是一個輕量級的 YAML 檔案,描述了一個完整、可驗證的 AI 工作流,包含四個基礎動詞:infer(呼叫 LLM)、exec(執行 Shell 命令)、invoke(呼叫工具或 MCP 伺服器)、agent(自主迴圈)。這四種操作組合在一起,能夠構建從程式碼審查到客戶支援排序、從簡歷篩選到競爭對手跟蹤的各類工作流。
Nika 強調“本地優先”和“提供商無關”。使用者可以選擇本地模型(如 Ollama 或 LM Studio),也可以切換到 OpenAI、Google Gemini、xAI 等雲端 API,工作流檔案無需修改。它執行在單一 Rust 二進位制檔案中,無需額外依賴或雲環境。所有工作流在執行前都會經過嚴格的靜態審計:檢查依賴、型別、秘密資訊洩露、工具引數等,確保在呼叫任何模型之前發現潛在問題。審計還會計算成本上限和許可權範圍,工作流檔案本身即是安全邊界。
對於需要影像生成的工作流,Nika 將渲染視為一等公民。它支援本地影像生成(透過 LocalAI、Ollama、stable-diffusion.cpp 等)和雲端服務,每個生成的 PNG 檔案都會嵌入 provenance 資訊(工具、引擎、模型、提示詞、種子),方便追溯。影像生成也遵循同樣的許可和安全模型,並且實際花費會如實記錄在執行日誌中。
Nika 的工作流是標準化的,可重複執行。每次執行都會生成詳細的執行記錄,儲存在 .nika/traces/ 目錄中,支援斷點續傳、重新執行和審計。工作流檔案(.nika.yaml)與執行軌跡一起構成可審計、可重現的記錄,適用於對可靠性和透明度要求較高的場景。
目前 Nika 語言規範(nika: v1)已經穩定並凍結,引擎版本為 v0.91.0,開發在公開倉庫中進行。專案提供了豐富的示例工作流和模板,使用者可以透過 nika examples list 瀏覽,並透過 nika run 快速體驗。安裝方式支援 Homebrew、安裝指令碼或手動下載,首次執行無需任何 API 金鑰。