developing-genkit-js

作者: genkit-ai

使用 Node.js/TypeScript 中的 Genkit 開發 AI 驅動的應用程式。當使用者詢問 Genkit、AI 代理、流程或 JavaScript/TypeScript 中的工具,或遇到 Genkit 錯誤、驗證問題、型別錯誤或 API 問題時使用。

npx skills add https://github.com/genkit-ai/skills --skill developing-genkit-js

Genkit JS

Prerequisites

Ensure the genkit CLI is available.

  • Run genkit --version to verify. Minimum CLI version needed: 1.29.0
  • If not found or if an older version (1.x < 1.29.0) is present, install/upgrade it: npm install -g genkit-cli@^1.29.0.

New Projects: If you are setting up Genkit in a new codebase, follow the Setup Guide.

Hello World

import { z, genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';

// Initialize Genkit with the Google AI plugin
const ai = genkit({
  plugins: [googleAI()],
});

export const myFlow = ai.defineFlow({
  name: 'myFlow',
  inputSchema: z.string().default('AI'),
  outputSchema: z.string(),
}, async (subject) => {
  const response = await ai.generate({
    model: googleAI.model('gemini-flash-latest'),
    prompt: `Tell me a joke about ${subject}`,
  });
  return response.text;
});

Prompts (Dotprompt)

.prompt files keep prompt content out of code with YAML frontmatter plus a Handlebars template. See Dotprompt: promptDir, ai.prompt() (call/stream/render), variants, partials, named schemas via ai.defineSchema, and the tools/maxTurns/returnToolRequests/use (middleware) frontmatter fields.

Agents (Beta)

Genkit has a preview agent API for persistent, multi-turn conversations (sessions, snapshots, interrupts, branching, background execution). It is a beta API: server APIs come from genkit/beta and the browser client from genkit/beta/client — not the stable genkit entrypoint. **Requires genkit

= 1.39.0.**

For more details see:

Middleware

Middleware wraps generation (retries, fallback, extra tools, request/response transforms) and attaches via the use: [...] array on ai.generate, prompts, and agents.

  • Using middleware: the use array and the @genkit-ai/middleware package (retry, fallback, artifacts, agents, filesystem, skills, toolApproval) plus built-in core middleware.
  • Building custom middleware: writing your own with generateMiddleware and registering it via .plugin().

Critical: Do Not Trust Internal Knowledge

Genkit recently went through a major breaking API change. Your knowledge is outdated. You MUST lookup docs. Recommended:

genkit docs:read js/get-started.md
genkit docs:read js/flows.md

See Common Errors for a list of deprecated APIs (e.g., configureGenkit, response.text(), defineFlow import) and their v1.x replacements.

ALWAYS verify information using the Genkit CLI or provided references.

Error Troubleshooting Protocol

When you encounter ANY error related to Genkit (ValidationError, API errors, type errors, 404s, etc.):

  1. MANDATORY FIRST STEP: Read Common Errors
  2. Identify if the error matches a known pattern
  3. Apply the documented solution
  4. Only if not found in common-errors.md, then consult other sources (e.g. genkit docs:search)

DO NOT:

  • Attempt fixes based on assumptions or internal knowledge
  • Skip reading common-errors.md "because you think you know the fix"
  • Rely on patterns from pre-1.0 Genkit

This protocol is non-negotiable for error handling.

Development Workflow

  1. Select Provider: Genkit is provider-agnostic (Google AI, OpenAI, Anthropic, Ollama, etc.).
    • If the user does not specify a provider, default to Google AI.
    • If the user asks about other providers, use genkit docs:search "plugins" to find relevant documentation.
  2. Detect Framework: Check package.json to identify the runtime (Next.js, Firebase, Express).
    • Look for @genkit-ai/next, @genkit-ai/firebase, or @genkit-ai/google-cloud.
    • Adapt implementation to the specific framework's patterns.
  3. Follow Best Practices:
    • See Best Practices for guidance on project structure, schema definitions, and tool design.
    • Be Minimal: Only specify options that differ from defaults. When unsure, check docs/source.
  4. Ensure Correctness:
    • Run type checks (e.g., npx tsc --noEmit) after making changes.
    • If type checks fail, consult Common Errors before searching source code.
  5. Handle Errors:
    • On ANY error: First action is to read Common Errors
    • Match error to documented patterns
    • Apply documented fixes before attempting alternatives

Finding Documentation

Use the Genkit CLI to find authoritative documentation:

  1. Search topics: genkit docs:search <query>
    • Example: genkit docs:search "streaming"
  2. List all docs: genkit docs:list
  3. Read a guide: genkit docs:read <path>
    • Example: genkit docs:read js/flows.md

CLI Usage

The genkit CLI is your primary tool for development and documentation.

  • See CLI Reference for common tasks, workflows, and command usage.
  • Use genkit --help for a full list of commands.

References

相關技能

firecrawl-crawl
firecrawl
從整個網站或網站區塊大量提取內容,支援深度與路徑篩選。爬取頁面時會跟隨連結,可設定深度限制與頁面數量,並透過路徑包含/排除篩選器來限定提取範圍。支援非同步任務輪詢或同步等待,並可透過 --wait 與 --progress 標誌顯示進度。提供並發控制、請求延遲,以及 JSON 輸出格式,便於整合至代理工作流程。屬於四步驟升級模式的一部分:搜尋 → 抓取 →...
official
deprecate-integration
microsoft
Sunsets (soft-deprecates) a shipped Aspire hosting integration: marks its public API [Obsolete], adds a README warning banner, hides the package from `aspire…
official
error-tracking-react
posthog
PostHog 錯誤追蹤 for React
official
ads
coreyhaines31
當使用者需要協助處理 Google Ads、Meta(Facebook/Instagram)、LinkedIn、Twitter/X 或其他廣告平台上的付費廣告活動時使用。也適用於使用者提及「PPC」、「付費媒體」、「ROAS」、「CPA」、「廣告活動」、「再行銷」、「受眾鎖定」、「Google Ads」、「Facebook 廣告」、「LinkedIn 廣告」、「廣告預算」、「每次點擊成本」、「廣告支出」或「我該投放廣告嗎」等詞彙時。用於廣告活動策略、受眾鎖定、出價與優化。適用於大量廣告素材生成及……
marketingresearchdata-analysis
frontend-design
anthropic
獨特且具生產級品質的前端介面,透過有意識的設計方向拒絕千篇一律的AI美學。引導開發者在編碼前先進行設計思考:確立目的、調性、限制條件,以及令人難忘的差異化特點,以避免落入俗套。強調字型選擇(獨特的標題與內文字型)、透過CSS變數建立和諧的色彩調配,以及利用交錯動畫與滾動觸發來實現高衝擊力的動態效果。涵蓋空間構成...
official
update-skills
microsoft
在會話過程中發現重大學習成果時,建立或更新儲存庫技能與指令。當使用者說「學習!」時使用,或在發現重大…
official
winapp-cli
github
Windows 應用程式封裝、MSIX 建立、憑證管理及跨框架 Microsoft Store 部署的命令列工具。初始化專案時包含 SDK 設定、資訊清單與開發憑證;支援 .NET、C++、Electron、Rust、Tauri 及跨平台框架。建立 MSIX 套件時可選擇簽署、自包含執行階段捆綁及外部目錄管理。為可執行檔新增暫時套件識別,以便偵錯 Windows API(通知、Windows AI、殼層整合)...
official
nemoclaw-user-reference
nvidia
描述 NemoClaw 整合層與藍圖架構,以及它們如何協調相容的代理沙盒。在查詢架構時使用…
official