Release v0.4.3

- Update version to 0.4.3 in all components
- Python packages: hindsight-api, hindsight-dev, hindsight-all, hindsight-litellm, hindsight-embed
- Python client: hindsight-clients/python
- TypeScript client: hindsight-clients/typescript
- Rust CLI: hindsight-cli
- Control Plane: hindsight-control-plane
- OpenClawd integration: hindsight-integrations/openclawd
- Helm chart
- Sync documentation to version-0.4
This commit is contained in:
Nicolò Boschi 2026-01-30 11:09:43 +01:00
parent f4f86e3842
commit 7d3ac5ddb9
17 changed files with 213 additions and 52 deletions

View file

@ -2,8 +2,8 @@ apiVersion: v2
name: hindsight
description: Hindsight helm chart
type: application
version: 0.4.2
appVersion: "0.4.2"
version: 0.4.3
appVersion: "0.4.3"
keywords:
- ai
- memory

View file

@ -46,4 +46,4 @@ __all__ = [
"RemoteTEICrossEncoder",
"LLMConfig",
]
__version__ = "0.4.2"
__version__ = "0.4.3"

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "hindsight-api"
version = "0.4.2"
version = "0.4.3"
description = "Hindsight: Agent Memory That Works Like Human Memory"
readme = "README.md"
requires-python = ">=3.11"

View file

@ -1,6 +1,6 @@
[package]
name = "hindsight-cli"
version = "0.4.2"
version = "0.4.3"
edition = "2021"
authors = ["Hindsight Team"]
description = "A beautiful CLI for Hindsight - semantic memory system"

View file

