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

  1. Install the pinned adapter: uv pip install 'langchain-openviking==0.1.0' (or add it to the backend dependency extra you use)
  2. Verify with: uv run python -c "import langchain_openviking" from backend/
  3. 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

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


AI-assisted analysis of bytedance/deer-flow@1dd6ba1acb (2026-08-14). Data as JSON: /api/errors/8ec9f91a844b81c0. Report an issue: GitHub.