Releases: ob-labs/contextseek
v0.1.3
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
Highlights
- Personal / client-side mode — run a self-contained knowledge base on your own machine with the embedded
seekdbbackend (no external service). Newcontextseek initscaffolds~/.contextseek/, registers a backgrounddaemon(lifecycle evolution + file watching + MCP HTTP server), andcontextseek syncimports 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, embeddedseekdb, 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
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
Full Changelog: v0.1.0...v0.1.1
v0.1.0
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
ContextItemwith mandatory provenance, typed links, and a maturity stage. - Lifecycle evolution.
add()infers stage at write time. The fullraw → extracted → knowledge → skillpipeline runs viacompact()whenEVOLUTION_ENABLED=true. TheEvolutionEnginemerges near-duplicates, resolves conflicts, and distills high-value items into reusable skills. OptionalLifecycleScheduleror LangChain middleware can trigger background compaction. - Storage-agnostic. An
InMemoryBackendfor development, aFileBackendfor single-process persistence, and anOceanBasebackend 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. Callexpand()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()exportsretrieveandexpandas 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 stdiocontextseek-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 ContextSeekMiddlewareDeepAgents 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, TraceSinkHTTP & 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 contextseekThe 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 dependenciesRequires 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=trueand callcompact()(or useLifecycleScheduler/ 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=langchainand configure an embedding class path. - DeepAgents — install
deepagentsseparately; not bundled as an extra. - Eval harnesses — require additional environments and API keys; not part of the default install workflow.