@ -14,7 +14,7 @@
""" # noqa: E501
__version__ = "0.0.7"
__version__ = "0.4.3"
# import apis into sdk package
from hindsight_client_api.api.banks_api import BanksApi

View file

@ -1,6 +1,6 @@
[project]
name = "hindsight-client"
version = "0.4.2"
version = "0.4.3"
description = "Python client for Hindsight - Semantic memory system with personality-driven thinking"
authors = [
{name = "Hindsight Team"}

View file

@ -1,6 +1,6 @@
{
"name": "@vectorize-io/hindsight-client",
"version": "0.4.2",
"version": "0.4.3",
"description": "TypeScript client for Hindsight - Semantic memory system with personality-driven thinking",
"main": "./dist/src/index.js",
"types": "./dist/src/index.d.ts",

View file

@ -1,6 +1,6 @@
{
"name": "@vectorize-io/hindsight-control-plane",
"version": "0.4.2",
"version": "0.4.3",
"description": "Control plane for Hindsight - Semantic memory system",
"bin": {
"hindsight-control-plane": "./bin/cli.js"

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "hindsight-dev"
version = "0.4.2"
version = "0.4.3"
description = "Development utilities for Hindsight"
requires-python = ">=3.11"
dependencies = [

View file

@ -61,7 +61,7 @@ hindsight-admin run-db-migration --schema tenant_acme
| Variable | Description | Default |
|----------|-------------|---------|
| `HINDSIGHT_API_LLM_PROVIDER` | Provider: `openai`, `anthropic`, `gemini`, `groq`, `ollama`, `lmstudio` | `openai` |
| `HINDSIGHT_API_LLM_PROVIDER` | Provider: `openai`, `anthropic`, `gemini`, `groq`, `ollama`, `lmstudio`, `vertexai` | `openai` |
| `HINDSIGHT_API_LLM_API_KEY` | API key for LLM provider | - |
| `HINDSIGHT_API_LLM_MODEL` | Model name | `gpt-5-mini` |
| `HINDSIGHT_API_LLM_BASE_URL` | Custom LLM endpoint | Provider default |
@ -97,6 +97,14 @@ export HINDSIGHT_API_LLM_PROVIDER=anthropic
export HINDSIGHT_API_LLM_API_KEY=sk-ant-xxxxxxxxxxxx
export HINDSIGHT_API_LLM_MODEL=claude-sonnet-4-20250514
# Vertex AI (Google Cloud - uses native genai SDK)
export HINDSIGHT_API_LLM_PROVIDER=vertexai
export HINDSIGHT_API_LLM_MODEL=gemini-2.0-flash-001
export HINDSIGHT_API_LLM_VERTEXAI_PROJECT_ID=your-gcp-project-id
export HINDSIGHT_API_LLM_VERTEXAI_REGION=us-central1
# Optional: use ADC (gcloud auth application-default login) or provide service account key:
# export HINDSIGHT_API_LLM_VERTEXAI_SERVICE_ACCOUNT_KEY=/path/to/service-account-key.json
# Ollama (local, no API key)
export HINDSIGHT_API_LLM_PROVIDER=ollama
export HINDSIGHT_API_LLM_BASE_URL=http://localhost:11434/v1
@ -114,6 +122,57 @@ export HINDSIGHT_API_LLM_API_KEY=your-api-key
export HINDSIGHT_API_LLM_MODEL=your-model-name
```
#### Vertex AI Setup
Google Cloud's Vertex AI provides access to Gemini models via the native Google GenAI SDK. Hindsight supports two authentication methods:
**Prerequisites:**
- GCP project with Vertex AI API enabled
- IAM role `roles/aiplatform.user` for your credentials
**Environment Variables:**
| Variable | Description | Required |
|----------|-------------|----------|
| `HINDSIGHT_API_LLM_VERTEXAI_PROJECT_ID` | Your GCP project ID | Yes |
| `HINDSIGHT_API_LLM_VERTEXAI_REGION` | GCP region (e.g., `us-central1`) | No (default: `us-central1`) |
| `HINDSIGHT_API_LLM_VERTEXAI_SERVICE_ACCOUNT_KEY` | Path to service account JSON key file | No (uses ADC if not set) |
**Authentication Methods:**
1. **Application Default Credentials (ADC)** - Recommended for development
```bash
# Setup ADC
gcloud auth application-default login
# Configure Hindsight
export HINDSIGHT_API_LLM_PROVIDER=vertexai
export HINDSIGHT_API_LLM_MODEL=gemini-2.0-flash-001
export HINDSIGHT_API_LLM_VERTEXAI_PROJECT_ID=your-project-id
```
2. **Service Account Key** - Recommended for production
```bash
# Create service account and download key
gcloud iam service-accounts create hindsight-api
gcloud projects add-iam-policy-binding your-project-id \
--member="serviceAccount:hindsight-api@your-project-id.iam.gserviceaccount.com" \
--role="roles/aiplatform.user"
gcloud iam service-accounts keys create key.json \
--iam-account=hindsight-api@your-project-id.iam.gserviceaccount.com
# Configure Hindsight
export HINDSIGHT_API_LLM_PROVIDER=vertexai
export HINDSIGHT_API_LLM_MODEL=gemini-2.0-flash-001
export HINDSIGHT_API_LLM_VERTEXAI_PROJECT_ID=your-project-id
export HINDSIGHT_API_LLM_VERTEXAI_SERVICE_ACCOUNT_KEY=/path/to/key.json
```
**Notes:**
- Model names can optionally include the `google/` prefix (e.g., `google/gemini-2.0-flash-001`) - it will be stripped automatically
- The native SDK handles token refresh automatically
- Uses service account credentials if provided, otherwise falls back to ADC
### Per-Operation LLM Configuration
Different memory operations have different requirements. **Retain** (fact extraction) benefits from models with strong structured output capabilities, while **Reflect** (reasoning/response generation) can use lighter, faster models. Configure separate LLM models for each operation to optimize for cost and performance.
@ -416,7 +475,6 @@ Observations are consolidated knowledge synthesized from facts.
| `HINDSIGHT_API_ENABLE_OBSERVATIONS` | Enable observation consolidation | `true` |
| `HINDSIGHT_API_CONSOLIDATION_BATCH_SIZE` | Memories to load per batch (internal optimization) | `50` |
| `HINDSIGHT_API_CONSOLIDATION_MAX_TOKENS` | Max tokens for recall when finding related observations during consolidation | `1024` |
| `HINDSIGHT_API_RETAIN_OBSERVATIONS_ASYNC` | Run observation generation asynchronously (after retain completes) | `false` |
### Reflect
@ -424,15 +482,29 @@ Observations are consolidated knowledge synthesized from facts.
|----------|-------------|---------|
| `HINDSIGHT_API_REFLECT_MAX_ITERATIONS` | Max tool call iterations before forcing a response | `10` |
### Local MCP Server
### MCP Server
Configuration for the local MCP server (`hindsight-local-mcp` command).
Configuration for MCP server endpoints.
| Variable | Description | Default |
|----------|-------------|---------|
| `HINDSIGHT_API_MCP_ENABLED` | Enable MCP server at `/mcp/{bank_id}/` | `true` |
| `HINDSIGHT_API_MCP_AUTH_TOKEN` | Bearer token for MCP authentication (optional) | - |
| `HINDSIGHT_API_MCP_LOCAL_BANK_ID` | Memory bank ID for local MCP | `mcp` |
| `HINDSIGHT_API_MCP_INSTRUCTIONS` | Additional instructions appended to retain/recall tool descriptions | - |
**MCP Authentication:**
By default, the MCP endpoint is open. For production deployments, set `HINDSIGHT_API_MCP_AUTH_TOKEN` to require Bearer token authentication:
```bash
export HINDSIGHT_API_MCP_AUTH_TOKEN=your-secret-token
```
Clients must then include the token in the `Authorization` header. See [MCP Server documentation](./mcp-server.md#authentication) for details.
**Local MCP instructions:**
```bash
# Example: instruct MCP to also store assistant actions
export HINDSIGHT_API_MCP_INSTRUCTIONS="Also store every action you take, including tool calls and decisions made."
@ -447,9 +519,10 @@ Configuration for background task processing. By default, the API processes task
| `HINDSIGHT_API_WORKER_ENABLED` | Enable internal worker in API process | `true` |
| `HINDSIGHT_API_WORKER_ID` | Unique worker identifier | hostname |
| `HINDSIGHT_API_WORKER_POLL_INTERVAL_MS` | Database polling interval in milliseconds | `500` |
| `HINDSIGHT_API_WORKER_BATCH_SIZE` | Tasks to claim per poll cycle | `10` |
| `HINDSIGHT_API_WORKER_MAX_RETRIES` | Max retries before marking task failed | `3` |
| `HINDSIGHT_API_WORKER_HTTP_PORT` | HTTP port for worker metrics/health (worker CLI only) | `8889` |
| `HINDSIGHT_API_WORKER_MAX_SLOTS` | Maximum concurrent tasks per worker | `10` |
| `HINDSIGHT_API_WORKER_CONSOLIDATION_MAX_SLOTS` | Maximum concurrent consolidation tasks per worker | `2` |
### Performance Optimization

View file

@ -25,6 +25,47 @@ To disable the MCP server, set the environment variable:
export HINDSIGHT_API_MCP_ENABLED=false
```
## Authentication
By default, the MCP endpoint is **open** for local development. For production deployments, enable authentication with a Bearer token:
```bash
export HINDSIGHT_API_MCP_AUTH_TOKEN=your-secret-token
```
When authentication is enabled, all MCP requests must include a valid `Authorization` header:
**Claude Desktop config** (`.claude_desktop_config.json`):
```json
{
"mcpServers": {
"hindsight": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-http-client", "http://localhost:8888/mcp/alice/"],
"env": {
"HTTP_HEADERS": "{\"Authorization\": \"Bearer your-secret-token\"}"
}
}
}
}
```
**Claude Code config:**
```bash
claude mcp add --transport http hindsight http://localhost:8888/mcp/alice/ \
--header "Authorization: Bearer your-secret-token"
```
**Direct HTTP request:**
```bash
curl -X POST http://localhost:8888/mcp/alice/ \
-H "Authorization: Bearer your-secret-token" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
```
If the token is missing or invalid, requests will receive a `401 Unauthorized` response.
## Per-Bank Endpoints
Unlike traditional MCP servers where tools require explicit identifiers, Hindsight uses **per-bank endpoints**. The `bank_id` is part of the URL path, so tools don't need to specify which bank to use—it's implicit from the connection.

View file

@ -2,24 +2,23 @@
sidebar_position: 4
---
# Moltbot (Clawdbot)
# OpenClawd
Biomimetic long-term memory for [Moltbot](https://molt.bot) using [Hindsight](https://vectorize.io/hindsight). Automatically captures conversations and intelligently recalls relevant context.
Biomimetic long-term memory for [OpenClawd](https://openclawd.ai) using [Hindsight](https://vectorize.io/hindsight).
This plugin integrates [hindsight-embed](https://vectorize.io/hindsight/cli), a standalone daemon that bundles Hindsight's memory engine (API + PostgreSQL) into a single command. The plugin automatically manages the daemon lifecycle and provides hooks for seamless memory capture and recall.
## Quick Start
```bash
# 1. Install the plugin
npm install -g @vectorize-io/hindsight-moltbot-plugin
# 2. Configure your LLM provider
# 1. Configure your LLM provider
export OPENAI_API_KEY="sk-your-key"
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
# 3. Enable the plugin
clawdbot plugins enable hindsight-memory
# 2. Install and enable the plugin
clawdbot plugins install @vectorize-io/hindsight-openclawd
# 4. Start Moltbot
# 3. Start OpenClawd
clawdbot gateway
```
@ -39,10 +38,10 @@ Before each agent response, relevant memories are **automatically injected**:
- Injected into context with `<hindsight-context>` tags
- Agent seamlessly uses past context
## Understanding Moltbot Concepts
## Understanding OpenClawd Concepts
### Plugins
Extensions that add functionality to Moltbot. This Hindsight plugin:
Extensions that add functionality to OpenClawd. This Hindsight plugin:
- Runs a background service (manages `hindsight-embed` daemon)
- Registers hooks (automatic event handlers)
@ -57,7 +56,7 @@ Think of hooks as "forced automation" - they always run.
```
┌─────────────────────────────────────────┐
Moltbot Gateway │
OpenClawd Gateway │
│ │
│ ┌───────────────────────────────────┐ │
│ │ Hindsight Plugin │ │
@ -72,33 +71,33 @@ Think of hooks as "forced automation" - they always run.
uvx hindsight-embed
• Daemon on port 8889
• PostgreSQL (pg0)
• PostgreSQL (pg0://hindsight-embed)
• Bank: 'openclawd' (isolated within shared database)
• Fact extraction
```
**Database Architecture:** All banks share a single pg0 database instance (`pg0://hindsight-embed`). Bank isolation happens within the database via separate tables/schemas per bank ID. The 'openclawd' bank is automatically created when the plugin stores its first memory.
## Installation
### Prerequisites
- **Node.js** 22+
- **Moltbot** (Clawdbot) with plugin support
- **OpenClawd** (Clawdbot) with plugin support
- **uv/uvx** for running `hindsight-embed`
- **LLM API key** (OpenAI, Anthropic, etc.)
### Setup
```bash
# 1. Install the plugin
npm install -g @vectorize-io/hindsight-moltbot-plugin
# 2. Configure your LLM provider
# 1. Configure your LLM provider
export OPENAI_API_KEY="sk-your-key"
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
# 3. Enable the plugin
clawdbot plugins enable hindsight-memory
# 2. Install and enable the plugin
clawdbot plugins install @vectorize-io/hindsight-openclawd
# 4. Start Moltbot
# 3. Start OpenClawd
clawdbot gateway
```
@ -113,7 +112,7 @@ Optional settings in `~/.clawdbot/clawdbot.json`:
{
"plugins": {
"entries": {
"hindsight-memory": {
"hindsight-openclawd": {
"enabled": true,
"config": {
"daemonIdleTimeout": 0
@ -128,6 +127,7 @@ Optional settings in `~/.clawdbot/clawdbot.json`:
- `daemonIdleTimeout` (number, default: `0`) - Seconds before daemon shuts down from inactivity (0 = never)
- `embedPort` (number, default: auto) - Port for embedded server
- `bankMission` (string, default: none) - Custom context for the memory bank
- `embedVersion` (string, default: `"latest"`) - hindsight-embed version to use (e.g., `"latest"`, `"0.4.2"`, or leave empty for latest). Use this to pin a specific version if latest is broken.
## Supported LLM Providers
@ -156,7 +156,7 @@ clawdbot plugins list | grep hindsight
```
**Test auto-recall:**
Send a message on any Moltbot channel (Telegram, Slack, etc.):
Send a message on any OpenClawd channel (Telegram, Slack, etc.):
```
User: My name is John and I love pizza
Bot: Got it! I'll remember that.
@ -172,7 +172,55 @@ tail -f ~/.hindsight/daemon.log
**Check memories in database:**
```bash
uvx hindsight-embed memory recall moltbot "pizza" --output json
uvx hindsight-embed@latest memory recall openclawd "pizza" --output json
```
## Inspecting Memories
The plugin uses `hindsight-embed` daemon which provides CLI commands for inspection:
**View daemon logs:**
```bash
uvx hindsight-embed@latest daemon logs
# Or follow logs in real-time:
tail -f ~/.hindsight/daemon.log
```
**Open web UI:**
```bash
uvx hindsight-embed@latest ui
# Opens browser to http://localhost:8890
# Browse memories, facts, entities, and relationships
```
**List memory banks:**
```bash
uvx hindsight-embed@latest bank list
# Shows all banks including 'openclawd'
```
**Query memories:**
```bash
# Search memories
uvx hindsight-embed@latest memory recall openclawd "user preferences" --output json
# View recent memories
uvx hindsight-embed@latest memory list openclawd --limit 10
# Export all memories
uvx hindsight-embed@latest memory export openclawd --output memories.json
```
**Inspect facts and entities:**
```bash
# List extracted facts
uvx hindsight-embed@latest fact list openclawd
# List entities
uvx hindsight-embed@latest entity list openclawd
# Show entity relationships
uvx hindsight-embed@latest entity graph openclawd
```
## Troubleshooting
@ -180,20 +228,19 @@ uvx hindsight-embed memory recall moltbot "pizza" --output json
**Plugin not loading?**
```bash
# Check plugin installation
npm list -g @vectorize-io/hindsight-moltbot-plugin
clawdbot plugins list | grep -i hindsight
# Reinstall if needed
npm install -g @vectorize-io/hindsight-moltbot-plugin
clawdbot plugins enable hindsight-memory
clawdbot plugins install @vectorize-io/hindsight-openclawd
```
**Daemon not starting?**
```bash
# Check daemon status
uvx hindsight-embed daemon status
uvx hindsight-embed@latest daemon status
# Manually start
uvx hindsight-embed daemon start
uvx hindsight-embed@latest daemon start
# View logs
tail -f ~/.hindsight/daemon.log
@ -224,7 +271,7 @@ tail -f /tmp/clawdbot/clawdbot-*.log | grep Hindsight
```bash
# Clone repo
git clone https://github.com/vectorize-io/hindsight.git
cd hindsight/hindsight-integrations/moltbot
cd hindsight/hindsight-integrations/openclawd
# Install dependencies
npm install
@ -242,7 +289,7 @@ npm run build && ./install.sh
## Requirements
- **Node.js** 22+
- **Moltbot** (Clawdbot) with plugin support
- **OpenClawd** (Clawdbot) with plugin support
- **uv/uvx** for running `hindsight-embed`
- **LLM API key** (OpenAI, Anthropic, etc.)
@ -253,5 +300,5 @@ MIT
## Links
- [Hindsight Documentation](https://vectorize.io/hindsight)
- [Moltbot Documentation](https://docs.molt.bot)
- [OpenClawd Documentation](https://openclawd.ai)
- [GitHub Repository](https://github.com/vectorize-io/hindsight)

View file

@ -1,3 +1,3 @@
"""Hindsight embedded CLI - local memory operations without a server."""
__version__ = "0.4.2"
__version__ = "0.4.3"

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "hindsight-embed"
version = "0.4.2"
version = "0.4.3"
description = "Hindsight embedded CLI - local memory operations without a server"
readme = "README.md"
requires-python = ">=3.11"

View file

@ -1,6 +1,6 @@
[project]
name = "hindsight-litellm"
version = "0.4.2"
version = "0.4.3"
description = "Universal LLM memory integration via LiteLLM - works with 100+ providers"
readme = "README.md"
requires-python = ">=3.10"

View file

@ -1,6 +1,6 @@
{
"name": "@vectorize-io/hindsight-openclawd",
"version": "0.0.5",
"version": "0.4.3",
"description": "Hindsight memory plugin for OpenClawd - biomimetic long-term memory with fact extraction",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View file

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "hindsight-all"
version = "0.4.2"
version = "0.4.3"
description = "Hindsight: Agent Memory That Works Like Human Memory - All-in-One Bundle"
readme = "README.md"
requires-python = ">=3.11"