bytedance/deer-flow · error · ImportError

The installed OpenViking SDK lacks request-scoped actor-peer

Error message

The installed OpenViking SDK lacks request-scoped actor-peer support. Install openviking-sdk>=0.1.6,<0.2 and retry.

What it means

_load_official_integration() raises ImportError when langchain_openviking imports fine but has_request_actor_peer_support() returns False — the installed openviking-sdk underneath lacks request-scoped actor-peer support (needs openviking-sdk>=0.1.6,<0.2). The backend requires actor peers to represent each DeerFlow agent as a disjoint peer inside one OpenViking Session, so an SDK without that feature cannot be used.

Source

Thrown at backend/packages/harness/deerflow/agents/memory/backends/openviking/openviking_manager.py:557

        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:
            continue
        seen.add(key)

View on GitHub (pinned to 1dd6ba1acb)

Solutions

  1. Pin the SDK explicitly: uv pip install 'openviking-sdk>=0.1.6,<0.2' alongside 'langchain-openviking==0.1.0'
  2. Check the resolved version: uv pip show openviking-sdk; look for another dependency constraining it (uv tree)
  3. Restart the Gateway after fixing versions

Example fix

# before
# uv pip show openviking-sdk -> Version: 0.1.5

# after
cd backend && uv pip install 'openviking-sdk>=0.1.6,<0.2' 'langchain-openviking==0.1.0'
Defensive patterns

Strategy: validation

Validate before calling

from importlib.metadata import version
from packaging.version import Version
v = Version(version("openviking-sdk"))
assert Version("0.1.6") <= v < Version("0.2"), f"need openviking-sdk>=0.1.6,<0.2, found {v}"

Type guard

def sdk_has_actor_peer_support() -> bool:
    try:
        from langchain_openviking import has_request_actor_peer_support
        return bool(has_request_actor_peer_support())
    except ImportError:
        return False

Prevention

When it happens

Trigger: langchain-openviking is installed but its openviking-sdk dependency resolved to an older (<0.1.6) or incompatible (>=0.2) version — e.g. another package pinned the SDK, or a stale lockfile. Checked immediately after the import block, at manager construction.

Common situations: Version drift after a fresh resolve: a transitive dependency pinned openviking-sdk to 0.1.5; or an early 0.2 prerelease was installed. Distinct from error 633: here the import succeeded and only the feature check failed.

Related errors


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