fleet-memory/hindsight-integrations/crewai/hindsight_crewai/__init__.py
Ben 41db2960c5
feat: add CrewAI integration for persistent crew memory (#319)
* feat: add CrewAI integration for persistent crew memory

Implements a CrewAI ExternalMemory storage backend that maps CrewAI's
Storage interface (save/search/reset) to Hindsight's retain/recall/delete
APIs, giving crews long-term memory with fact extraction, entity tracking,
and temporal awareness across runs.

Key features:
- HindsightStorage: drop-in Storage backend for CrewAI ExternalMemory
- HindsightReflectTool: BaseTool exposing Hindsight's reflect API
- Per-agent memory banks with customizable bank resolver
- Async compatibility layer for CrewAI's threading model
- 35 unit tests, docs site page, example script

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: move CrewAI example to hindsight-cookbook

Move research_crew.py example from hindsight-integrations/crewai/examples/
to the cookbook repo and update the integration README to link there instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add GitHub Actions test job for CrewAI integration

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* ci: add uv.lock for frozen installs in CI

The test-crewai-integration CI job uses `uv sync --frozen` which
requires a committed lock file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 17:05:52 +01:00

50 lines
1.1 KiB
Python

"""Hindsight-CrewAI: Persistent memory for AI agent crews.
Provides a Hindsight-backed Storage implementation for CrewAI's
ExternalMemory system, giving your crews long-term memory across runs.
Basic usage::
from hindsight_crewai import configure, HindsightStorage
from crewai.memory.external.external_memory import ExternalMemory
from crewai import Crew
configure(hindsight_api_url="http://localhost:8888")
crew = Crew(
agents=[...],
tasks=[...],
external_memory=ExternalMemory(
storage=HindsightStorage(bank_id="my-crew")
),
)
Per-agent banks::
storage = HindsightStorage(
bank_id="crew-shared",
per_agent_banks=True,
)
"""
from .config import (
HindsightCrewAIConfig,
configure,
get_config,
reset_config,
)
from .errors import HindsightError
from .storage import HindsightStorage
from .tools import HindsightReflectTool
__version__ = "0.1.0"
__all__ = [
"configure",
"get_config",
"reset_config",
"HindsightCrewAIConfig",
"HindsightStorage",
"HindsightReflectTool",
"HindsightError",
]