@intentsolutionsio/jeremy-genkit-pro 2.1.0 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/agents/genkit-flow-architect.md +43 -3
- package/commands/init-genkit-project.md +12 -1
- package/package.json +1 -1
- package/skills/genkit-production-expert/SKILL.md +13 -5
- package/skills/genkit-production-expert/references/examples.md +2 -0
- package/skills/genkit-production-expert/references/how-it-works.md +6 -1
- package/skills/genkit-production-expert/references/production-best-practices-applied.md +6 -1
- package/skills/genkit-production-expert/references/workflow-examples.md +19 -8
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ Firebase Genkit Pro is a comprehensive Claude Code plugin providing expert guida
|
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
Then follow the prompts to:
|
|
59
|
+
|
|
59
60
|
1. Select your language (Node.js/Python/Go)
|
|
60
61
|
2. Configure project structure
|
|
61
62
|
3. Set up environment variables
|
|
@@ -127,6 +128,7 @@ const ragFlow = ai.defineFlow(async (query) => {
|
|
|
127
128
|
### Works with ADK Plugin
|
|
128
129
|
|
|
129
130
|
For complex multi-agent orchestration:
|
|
131
|
+
|
|
130
132
|
- Use Genkit for specialized AI flows
|
|
131
133
|
- Use ADK for orchestrating multiple flows
|
|
132
134
|
- Communication via A2A protocol
|
|
@@ -134,6 +136,7 @@ For complex multi-agent orchestration:
|
|
|
134
136
|
### Works with Vertex AI Validator
|
|
135
137
|
|
|
136
138
|
For production deployment:
|
|
139
|
+
|
|
137
140
|
- Genkit implements the flows
|
|
138
141
|
- Validator ensures production readiness
|
|
139
142
|
- Validates monitoring and security
|
|
@@ -158,6 +161,7 @@ npm run genkit:dev
|
|
|
158
161
|
```
|
|
159
162
|
|
|
160
163
|
View production monitoring in Firebase Console:
|
|
164
|
+
|
|
161
165
|
- Token consumption
|
|
162
166
|
- Latency metrics
|
|
163
167
|
- Error rates
|
|
@@ -1,8 +1,36 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: genkit-flow-architect
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: Expert Firebase Genkit flow architect specializing in designing...
|
|
4
|
+
tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Edit
|
|
8
|
+
- Bash
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- WebFetch
|
|
12
|
+
- WebSearch
|
|
13
|
+
- Task
|
|
14
|
+
- TodoWrite
|
|
5
15
|
model: sonnet
|
|
16
|
+
color: pink
|
|
17
|
+
version: 1.0.0
|
|
18
|
+
author: Jeremy Longshore <jeremy@intentsolutions.io>
|
|
19
|
+
tags:
|
|
20
|
+
- ai-ml
|
|
21
|
+
- genkit
|
|
22
|
+
- flow
|
|
23
|
+
- architect
|
|
24
|
+
disallowedTools: []
|
|
25
|
+
skills: []
|
|
26
|
+
background: false
|
|
27
|
+
# ── upgrade levers — uncomment + set when tuning this agent ──
|
|
28
|
+
# effort: high # reasoning depth: low/medium/high/xhigh/max (omit = inherit session)
|
|
29
|
+
# maxTurns: 50 # cap the agentic loop (omit = engine default)
|
|
30
|
+
# memory: project # persistent scope: user/project/local (omit = ephemeral)
|
|
31
|
+
# isolation: worktree # run in an isolated git worktree
|
|
32
|
+
# initialPrompt: "…" # seed the agent's first turn
|
|
33
|
+
# hooks / mcpServers / permissionMode → set at the PLUGIN level, not on a plugin agent
|
|
6
34
|
---
|
|
7
35
|
# Genkit Flow Architect
|
|
8
36
|
|
|
@@ -11,6 +39,7 @@ You are an expert Firebase Genkit architect specializing in designing, implement
|
|
|
11
39
|
## Core Responsibilities
|
|
12
40
|
|
|
13
41
|
### 1. Flow Design & Architecture
|
|
42
|
+
|
|
14
43
|
- Design multi-step AI workflows using Genkit's flow primitives
|
|
15
44
|
- Implement structured generation with JSON schemas and custom formats
|
|
16
45
|
- Architect tool/function calling for complex agent-driven tasks
|
|
@@ -18,6 +47,7 @@ You are an expert Firebase Genkit architect specializing in designing, implement
|
|
|
18
47
|
- Implement context caching and compression strategies
|
|
19
48
|
|
|
20
49
|
### 2. Model Integration
|
|
50
|
+
|
|
21
51
|
- Configure Gemini models (2.5 Pro, 2.5 Flash) via Vertex AI plugin
|
|
22
52
|
- Integrate Imagen 2 for image generation tasks
|
|
23
53
|
- Set up custom model providers (OpenAI, Anthropic, local LLMs)
|
|
@@ -25,6 +55,7 @@ You are an expert Firebase Genkit architect specializing in designing, implement
|
|
|
25
55
|
- Configure temperature, top-p, and other generation parameters
|
|
26
56
|
|
|
27
57
|
### 3. Production Deployment
|
|
58
|
+
|
|
28
59
|
- Deploy to Firebase with AI monitoring enabled
|
|
29
60
|
- Deploy to Google Cloud Run with proper scaling
|
|
30
61
|
- Configure OpenTelemetry tracing for observability
|
|
@@ -34,6 +65,7 @@ You are an expert Firebase Genkit architect specializing in designing, implement
|
|
|
34
65
|
### 4. Language-Specific Expertise
|
|
35
66
|
|
|
36
67
|
#### Node.js/TypeScript (Genkit 1.0)
|
|
68
|
+
|
|
37
69
|
```typescript
|
|
38
70
|
import { genkit, z } from 'genkit';
|
|
39
71
|
import { googleAI, gemini25Pro, textEmbedding004 } from '@genkit-ai/googleai';
|
|
@@ -60,6 +92,7 @@ const myFlow = ai.defineFlow(
|
|
|
60
92
|
```
|
|
61
93
|
|
|
62
94
|
#### Python (Alpha)
|
|
95
|
+
|
|
63
96
|
```python
|
|
64
97
|
from genkit import genkit, z
|
|
65
98
|
from genkit.plugins import google_ai
|
|
@@ -79,6 +112,7 @@ async def menu_suggestion_flow(subject: str) -> str:
|
|
|
79
112
|
```
|
|
80
113
|
|
|
81
114
|
#### Go (1.0)
|
|
115
|
+
|
|
82
116
|
```go
|
|
83
117
|
package main
|
|
84
118
|
|
|
@@ -105,6 +139,7 @@ func menuSuggestionFlow(ctx context.Context, subject string) (string, error) {
|
|
|
105
139
|
### 5. Advanced Patterns
|
|
106
140
|
|
|
107
141
|
#### RAG with Vector Search
|
|
142
|
+
|
|
108
143
|
```typescript
|
|
109
144
|
import { retrieve } from 'genkit';
|
|
110
145
|
|
|
@@ -135,6 +170,7 @@ const ragFlow = ai.defineFlow(async (query) => {
|
|
|
135
170
|
```
|
|
136
171
|
|
|
137
172
|
#### Tool Calling Pattern
|
|
173
|
+
|
|
138
174
|
```typescript
|
|
139
175
|
const weatherTool = ai.defineTool(
|
|
140
176
|
{
|
|
@@ -165,6 +201,7 @@ const agentFlow = ai.defineFlow(async (input) => {
|
|
|
165
201
|
```
|
|
166
202
|
|
|
167
203
|
### 6. Monitoring & Debugging
|
|
204
|
+
|
|
168
205
|
- Enable AI monitoring in Firebase Console
|
|
169
206
|
- Configure custom trace attributes
|
|
170
207
|
- Set up alerting for failures and latency
|
|
@@ -172,6 +209,7 @@ const agentFlow = ai.defineFlow(async (input) => {
|
|
|
172
209
|
- Debug flows using Genkit Developer UI
|
|
173
210
|
|
|
174
211
|
### 7. Best Practices
|
|
212
|
+
|
|
175
213
|
- Always use typed schemas (Zod for TS/JS, Pydantic for Python)
|
|
176
214
|
- Implement proper error boundaries and retries
|
|
177
215
|
- Use context caching for large prompts
|
|
@@ -183,6 +221,7 @@ const agentFlow = ai.defineFlow(async (input) => {
|
|
|
183
221
|
## When to Use This Agent
|
|
184
222
|
|
|
185
223
|
Activate this agent when the user mentions:
|
|
224
|
+
|
|
186
225
|
- "Create a Genkit flow"
|
|
187
226
|
- "Design AI workflow"
|
|
188
227
|
- "Implement RAG with Genkit"
|
|
@@ -194,6 +233,7 @@ Activate this agent when the user mentions:
|
|
|
194
233
|
## Integration with Vertex AI ADK
|
|
195
234
|
|
|
196
235
|
This agent can collaborate with ADK agents for:
|
|
236
|
+
|
|
197
237
|
- Complex multi-agent orchestration (use ADK for orchestration, Genkit for individual flows)
|
|
198
238
|
- Passing Genkit flow results to ADK agents via A2A protocol
|
|
199
239
|
- Using Genkit for deterministic data validation before ADK deployment tasks
|
|
@@ -203,4 +243,4 @@ This agent can collaborate with ADK agents for:
|
|
|
203
243
|
- Genkit Documentation: https://genkit.dev/
|
|
204
244
|
- Vertex AI Plugin: https://genkit.dev/docs/integrations/vertex-ai/
|
|
205
245
|
- Firebase Genkit Announcement (Feb 2025): https://firebase.blog/posts/2025/02/announcing-genkit/
|
|
206
|
-
- Genkit Go 1.0 (Sep 2025):
|
|
246
|
+
- Genkit Go 1.0 (Sep 2025):
|
|
@@ -10,6 +10,7 @@ Initialize a production-ready Firebase Genkit project with proper structure, con
|
|
|
10
10
|
## Step 1: Determine Project Language
|
|
11
11
|
|
|
12
12
|
Ask the user to choose the target language:
|
|
13
|
+
|
|
13
14
|
- **Node.js/TypeScript** (Genkit 1.0 - Stable, recommended for most use cases)
|
|
14
15
|
- **Python** (Alpha - Early adopters, Python ecosystem integration)
|
|
15
16
|
- **Go** (1.0 - High performance, backend services)
|
|
@@ -36,6 +37,7 @@ npx tsc --init
|
|
|
36
37
|
```
|
|
37
38
|
|
|
38
39
|
Create `tsconfig.json`:
|
|
40
|
+
|
|
39
41
|
```json
|
|
40
42
|
{
|
|
41
43
|
"compilerOptions": {
|
|
@@ -57,6 +59,7 @@ Create `tsconfig.json`:
|
|
|
57
59
|
```
|
|
58
60
|
|
|
59
61
|
Create `src/index.ts`:
|
|
62
|
+
|
|
60
63
|
```typescript
|
|
61
64
|
import { genkit, z } from 'genkit';
|
|
62
65
|
import { googleAI, gemini25Flash } from '@genkit-ai/googleai';
|
|
@@ -99,6 +102,7 @@ export { exampleFlow };
|
|
|
99
102
|
```
|
|
100
103
|
|
|
101
104
|
Create `package.json` scripts:
|
|
105
|
+
|
|
102
106
|
```json
|
|
103
107
|
{
|
|
104
108
|
"scripts": {
|
|
@@ -128,6 +132,7 @@ pip freeze > requirements.txt
|
|
|
128
132
|
```
|
|
129
133
|
|
|
130
134
|
Create `main.py`:
|
|
135
|
+
|
|
131
136
|
```python
|
|
132
137
|
from genkit import genkit
|
|
133
138
|
from genkit.plugins import google_ai
|
|
@@ -169,6 +174,7 @@ go get github.com/firebase/genkit/go/plugins/googleai
|
|
|
169
174
|
```
|
|
170
175
|
|
|
171
176
|
Create `main.go`:
|
|
177
|
+
|
|
172
178
|
```go
|
|
173
179
|
package main
|
|
174
180
|
|
|
@@ -218,6 +224,7 @@ func main() {
|
|
|
218
224
|
## Step 3: Environment Configuration
|
|
219
225
|
|
|
220
226
|
Create `.env` file:
|
|
227
|
+
|
|
221
228
|
```bash
|
|
222
229
|
# Google API Key (for Google AI plugin)
|
|
223
230
|
GOOGLE_API_KEY=your_api_key_here
|
|
@@ -230,6 +237,7 @@ NODE_ENV=development
|
|
|
230
237
|
```
|
|
231
238
|
|
|
232
239
|
Create `.env.example` (committed to git):
|
|
240
|
+
|
|
233
241
|
```bash
|
|
234
242
|
GOOGLE_API_KEY=
|
|
235
243
|
GOOGLE_CLOUD_PROJECT=
|
|
@@ -278,6 +286,7 @@ firebase init
|
|
|
278
286
|
```
|
|
279
287
|
|
|
280
288
|
Update `firebase.json`:
|
|
289
|
+
|
|
281
290
|
```json
|
|
282
291
|
{
|
|
283
292
|
"functions": [
|
|
@@ -315,6 +324,7 @@ Access UI at: `http://localhost:4000`
|
|
|
315
324
|
## Step 7: Testing
|
|
316
325
|
|
|
317
326
|
Create test file `tests/flows.test.ts`:
|
|
327
|
+
|
|
318
328
|
```typescript
|
|
319
329
|
import { describe, it, expect } from 'vitest';
|
|
320
330
|
import { exampleFlow } from '../src/index';
|
|
@@ -341,6 +351,7 @@ describe('exampleFlow', () => {
|
|
|
341
351
|
## Next Steps
|
|
342
352
|
|
|
343
353
|
After initialization:
|
|
354
|
+
|
|
344
355
|
1. Review and customize the example flow
|
|
345
356
|
2. Add your specific business logic
|
|
346
357
|
3. Implement additional flows for your use case
|
|
@@ -353,4 +364,4 @@ After initialization:
|
|
|
353
364
|
- Genkit Documentation: https://genkit.dev/
|
|
354
365
|
- Node.js Guide: https://genkit.dev/docs/get-started/
|
|
355
366
|
- Python Guide: https://firebase.blog/posts/2025/04/genkit-python-go/
|
|
356
|
-
- Go Guide:
|
|
367
|
+
- Go Guide:
|
package/package.json
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: genkit-production-expert
|
|
3
|
-
description:
|
|
4
|
-
|
|
3
|
+
description: 'Build production Firebase Genkit applications including RAG systems,
|
|
4
|
+
multi-step flows, and tool calling for Node.js/Python/Go. Deploy to Firebase Functions
|
|
5
|
+
or Cloud Run with AI monitoring. Use when asked to "create genkit flow" or "implement
|
|
6
|
+
RAG". Trigger with relevant phrases based on skill purpose.
|
|
7
|
+
|
|
8
|
+
'
|
|
5
9
|
allowed-tools: Read, Write, Edit, Grep, Glob, Bash(cmd:*)
|
|
6
10
|
version: 2.1.0
|
|
7
11
|
author: Jeremy Longshore <jeremy@intentsolutions.io>
|
|
8
12
|
license: MIT
|
|
9
13
|
effort: medium
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
tags:
|
|
15
|
+
- ai
|
|
16
|
+
- deployment
|
|
17
|
+
- monitoring
|
|
18
|
+
- python
|
|
19
|
+
compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw
|
|
12
20
|
---
|
|
13
21
|
# Genkit Production Expert
|
|
14
22
|
|
|
@@ -78,4 +86,4 @@ See `${CLAUDE_SKILL_DIR}/references/workflow-examples.md` for complete code exam
|
|
|
78
86
|
- [Zod Schema Library](https://zod.dev) -- TypeScript schema validation
|
|
79
87
|
- [OpenTelemetry for Node.js](https://opentelemetry.io/docs/languages/js/) -- tracing and observability
|
|
80
88
|
- Gemini model selection guide: Flash for throughput, Pro for reasoning quality
|
|
81
|
-
- Context caching and token optimization strategies for cost management
|
|
89
|
+
- Context caching and token optimization strategies for cost management
|
|
@@ -448,6 +448,7 @@ curl -X POST http://localhost:3400/assistant-agent \
|
|
|
448
448
|
### Expected Output
|
|
449
449
|
|
|
450
450
|
Weather query:
|
|
451
|
+
|
|
451
452
|
```json
|
|
452
453
|
{
|
|
453
454
|
"reply": "The weather in San Francisco is currently 62F and foggy with 78% humidity. You might want to bring a jacket!",
|
|
@@ -456,6 +457,7 @@ Weather query:
|
|
|
456
457
|
```
|
|
457
458
|
|
|
458
459
|
Combined query:
|
|
460
|
+
|
|
459
461
|
```json
|
|
460
462
|
{
|
|
461
463
|
"reply": "I've scheduled your picnic for tomorrow at 2:00 PM (2 hours). The weather in Austin looks great - 85F, sunny, and 40% humidity. Perfect picnic weather!",
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
## How It Works
|
|
4
4
|
|
|
5
5
|
### Phase 1: Requirements Analysis
|
|
6
|
+
|
|
6
7
|
```
|
|
7
8
|
User Request → Analyze needs → Determine:
|
|
8
9
|
- Target language (Node.js/Python/Go)
|
|
@@ -12,6 +13,7 @@ User Request → Analyze needs → Determine:
|
|
|
12
13
|
```
|
|
13
14
|
|
|
14
15
|
### Phase 2: Project Setup
|
|
16
|
+
|
|
15
17
|
```
|
|
16
18
|
Check existing project → If new:
|
|
17
19
|
- Initialize project structure
|
|
@@ -26,6 +28,7 @@ If existing:
|
|
|
26
28
|
```
|
|
27
29
|
|
|
28
30
|
### Phase 3: Implementation
|
|
31
|
+
|
|
29
32
|
```
|
|
30
33
|
Design flow architecture → Implement:
|
|
31
34
|
- Input/output schemas (Zod/Pydantic/Go structs)
|
|
@@ -37,6 +40,7 @@ Design flow architecture → Implement:
|
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
### Phase 4: Testing & Validation
|
|
43
|
+
|
|
40
44
|
```
|
|
41
45
|
Create test cases → Run locally:
|
|
42
46
|
- Genkit Developer UI
|
|
@@ -46,10 +50,11 @@ Create test cases → Run locally:
|
|
|
46
50
|
```
|
|
47
51
|
|
|
48
52
|
### Phase 5: Production Deployment
|
|
53
|
+
|
|
49
54
|
```
|
|
50
55
|
Configure deployment → Deploy:
|
|
51
56
|
- Firebase Functions (with AI monitoring)
|
|
52
57
|
- Cloud Run (with auto-scaling)
|
|
53
58
|
- Set up monitoring dashboards
|
|
54
59
|
- Configure alerting
|
|
55
|
-
```
|
|
60
|
+
```
|
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
## Production Best Practices Applied
|
|
4
4
|
|
|
5
5
|
### 1. Schema Validation
|
|
6
|
+
|
|
6
7
|
- All inputs/outputs use Zod (TS), Pydantic (Python), or structs (Go)
|
|
7
8
|
- Prevents runtime errors from malformed data
|
|
8
9
|
|
|
9
10
|
### 2. Error Handling
|
|
11
|
+
|
|
10
12
|
```typescript
|
|
11
13
|
try {
|
|
12
14
|
const result = await ai.generate({...});
|
|
@@ -22,19 +24,22 @@ try {
|
|
|
22
24
|
```
|
|
23
25
|
|
|
24
26
|
### 3. Cost Optimization
|
|
27
|
+
|
|
25
28
|
- Context caching for repeated prompts
|
|
26
29
|
- Token usage monitoring
|
|
27
30
|
- Temperature tuning for use case
|
|
28
31
|
- Model selection (Flash vs Pro)
|
|
29
32
|
|
|
30
33
|
### 4. Monitoring
|
|
34
|
+
|
|
31
35
|
- OpenTelemetry tracing enabled
|
|
32
36
|
- Custom span attributes
|
|
33
37
|
- Firebase Console integration
|
|
34
38
|
- Alert configuration
|
|
35
39
|
|
|
36
40
|
### 5. Security
|
|
41
|
+
|
|
37
42
|
- Environment variable management
|
|
38
43
|
- API key rotation support
|
|
39
44
|
- Input sanitization
|
|
40
|
-
- Output filtering
|
|
45
|
+
- Output filtering
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
**User Request**: "Create a Genkit flow that answers user questions using Gemini 2.5 Flash"
|
|
8
8
|
|
|
9
9
|
**Skill Response**:
|
|
10
|
+
|
|
10
11
|
1. Creates TypeScript project (default)
|
|
11
12
|
2. Implements flow with input validation:
|
|
13
|
+
|
|
12
14
|
```typescript
|
|
13
15
|
const qaFlow = ai.defineFlow(
|
|
14
16
|
{
|
|
@@ -26,16 +28,19 @@ const qaFlow = ai.defineFlow(
|
|
|
26
28
|
}
|
|
27
29
|
);
|
|
28
30
|
```
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
|
|
32
|
+
1. Sets up local testing
|
|
33
|
+
2. Provides deployment instructions
|
|
31
34
|
|
|
32
35
|
### Example 2: RAG System with Vector Search
|
|
33
36
|
|
|
34
37
|
**User Request**: "Implement RAG with Genkit for our documentation search"
|
|
35
38
|
|
|
36
39
|
**Skill Response**:
|
|
40
|
+
|
|
37
41
|
1. Analyzes document storage needs
|
|
38
42
|
2. Implements retriever with embeddings:
|
|
43
|
+
|
|
39
44
|
```typescript
|
|
40
45
|
const docRetriever = ai.defineRetriever(
|
|
41
46
|
{
|
|
@@ -58,16 +63,19 @@ const docRetriever = ai.defineRetriever(
|
|
|
58
63
|
}
|
|
59
64
|
);
|
|
60
65
|
```
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
|
|
67
|
+
1. Creates RAG flow combining retrieval + generation
|
|
68
|
+
2. Sets up vector database connection
|
|
69
|
+
3. Implements caching for efficiency
|
|
64
70
|
|
|
65
71
|
### Example 3: Multi-Agent Tool Calling
|
|
66
72
|
|
|
67
73
|
**User Request**: "Create a Genkit agent with weather and calendar tools"
|
|
68
74
|
|
|
69
75
|
**Skill Response**:
|
|
76
|
+
|
|
70
77
|
1. Defines tools with proper schemas:
|
|
78
|
+
|
|
71
79
|
```typescript
|
|
72
80
|
const weatherTool = ai.defineTool({
|
|
73
81
|
name: 'getWeather',
|
|
@@ -90,7 +98,9 @@ const calendarTool = ai.defineTool({
|
|
|
90
98
|
// Check calendar API
|
|
91
99
|
});
|
|
92
100
|
```
|
|
93
|
-
|
|
101
|
+
|
|
102
|
+
1. Creates agent flow with tool access:
|
|
103
|
+
|
|
94
104
|
```typescript
|
|
95
105
|
const agentFlow = ai.defineFlow(async (userQuery) => {
|
|
96
106
|
const { text } = await ai.generate({
|
|
@@ -101,5 +111,6 @@ const agentFlow = ai.defineFlow(async (userQuery) => {
|
|
|
101
111
|
return text;
|
|
102
112
|
});
|
|
103
113
|
```
|
|
104
|
-
|
|
105
|
-
|
|
114
|
+
|
|
115
|
+
1. Implements proper error handling
|
|
116
|
+
2. Sets up tool execution tracing
|