wicked-garden 12.27.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/.claude-plugin/archetypes.json +166 -0
- package/.claude-plugin/components.json +75 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +174 -0
- package/.claude-plugin/specialist.json +48 -0
- package/.claude-plugin/stack-registry.json +96 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +99 -0
- package/ETHOS.md +83 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
- package/agents/agentic/architect.md +449 -0
- package/agents/agentic/performance-analyst.md +702 -0
- package/agents/agentic/safety-reviewer.md +662 -0
- package/agents/crew/implementer.md +163 -0
- package/agents/crew/researcher.md +94 -0
- package/agents/crew/reviewer.md +184 -0
- package/agents/data/data-engineer.md +227 -0
- package/agents/engineering/api-documentarian.md +440 -0
- package/agents/engineering/migration-engineer.md +301 -0
- package/agents/engineering/solution-architect.md +208 -0
- package/agents/jam/brainstorm-facilitator.md +297 -0
- package/agents/jam/council.md +322 -0
- package/agents/jam/quick-facilitator.md +85 -0
- package/agents/persona/persona-agent.md +121 -0
- package/agents/platform/compliance-officer.md +266 -0
- package/agents/platform/privacy-expert.md +496 -0
- package/agents/platform/security-engineer.md +287 -0
- package/agents/product/a11y-expert.md +323 -0
- package/agents/product/requirements-analyst.md +238 -0
- package/agents/product/ui-reviewer.md +180 -0
- package/agents/product/ux-designer.md +199 -0
- package/agents/product/value-strategist.md +269 -0
- package/agents/qe/semantic-reviewer.md +78 -0
- package/commands/agentic/audit.md +24 -0
- package/commands/agentic/design.md +24 -0
- package/commands/agentic/frameworks.md +25 -0
- package/commands/agentic/review.md +27 -0
- package/commands/archetype/build.md +12 -0
- package/commands/archetype/decide.md +12 -0
- package/commands/archetype/explore.md +12 -0
- package/commands/archetype/incident.md +12 -0
- package/commands/archetype/migrate.md +12 -0
- package/commands/archetype/modernize.md +12 -0
- package/commands/archetype/review.md +14 -0
- package/commands/archetype/ship.md +12 -0
- package/commands/archetype/specify.md +12 -0
- package/commands/archetype/triage.md +12 -0
- package/commands/compile.md +37 -0
- package/commands/data/analyze.md +18 -0
- package/commands/data/data.md +21 -0
- package/commands/data/ml.md +18 -0
- package/commands/data/ontology.md +22 -0
- package/commands/data/pipeline.md +17 -0
- package/commands/deliberate.md +181 -0
- package/commands/engineering/add-field.md +77 -0
- package/commands/engineering/apply.md +58 -0
- package/commands/engineering/arch.md +26 -0
- package/commands/engineering/debug.md +27 -0
- package/commands/engineering/docs.md +27 -0
- package/commands/engineering/new-generator.md +257 -0
- package/commands/engineering/patch-plan.md +59 -0
- package/commands/engineering/plan.md +29 -0
- package/commands/engineering/remove.md +48 -0
- package/commands/engineering/rename.md +44 -0
- package/commands/engineering/review.md +32 -0
- package/commands/help.md +128 -0
- package/commands/install.md +118 -0
- package/commands/intent.md +54 -0
- package/commands/jam/brainstorm.md +37 -0
- package/commands/jam/council.md +49 -0
- package/commands/jam/quick.md +21 -0
- package/commands/jam/revisit.md +79 -0
- package/commands/persona/as.md +136 -0
- package/commands/persona/define.md +24 -0
- package/commands/persona/list.md +118 -0
- package/commands/platform/actions.md +20 -0
- package/commands/platform/assert.md +18 -0
- package/commands/platform/audit.md +23 -0
- package/commands/platform/compliance.md +20 -0
- package/commands/platform/gh.md +22 -0
- package/commands/platform/health.md +22 -0
- package/commands/platform/incident.md +23 -0
- package/commands/platform/infra.md +24 -0
- package/commands/platform/peer-health.md +103 -0
- package/commands/platform/plugin-health.md +58 -0
- package/commands/platform/security.md +38 -0
- package/commands/platform/toolchain.md +96 -0
- package/commands/platform/traces.md +20 -0
- package/commands/product/a11y.md +19 -0
- package/commands/product/acceptance.md +19 -0
- package/commands/product/align.md +20 -0
- package/commands/product/analyze.md +23 -0
- package/commands/product/elicit.md +19 -0
- package/commands/product/listen.md +24 -0
- package/commands/product/mockup.md +20 -0
- package/commands/product/screenshot.md +19 -0
- package/commands/product/strategy.md +40 -0
- package/commands/product/synthesize.md +23 -0
- package/commands/product/ux-review.md +42 -0
- package/commands/product/ux.md +20 -0
- package/commands/product/visual-direction.md +34 -0
- package/commands/prove.md +47 -0
- package/commands/report-issue.md +243 -0
- package/commands/reset.md +144 -0
- package/commands/search/blast-radius.md +58 -0
- package/commands/search/hotspots.md +55 -0
- package/commands/search/index.md +38 -0
- package/commands/search/lineage.md +47 -0
- package/commands/search/service-map.md +79 -0
- package/commands/setup.md +363 -0
- package/commands/smaht/briefing.md +200 -0
- package/commands/smaht/events-import.md +95 -0
- package/commands/smaht/state.md +19 -0
- package/commands/where-am-i.md +58 -0
- package/docs/README.md +32 -0
- package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
- package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
- package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
- package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
- package/docs/brain-chunk-format.md +135 -0
- package/docs/compiler.md +95 -0
- package/docs/daemon-api.md +70 -0
- package/docs/domains.md +197 -0
- package/docs/getting-started.md +208 -0
- package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
- package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
- package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
- package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
- package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
- package/docs/required-peers.md +60 -0
- package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
- package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
- package/docs/v11/archetypes.md +231 -0
- package/hooks/hooks.json +275 -0
- package/hooks/scripts/bootstrap.py +1797 -0
- package/hooks/scripts/invoke.py +62 -0
- package/hooks/scripts/notification.py +166 -0
- package/hooks/scripts/permission_request.py +223 -0
- package/hooks/scripts/post_tool.py +1374 -0
- package/hooks/scripts/pre_compact.py +272 -0
- package/hooks/scripts/pre_tool.py +1278 -0
- package/hooks/scripts/prompt_submit.py +1109 -0
- package/hooks/scripts/session_end.py +95 -0
- package/hooks/scripts/stop.py +624 -0
- package/hooks/scripts/subagent_lifecycle.py +464 -0
- package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
- package/hooks/scripts/task_completed.py +322 -0
- package/hooks/scripts/worktree_guard.py +148 -0
- package/hooks/subscriptions/on_gate_decided.json +9 -0
- package/install.mjs +128 -0
- package/package.json +41 -0
- package/pyproject.toml +59 -0
- package/schemas/README.md +32 -0
- package/schemas/assert_contracts.json +37 -0
- package/schemas/health_probe.json +46 -0
- package/schemas/plugin_status.json +37 -0
- package/scripts/_adapters/__init__.py +166 -0
- package/scripts/_adapters/jira_adapter.py +18 -0
- package/scripts/_adapters/linear_adapter.py +18 -0
- package/scripts/_adapters/miro_adapter.py +18 -0
- package/scripts/_adapters/notion_adapter.py +18 -0
- package/scripts/_agents.py +357 -0
- package/scripts/_brain_ingest/__init__.py +2 -0
- package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
- package/scripts/_brain_port.py +163 -0
- package/scripts/_bus.py +1081 -0
- package/scripts/_bus_catalog_gen.py +93 -0
- package/scripts/_bus_consumers.json +46 -0
- package/scripts/_bus_emit.py +43 -0
- package/scripts/_capability_registry.py +334 -0
- package/scripts/_capability_resolver.py +322 -0
- package/scripts/_domain_store.py +559 -0
- package/scripts/_event_log_reader.py +154 -0
- package/scripts/_event_schema.py +305 -0
- package/scripts/_event_store.py +397 -0
- package/scripts/_heavy_cadence.py +324 -0
- package/scripts/_integration_resolver.py +321 -0
- package/scripts/_logger.py +151 -0
- package/scripts/_loom.py +482 -0
- package/scripts/_paths.py +133 -0
- package/scripts/_python.sh +22 -0
- package/scripts/_run.py +137 -0
- package/scripts/_session.py +502 -0
- package/scripts/_validate_registry.py +1042 -0
- package/scripts/_wicked_testing_probe.py +277 -0
- package/scripts/agentic/analyze_agents.py +391 -0
- package/scripts/agentic/detect_framework.py +420 -0
- package/scripts/agentic/issue_taxonomy.py +357 -0
- package/scripts/agentic/pattern_scorer.py +434 -0
- package/scripts/classify/persist.py +169 -0
- package/scripts/compiler/compile.py +552 -0
- package/scripts/compiler/phase0/VERDICT.md +60 -0
- package/scripts/compiler/phase0/detect.py +292 -0
- package/scripts/compiler/phase0/emit.py +228 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
- package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
- package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/verdict.json +104 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
- package/scripts/compiler/phase0/run_probe.py +234 -0
- package/scripts/compiler/phase0/wire_vault.py +310 -0
- package/scripts/crew/__init__.py +0 -0
- package/scripts/crew/_task_audit_writer.py +243 -0
- package/scripts/crew/_task_reader.py +389 -0
- package/scripts/crew/archetypes_v11.py +348 -0
- package/scripts/crew/detectors/__init__.py +12 -0
- package/scripts/crew/flow_compiler.py +121 -0
- package/scripts/crew/phase_manager.py +703 -0
- package/scripts/crew/scope_delta.py +264 -0
- package/scripts/crew/specialist_resolver.py +218 -0
- package/scripts/crew/stack_registry.py +189 -0
- package/scripts/data/data_profiler.py +271 -0
- package/scripts/data/ontology_recommender.py +231 -0
- package/scripts/data/schema_validator.py +267 -0
- package/scripts/delivery/drift.py +739 -0
- package/scripts/delivery/telemetry.py +614 -0
- package/scripts/engineering/patch/codegraph_db.py +125 -0
- package/scripts/engineering/patch/generators/__init__.py +56 -0
- package/scripts/engineering/patch/generators/base.py +373 -0
- package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
- package/scripts/engineering/patch/generators/go_generator.py +430 -0
- package/scripts/engineering/patch/generators/java_generator.py +928 -0
- package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
- package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
- package/scripts/engineering/patch/generators/perl_generator.py +510 -0
- package/scripts/engineering/patch/generators/php_generator.py +644 -0
- package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
- package/scripts/engineering/patch/generators/python_generator.py +487 -0
- package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
- package/scripts/engineering/patch/generators/rust_generator.py +400 -0
- package/scripts/engineering/patch/generators/sql_generator.py +594 -0
- package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
- package/scripts/engineering/patch/patch.py +800 -0
- package/scripts/engineering/patch/safety.py +429 -0
- package/scripts/jam/__init__.py +0 -0
- package/scripts/jam/_bus_consumers.py +271 -0
- package/scripts/jam/agentic_cli_registry.py +703 -0
- package/scripts/jam/consensus.py +737 -0
- package/scripts/jam/detect_clis.py +409 -0
- package/scripts/jam/jam.py +283 -0
- package/scripts/jam/save_transcript.py +171 -0
- package/scripts/loom/__init__.py +22 -0
- package/scripts/loom/cli.py +170 -0
- package/scripts/loom/compose.py +180 -0
- package/scripts/loom/gate.py +120 -0
- package/scripts/loom/manifest.py +140 -0
- package/scripts/loom/resolve.py +59 -0
- package/scripts/persona/__init__.py +0 -0
- package/scripts/persona/registry.py +688 -0
- package/scripts/platform/guard_pipeline.py +1214 -0
- package/scripts/platform/guard_profiles.py +216 -0
- package/scripts/platform/observability/assert_contracts.py +434 -0
- package/scripts/platform/observability/health_probe.py +915 -0
- package/scripts/platform/observability/ops_log_viewer.py +209 -0
- package/scripts/platform/prereq_doctor.py +567 -0
- package/scripts/qe/conditions_manifest.py +260 -0
- package/scripts/qe/content_sanitizer.py +160 -0
- package/scripts/qe/coverage_tracker.py +535 -0
- package/scripts/qe/discover_scenarios.py +243 -0
- package/scripts/qe/evidence_tracker.py +232 -0
- package/scripts/qe/prove.py +196 -0
- package/scripts/qe/registry_lookup.py +80 -0
- package/scripts/qe/registry_store.py +176 -0
- package/scripts/qe/semantic_review.py +1005 -0
- package/scripts/qe/vault_gate.py +382 -0
- package/scripts/qe/verdict_audit.py +175 -0
- package/scripts/qe/verdict_schema.py +335 -0
- package/scripts/reset.py +220 -0
- package/scripts/resolve_path.py +22 -0
- package/scripts/sentinel/invariants.py +402 -0
- package/scripts/sentinel/pre_push.py +73 -0
- package/scripts/setup/__init__.py +1 -0
- package/scripts/setup/detect_state.py +114 -0
- package/scripts/setup/migrate_legacy.py +67 -0
- package/scripts/setup/migrate_v6_projects.py +232 -0
- package/scripts/setup/onboarding.py +114 -0
- package/scripts/smaht/_bus_consumers.py +98 -0
- package/scripts/smaht/adapters/__init__.py +83 -0
- package/scripts/smaht/adapters/brain_adapter.py +254 -0
- package/scripts/smaht/adapters/context7_adapter.py +438 -0
- package/scripts/smaht/adapters/delegation_adapter.py +104 -0
- package/scripts/smaht/adapters/domain_adapter.py +206 -0
- package/scripts/smaht/adapters/events_adapter.py +231 -0
- package/scripts/smaht/adapters/tools_adapter.py +49 -0
- package/scripts/smaht/cheatsheet_store.py +236 -0
- package/scripts/smaht/context_package.py +386 -0
- package/scripts/smaht/knowledge_graph.py +395 -0
- package/scripts/smaht/propose_skills.py +856 -0
- package/scripts/smaht/test_cheatsheet_store.py +428 -0
- package/scripts/statusline.py +151 -0
- package/scripts/where_am_i.py +236 -0
- package/skills/agentic/agentic-patterns/SKILL.md +91 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
- package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
- package/skills/agentic/context-engineering/SKILL.md +142 -0
- package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
- package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
- package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
- package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
- package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
- package/skills/agentic/frameworks/SKILL.md +191 -0
- package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
- package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
- package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
- package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
- package/skills/agentic/refs/audit.md +134 -0
- package/skills/agentic/refs/design.md +137 -0
- package/skills/agentic/refs/frameworks.md +102 -0
- package/skills/agentic/refs/review.md +160 -0
- package/skills/agentic/review-methodology/SKILL.md +186 -0
- package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
- package/skills/agentic/trust-and-safety/SKILL.md +177 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
- package/skills/archetype/SKILL.md +104 -0
- package/skills/archetype/refs/build.md +142 -0
- package/skills/archetype/refs/decide.md +117 -0
- package/skills/archetype/refs/explore.md +66 -0
- package/skills/archetype/refs/incident.md +149 -0
- package/skills/archetype/refs/migrate.md +170 -0
- package/skills/archetype/refs/modernize.md +187 -0
- package/skills/archetype/refs/review.md +145 -0
- package/skills/archetype/refs/ship.md +117 -0
- package/skills/archetype/refs/specify.md +108 -0
- package/skills/archetype/refs/triage.md +62 -0
- package/skills/classify/SKILL.md +157 -0
- package/skills/data/analysis/SKILL.md +125 -0
- package/skills/data/analysis/refs/templates.md +170 -0
- package/skills/data/data/SKILL.md +118 -0
- package/skills/data/data/refs/examples.md +235 -0
- package/skills/data/ml/SKILL.md +125 -0
- package/skills/data/ml/refs/templates.md +172 -0
- package/skills/data/pipeline/SKILL.md +136 -0
- package/skills/data/pipeline/refs/templates.md +175 -0
- package/skills/data/refs/analyze.md +123 -0
- package/skills/data/refs/data.md +95 -0
- package/skills/data/refs/ml.md +118 -0
- package/skills/data/refs/pipeline.md +92 -0
- package/skills/deliberate/SKILL.md +125 -0
- package/skills/deliberate/refs/architecture-lens.md +37 -0
- package/skills/deliberate/refs/assumptions-lens.md +43 -0
- package/skills/deliberate/refs/code-lens.md +38 -0
- package/skills/deliberate/refs/content-lens.md +37 -0
- package/skills/deliberate/refs/data-lens.md +43 -0
- package/skills/deliberate/refs/design-lens.md +37 -0
- package/skills/deliberate/refs/opportunity-patterns.md +107 -0
- package/skills/deliberate/refs/ops-lens.md +43 -0
- package/skills/deliberate/refs/product-lens.md +46 -0
- package/skills/deliberate/refs/rethink-framework.md +77 -0
- package/skills/deliberate/refs/security-lens.md +47 -0
- package/skills/deliberate/refs/testing-lens.md +45 -0
- package/skills/deliberate/refs/timing-lens.md +42 -0
- package/skills/engineering/architecture/SKILL.md +177 -0
- package/skills/engineering/architecture/refs/adr-template.md +268 -0
- package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
- package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
- package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
- package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
- package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
- package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
- package/skills/engineering/backend/SKILL.md +102 -0
- package/skills/engineering/backend/refs/checklists.md +146 -0
- package/skills/engineering/backend/refs/patterns.md +181 -0
- package/skills/engineering/debugging/SKILL.md +99 -0
- package/skills/engineering/debugging/refs/patterns.md +248 -0
- package/skills/engineering/debugging/refs/process.md +203 -0
- package/skills/engineering/docs/SKILL.md +97 -0
- package/skills/engineering/engineering/SKILL.md +88 -0
- package/skills/engineering/engineering/refs/checklists.md +91 -0
- package/skills/engineering/engineering/refs/templates.md +71 -0
- package/skills/engineering/frontend/SKILL.md +92 -0
- package/skills/engineering/frontend/refs/checklists.md +96 -0
- package/skills/engineering/frontend/refs/patterns.md +167 -0
- package/skills/engineering/integration/SKILL.md +183 -0
- package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
- package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
- package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
- package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
- package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
- package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
- package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
- package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
- package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
- package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
- package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
- package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
- package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
- package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
- package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
- package/skills/engineering/integration/refs/grpc-testing.md +49 -0
- package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
- package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
- package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
- package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
- package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
- package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
- package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
- package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
- package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
- package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
- package/skills/engineering/large-scale-migration/SKILL.md +65 -0
- package/skills/engineering/patch/SKILL.md +184 -0
- package/skills/engineering/refs/arch.md +126 -0
- package/skills/engineering/refs/debug.md +142 -0
- package/skills/engineering/refs/docs.md +190 -0
- package/skills/engineering/refs/plan.md +109 -0
- package/skills/engineering/refs/review.md +138 -0
- package/skills/engineering/system-design/SKILL.md +154 -0
- package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
- package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
- package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
- package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
- package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
- package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
- package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
- package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
- package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
- package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
- package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
- package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
- package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
- package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
- package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
- package/skills/engineering/unit-test-quality/SKILL.md +194 -0
- package/skills/ground/SKILL.md +130 -0
- package/skills/integration-discovery/SKILL.md +168 -0
- package/skills/integration-discovery/refs/capabilities.md +282 -0
- package/skills/integration-discovery/refs/cli-detection.md +295 -0
- package/skills/integration-discovery/refs/discovery-sources.md +233 -0
- package/skills/integration-discovery/refs/task-patterns.md +206 -0
- package/skills/jam/SKILL.md +45 -0
- package/skills/jam/refs/facilitation-patterns.md +125 -0
- package/skills/jam/refs/quick.md +64 -0
- package/skills/jam/refs/synthesis-patterns.md +114 -0
- package/skills/multi-model/SKILL.md +168 -0
- package/skills/multi-model/refs/aichat.md +119 -0
- package/skills/multi-model/refs/aider.md +100 -0
- package/skills/multi-model/refs/auditability.md +238 -0
- package/skills/multi-model/refs/codex.md +169 -0
- package/skills/multi-model/refs/context.md +306 -0
- package/skills/multi-model/refs/copilot.md +161 -0
- package/skills/multi-model/refs/examples.md +224 -0
- package/skills/multi-model/refs/gemini.md +185 -0
- package/skills/multi-model/refs/goose.md +112 -0
- package/skills/multi-model/refs/llm.md +124 -0
- package/skills/multi-model/refs/opencode.md +196 -0
- package/skills/multi-model/refs/orchestration.md +188 -0
- package/skills/multi-model/refs/pi.md +208 -0
- package/skills/persona/SKILL.md +144 -0
- package/skills/persona/refs/define.md +133 -0
- package/skills/platform/actions/refs/actions.md +114 -0
- package/skills/platform/audit/SKILL.md +174 -0
- package/skills/platform/audit/refs/audit.md +145 -0
- package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
- package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
- package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
- package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
- package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
- package/skills/platform/compliance/SKILL.md +169 -0
- package/skills/platform/compliance/refs/checklists.md +303 -0
- package/skills/platform/compliance/refs/compliance.md +117 -0
- package/skills/platform/compliance/refs/frameworks.md +282 -0
- package/skills/platform/errors/SKILL.md +183 -0
- package/skills/platform/errors/refs/patterns.md +271 -0
- package/skills/platform/errors/refs/severity.md +264 -0
- package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
- package/skills/platform/gh/refs/gh.md +105 -0
- package/skills/platform/gh-cli/SKILL.md +120 -0
- package/skills/platform/gh-cli/refs/automation.md +63 -0
- package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
- package/skills/platform/gh-cli/refs/patterns.md +132 -0
- package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
- package/skills/platform/github-actions/SKILL.md +159 -0
- package/skills/platform/github-actions/refs/security.md +150 -0
- package/skills/platform/github-actions/refs/templates.md +230 -0
- package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
- package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
- package/skills/platform/gitlab-ci/SKILL.md +140 -0
- package/skills/platform/gitlab-ci/refs/templates.md +223 -0
- package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
- package/skills/platform/glab-cli/SKILL.md +133 -0
- package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
- package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
- package/skills/platform/glab-cli/refs/patterns.md +131 -0
- package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
- package/skills/platform/health/SKILL.md +177 -0
- package/skills/platform/health/refs/health.md +72 -0
- package/skills/platform/health/refs/sources.md +302 -0
- package/skills/platform/incident/refs/incident.md +136 -0
- package/skills/platform/infra/refs/infra.md +104 -0
- package/skills/platform/observability/SKILL.md +128 -0
- package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
- package/skills/platform/prereq-doctor/SKILL.md +57 -0
- package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
- package/skills/platform/traces/refs/traces.md +101 -0
- package/skills/product/acceptance-criteria/SKILL.md +193 -0
- package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
- package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
- package/skills/product/accessibility/SKILL.md +197 -0
- package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
- package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
- package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
- package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
- package/skills/product/accessibility/refs/audit-report-results.md +276 -0
- package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
- package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
- package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
- package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
- package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
- package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
- package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
- package/skills/product/analyze/SKILL.md +164 -0
- package/skills/product/analyze/refs/algorithms.md +238 -0
- package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
- package/skills/product/imagery/SKILL.md +97 -0
- package/skills/product/imagery/alter/SKILL.md +105 -0
- package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
- package/skills/product/imagery/create/SKILL.md +109 -0
- package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
- package/skills/product/imagery/create/refs/provider-reference.md +219 -0
- package/skills/product/imagery/review/SKILL.md +101 -0
- package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
- package/skills/product/imagery/review/refs/quality-gates.md +153 -0
- package/skills/product/imagery/scripts/analyze.sh +23 -0
- package/skills/product/imagery/scripts/edit.sh +14 -0
- package/skills/product/imagery/scripts/generate.sh +13 -0
- package/skills/product/imagery/scripts/provider.py +787 -0
- package/skills/product/listen/SKILL.md +175 -0
- package/skills/product/listen/refs/channels.md +220 -0
- package/skills/product/mockup/SKILL.md +106 -0
- package/skills/product/mockup/refs/templates.md +95 -0
- package/skills/product/refs/a11y.md +109 -0
- package/skills/product/refs/acceptance.md +79 -0
- package/skills/product/refs/align.md +67 -0
- package/skills/product/refs/analyze.md +77 -0
- package/skills/product/refs/elicit.md +67 -0
- package/skills/product/refs/listen.md +58 -0
- package/skills/product/refs/mockup.md +77 -0
- package/skills/product/refs/screenshot.md +59 -0
- package/skills/product/refs/strategy.md +77 -0
- package/skills/product/refs/synthesize.md +54 -0
- package/skills/product/refs/ux-review.md +68 -0
- package/skills/product/refs/ux.md +101 -0
- package/skills/product/requirements-analysis/SKILL.md +136 -0
- package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
- package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
- package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
- package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
- package/skills/product/requirements-graph/SKILL.md +155 -0
- package/skills/product/requirements-graph/refs/examples.md +223 -0
- package/skills/product/requirements-graph/refs/schema.md +162 -0
- package/skills/product/requirements-migrate/SKILL.md +90 -0
- package/skills/product/requirements-navigate/SKILL.md +141 -0
- package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
- package/skills/product/screenshot/SKILL.md +147 -0
- package/skills/product/strategy/SKILL.md +198 -0
- package/skills/product/strategy/refs/frameworks.md +295 -0
- package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
- package/skills/product/strategy/refs/templates-roi-value.md +207 -0
- package/skills/product/synthesize/SKILL.md +116 -0
- package/skills/product/synthesize/refs/journey-mapping.md +212 -0
- package/skills/product/synthesize/refs/prioritization.md +193 -0
- package/skills/product/ux-review/SKILL.md +164 -0
- package/skills/product/visual-direction/SKILL.md +137 -0
- package/skills/product/visual-review/SKILL.md +131 -0
- package/skills/runtime-exec/SKILL.md +138 -0
- package/skills/search/codebase-narrator/SKILL.md +131 -0
- package/skills/search/codebase-narrator/refs/output-template.md +100 -0
- package/skills/smaht/SKILL.md +72 -0
- package/skills/smaht/discovery/SKILL.md +65 -0
- package/skills/smaht/intent/SKILL.md +89 -0
- package/skills/smaht/propose-skills/SKILL.md +142 -0
- package/skills/smaht/refs/state.md +76 -0
- package/skills/swarm/SKILL.md +132 -0
- package/skills/swarm/refs/fan-out.md +104 -0
- package/skills/swarm/refs/independent-verification.md +86 -0
- package/skills/swarm/refs/receipts-and-evidence.md +69 -0
- package/skills/swarm/refs/recon-synthesis.md +87 -0
- package/skills/swarm/refs/ship-discipline.md +90 -0
- package/skills/wickedizer/SKILL.md +147 -0
- package/skills/wickedizer/refs/artifact-types.md +238 -0
- package/skills/wickedizer/refs/complexity.md +278 -0
- package/skills/wickedizer/refs/de-ai-pass.md +140 -0
- package/skills/wickedizer/refs/failure-modes.md +249 -0
- package/skills/wickedizer/refs/patterns.md +282 -0
- package/skills/wickedizer/refs/review.md +221 -0
- package/skills/wickedizer/refs/structure.md +282 -0
- package/skills/wickedizer/refs/voice-profile.md +125 -0
- package/skills/workflow/SKILL.md +132 -0
- package/skills/workflow/refs/archetype-adjustments.md +205 -0
- package/skills/workflow/refs/evidence.md +58 -0
- package/skills/workflow/refs/integration.md +130 -0
- package/skills/workflow/refs/risk-dimension-signals.md +260 -0
- package/skills/workflow/refs/scoring-rubric.md +49 -0
- package/skills/workflow/refs/signal-keywords.md +176 -0
- package/skills/workflow/refs/specialist-routing-rules.md +159 -0
- package/skills/worktrees/SKILL.md +87 -0
- package/skills/worktrees/refs/recipes.md +96 -0
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Framework Detailed Profiles
|
|
6
|
+
|
|
7
|
+
In-depth analysis of top 6 agentic frameworks.
|
|
8
|
+
|
|
9
|
+
## 1. Anthropic Agent Developer Kit (ADK)
|
|
10
|
+
|
|
11
|
+
### Overview
|
|
12
|
+
TypeScript framework optimized for building production Claude applications with delegated workflows.
|
|
13
|
+
|
|
14
|
+
### Architecture
|
|
15
|
+
- Agents can delegate to sub-agents
|
|
16
|
+
- Context automatically managed
|
|
17
|
+
- TypeScript-first with excellent type safety
|
|
18
|
+
|
|
19
|
+
### Code Example
|
|
20
|
+
```typescript
|
|
21
|
+
import { Agent } from '@anthropic-ai/agent-developer-kit';
|
|
22
|
+
|
|
23
|
+
const agent = new Agent({
|
|
24
|
+
name: 'code-reviewer',
|
|
25
|
+
instructions: 'You review code for security issues.',
|
|
26
|
+
tools: [securityScanTool, lintTool],
|
|
27
|
+
model: 'claude-opus-4-6'
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const result = await agent.run({
|
|
31
|
+
input: 'Review this code: ...'
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Strengths
|
|
36
|
+
- **Production-Ready:** Built-in error handling, retries, timeouts
|
|
37
|
+
- **Type Safety:** Full TypeScript support
|
|
38
|
+
- **Context Management:** Automatic context window management
|
|
39
|
+
- **Delegated Workflows:** Agents can call other agents naturally
|
|
40
|
+
- **Observability:** Built-in integration with Braintrust
|
|
41
|
+
|
|
42
|
+
### Weaknesses
|
|
43
|
+
- **Claude-Only:** No multi-provider support
|
|
44
|
+
- **TypeScript-Only:** No Python version
|
|
45
|
+
- **Newer Framework:** Smaller community
|
|
46
|
+
|
|
47
|
+
### Best Use Cases
|
|
48
|
+
- Production Claude applications
|
|
49
|
+
- TypeScript/Node.js projects
|
|
50
|
+
- Complex agent hierarchies
|
|
51
|
+
- Enterprise applications requiring type safety
|
|
52
|
+
|
|
53
|
+
### Not Ideal For
|
|
54
|
+
- Python-first teams
|
|
55
|
+
- Need for multiple LLM providers
|
|
56
|
+
- Quick prototyping (if unfamiliar with TypeScript)
|
|
57
|
+
|
|
58
|
+
### Pricing Considerations
|
|
59
|
+
- Framework is free
|
|
60
|
+
- Only pay for Claude API usage
|
|
61
|
+
- No framework overhead costs
|
|
62
|
+
|
|
63
|
+
### Learning Resources
|
|
64
|
+
- Official docs: anthropic.com/adk
|
|
65
|
+
- Examples: github.com/anthropics/adk-examples
|
|
66
|
+
- Discord: Anthropic Developer Discord
|
|
67
|
+
|
|
68
|
+
## 2. LangGraph
|
|
69
|
+
|
|
70
|
+
### Overview
|
|
71
|
+
Python framework for building stateful multi-agent applications using a graph abstraction.
|
|
72
|
+
|
|
73
|
+
### Architecture
|
|
74
|
+
- Workflow defined as directed graph
|
|
75
|
+
- Nodes are agents/functions
|
|
76
|
+
- Edges are control flow
|
|
77
|
+
- Built-in state management and checkpointing
|
|
78
|
+
|
|
79
|
+
### Code Example
|
|
80
|
+
```python
|
|
81
|
+
from langgraph.graph import StateGraph
|
|
82
|
+
|
|
83
|
+
workflow = StateGraph(state_schema)
|
|
84
|
+
|
|
85
|
+
workflow.add_node("researcher", research_agent)
|
|
86
|
+
workflow.add_node("writer", writer_agent)
|
|
87
|
+
workflow.add_node("reviewer", review_agent)
|
|
88
|
+
|
|
89
|
+
workflow.add_edge("researcher", "writer")
|
|
90
|
+
workflow.add_conditional_edge("reviewer", should_revise, {
|
|
91
|
+
True: "writer",
|
|
92
|
+
False: END
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
app = workflow.compile(checkpointer=MemorySaver())
|
|
96
|
+
result = app.invoke({"topic": "AI Safety"})
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Strengths
|
|
100
|
+
- **State Management:** Best-in-class state management
|
|
101
|
+
- **Checkpointing:** Built-in persistence for long-running workflows
|
|
102
|
+
- **Human-in-the-Loop:** Native support for approval gates
|
|
103
|
+
- **Time-Travel:** Debug by replaying state
|
|
104
|
+
- **Multi-Provider:** Works with any LLM
|
|
105
|
+
|
|
106
|
+
### Weaknesses
|
|
107
|
+
- **Learning Curve:** Graph abstraction takes time to learn
|
|
108
|
+
- **Verbosity:** More boilerplate than simpler frameworks
|
|
109
|
+
- **Complexity:** Can be overkill for simple use cases
|
|
110
|
+
|
|
111
|
+
### Best Use Cases
|
|
112
|
+
- Complex workflows with branches and loops
|
|
113
|
+
- Long-running processes needing checkpoints
|
|
114
|
+
- Applications requiring human approval gates
|
|
115
|
+
- State-heavy applications
|
|
116
|
+
|
|
117
|
+
### Not Ideal For
|
|
118
|
+
- Simple linear workflows
|
|
119
|
+
- Quick prototypes
|
|
120
|
+
- Teams new to graph abstractions
|
|
121
|
+
|
|
122
|
+
### Pricing Considerations
|
|
123
|
+
- LangSmith (observability): ~$99-$399/month
|
|
124
|
+
- Framework itself is free
|
|
125
|
+
- Pay for LLM API costs
|
|
126
|
+
|
|
127
|
+
### Learning Resources
|
|
128
|
+
- Official docs: python.langchain.com/docs/langgraph
|
|
129
|
+
- Course: langchain.com/academy
|
|
130
|
+
- Examples: github.com/langchain-ai/langgraph-examples
|
|
131
|
+
|
|
132
|
+
## 3. CrewAI
|
|
133
|
+
|
|
134
|
+
### Overview
|
|
135
|
+
Python framework for orchestrating role-based AI agent teams with clear task delegation.
|
|
136
|
+
|
|
137
|
+
### Architecture
|
|
138
|
+
- Agents have roles (researcher, writer, etc.)
|
|
139
|
+
- Tasks assigned to agents
|
|
140
|
+
- Hierarchical or sequential processes
|
|
141
|
+
- Simple, intuitive API
|
|
142
|
+
|
|
143
|
+
### Code Example
|
|
144
|
+
```python
|
|
145
|
+
from crewai import Agent, Task, Crew
|
|
146
|
+
|
|
147
|
+
researcher = Agent(
|
|
148
|
+
role='Researcher',
|
|
149
|
+
goal='Find accurate information',
|
|
150
|
+
tools=[search_tool, scrape_tool]
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
writer = Agent(
|
|
154
|
+
role='Writer',
|
|
155
|
+
goal='Write engaging content',
|
|
156
|
+
tools=[grammar_tool]
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
research_task = Task(
|
|
160
|
+
description='Research AI safety',
|
|
161
|
+
agent=researcher
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
write_task = Task(
|
|
165
|
+
description='Write article on findings',
|
|
166
|
+
agent=writer,
|
|
167
|
+
dependencies=[research_task]
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
crew = Crew(
|
|
171
|
+
agents=[researcher, writer],
|
|
172
|
+
tasks=[research_task, write_task],
|
|
173
|
+
process=sequential
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
result = crew.kickoff()
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Strengths
|
|
180
|
+
- **Intuitive API:** Easy to learn and use
|
|
181
|
+
- **Role-Based:** Natural abstraction for team workflows
|
|
182
|
+
- **Quick Start:** Fastest time to first agent
|
|
183
|
+
- **Good Docs:** Clear documentation and examples
|
|
184
|
+
|
|
185
|
+
### Weaknesses
|
|
186
|
+
- **Less Mature:** Newer than LangChain/LangGraph
|
|
187
|
+
- **Limited State:** Basic state management
|
|
188
|
+
- **Fewer Features:** Less production-ready than ADK/LangGraph
|
|
189
|
+
|
|
190
|
+
### Best Use Cases
|
|
191
|
+
- Team-based workflows (research → write → review)
|
|
192
|
+
- Quick prototyping
|
|
193
|
+
- Straightforward delegation patterns
|
|
194
|
+
- Educational projects
|
|
195
|
+
|
|
196
|
+
### Not Ideal For
|
|
197
|
+
- Complex state management needs
|
|
198
|
+
- Production critical systems (yet)
|
|
199
|
+
- Applications needing advanced orchestration
|
|
200
|
+
|
|
201
|
+
### Pricing Considerations
|
|
202
|
+
- Framework is free
|
|
203
|
+
- Pay for LLM API costs
|
|
204
|
+
- No additional services required
|
|
205
|
+
|
|
206
|
+
### Learning Resources
|
|
207
|
+
- Official docs: docs.crewai.com
|
|
208
|
+
- Examples: github.com/joaomdmoura/crewAI-examples
|
|
209
|
+
- Discord: CrewAI Discord
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Framework Profiles (Part 2)
|
|
6
|
+
|
|
7
|
+
Detailed profiles of AutoGen, Pydantic AI, and LlamaIndex Agents.
|
|
8
|
+
|
|
9
|
+
## 4. AutoGen
|
|
10
|
+
|
|
11
|
+
### Overview
|
|
12
|
+
Microsoft's framework for multi-agent conversations with flexible dialogue patterns.
|
|
13
|
+
|
|
14
|
+
### Architecture
|
|
15
|
+
- Agents communicate via messages
|
|
16
|
+
- Group chat support
|
|
17
|
+
- Human-in-the-loop conversations
|
|
18
|
+
- Code execution environments
|
|
19
|
+
|
|
20
|
+
### Code Example
|
|
21
|
+
```python
|
|
22
|
+
from autogen import AssistantAgent, UserProxyAgent
|
|
23
|
+
|
|
24
|
+
assistant = AssistantAgent(
|
|
25
|
+
name="assistant",
|
|
26
|
+
llm_config={"model": "gpt-4"}
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
user_proxy = UserProxyAgent(
|
|
30
|
+
name="user",
|
|
31
|
+
human_input_mode="TERMINATE",
|
|
32
|
+
code_execution_config={"work_dir": "coding"}
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
user_proxy.initiate_chat(
|
|
36
|
+
assistant,
|
|
37
|
+
message="Write a Python function to calculate fibonacci"
|
|
38
|
+
)
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Strengths
|
|
42
|
+
- **Conversation Patterns:** Excellent for multi-agent discussions
|
|
43
|
+
- **Code Execution:** Built-in safe code execution
|
|
44
|
+
- **Human-in-Loop:** Natural conversation with humans
|
|
45
|
+
- **Group Chat:** Multiple agents can collaborate
|
|
46
|
+
- **Backed by Microsoft:** Research-backed, well-maintained
|
|
47
|
+
|
|
48
|
+
### Weaknesses
|
|
49
|
+
- **Verbose:** Can require lot of code for simple tasks
|
|
50
|
+
- **Conversation Complexity:** Managing long conversations is tricky
|
|
51
|
+
- **Less Structured:** More flexible but less opinionated
|
|
52
|
+
|
|
53
|
+
### Best Use Cases
|
|
54
|
+
- Agents that need to debate/discuss
|
|
55
|
+
- Code generation and execution
|
|
56
|
+
- Research and exploration tasks
|
|
57
|
+
- Interactive applications
|
|
58
|
+
|
|
59
|
+
### Not Ideal For
|
|
60
|
+
- Simple linear workflows
|
|
61
|
+
- Applications not needing conversation
|
|
62
|
+
- Quick prototypes (can be verbose)
|
|
63
|
+
|
|
64
|
+
### Pricing Considerations
|
|
65
|
+
- Framework is free
|
|
66
|
+
- Pay for LLM API costs
|
|
67
|
+
- No additional services
|
|
68
|
+
|
|
69
|
+
### Learning Resources
|
|
70
|
+
- Official docs: microsoft.github.io/autogen
|
|
71
|
+
- Paper: arxiv.org/abs/2308.08155
|
|
72
|
+
- Examples: github.com/microsoft/autogen/examples
|
|
73
|
+
|
|
74
|
+
## 5. Pydantic AI
|
|
75
|
+
|
|
76
|
+
### Overview
|
|
77
|
+
Type-safe Python framework for building agents with Pydantic validation.
|
|
78
|
+
|
|
79
|
+
### Architecture
|
|
80
|
+
- Agents are Python classes with type hints
|
|
81
|
+
- Pydantic validates all inputs/outputs
|
|
82
|
+
- Dependency injection for tools
|
|
83
|
+
- Multi-provider support
|
|
84
|
+
|
|
85
|
+
### Code Example
|
|
86
|
+
```python
|
|
87
|
+
from pydantic_ai import Agent
|
|
88
|
+
from pydantic import BaseModel
|
|
89
|
+
|
|
90
|
+
class ReviewOutput(BaseModel):
|
|
91
|
+
approved: bool
|
|
92
|
+
issues: list[str]
|
|
93
|
+
confidence: float
|
|
94
|
+
|
|
95
|
+
agent = Agent(
|
|
96
|
+
'claude-opus-4',
|
|
97
|
+
result_type=ReviewOutput,
|
|
98
|
+
system_prompt='You review code for security issues.'
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
result = agent.run_sync('Review this code: ...')
|
|
102
|
+
# result is type-checked ReviewOutput
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Strengths
|
|
106
|
+
- **Type Safety:** Pydantic validation on all I/O
|
|
107
|
+
- **Simple API:** Clean, minimal boilerplate
|
|
108
|
+
- **Multi-Provider:** OpenAI, Anthropic, Gemini, etc.
|
|
109
|
+
- **Dependency Injection:** Clean tool management
|
|
110
|
+
|
|
111
|
+
### Weaknesses
|
|
112
|
+
- **New Framework:** Still maturing
|
|
113
|
+
- **Limited Patterns:** No built-in workflows
|
|
114
|
+
- **Small Community:** Fewer examples and resources
|
|
115
|
+
|
|
116
|
+
### Best Use Cases
|
|
117
|
+
- Type-safe applications
|
|
118
|
+
- Simple agent use cases
|
|
119
|
+
- Teams already using Pydantic
|
|
120
|
+
- Data validation requirements
|
|
121
|
+
|
|
122
|
+
### Not Ideal For
|
|
123
|
+
- Complex multi-agent workflows
|
|
124
|
+
- Applications needing mature framework
|
|
125
|
+
- Teams not familiar with type hints
|
|
126
|
+
|
|
127
|
+
### Pricing Considerations
|
|
128
|
+
- Framework is free
|
|
129
|
+
- Pay for LLM API costs
|
|
130
|
+
- No additional services
|
|
131
|
+
|
|
132
|
+
### Learning Resources
|
|
133
|
+
- Official docs: ai.pydantic.dev
|
|
134
|
+
- Examples: github.com/pydantic/pydantic-ai/examples
|
|
135
|
+
- Discord: Pydantic Discord
|
|
136
|
+
|
|
137
|
+
## 6. LlamaIndex Agents
|
|
138
|
+
|
|
139
|
+
### Overview
|
|
140
|
+
Framework for building agents that reason over data, optimized for RAG applications.
|
|
141
|
+
|
|
142
|
+
### Architecture
|
|
143
|
+
- Query engines for data retrieval
|
|
144
|
+
- Agents plan and execute queries
|
|
145
|
+
- Tool abstraction for data access
|
|
146
|
+
- Multi-step reasoning over documents
|
|
147
|
+
|
|
148
|
+
### Code Example
|
|
149
|
+
```python
|
|
150
|
+
from llama_index.agent import OpenAIAgent
|
|
151
|
+
from llama_index import VectorStoreIndex
|
|
152
|
+
|
|
153
|
+
# Build index over documents
|
|
154
|
+
index = VectorStoreIndex.from_documents(documents)
|
|
155
|
+
|
|
156
|
+
# Create query engine tool
|
|
157
|
+
query_tool = index.as_query_engine().as_tool(
|
|
158
|
+
name="knowledge_base",
|
|
159
|
+
description="Search company knowledge base"
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
# Create agent with tool
|
|
163
|
+
agent = OpenAIAgent.from_tools(
|
|
164
|
+
[query_tool],
|
|
165
|
+
system_prompt="You are a helpful assistant."
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
response = agent.chat("What is our refund policy?")
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Strengths
|
|
172
|
+
- **RAG Excellence:** Best-in-class retrieval capabilities
|
|
173
|
+
- **Query Planning:** Intelligent query decomposition
|
|
174
|
+
- **Data Connectors:** 100+ data source connectors
|
|
175
|
+
- **Multi-Step Reasoning:** Complex reasoning over documents
|
|
176
|
+
|
|
177
|
+
### Weaknesses
|
|
178
|
+
- **RAG-Focused:** Heavier if not using RAG
|
|
179
|
+
- **Complexity:** Learning curve for advanced features
|
|
180
|
+
- **Framework Weight:** Larger dependency footprint
|
|
181
|
+
|
|
182
|
+
### Best Use Cases
|
|
183
|
+
- RAG applications (Q&A over docs)
|
|
184
|
+
- Knowledge base agents
|
|
185
|
+
- Document analysis
|
|
186
|
+
- Research assistants
|
|
187
|
+
|
|
188
|
+
### Not Ideal For
|
|
189
|
+
- Non-RAG applications
|
|
190
|
+
- Simple workflows
|
|
191
|
+
- Applications without data retrieval needs
|
|
192
|
+
|
|
193
|
+
### Pricing Considerations
|
|
194
|
+
- Framework is free
|
|
195
|
+
- LlamaCloud (managed service): $99-$999/month
|
|
196
|
+
- Pay for LLM API costs
|
|
197
|
+
|
|
198
|
+
### Learning Resources
|
|
199
|
+
- Official docs: docs.llamaindex.ai
|
|
200
|
+
- Course: llamaindex.ai/bootcamp
|
|
201
|
+
- Examples: github.com/run-llama/llama_index/examples
|
|
202
|
+
|
|
203
|
+
## Framework Comparison Matrix
|
|
204
|
+
|
|
205
|
+
| Feature | ADK | LangGraph | CrewAI | AutoGen | Pydantic AI | LlamaIndex |
|
|
206
|
+
|---------|-----|-----------|--------|---------|-------------|------------|
|
|
207
|
+
| State Management | ★★★☆☆ | ★★★★★ | ★★☆☆☆ | ★★★☆☆ | ★☆☆☆☆ | ★★★☆☆ |
|
|
208
|
+
| Type Safety | ★★★★★ | ★★☆☆☆ | ★★☆☆☆ | ★★☆☆☆ | ★★★★★ | ★★☆☆☆ |
|
|
209
|
+
| Ease of Use | ★★★★☆ | ★★★☆☆ | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★☆☆ |
|
|
210
|
+
| Production Ready | ★★★★★ | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★★☆☆ | ★★★★☆ |
|
|
211
|
+
| Observability | ★★★★☆ | ★★★★★ | ★★☆☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★☆ |
|
|
212
|
+
| Community Size | ★★★☆☆ | ★★★★★ | ★★★☆☆ | ★★★★☆ | ★★☆☆☆ | ★★★★☆ |
|
|
213
|
+
| Multi-Provider | ★☆☆☆☆ | ★★★★★ | ★★★★★ | ★★★★★ | ★★★★★ | ★★★★★ |
|
|
214
|
+
| RAG Support | ★★☆☆☆ | ★★★★☆ | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★★★★ |
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "review"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Framework Migration Patterns: Common Paths
|
|
6
|
+
|
|
7
|
+
Why to migrate, general strategy, and common migration paths between agentic frameworks.
|
|
8
|
+
|
|
9
|
+
## Why Migrate?
|
|
10
|
+
|
|
11
|
+
Common reasons for framework migration:
|
|
12
|
+
1. **Outgrowing current framework** (prototype -> production)
|
|
13
|
+
2. **Better state management** (need checkpointing, workflows)
|
|
14
|
+
3. **Production requirements** (observability, error handling)
|
|
15
|
+
4. **Team preferences** (language, ecosystem)
|
|
16
|
+
5. **Cost optimization** (framework overhead, licensing)
|
|
17
|
+
6. **Feature needs** (specific capabilities missing)
|
|
18
|
+
|
|
19
|
+
## General Migration Strategy
|
|
20
|
+
|
|
21
|
+
### Phase 1: Assessment
|
|
22
|
+
1. Document current architecture
|
|
23
|
+
2. List all agents and their roles
|
|
24
|
+
3. Map dependencies and workflows
|
|
25
|
+
4. Identify framework-specific features in use
|
|
26
|
+
5. Estimate migration effort
|
|
27
|
+
|
|
28
|
+
### Phase 2: Planning
|
|
29
|
+
1. Choose target framework
|
|
30
|
+
2. Design target architecture
|
|
31
|
+
3. Identify abstraction layers
|
|
32
|
+
4. Plan incremental migration path
|
|
33
|
+
5. Define success criteria
|
|
34
|
+
|
|
35
|
+
### Phase 3: Implementation
|
|
36
|
+
1. Set up new framework
|
|
37
|
+
2. Build adapters/bridges if needed
|
|
38
|
+
3. Migrate one agent/workflow at a time
|
|
39
|
+
4. Run both systems in parallel (if possible)
|
|
40
|
+
5. Validate equivalence
|
|
41
|
+
|
|
42
|
+
### Phase 4: Cutover
|
|
43
|
+
1. Route production traffic gradually
|
|
44
|
+
2. Monitor metrics closely
|
|
45
|
+
3. Keep rollback plan ready
|
|
46
|
+
4. Complete migration
|
|
47
|
+
5. Remove old framework
|
|
48
|
+
|
|
49
|
+
## Common Migration Paths
|
|
50
|
+
|
|
51
|
+
### 1. Custom Code -> Framework
|
|
52
|
+
|
|
53
|
+
**Scenario:** Built agents from scratch, want framework benefits.
|
|
54
|
+
|
|
55
|
+
**Motivation:**
|
|
56
|
+
- Need production-ready features (observability, error handling)
|
|
57
|
+
- Want faster development
|
|
58
|
+
- Reduce maintenance burden
|
|
59
|
+
|
|
60
|
+
**Strategy:**
|
|
61
|
+
|
|
62
|
+
**Step 1:** Identify Abstraction Points
|
|
63
|
+
```python
|
|
64
|
+
# Current custom code
|
|
65
|
+
class CustomAgent:
|
|
66
|
+
def __init__(self, llm_client, tools):
|
|
67
|
+
self.llm = llm_client
|
|
68
|
+
self.tools = tools
|
|
69
|
+
|
|
70
|
+
async def process(self, input):
|
|
71
|
+
# Custom orchestration logic
|
|
72
|
+
pass
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Step 2:** Choose Framework Based on Patterns
|
|
76
|
+
- Sequential workflows -> Pydantic AI, CrewAI
|
|
77
|
+
- Complex state -> LangGraph
|
|
78
|
+
- TypeScript codebase -> ADK
|
|
79
|
+
- RAG-heavy -> LlamaIndex
|
|
80
|
+
|
|
81
|
+
**Step 3:** Incremental Migration
|
|
82
|
+
```python
|
|
83
|
+
# Wrap custom agent in framework
|
|
84
|
+
from crewai import Agent
|
|
85
|
+
|
|
86
|
+
def custom_tool_wrapper(input):
|
|
87
|
+
return custom_agent.process(input)
|
|
88
|
+
|
|
89
|
+
framework_agent = Agent(
|
|
90
|
+
role="Custom Agent",
|
|
91
|
+
tools=[custom_tool_wrapper]
|
|
92
|
+
)
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Gotchas:**
|
|
96
|
+
- Framework may have different error handling semantics
|
|
97
|
+
- State management may need refactoring
|
|
98
|
+
- Tool signatures may need adaptation
|
|
99
|
+
|
|
100
|
+
**Effort:** Medium-High (2-4 weeks for typical system)
|
|
101
|
+
|
|
102
|
+
### 2. LangChain -> LangGraph
|
|
103
|
+
|
|
104
|
+
**Scenario:** Using LangChain chains, need better state management.
|
|
105
|
+
|
|
106
|
+
**Motivation:**
|
|
107
|
+
- Need checkpointing for long workflows
|
|
108
|
+
- Want human-in-the-loop approval gates
|
|
109
|
+
- Better error recovery
|
|
110
|
+
- More complex control flow
|
|
111
|
+
|
|
112
|
+
**Strategy:**
|
|
113
|
+
|
|
114
|
+
**Step 1:** Map Chains to Graphs
|
|
115
|
+
```python
|
|
116
|
+
# Before: LangChain
|
|
117
|
+
from langchain.chains import SequentialChain
|
|
118
|
+
|
|
119
|
+
chain = SequentialChain(
|
|
120
|
+
chains=[research_chain, analyze_chain, write_chain]
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
# After: LangGraph
|
|
124
|
+
from langgraph.graph import StateGraph
|
|
125
|
+
|
|
126
|
+
workflow = StateGraph(StateSchema)
|
|
127
|
+
workflow.add_node("research", research_agent)
|
|
128
|
+
workflow.add_node("analyze", analyze_agent)
|
|
129
|
+
workflow.add_node("write", write_agent)
|
|
130
|
+
workflow.add_edge("research", "analyze")
|
|
131
|
+
workflow.add_edge("analyze", "write")
|
|
132
|
+
app = workflow.compile()
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Step 2:** Add State Schema
|
|
136
|
+
```python
|
|
137
|
+
from typing import TypedDict
|
|
138
|
+
|
|
139
|
+
class WorkflowState(TypedDict):
|
|
140
|
+
research_results: str
|
|
141
|
+
analysis: str
|
|
142
|
+
draft: str
|
|
143
|
+
revisions: int
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Step 3:** Add Checkpointing
|
|
147
|
+
```python
|
|
148
|
+
from langgraph.checkpoint import MemorySaver
|
|
149
|
+
|
|
150
|
+
app = workflow.compile(checkpointer=MemorySaver())
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**Gotchas:**
|
|
154
|
+
- Need to define state schema (wasn't explicit in LangChain)
|
|
155
|
+
- Different error handling model
|
|
156
|
+
- Checkpointing changes deployment (need persistence)
|
|
157
|
+
|
|
158
|
+
**Effort:** Low-Medium (1-2 weeks)
|
|
159
|
+
|
|
160
|
+
### 3. CrewAI -> LangGraph
|
|
161
|
+
|
|
162
|
+
**Scenario:** Using CrewAI for simple workflows, need more control.
|
|
163
|
+
|
|
164
|
+
**Motivation:**
|
|
165
|
+
- Need conditional branching
|
|
166
|
+
- Want fine-grained state management
|
|
167
|
+
- Need to handle complex dependencies
|
|
168
|
+
|
|
169
|
+
**Strategy:**
|
|
170
|
+
|
|
171
|
+
**Step 1:** Map Agents and Tasks
|
|
172
|
+
```python
|
|
173
|
+
# Before: CrewAI
|
|
174
|
+
researcher = Agent(role='Researcher', tools=[search])
|
|
175
|
+
writer = Agent(role='Writer', tools=[grammar])
|
|
176
|
+
|
|
177
|
+
research_task = Task(description='Research topic', agent=researcher)
|
|
178
|
+
write_task = Task(description='Write article', agent=writer)
|
|
179
|
+
|
|
180
|
+
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
|
|
181
|
+
|
|
182
|
+
# After: LangGraph
|
|
183
|
+
def research_node(state):
|
|
184
|
+
result = researcher.run(state['topic'])
|
|
185
|
+
return {"research": result}
|
|
186
|
+
|
|
187
|
+
def write_node(state):
|
|
188
|
+
result = writer.run(state['research'])
|
|
189
|
+
return {"article": result}
|
|
190
|
+
|
|
191
|
+
workflow = StateGraph(StateSchema)
|
|
192
|
+
workflow.add_node("research", research_node)
|
|
193
|
+
workflow.add_node("write", write_node)
|
|
194
|
+
workflow.add_edge("research", "write")
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**Step 2:** Add Conditional Logic (New Capability)
|
|
198
|
+
```python
|
|
199
|
+
def should_revise(state):
|
|
200
|
+
if state['revisions'] < 3 and not state['approved']:
|
|
201
|
+
return "write"
|
|
202
|
+
return END
|
|
203
|
+
|
|
204
|
+
workflow.add_conditional_edge("review", should_revise, {
|
|
205
|
+
"write": "write",
|
|
206
|
+
END: END
|
|
207
|
+
})
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Gotchas:**
|
|
211
|
+
- CrewAI's process abstraction vs LangGraph's explicit graph
|
|
212
|
+
- Tool integration may need adaptation
|
|
213
|
+
- Different agent initialization patterns
|
|
214
|
+
|
|
215
|
+
**Effort:** Medium (2-3 weeks)
|
|
216
|
+
|
|
217
|
+
### 4. AutoGen -> LangGraph
|
|
218
|
+
|
|
219
|
+
**Scenario:** Using AutoGen for conversations, need structured workflows.
|
|
220
|
+
|
|
221
|
+
**Motivation:**
|
|
222
|
+
- Conversations becoming unmanageable
|
|
223
|
+
- Need deterministic control flow
|
|
224
|
+
- Want state checkpointing
|
|
225
|
+
|
|
226
|
+
**Strategy:**
|
|
227
|
+
|
|
228
|
+
**Step 1:** Identify Conversation Patterns
|
|
229
|
+
```python
|
|
230
|
+
# Before: AutoGen conversation
|
|
231
|
+
user_proxy.initiate_chat(assistant, message="Task description")
|
|
232
|
+
|
|
233
|
+
# After: Structured workflow
|
|
234
|
+
def assistant_node(state):
|
|
235
|
+
response = assistant.run(state['task'])
|
|
236
|
+
return {"response": response}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Step 2:** Replace Group Chat with Graph
|
|
240
|
+
```python
|
|
241
|
+
# Before: AutoGen group chat
|
|
242
|
+
group_chat = GroupChat(
|
|
243
|
+
agents=[agent1, agent2, agent3],
|
|
244
|
+
messages=[],
|
|
245
|
+
max_round=10
|
|
246
|
+
)
|
|
247
|
+
|
|
248
|
+
# After: LangGraph with explicit orchestration
|
|
249
|
+
workflow = StateGraph(StateSchema)
|
|
250
|
+
workflow.add_node("agent1", agent1_node)
|
|
251
|
+
workflow.add_node("agent2", agent2_node)
|
|
252
|
+
workflow.add_node("agent3", agent3_node)
|
|
253
|
+
|
|
254
|
+
# Define explicit conversation flow
|
|
255
|
+
workflow.add_edge("agent1", "agent2")
|
|
256
|
+
workflow.add_conditional_edge("agent2", should_continue, {
|
|
257
|
+
True: "agent3",
|
|
258
|
+
False: END
|
|
259
|
+
})
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Gotchas:**
|
|
263
|
+
- Lose flexibility of open conversations
|
|
264
|
+
- Need to define all conversation paths
|
|
265
|
+
- Different mental model (graph vs messages)
|
|
266
|
+
|
|
267
|
+
**Effort:** Medium-High (3-4 weeks)
|