F2-05 - CrewAI Implementation Checklist
May 9, 2026 ยท View on GitHub
Objective
Keep the CrewAI package in integrations/crewai/ functionally complete and aligned with the repo narrative without re-opening already closed architectural questions.
Use this checklist when implementation work starts or when a PR changes CrewAI package shape, security defaults, callbacks or documentation.
Current Baseline
- The package declares itself as
functionaland that status matches the shipped runtime coverage. -
integrations/crewai/README.mdno longer describes the Python SDK as future work. -
docs/F2-05-CrewAI-Integration-Design.mdstill matches the intended CrewAI surface. -
docs/F2-05-CrewAI-Maturity-Gap-Assessment.mdremains the reference document for the remaining maturity delta versus LangChain. - RC metadata stays aligned with the coordinated
1.0.0rc1release train and the package continues to declareagent-did-sdk==1.0.0rc1as its core dependency floor for the frozen release candidate.
Factory And Public Surface
- Implement
create_agent_did_crewai_integration(...)inintegrations/crewai/src/agent_did_crewai/__init__.py. - Define the returned integration object shape before adding secondary helpers.
- Keep the public surface Python-first and aligned with CrewAI concepts: tools, callbacks, guardrails and structured outputs.
Tools
- Add tools for current DID exposure, DID resolution and signature verification.
- Keep sensitive operations opt-in: HTTP signing, payload signing and key rotation.
- Ensure tool inputs and outputs are structured enough for
TaskandCrewcomposition. - Adapt shipped Agent-DID tools to CrewAI runtime-native
BaseToolinstances when the optional CrewAI runtime is installed, while preserving lightweight local wrappers when it is not.
Callbacks And Guardrails
- Add step/task callback hooks for Agent-DID traceability.
- Expose structured observability primitives for callback fan-out and sanitized JSON logging.
- Define optional guardrails for outputs that must carry DID-derived guarantees.
- Ensure callback and guardrail paths do not leak private keys, raw payloads or raw signatures by default.
- Keep shipped guardrail call signatures compatible with CrewAI runtime validation by preserving the
(bool, Any)result contract while avoiding runtime-visible nested return annotations that break realTaskconstruction. - Cover Python 3.12 guardrail compatibility with a regression that asserts the generated callable clears its runtime return annotation while still satisfying the typed factory contract used by strict
mypy.
Documentation And Examples
- Add at least one runnable example covering the integration bundle.
- Add a dedicated observability example for structured callback and logging flows.
- Add a production-style recipe with environment guards, structured outputs, guardrail wiring and secure HTTP signing.
- Document secure defaults and opt-in exposure flags in
integrations/crewai/README.md. - Keep the design doc, README and package metadata aligned in the same PR.
Validation
- Add Python tests for the integration factory and exposed tools.
- Add tests for secure defaults and failure handling.
- Add package build validation once implementation exists.
- Keep strict
mypycompatibility for the shipped package surface, including helper properties and setters exercised by the CI matrix on Python 3.12. - Keep at least one CI smoke path that installs the optional CrewAI runtime and instantiates real
Agent,TaskandCrewobjects with the published helper bundle. - Ensure the real-runtime smoke path passes runtime-compatible tools into CrewAI
AgentandTaskconstruction instead of only package-local wrappers. - Split the suite into clearer domains such as wiring, tool operations, security, observability and runtime smoke validation.
Exit Rule
F2-05 is complete for repo scope when the package has a functional factory, explicit Agent/Task/Crew helpers, runnable wiring example, automated tests, successful build validation and documentation that matches shipped behavior.
Changelog
| Date | Change |
|---|---|
| 2026-05-08 | RC metadata refreshed for the coordinated 1.0.0rc1 release train and the checklist now records the frozen agent-did-sdk==1.0.0rc1 dependency expectation. |
| 2026-03-22 | Repository license migrated from MIT to Apache-2.0. pyproject.toml updated accordingly. No functional changes to the integration surface. |