bytedance/deer-flow · error · ImportError
The OpenViking memory backend requires langchain-openviking=
Error message
The OpenViking memory backend requires langchain-openviking==0.1.0. Install DeerFlow backend dependencies and retry.
What it means
_load_official_integration() raises ImportError when langchain_openviking (the langchain-openviking package) cannot be imported. The OpenViking memory backend delegates all SDK transport, message conversion, and session commit to this maintained adapter, so its absence is fatal for the backend. The message pins the expected version, langchain-openviking==0.1.0.
Source
Thrown at backend/packages/harness/deerflow/agents/memory/backends/openviking/openviking_manager.py:555
) -> None:
detail = f"{message} (session={session_id})"
if self._config.write_failure_policy == "raise":
raise MemoryManagerError(detail) from exc
logger.error(detail, exc_info=True)
def _load_official_integration() -> dict[str, Any]:
try:
from langchain_openviking import (
OpenVikingCommitPolicy,
OpenVikingPartialWriteError,
OpenVikingRetriever,
OpenVikingSessionRecorder,
has_request_actor_peer_support,
)
from langchain_openviking.actor_peer import use_actor_peer
except ImportError as exc:
raise ImportError("The OpenViking memory backend requires langchain-openviking==0.1.0. Install DeerFlow backend dependencies and retry.") from exc
if not has_request_actor_peer_support():
raise ImportError("The installed OpenViking SDK lacks request-scoped actor-peer support. Install openviking-sdk>=0.1.6,<0.2 and retry.")
return {
"OpenVikingCommitPolicy": OpenVikingCommitPolicy,
"OpenVikingPartialWriteError": OpenVikingPartialWriteError,
"OpenVikingRetriever": OpenVikingRetriever,
"OpenVikingSessionRecorder": OpenVikingSessionRecorder,
"use_actor_peer": use_actor_peer,
}
def _format_documents(documents: list[Any], *, max_chars: int) -> str:
lines: list[str] = []
seen: set[str] = set()
for document in documents:
content = " ".join(str(getattr(document, "page_content", "") or "").split())
key = content.casefold()
if not content or key in seen:View on GitHub (pinned to 1dd6ba1acb)
Solutions
- Install the pinned adapter: uv pip install 'langchain-openviking==0.1.0' (or add it to the backend dependency extra you use)
- Verify with: uv run python -c "import langchain_openviking" from backend/
- Restart the Gateway after installation
Example fix
# before: backend missing the adapter # uv run python -c "import langchain_openviking" -> ModuleNotFoundError # after cd backend && uv pip install 'langchain-openviking==0.1.0'
Defensive patterns
Strategy: validation
Validate before calling
try:
import langchain_openviking # noqa: F401
except ImportError:
raise SystemExit("Install 'langchain-openviking==0.1.0' before enabling the openviking memory backend") Type guard
def openviking_adapter_available() -> bool:
try:
import langchain_openviking # noqa: F401
return True
except ImportError:
return False Try / catch
try:
manager = OpenVikingMemoryManager.from_config(cfg)
except ImportError as exc:
install_missing_dependency(str(exc)); # then reconstruct the manager
raise Prevention
- Install backend optional extras before flipping manager_class to openviking
- Add an import smoke test for langchain_openviking to CI for any job that exercises the openviking backend
When it happens
Trigger: memory.manager_class: openviking is configured but langchain-openviking is not installed in the backend environment (it is an optional dependency). Raised from OpenVikingMemoryManager.model_post_init -> _load_official_integration(), i.e. at first manager construction — Gateway startup or agent rebuild.
Common situations: Enabling the OpenViking backend without installing backend optional extras; a fresh virtualenv/uv sync that skipped the openviking extra; CI environments that only install core dependencies.
Related errors
- The installed OpenViking SDK lacks request-scoped actor-peer
- Failed to update agent: ${res.statusText}
- Failed to delete agent: ${res.statusText}
- backend_unreachable
- request_failed
AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14).
Data as JSON: /api/errors/8ec9f91a844b81c0.
Report an issue: GitHub.