@jhm1909/ag-kit 0.1.0
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/.agent/ARCHITECTURE.md +189 -0
- package/.agent/known-registries.json +181 -0
- package/.agent/mcp_config.json +19 -0
- package/.agent/rules/clean-code.md +107 -0
- package/.agent/rules/documents.md +177 -0
- package/.agent/rules/git-workflow.md +68 -0
- package/.agent/rules/nano-banana.md +46 -0
- package/.agent/rules/research.md +35 -0
- package/.agent/rules/skill-loading.md +100 -0
- package/.agent/rules/skill-suggestion.md +47 -0
- package/.agent/rules/testing.md +52 -0
- package/.agent/rules/workflow-advisor.md +108 -0
- package/.agent/rules/workflow-skill-convention.md +127 -0
- package/.agent/skills/ai-engineer/SKILL.md +824 -0
- package/.agent/skills/ai-engineer/references/agentic-patterns.md +329 -0
- package/.agent/skills/ai-engineer/references/evaluation.md +493 -0
- package/.agent/skills/ai-engineer/references/llm.md +490 -0
- package/.agent/skills/ai-engineer/references/rag-advanced.md +444 -0
- package/.agent/skills/ai-engineer/references/serving-optimization.md +531 -0
- package/.agent/skills/ai-engineer/vector-db/README.md +137 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +41 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/backend-developer/SKILL.md +763 -0
- package/.agent/skills/backend-developer/references/general-patterns.md +65 -0
- package/.agent/skills/backend-developer/references/go-echo.md +68 -0
- package/.agent/skills/backend-developer/references/go-gin.md +76 -0
- package/.agent/skills/backend-developer/references/java-springboot.md +83 -0
- package/.agent/skills/backend-developer/references/node-express.md +64 -0
- package/.agent/skills/backend-developer/references/node-nestjs.md +69 -0
- package/.agent/skills/backend-developer/references/python-django.md +67 -0
- package/.agent/skills/backend-developer/references/python-fastapi.md +80 -0
- package/.agent/skills/blockchain-engineer/SKILL.md +975 -0
- package/.agent/skills/blockchain-engineer/references/deployment.md +28 -0
- package/.agent/skills/blockchain-engineer/references/evm.md +14 -0
- package/.agent/skills/blockchain-engineer/references/mechanisms.md +32 -0
- package/.agent/skills/blockchain-engineer/references/solidity.md +32 -0
- package/.agent/skills/business-analysis/SKILL.md +85 -0
- package/.agent/skills/business-analysis/references/best-practices/diagrams.md +141 -0
- package/.agent/skills/business-analysis/references/domains/ai-agent.md +94 -0
- package/.agent/skills/business-analysis/references/domains/blockchain-dapp.md +86 -0
- package/.agent/skills/business-analysis/references/domains/ecommerce.md +77 -0
- package/.agent/skills/business-analysis/references/domains/education.md +42 -0
- package/.agent/skills/business-analysis/references/domains/fintech.md +44 -0
- package/.agent/skills/business-analysis/references/domains/fnb.md +82 -0
- package/.agent/skills/business-analysis/references/domains/healthtech.md +44 -0
- package/.agent/skills/business-analysis/references/domains/internal-tools.md +38 -0
- package/.agent/skills/business-analysis/references/domains/marketplace.md +52 -0
- package/.agent/skills/business-analysis/references/domains/saas.md +36 -0
- package/.agent/skills/business-analysis/references/workflows/collaboration.md +41 -0
- package/.agent/skills/business-analysis/scripts/verify_mermaid.py +86 -0
- package/.agent/skills/business-analysis/templates/brd.md +46 -0
- package/.agent/skills/business-analysis/templates/change-request.md +41 -0
- package/.agent/skills/business-analysis/templates/prd-functional.md +38 -0
- package/.agent/skills/business-analysis/templates/use-case.md +40 -0
- package/.agent/skills/business-analysis/templates/user-story-detailed.md +36 -0
- package/.agent/skills/code-review/SKILL.md +113 -0
- package/.agent/skills/code-review/references/code-review-reception.md +209 -0
- package/.agent/skills/code-review/references/differential_review.md +59 -0
- package/.agent/skills/code-review/references/requesting-code-review.md +105 -0
- package/.agent/skills/code-review/references/spec_compliance.md +43 -0
- package/.agent/skills/code-review/references/verification-before-completion.md +139 -0
- package/.agent/skills/context-engineering/SKILL.md +68 -0
- package/.agent/skills/context-engineering/references/context-compression.md +84 -0
- package/.agent/skills/context-engineering/references/context-degradation.md +93 -0
- package/.agent/skills/context-engineering/references/context-fundamentals.md +75 -0
- package/.agent/skills/context-engineering/references/context-optimization.md +82 -0
- package/.agent/skills/context-engineering/references/evaluation.md +89 -0
- package/.agent/skills/context-engineering/references/memory-systems.md +88 -0
- package/.agent/skills/context-engineering/references/multi-agent-patterns.md +90 -0
- package/.agent/skills/context-engineering/references/project-development.md +97 -0
- package/.agent/skills/context-engineering/references/tool-design.md +86 -0
- package/.agent/skills/debugging/SKILL.md +60 -0
- package/.agent/skills/debugging/references/defense-in-depth.md +130 -0
- package/.agent/skills/debugging/references/root-cause-tracing.md +177 -0
- package/.agent/skills/debugging/references/systematic-debugging.md +295 -0
- package/.agent/skills/debugging/references/verification-before-completion.md +142 -0
- package/.agent/skills/designer/SKILL.md +159 -0
- package/.agent/skills/designer/concepts/apple-glass.md +48 -0
- package/.agent/skills/designer/concepts/aurora-gradients.md +26 -0
- package/.agent/skills/designer/concepts/bento-grids.md +14 -0
- package/.agent/skills/designer/concepts/claymorphism.md +27 -0
- package/.agent/skills/designer/concepts/neo-brutalism.md +32 -0
- package/.agent/skills/designer/data/app-interface.csv +31 -0
- package/.agent/skills/designer/data/charts.csv +26 -0
- package/.agent/skills/designer/data/colors.csv +162 -0
- package/.agent/skills/designer/data/design.csv +1776 -0
- package/.agent/skills/designer/data/icons.csv +106 -0
- package/.agent/skills/designer/data/landing.csv +35 -0
- package/.agent/skills/designer/data/products.csv +162 -0
- package/.agent/skills/designer/data/react-performance.csv +45 -0
- package/.agent/skills/designer/data/styles.csv +85 -0
- package/.agent/skills/designer/data/typography.csv +74 -0
- package/.agent/skills/designer/data/ui-reasoning.csv +162 -0
- package/.agent/skills/designer/data/ux-guidelines.csv +100 -0
- package/.agent/skills/designer/references/accessibility.md +172 -0
- package/.agent/skills/designer/references/branding.md +88 -0
- package/.agent/skills/designer/references/color-theory.md +139 -0
- package/.agent/skills/designer/references/creation.md +118 -0
- package/.agent/skills/designer/references/design-systems.md +219 -0
- package/.agent/skills/designer/references/frontend_design_aesthetics.md +57 -0
- package/.agent/skills/designer/references/layout.md +200 -0
- package/.agent/skills/designer/references/motion.md +92 -0
- package/.agent/skills/designer/references/review.md +100 -0
- package/.agent/skills/designer/references/trends.md +209 -0
- package/.agent/skills/designer/references/typography.md +190 -0
- package/.agent/skills/designer/scripts/remove_background.py +135 -0
- package/.agent/skills/designer/scripts/ui-search/__pycache__/core.cpython-314.pyc +0 -0
- package/.agent/skills/designer/scripts/ui-search/__pycache__/design_system.cpython-314.pyc +0 -0
- package/.agent/skills/designer/scripts/ui-search/core.py +217 -0
- package/.agent/skills/designer/scripts/ui-search/design_system.py +1067 -0
- package/.agent/skills/designer/scripts/ui-search/search.py +114 -0
- package/.agent/skills/designer/templates/design-motion-spec.md +30 -0
- package/.agent/skills/devops-engineer/SKILL.md +90 -0
- package/.agent/skills/devops-engineer/docker-compose/README.md +47 -0
- package/.agent/skills/devops-engineer/references/ci-cd-pipelines.md +76 -0
- package/.agent/skills/devops-engineer/references/cloud-providers.md +57 -0
- package/.agent/skills/devops-engineer/references/codebase-normalization.md +104 -0
- package/.agent/skills/devops-engineer/references/container-orchestration.md +69 -0
- package/.agent/skills/devops-engineer/references/iac-tools.md +63 -0
- package/.agent/skills/devops-engineer/references/observability-security.md +45 -0
- package/.agent/skills/devops-engineer/references/vercel-supabase.md +17 -0
- package/.agent/skills/devops-engineer/templates/release-notes.md +8 -0
- package/.agent/skills/frontend-developer/SKILL.md +125 -0
- package/.agent/skills/frontend-developer/react-nextjs/README.md +90 -0
- package/.agent/skills/frontend-developer/references/angular.md +52 -0
- package/.agent/skills/frontend-developer/references/composition_patterns.md +60 -0
- package/.agent/skills/frontend-developer/references/core-performance.md +68 -0
- package/.agent/skills/frontend-developer/references/modern-signals.md +43 -0
- package/.agent/skills/frontend-developer/references/react_performance_rules.md +55 -0
- package/.agent/skills/frontend-developer/references/vue-nuxt.md +55 -0
- package/.agent/skills/frontend-developer/scripts/validate_compliance.py +65 -0
- package/.agent/skills/frontend-developer/threejs/README.md +89 -0
- package/.agent/skills/frontend-developer/threejs/animation.md +552 -0
- package/.agent/skills/frontend-developer/threejs/fundamentals.md +488 -0
- package/.agent/skills/frontend-developer/threejs/geometry.md +548 -0
- package/.agent/skills/frontend-developer/threejs/interaction.md +660 -0
- package/.agent/skills/frontend-developer/threejs/lighting.md +481 -0
- package/.agent/skills/frontend-developer/threejs/loaders.md +623 -0
- package/.agent/skills/frontend-developer/threejs/materials.md +520 -0
- package/.agent/skills/frontend-developer/threejs/postprocessing.md +602 -0
- package/.agent/skills/frontend-developer/threejs/router.json +181 -0
- package/.agent/skills/frontend-developer/threejs/shaders.md +642 -0
- package/.agent/skills/frontend-developer/threejs/textures.md +628 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/.agent/skills/game-development/SKILL.md +167 -0
- package/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/.agent/skills/lead-architect/SKILL.md +85 -0
- package/.agent/skills/lead-architect/references/application-architecture.md +70 -0
- package/.agent/skills/lead-architect/references/infrastructure.md +51 -0
- package/.agent/skills/lead-architect/references/process.md +42 -0
- package/.agent/skills/lead-architect/references/system-architecture.md +62 -0
- package/.agent/skills/lead-architect/references/web-fullstack.md +82 -0
- package/.agent/skills/lead-architect/templates/adr.md +62 -0
- package/.agent/skills/lead-architect/templates/rfc.md +46 -0
- package/.agent/skills/lead-architect/templates/sdd.md +62 -0
- package/.agent/skills/lead-architect/templates/technical-spec.md +61 -0
- package/.agent/skills/marketer/SKILL.md +66 -0
- package/.agent/skills/marketer/remotion-best-practices/SKILL.md +58 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/3d.md +86 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/animations.md +29 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/assets.md +78 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/audio.md +172 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/can-decode.md +75 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/charts.md +58 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/compositions.md +146 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/display-captions.md +126 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/extract-frames.md +229 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/fonts.md +152 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/gifs.md +138 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/images.md +130 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/import-srt-captions.md +67 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/lottie.md +68 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/measuring-dom-nodes.md +35 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/measuring-text.md +143 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/sequencing.md +106 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/tailwind.md +11 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/text-animations.md +20 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/timing.md +179 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/transcribe-captions.md +19 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/transitions.md +122 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/trimming.md +53 -0
- package/.agent/skills/marketer/remotion-best-practices/rules/videos.md +171 -0
- package/.agent/skills/mcp-builder/SKILL.md +76 -0
- package/.agent/skills/mcp-builder/references/evaluation.md +602 -0
- package/.agent/skills/mcp-builder/references/mcp_best_practices.md +249 -0
- package/.agent/skills/mcp-builder/references/node_mcp_server.md +970 -0
- package/.agent/skills/mcp-builder/references/python_mcp_server.md +719 -0
- package/.agent/skills/mobile-developer/SKILL.md +83 -0
- package/.agent/skills/mobile-developer/api-routes/SKILL.md +389 -0
- package/.agent/skills/mobile-developer/building-ui/SKILL.md +335 -0
- package/.agent/skills/mobile-developer/building-ui/references/animations.md +220 -0
- package/.agent/skills/mobile-developer/building-ui/references/controls.md +270 -0
- package/.agent/skills/mobile-developer/building-ui/references/form-sheet.md +227 -0
- package/.agent/skills/mobile-developer/building-ui/references/gradients.md +106 -0
- package/.agent/skills/mobile-developer/building-ui/references/icons.md +213 -0
- package/.agent/skills/mobile-developer/building-ui/references/media.md +198 -0
- package/.agent/skills/mobile-developer/building-ui/references/route-structure.md +229 -0
- package/.agent/skills/mobile-developer/building-ui/references/search.md +248 -0
- package/.agent/skills/mobile-developer/building-ui/references/storage.md +121 -0
- package/.agent/skills/mobile-developer/building-ui/references/tabs.md +368 -0
- package/.agent/skills/mobile-developer/building-ui/references/visual-effects.md +197 -0
- package/.agent/skills/mobile-developer/building-ui/references/webgpu-three.md +605 -0
- package/.agent/skills/mobile-developer/cicd-workflows/SKILL.md +107 -0
- package/.agent/skills/mobile-developer/cicd-workflows/scripts/fetch.js +109 -0
- package/.agent/skills/mobile-developer/cicd-workflows/scripts/package.json +11 -0
- package/.agent/skills/mobile-developer/cicd-workflows/scripts/validate.js +84 -0
- package/.agent/skills/mobile-developer/data-fetching/SKILL.md +508 -0
- package/.agent/skills/mobile-developer/deployment/SKILL.md +207 -0
- package/.agent/skills/mobile-developer/deployment/references/app-store-metadata.md +479 -0
- package/.agent/skills/mobile-developer/deployment/references/ios-app-store.md +355 -0
- package/.agent/skills/mobile-developer/deployment/references/play-store.md +246 -0
- package/.agent/skills/mobile-developer/deployment/references/testflight.md +58 -0
- package/.agent/skills/mobile-developer/deployment/references/workflows.md +200 -0
- package/.agent/skills/mobile-developer/dev-client/SKILL.md +181 -0
- package/.agent/skills/mobile-developer/tailwind-setup/SKILL.md +501 -0
- package/.agent/skills/mobile-developer/upgrading-expo/SKILL.md +116 -0
- package/.agent/skills/mobile-developer/upgrading-expo/references/new-architecture.md +79 -0
- package/.agent/skills/mobile-developer/upgrading-expo/references/react-19.md +79 -0
- package/.agent/skills/mobile-developer/upgrading-expo/references/react-compiler.md +59 -0
- package/.agent/skills/mobile-developer/use-dom/SKILL.md +434 -0
- package/.agent/skills/modern-python/SKILL.md +122 -0
- package/.agent/skills/project-manager/SKILL.md +110 -0
- package/.agent/skills/project-manager/references/ba-collaboration.md +62 -0
- package/.agent/skills/project-manager/references/discovery_process.md +52 -0
- package/.agent/skills/project-manager/references/jobs_to_be_done.md +51 -0
- package/.agent/skills/project-manager/references/prd_development.md +52 -0
- package/.agent/skills/project-manager/references/rules-guide.md +55 -0
- package/.agent/skills/project-manager/references/skill-creation.md +98 -0
- package/.agent/skills/project-manager/references/strategic-frameworks.md +62 -0
- package/.agent/skills/project-manager/references/task-decomposition.md +194 -0
- package/.agent/skills/project-manager/references/workflows-guide.md +44 -0
- package/.agent/skills/project-manager/router.json +160 -0
- package/.agent/skills/project-manager/scripts/compare_skill.py +177 -0
- package/.agent/skills/project-manager/scripts/encoding_utils.py +36 -0
- package/.agent/skills/project-manager/scripts/init_skill.py +190 -0
- package/.agent/skills/project-manager/scripts/quick_validate.py +123 -0
- package/.agent/skills/project-manager/templates/pm-strategy-one-pager.md +6 -0
- package/.agent/skills/project-manager/templates/prd-strategic.md +38 -0
- package/.agent/skills/project-manager/templates/skill-questionnaire.md +118 -0
- package/.agent/skills/project-manager/templates/user-story-simple.md +14 -0
- package/.agent/skills/prompt-engineer/SKILL.md +319 -0
- package/.agent/skills/prompt-engineer/skill-creator/README.md +47 -0
- package/.agent/skills/qa-tester/SKILL.md +142 -0
- package/.agent/skills/qa-tester/assets/README.md +8 -0
- package/.agent/skills/qa-tester/references/accessibility_testing.md +35 -0
- package/.agent/skills/qa-tester/references/agent_browser.md +38 -0
- package/.agent/skills/qa-tester/references/automation/api_testing.md +23 -0
- package/.agent/skills/qa-tester/references/automation/best_practices.md +14 -0
- package/.agent/skills/qa-tester/references/automation/jest_vitest.md +26 -0
- package/.agent/skills/qa-tester/references/automation/playwright.md +30 -0
- package/.agent/skills/qa-tester/references/e2e_testing.md +46 -0
- package/.agent/skills/qa-tester/references/integration_testing.md +39 -0
- package/.agent/skills/qa-tester/references/performance_testing.md +44 -0
- package/.agent/skills/qa-tester/references/property_based_testing.md +44 -0
- package/.agent/skills/qa-tester/references/security_audit.md +53 -0
- package/.agent/skills/qa-tester/references/security_testing.md +30 -0
- package/.agent/skills/qa-tester/references/sharp_edges.md +49 -0
- package/.agent/skills/qa-tester/references/static_analysis.md +52 -0
- package/.agent/skills/qa-tester/references/supply_chain_audit.md +54 -0
- package/.agent/skills/qa-tester/references/test_case_standards.md +96 -0
- package/.agent/skills/qa-tester/references/test_report_template.md +32 -0
- package/.agent/skills/qa-tester/references/unit_testing.md +50 -0
- package/.agent/skills/qa-tester/references/visual_testing.md +32 -0
- package/.agent/skills/qa-tester/templates/uat-plan.md +34 -0
- package/.agent/skills/research-first/SKILL.md +118 -0
- package/.agent/skills-manifest.json +264 -0
- package/.agent/workflows/absorb.md +176 -0
- package/.agent/workflows/bootstrap.md +91 -0
- package/.agent/workflows/brainstorm.md +168 -0
- package/.agent/workflows/break-tasks.md +77 -0
- package/.agent/workflows/commit.md +349 -0
- package/.agent/workflows/custom-behavior.md +64 -0
- package/.agent/workflows/debug.md +65 -0
- package/.agent/workflows/development.md +49 -0
- package/.agent/workflows/documentation.md +221 -0
- package/.agent/workflows/gen-tests.md +53 -0
- package/.agent/workflows/guide.md +196 -0
- package/.agent/workflows/implement-feature.md +182 -0
- package/.agent/workflows/install-skill.md +193 -0
- package/.agent/workflows/qa.md +54 -0
- package/.agent/workflows/ui-ux-design.md +108 -0
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/cli/index.js +345 -0
- package/cli/migrate-skills.js +113 -0
- package/cli/verify.js +291 -0
- package/package.json +49 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# Agentic Patterns
|
|
2
|
+
|
|
3
|
+
Design patterns for building reliable AI agents.
|
|
4
|
+
|
|
5
|
+
## 1. ReAct (Reasoning + Acting)
|
|
6
|
+
|
|
7
|
+
The agent alternates between reasoning about the situation and taking actions.
|
|
8
|
+
|
|
9
|
+
```python
|
|
10
|
+
def react_loop(query: str, max_iterations: int = 10):
|
|
11
|
+
context = []
|
|
12
|
+
|
|
13
|
+
for i in range(max_iterations):
|
|
14
|
+
# Reasoning step
|
|
15
|
+
thought = llm.complete(f"""
|
|
16
|
+
Question: {query}
|
|
17
|
+
Context: {context}
|
|
18
|
+
|
|
19
|
+
What should I do next? Think step by step.
|
|
20
|
+
Thought:
|
|
21
|
+
""")
|
|
22
|
+
|
|
23
|
+
# Action selection
|
|
24
|
+
action_json = llm.complete(f"""
|
|
25
|
+
Based on this thought: {thought}
|
|
26
|
+
|
|
27
|
+
Choose an action from available tools:
|
|
28
|
+
{available_tools_description}
|
|
29
|
+
|
|
30
|
+
Respond in JSON: {{"tool": "name", "args": {{}}}}
|
|
31
|
+
""")
|
|
32
|
+
|
|
33
|
+
action = json.loads(action_json)
|
|
34
|
+
|
|
35
|
+
if action["tool"] == "finish":
|
|
36
|
+
return action["args"]["answer"]
|
|
37
|
+
|
|
38
|
+
# Execute action
|
|
39
|
+
result = execute_tool(action["tool"], action["args"])
|
|
40
|
+
context.append({"thought": thought, "action": action, "result": result})
|
|
41
|
+
|
|
42
|
+
raise MaxIterationsExceeded()
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### When to Use
|
|
46
|
+
- Multi-step reasoning required
|
|
47
|
+
- Tool calling needed
|
|
48
|
+
- Uncertain about exact sequence upfront
|
|
49
|
+
|
|
50
|
+
### Variants
|
|
51
|
+
- **ReAct + Reflection**: Agent critiques its own reasoning
|
|
52
|
+
- **ReAct + Memory**: Persistent context across sessions
|
|
53
|
+
- **Async ReAct**: Parallel action execution
|
|
54
|
+
|
|
55
|
+
## 2. Plan-and-Solve
|
|
56
|
+
|
|
57
|
+
Generate a plan first, then execute steps.
|
|
58
|
+
|
|
59
|
+
```python
|
|
60
|
+
def plan_and_solve(query: str):
|
|
61
|
+
# Step 1: Generate plan
|
|
62
|
+
plan = llm.complete(f"""
|
|
63
|
+
Create a step-by-step plan to solve:
|
|
64
|
+
{query}
|
|
65
|
+
|
|
66
|
+
Available tools: {tools}
|
|
67
|
+
|
|
68
|
+
Plan (numbered steps):
|
|
69
|
+
""")
|
|
70
|
+
|
|
71
|
+
steps = parse_steps(plan)
|
|
72
|
+
results = []
|
|
73
|
+
|
|
74
|
+
# Step 2: Execute plan
|
|
75
|
+
for step in steps:
|
|
76
|
+
result = execute_step(step, context=results)
|
|
77
|
+
results.append(result)
|
|
78
|
+
|
|
79
|
+
# Step 3: Synthesize final answer
|
|
80
|
+
return llm.complete(f"""
|
|
81
|
+
Based on these results:
|
|
82
|
+
{results}
|
|
83
|
+
|
|
84
|
+
Provide the final answer to: {query}
|
|
85
|
+
""")
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### When to Use
|
|
89
|
+
- Complex tasks with clear sub-goals
|
|
90
|
+
- Need for cost estimation upfront
|
|
91
|
+
- Parallel execution possible
|
|
92
|
+
|
|
93
|
+
## 3. Multi-Agent Patterns
|
|
94
|
+
|
|
95
|
+
### Supervisor Pattern
|
|
96
|
+
One agent coordinates multiple specialized agents.
|
|
97
|
+
|
|
98
|
+
```python
|
|
99
|
+
class SupervisorAgent:
|
|
100
|
+
def __init__(self):
|
|
101
|
+
self.agents = {
|
|
102
|
+
"research": ResearchAgent(),
|
|
103
|
+
"writer": WriterAgent(),
|
|
104
|
+
"reviewer": ReviewerAgent()
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
def run(self, task: str) -> str:
|
|
108
|
+
# Supervisor plans and delegates
|
|
109
|
+
plan = self.plan_task(task)
|
|
110
|
+
|
|
111
|
+
results = {}
|
|
112
|
+
for step in plan:
|
|
113
|
+
agent = self.agents[step["agent"]]
|
|
114
|
+
results[step["id"]] = agent.run(
|
|
115
|
+
step["instruction"],
|
|
116
|
+
inputs={k: results.get(v) for k, v in step["deps"].items()}
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
return self.synthesize(results)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Debate Pattern
|
|
123
|
+
Multiple agents critique each other's outputs.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
def debate(query: str, n_rounds: int = 3):
|
|
127
|
+
agents = [AgentA(), AgentB(), AgentC()]
|
|
128
|
+
responses = [agent.generate(query) for agent in agents]
|
|
129
|
+
|
|
130
|
+
for round in range(n_rounds):
|
|
131
|
+
critiques = []
|
|
132
|
+
for i, agent in enumerate(agents):
|
|
133
|
+
others = responses[:i] + responses[i+1:]
|
|
134
|
+
critique = agent.critique(others)
|
|
135
|
+
critiques.append(critique)
|
|
136
|
+
|
|
137
|
+
# Update responses based on critiques
|
|
138
|
+
for i, agent in enumerate(agents):
|
|
139
|
+
responses[i] = agent.revise(responses[i], critiques)
|
|
140
|
+
|
|
141
|
+
return aggregate_responses(responses)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Pipeline Pattern
|
|
145
|
+
Fixed sequence of processing stages.
|
|
146
|
+
|
|
147
|
+
```python
|
|
148
|
+
pipeline = [
|
|
149
|
+
IntentClassifier(),
|
|
150
|
+
EntityExtractor(),
|
|
151
|
+
ContextRetriever(),
|
|
152
|
+
ResponseGenerator(),
|
|
153
|
+
SafetyChecker(),
|
|
154
|
+
Formatter()
|
|
155
|
+
]
|
|
156
|
+
|
|
157
|
+
def process(input: str):
|
|
158
|
+
context = {"input": input}
|
|
159
|
+
for stage in pipeline:
|
|
160
|
+
context = stage.process(context)
|
|
161
|
+
return context["output"]
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## 4. Tool Use Patterns
|
|
165
|
+
|
|
166
|
+
### Tool Selection
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
def select_tools(query: str, available_tools: list) -> list:
|
|
170
|
+
"""Dynamic tool selection based on query"""
|
|
171
|
+
|
|
172
|
+
tool_descriptions = "\n".join([
|
|
173
|
+
f"- {t.name}: {t.description}"
|
|
174
|
+
for t in available_tools
|
|
175
|
+
])
|
|
176
|
+
|
|
177
|
+
selection = llm.complete(f"""
|
|
178
|
+
Query: {query}
|
|
179
|
+
|
|
180
|
+
Available tools:
|
|
181
|
+
{tool_descriptions}
|
|
182
|
+
|
|
183
|
+
Which tools are needed? Return JSON list of tool names.
|
|
184
|
+
""")
|
|
185
|
+
|
|
186
|
+
selected_names = json.loads(selection)
|
|
187
|
+
return [t for t in available_tools if t.name in selected_names]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Parallel Tool Execution
|
|
191
|
+
|
|
192
|
+
```python
|
|
193
|
+
async def parallel_tools(tools_with_args: list):
|
|
194
|
+
"""Execute independent tools in parallel"""
|
|
195
|
+
|
|
196
|
+
tasks = [
|
|
197
|
+
execute_tool(tool, args)
|
|
198
|
+
for tool, args in tools_with_args
|
|
199
|
+
]
|
|
200
|
+
|
|
201
|
+
results = await asyncio.gather(*tasks, return_exceptions=True)
|
|
202
|
+
|
|
203
|
+
# Handle failures gracefully
|
|
204
|
+
return [
|
|
205
|
+
r if not isinstance(r, Exception) else None
|
|
206
|
+
for r in results
|
|
207
|
+
]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 5. Memory Patterns
|
|
211
|
+
|
|
212
|
+
### Working Memory
|
|
213
|
+
Short-term context for current conversation.
|
|
214
|
+
|
|
215
|
+
```python
|
|
216
|
+
class WorkingMemory:
|
|
217
|
+
def __init__(self, max_turns: int = 10):
|
|
218
|
+
self.turns = deque(maxlen=max_turns)
|
|
219
|
+
|
|
220
|
+
def add(self, role: str, content: str):
|
|
221
|
+
self.turns.append({"role": role, "content": content})
|
|
222
|
+
|
|
223
|
+
def get_context(self) -> list:
|
|
224
|
+
return list(self.turns)
|
|
225
|
+
|
|
226
|
+
def summarize_if_long(self):
|
|
227
|
+
"""Compress if exceeding token budget"""
|
|
228
|
+
if self.token_count > 3000:
|
|
229
|
+
summary = generate_summary(self.turns)
|
|
230
|
+
self.turns.clear()
|
|
231
|
+
self.add("system", f"Previous conversation summary: {summary}")
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Long-term Memory
|
|
235
|
+
Persistent knowledge across sessions.
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
class LongTermMemory:
|
|
239
|
+
def __init__(self, vector_db):
|
|
240
|
+
self.db = vector_db
|
|
241
|
+
|
|
242
|
+
def store_fact(self, user_id: str, fact: str, importance: float = 1.0):
|
|
243
|
+
"""Store important fact about user"""
|
|
244
|
+
self.db.upsert({
|
|
245
|
+
"id": hash(fact),
|
|
246
|
+
"user_id": user_id,
|
|
247
|
+
"content": fact,
|
|
248
|
+
"importance": importance,
|
|
249
|
+
"timestamp": now()
|
|
250
|
+
})
|
|
251
|
+
|
|
252
|
+
def retrieve_relevant(self, user_id: str, query: str, k: int = 5):
|
|
253
|
+
"""Get relevant past information"""
|
|
254
|
+
return self.db.search(
|
|
255
|
+
query=query,
|
|
256
|
+
filter={"user_id": user_id},
|
|
257
|
+
top_k=k
|
|
258
|
+
)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## 6. Error Recovery
|
|
262
|
+
|
|
263
|
+
### Retry with Backoff
|
|
264
|
+
|
|
265
|
+
```python
|
|
266
|
+
@retry(
|
|
267
|
+
stop=stop_after_attempt(3),
|
|
268
|
+
wait=wait_exponential(multiplier=1, min=4, max=10),
|
|
269
|
+
retry=retry_if_exception_type((RateLimitError, TimeoutError))
|
|
270
|
+
)
|
|
271
|
+
def robust_llm_call(prompt: str):
|
|
272
|
+
return client.complete(prompt)
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
### Graceful Degradation
|
|
276
|
+
|
|
277
|
+
```python
|
|
278
|
+
def generate_with_fallback(query: str):
|
|
279
|
+
try:
|
|
280
|
+
# Try best model first
|
|
281
|
+
return gpt4.complete(query, timeout=10)
|
|
282
|
+
except TimeoutError:
|
|
283
|
+
try:
|
|
284
|
+
# Fall back to faster model
|
|
285
|
+
return claude_sonnet.complete(query, timeout=5)
|
|
286
|
+
except Exception:
|
|
287
|
+
# Final fallback: cached response or template
|
|
288
|
+
return get_cached_response(query) or "I apologize, I'm having trouble."
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Self-Correction
|
|
292
|
+
|
|
293
|
+
```python
|
|
294
|
+
def self_correct(query: str, max_attempts: int = 3):
|
|
295
|
+
for attempt in range(max_attempts):
|
|
296
|
+
response = generate(query)
|
|
297
|
+
|
|
298
|
+
# Validate response
|
|
299
|
+
validation = validate_output(response)
|
|
300
|
+
|
|
301
|
+
if validation.valid:
|
|
302
|
+
return response
|
|
303
|
+
|
|
304
|
+
# Generate correction prompt
|
|
305
|
+
query = f"""
|
|
306
|
+
Previous response had issues: {validation.issues}
|
|
307
|
+
|
|
308
|
+
Please correct and respond to: {original_query}
|
|
309
|
+
"""
|
|
310
|
+
|
|
311
|
+
raise FailedToGenerateValidResponse()
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Anti-Patterns
|
|
315
|
+
|
|
316
|
+
❌ **The Infinite Loop**: Agent keeps calling tools without making progress
|
|
317
|
+
❌ **The Over-Tooler**: Using tools for tasks the LLM can do directly
|
|
318
|
+
❌ **The Black Box**: No logging or observability
|
|
319
|
+
❌ **The Hardcoded Path**: No dynamic planning or adaptation
|
|
320
|
+
❌ **The Memory Hog**: Loading entire conversation history every call
|
|
321
|
+
|
|
322
|
+
## Best Practices
|
|
323
|
+
|
|
324
|
+
✅ Set iteration limits
|
|
325
|
+
✅ Log all tool calls and reasoning
|
|
326
|
+
✅ Validate outputs at each step
|
|
327
|
+
✅ Cache expensive operations
|
|
328
|
+
✅ Provide escape hatches (human handoff)
|
|
329
|
+
✅ Test with adversarial inputs
|