Sync upstream: 5 new commits from vectorize-io/hindsight#4
Conversation
Add ZeroEntropy as a reranker provider using their Rerank API (https://docs.zeroentropy.dev/models). Supports zerank-2 (flagship) and zerank-2-small models via direct HTTP API calls with httpx (no additional SDK dependency required). Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…al (vectorize-io#421) * Fix reflect based_on population and enforce full hierarchical retrieval Problem 1: based_on field was incomplete - search_observations results were never extracted into based_on, so observations used by the agent were invisible to callers - search_mental_models and get_mental_model used non-existent fields (summary/description) instead of the actual content field, producing empty text in based_on entries - A duplicate unreachable elif block for search_mental_models was dead code (the first identical condition always matched) Problem 2: mental models could produce "I don't have information" - When a bank has mental models, the agent's tool_choice forcing only covered iteration 0 (search_mental_models). Iterations 1+ were auto, allowing the LLM to short-circuit without ever searching observations or raw facts. Combined with the LOW budget prompt encouraging speed, this meant the agent would often stop after a single tool call. - This created a self-reinforcing failure loop: if a mental model refresh produced "I don't have information" (e.g. due to the agent skipping recall), subsequent reflects would find that content and trust it, never searching deeper. Fix: extend forced tool_choice to cover the full hierarchical retrieval path before allowing auto mode: - With mental models: search_mental_models(0) → search_observations(1) → recall(2) → auto(3+) - Without mental models: search_observations(0) → recall(1) → auto(2+) This matches the retrieval strategy documented in the system prompt and ensures all three knowledge levels are always consulted. The agent still has 2-3 auto iterations (with LOW budget, max_iterations=5) for additional searches or calling done(). * Add Umami analytics tracking to docs site Add conditional Umami script injection to docusaurus.config.ts and pass UMAMI_URL/UMAMI_WEBSITE_ID env vars in the GitHub Pages deploy workflow. The tracking script only loads when both env vars are set.
# Conflicts: # .github/workflows/deploy-docs.yml # .github/workflows/test.yml
|
Caution Review failedThe pull request is closed. ℹ️ Recent review infoConfiguration used: defaults Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (48)
📝 WalkthroughWalkthroughThis pull request introduces a configuration-driven bank management system, shifting from direct field updates to a centralized config-override mechanism. Key additions include ZeroEntropy reranker support, environment-driven mission/disposition settings for retain and observation operations, metadata propagation through fact extraction, and refined retrieval logic. API surface is extended while legacy endpoints are marked deprecated. Changes
Sequence Diagram(s)sequenceDiagram
participant Client as Client
participant API as API Server
participant ConfigResolver as Config Resolver
participant MemoryEngine as Memory Engine
participant LLM as LLM / Consolidator
Client->>API: create_bank(bank_id, reflect_mission, retain_mission, ...)
API->>API: CreateBankRequest.get_config_updates()
API->>ConfigResolver: update_bank_config(bank_id, config_updates)
ConfigResolver->>API: Store overrides
Client->>API: retain(bank_id, memory_item)
API->>MemoryEngine: extract_facts(text, config, metadata)
MemoryEngine->>LLM: extract with retain_mission injected + metadata context
LLM->>MemoryEngine: Return extracted facts
MemoryEngine->>API: Store facts with metadata
Client->>API: recall(bank_id, query)
API->>MemoryEngine: retrieve_semantic_bm25_combined(query)
MemoryEngine->>API: Return results (without embedding)
Client->>API: consolidate (async)
API->>ConfigResolver: get_config(bank_id) with precedence rules
ConfigResolver->>API: Return config (reflect_mission, observations_mission)
API->>LLM: consolidate with build_consolidation_prompt(observations_mission)
LLM->>API: Return consolidated observations
Estimated code review effort🎯 5 (Critical) | ⏱️ ~110 minutes Poem
✨ Finishing Touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
vectorize-io/hindsightmain into this forkdeploy-docs.ymlandtest.ymlper fork policy)Upstream changes included
based_onpopulation and enforce full hierarchical retrieval (Fix reflect based_on population and enforce full hierarchical retrieval vectorize-io/hindsight#421)Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
New Features
Deprecations
Updates