Skip to content

Releases: ob-labs/contextseek

v0.1.3

08 Jun 09:43
bd6a41a

Choose a tag to compare

What's Changed

  • refactor: rename SeekDBBackend to sync-capable backend and update related methods by @Evenss in #25
  • feat: add ContextSeek dashboard with integrated UI components by @Evenss in #27
  • refactor: streamline ContextSeekMiddleware initialization by @Evenss in #29

Full Changelog: v0.1.2...v0.1.3

v0.1.2

03 Jun 09:36
838da9a

Choose a tag to compare

Highlights

  • Personal / client-side mode — run a self-contained knowledge base on your own machine with the embedded seekdb backend (no external service). New contextseek init scaffolds ~/.contextseek/, registers a background daemon (lifecycle evolution + file watching + MCP HTTP server), and contextseek sync imports notes, code, and chat exports with auto format detection and content-hash dedup. An LLM-free evolution pipeline keeps the personal flow fully local. (#20)
  • GeoExtractor — geospatial extraction wired into the evolution pipeline and middleware to improve location-aware retrieval. (#21)
  • Retrieval upgrades — RRF / ANN hybrid recall, refined scoring, and idempotent writes for more robust ingestion. (#19)
  • Content tiers clarified — L0 = full content, L1 = summary, L2 = abstract. (#22)
  • LangSmith tracing — added configuration to .env.example. (#23)

Documentation

  • New CLI guide / 中文 covering client-side / personal mode: init, daemon, sync, embedded seekdb, and the full command reference.

Install

pip install "contextseek[seekdb]"     # client-side / personal mode
pip install "contextseek[all]"        # everything (HTTP / MCP / LangChain / seekdb / watchdog)

See README.md for usage and pyproject.toml for version details.

v0.1.1

28 May 07:05
b717fe8

Choose a tag to compare

What's Changed

  • feat(examples): add evidence chain provenance tracing by @Teingi in #5
  • feat(server): add tags to item response in create_app function by @Evenss in #6
  • fix(gis): update documentation and requirements to include seekdb as an alternative to OceanBase for GIS features by @Evenss in #7
  • feat(ob_geo_backend): add primary key in geo backend by @Evenss in #8
  • bench: appworld/taubench by @Teingi in #9
  • feat: add LangChain middleware integration by @Evenss in #10
  • feat: add integration examples by @Teingi in #12
  • feat: enhance retrieval strategy with importance-aware ranking by @Evenss in #13
  • feat: add example by @Teingi in #16
  • feat: normalize retrieval scores by @Teingi in #17
  • docs: base URL settings for embedding and LLM providers by @Teingi in #18

New Contributors

  • @Evenss made their first contribution in #6

Full Changelog: v0.1.0...v0.1.1

v0.1.0

25 May 12:14
249caef

Choose a tag to compare

Release Notes — ContextSeek v0.1.0

This is the first public release of ContextSeek — a semantic context layer for AI agent systems. It ships the full core SDK, three storage backends, LangChain and DeepAgents bridges, HTTP and MCP servers, and an optional evaluation harness for AppWorld and τ-bench.

Status: Alpha (v0.1.0). APIs and defaults may change in subsequent releases.


Highlights

  • Unified context object model. Everything an agent accumulates — memories, retrieved passages, tool outputs, execution traces, and distilled skills — is a single ContextItem with mandatory provenance, typed links, and a maturity stage.
  • Lifecycle evolution. add() infers stage at write time. The full raw → extracted → knowledge → skill pipeline runs via compact() when EVOLUTION_ENABLED=true. The EvolutionEngine merges near-duplicates, resolves conflicts, and distills high-value items into reusable skills. Optional LifecycleScheduler or LangChain middleware can trigger background compaction.
  • Storage-agnostic. An InMemoryBackend for development, a FileBackend for single-process persistence, and an OceanBase backend with HNSW vector + full-text hybrid search for production deployments.
  • L0 / L1 / L2 content tiers. When a Summarizer is configured (SUMMARIZER_PROVIDER=llm), retrieve() returns L1 summaries by default, keeping token budgets tight. Call expand() to upgrade any hit to its full L2 body on demand. Without a Summarizer, retrieval degrades to L2 full content.
  • Agent-native tool integration. ctx.tools() exports retrieve and expand as ready-to-use tool specs for OpenAI and Anthropic function-calling APIs.

What's Included

Core SDK (contextseek)

Client API

Method Description
ContextSeek.from_settings() Factory that reads .env or ContextSeekSettings and wires storage, embedder, LLM, and evolution engine
add() Write a ContextItem with provenance inference, conflict detection, L0/L1 summarization, and embedding
retrieve() Keyword + vector hybrid search; returns a RetrieveResponse of ranked SearchHit rows (L1 summaries by default)
expand() Upgrade SearchHit rows to full L2 content
items() List all items in a scope (optional stage filter)
tools() Export retrieve and expand as ToolSpec entries for OpenAI / Anthropic
forget() Soft-delete with confidence propagation to dependent items
delete() Hard-delete with the same propagation semantics
compact() Run the EvolutionEngine evolution pass on a scope (merge, extract, distill, archive)
dream() Idle-time pattern consolidation and cross-cluster hypothesis generation
evidence_chain() Build the full provenance DAG for an item with propagated confidence
chain_confidence() Quick propagated-confidence lookup for an item
upstream() Lightweight BFS over derived_from / supported_by links
feedback() Apply relevance feedback; adjusts ranking boost and feeds evolution priority signals
overview() Snapshot of stage distribution and candidate counts in a scope
skills() / skill_tools() / skill_context() Query, export, and inject skill-stage items into LLM tool calls or system prompts
scope_tree() / scope_stats() Inspect scope hierarchy and item statistics
tag() Context manager that attaches actor/request metadata to every audit record in the block
pin() Create a copy with a different strategy-version label for A/B or canary audit tracking
plug() Register and consume a DataPlug, ingesting all events into a given scope

CLI

Installed entry points:

  • contextseek — business-level CLI (add, retrieve, expand, compact, dream, forget, delete, overview, feedback, upstream, evidence-chain, chain-confidence, tools, skill-tools, skill-context, skill-import, items, metrics)
  • contextseek-mcp-stdio — MCP server over stdio
  • contextseek-mcp-sse — MCP server over SSE

See MCP, HTTP & CLI for the full command reference.

Storage Backends

Backend Use case Config
InMemoryBackend Dev / tests STORAGE_BACKEND=memory (default)
FileBackend Single-process persistence STORAGE_BACKEND=file
OceanBaseBackend Production hybrid vector + FTS STORAGE_BACKEND=oceanbase + OB_* vars

Optional: cold-tier storage (STORAGE_COLD_BACKEND), OceanBase GIS backend (GIS_ENABLED=true, requires OceanBase ≥ 4.2.2).

LangChain Bridge

ContextSeekMiddleware integrates retrieval, write-back, and optional auto-compaction into a LangChain create_agent() pipeline. Requires pip install contextseek[langchain].

from contextseek.bridges.langchain.middleware import ContextSeekMiddleware

DeepAgents Bridge

ContextStore and TraceSink adapters expose the unified ContextItem API to Deep Agents runtimes. Install the deepagents package separately (no dedicated extra).

from contextseek.bridges.deepagents import ContextStore, TraceSink

HTTP & MCP Servers

  • HTTP — FastAPI server exposing the same SDK operations (pip install contextseek[http])
  • MCP — 15+ tools (contextseek_add, contextseek_retrieve, contextseek_expand, contextseek_compact, contextseek_dream, …) via stdio or SSE

See MCP, HTTP & CLI.

DataPlugs

Built-in plugs for ingesting external data into a scope via plug():

Plug Source
RAGPlug RAG pipeline outputs
TracePlug Execution traces
PowerMemPlug PowerMem stores
HermesSkillImporter / OpenAIFunctionImporter / MCPToolImporter Skill / tool registries

See DataPlugs.

Evaluation Harness (optional)

Benchmark adapters for measuring ContextSeek as a long-term context layer:

Benchmark Directory Setup
AppWorld eval/appworld/ uv sync --extra appworld-eval + separate AppWorld env
τ-bench (tau2) eval/taubench/ make taubench-install (isolated .venv-taubench)

Eval configs cover baseline, store-only warm-up, react (retrieve + write), and evolve (retrieve + auto-compact) modes, with optional OceanBase variants.


Installation

pip install contextseek

The base package includes langchain-openai for embedding/LLM factory paths. Optional extras:

pip install contextseek[http]           # FastAPI server
pip install contextseek[langchain]      # LangChain AgentMiddleware bridge
pip install contextseek[oceanbase]      # OceanBase backend
pip install contextseek[openai]         # Pin LangChain-OpenAI provider
pip install contextseek[ollama]         # LangChain-Ollama provider
pip install contextseek[huggingface]    # LangChain-HuggingFace provider
pip install contextseek[appworld-eval]  # AppWorld eval dependencies

Requires Python 3.11 or later.

Copy .env.example to .env and configure storage, embedding, LLM, and summarizer as needed. Minimal defaults use in-memory storage with no models.


Known Limitations

  • Alpha release — public APIs and configuration defaults may change.
  • Evolution is opt-in — set EVOLUTION_ENABLED=true and call compact() (or use LifecycleScheduler / LangChain middleware auto-compact).
  • Layered retrieval requires a Summarizer — without SUMMARIZER_PROVIDER=llm, retrieve() returns full L2 content.
  • Hybrid search requires an embedder — set EMBEDDING_PROVIDER=langchain and configure an embedding class path.
  • DeepAgents — install deepagents separately; not bundled as an extra.
  • Eval harnesses — require additional environments and API keys; not part of the default install workflow.

Links