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:
parent
f4f86e3842
commit
7d3ac5ddb9
17 changed files with 213 additions and 52 deletions
|
|
@ -2,8 +2,8 @@ apiVersion: v2
|
||||||
name: hindsight
|
name: hindsight
|
||||||
description: Hindsight helm chart
|
description: Hindsight helm chart
|
||||||
type: application
|
type: application
|
||||||
version: 0.4.2
|
version: 0.4.3
|
||||||
appVersion: "0.4.2"
|
appVersion: "0.4.3"
|
||||||
keywords:
|
keywords:
|
||||||
- ai
|
- ai
|
||||||
- memory
|
- memory
|
||||||
|
|
|
||||||
|
|
@ -46,4 +46,4 @@ __all__ = [
|
||||||
"RemoteTEICrossEncoder",
|
"RemoteTEICrossEncoder",
|
||||||
"LLMConfig",
|
"LLMConfig",
|
||||||
]
|
]
|
||||||
__version__ = "0.4.2"
|
__version__ = "0.4.3"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-api"
|
name = "hindsight-api"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Hindsight: Agent Memory That Works Like Human Memory"
|
description = "Hindsight: Agent Memory That Works Like Human Memory"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "hindsight-cli"
|
name = "hindsight-cli"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Hindsight Team"]
|
authors = ["Hindsight Team"]
|
||||||
description = "A beautiful CLI for Hindsight - semantic memory system"
|
description = "A beautiful CLI for Hindsight - semantic memory system"
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
""" # noqa: E501
|
""" # noqa: E501
|
||||||
|
|
||||||
|
|
||||||
__version__ = "0.0.7"
|
__version__ = "0.4.3"
|
||||||
|
|
||||||
# import apis into sdk package
|
# import apis into sdk package
|
||||||
from hindsight_client_api.api.banks_api import BanksApi
|
from hindsight_client_api.api.banks_api import BanksApi
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-client"
|
name = "hindsight-client"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Python client for Hindsight - Semantic memory system with personality-driven thinking"
|
description = "Python client for Hindsight - Semantic memory system with personality-driven thinking"
|
||||||
authors = [
|
authors = [
|
||||||
{name = "Hindsight Team"}
|
{name = "Hindsight Team"}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@vectorize-io/hindsight-client",
|
"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",
|
"description": "TypeScript client for Hindsight - Semantic memory system with personality-driven thinking",
|
||||||
"main": "./dist/src/index.js",
|
"main": "./dist/src/index.js",
|
||||||
"types": "./dist/src/index.d.ts",
|
"types": "./dist/src/index.d.ts",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@vectorize-io/hindsight-control-plane",
|
"name": "@vectorize-io/hindsight-control-plane",
|
||||||
"version": "0.4.2",
|
"version": "0.4.3",
|
||||||
"description": "Control plane for Hindsight - Semantic memory system",
|
"description": "Control plane for Hindsight - Semantic memory system",
|
||||||
"bin": {
|
"bin": {
|
||||||
"hindsight-control-plane": "./bin/cli.js"
|
"hindsight-control-plane": "./bin/cli.js"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-dev"
|
name = "hindsight-dev"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Development utilities for Hindsight"
|
description = "Development utilities for Hindsight"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ hindsight-admin run-db-migration --schema tenant_acme
|
||||||
|
|
||||||
| Variable | Description | Default |
|
| 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_API_KEY` | API key for LLM provider | - |
|
||||||
| `HINDSIGHT_API_LLM_MODEL` | Model name | `gpt-5-mini` |
|
| `HINDSIGHT_API_LLM_MODEL` | Model name | `gpt-5-mini` |
|
||||||
| `HINDSIGHT_API_LLM_BASE_URL` | Custom LLM endpoint | Provider default |
|
| `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_API_KEY=sk-ant-xxxxxxxxxxxx
|
||||||
export HINDSIGHT_API_LLM_MODEL=claude-sonnet-4-20250514
|
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)
|
# Ollama (local, no API key)
|
||||||
export HINDSIGHT_API_LLM_PROVIDER=ollama
|
export HINDSIGHT_API_LLM_PROVIDER=ollama
|
||||||
export HINDSIGHT_API_LLM_BASE_URL=http://localhost:11434/v1
|
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
|
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
|
### 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.
|
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_ENABLE_OBSERVATIONS` | Enable observation consolidation | `true` |
|
||||||
| `HINDSIGHT_API_CONSOLIDATION_BATCH_SIZE` | Memories to load per batch (internal optimization) | `50` |
|
| `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_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
|
### 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` |
|
| `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 |
|
| 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_LOCAL_BANK_ID` | Memory bank ID for local MCP | `mcp` |
|
||||||
| `HINDSIGHT_API_MCP_INSTRUCTIONS` | Additional instructions appended to retain/recall tool descriptions | - |
|
| `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
|
```bash
|
||||||
# Example: instruct MCP to also store assistant actions
|
# 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."
|
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_ENABLED` | Enable internal worker in API process | `true` |
|
||||||
| `HINDSIGHT_API_WORKER_ID` | Unique worker identifier | hostname |
|
| `HINDSIGHT_API_WORKER_ID` | Unique worker identifier | hostname |
|
||||||
| `HINDSIGHT_API_WORKER_POLL_INTERVAL_MS` | Database polling interval in milliseconds | `500` |
|
| `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_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_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
|
### Performance Optimization
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,47 @@ To disable the MCP server, set the environment variable:
|
||||||
export HINDSIGHT_API_MCP_ENABLED=false
|
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
|
## 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.
|
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.
|
||||||
|
|
|
||||||
|
|
@ -2,24 +2,23 @@
|
||||||
sidebar_position: 4
|
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
|
## Quick Start
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Install the plugin
|
# 1. Configure your LLM provider
|
||||||
npm install -g @vectorize-io/hindsight-moltbot-plugin
|
|
||||||
|
|
||||||
# 2. Configure your LLM provider
|
|
||||||
export OPENAI_API_KEY="sk-your-key"
|
export OPENAI_API_KEY="sk-your-key"
|
||||||
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
|
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
|
||||||
|
|
||||||
# 3. Enable the plugin
|
# 2. Install and enable the plugin
|
||||||
clawdbot plugins enable hindsight-memory
|
clawdbot plugins install @vectorize-io/hindsight-openclawd
|
||||||
|
|
||||||
# 4. Start Moltbot
|
# 3. Start OpenClawd
|
||||||
clawdbot gateway
|
clawdbot gateway
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -39,10 +38,10 @@ Before each agent response, relevant memories are **automatically injected**:
|
||||||
- Injected into context with `<hindsight-context>` tags
|
- Injected into context with `<hindsight-context>` tags
|
||||||
- Agent seamlessly uses past context
|
- Agent seamlessly uses past context
|
||||||
|
|
||||||
## Understanding Moltbot Concepts
|
## Understanding OpenClawd Concepts
|
||||||
|
|
||||||
### Plugins
|
### 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)
|
- Runs a background service (manages `hindsight-embed` daemon)
|
||||||
- Registers hooks (automatic event handlers)
|
- Registers hooks (automatic event handlers)
|
||||||
|
|
||||||
|
|
@ -57,7 +56,7 @@ Think of hooks as "forced automation" - they always run.
|
||||||
|
|
||||||
```
|
```
|
||||||
┌─────────────────────────────────────────┐
|
┌─────────────────────────────────────────┐
|
||||||
│ Moltbot Gateway │
|
│ OpenClawd Gateway │
|
||||||
│ │
|
│ │
|
||||||
│ ┌───────────────────────────────────┐ │
|
│ ┌───────────────────────────────────┐ │
|
||||||
│ │ Hindsight Plugin │ │
|
│ │ Hindsight Plugin │ │
|
||||||
|
|
@ -72,33 +71,33 @@ Think of hooks as "forced automation" - they always run.
|
||||||
↓
|
↓
|
||||||
uvx hindsight-embed
|
uvx hindsight-embed
|
||||||
• Daemon on port 8889
|
• Daemon on port 8889
|
||||||
• PostgreSQL (pg0)
|
• PostgreSQL (pg0://hindsight-embed)
|
||||||
|
• Bank: 'openclawd' (isolated within shared database)
|
||||||
• Fact extraction
|
• 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
|
## Installation
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
|
|
||||||
- **Node.js** 22+
|
- **Node.js** 22+
|
||||||
- **Moltbot** (Clawdbot) with plugin support
|
- **OpenClawd** (Clawdbot) with plugin support
|
||||||
- **uv/uvx** for running `hindsight-embed`
|
- **uv/uvx** for running `hindsight-embed`
|
||||||
- **LLM API key** (OpenAI, Anthropic, etc.)
|
- **LLM API key** (OpenAI, Anthropic, etc.)
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Install the plugin
|
# 1. Configure your LLM provider
|
||||||
npm install -g @vectorize-io/hindsight-moltbot-plugin
|
|
||||||
|
|
||||||
# 2. Configure your LLM provider
|
|
||||||
export OPENAI_API_KEY="sk-your-key"
|
export OPENAI_API_KEY="sk-your-key"
|
||||||
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
|
clawdbot config set 'agents.defaults.models."openai/gpt-4o-mini"' '{}'
|
||||||
|
|
||||||
# 3. Enable the plugin
|
# 2. Install and enable the plugin
|
||||||
clawdbot plugins enable hindsight-memory
|
clawdbot plugins install @vectorize-io/hindsight-openclawd
|
||||||
|
|
||||||
# 4. Start Moltbot
|
# 3. Start OpenClawd
|
||||||
clawdbot gateway
|
clawdbot gateway
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -113,7 +112,7 @@ Optional settings in `~/.clawdbot/clawdbot.json`:
|
||||||
{
|
{
|
||||||
"plugins": {
|
"plugins": {
|
||||||
"entries": {
|
"entries": {
|
||||||
"hindsight-memory": {
|
"hindsight-openclawd": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"config": {
|
"config": {
|
||||||
"daemonIdleTimeout": 0
|
"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)
|
- `daemonIdleTimeout` (number, default: `0`) - Seconds before daemon shuts down from inactivity (0 = never)
|
||||||
- `embedPort` (number, default: auto) - Port for embedded server
|
- `embedPort` (number, default: auto) - Port for embedded server
|
||||||
- `bankMission` (string, default: none) - Custom context for the memory bank
|
- `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
|
## Supported LLM Providers
|
||||||
|
|
||||||
|
|
@ -156,7 +156,7 @@ clawdbot plugins list | grep hindsight
|
||||||
```
|
```
|
||||||
|
|
||||||
**Test auto-recall:**
|
**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
|
User: My name is John and I love pizza
|
||||||
Bot: Got it! I'll remember that.
|
Bot: Got it! I'll remember that.
|
||||||
|
|
@ -172,7 +172,55 @@ tail -f ~/.hindsight/daemon.log
|
||||||
|
|
||||||
**Check memories in database:**
|
**Check memories in database:**
|
||||||
```bash
|
```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
|
## Troubleshooting
|
||||||
|
|
@ -180,20 +228,19 @@ uvx hindsight-embed memory recall moltbot "pizza" --output json
|
||||||
**Plugin not loading?**
|
**Plugin not loading?**
|
||||||
```bash
|
```bash
|
||||||
# Check plugin installation
|
# Check plugin installation
|
||||||
npm list -g @vectorize-io/hindsight-moltbot-plugin
|
clawdbot plugins list | grep -i hindsight
|
||||||
|
|
||||||
# Reinstall if needed
|
# Reinstall if needed
|
||||||
npm install -g @vectorize-io/hindsight-moltbot-plugin
|
clawdbot plugins install @vectorize-io/hindsight-openclawd
|
||||||
clawdbot plugins enable hindsight-memory
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Daemon not starting?**
|
**Daemon not starting?**
|
||||||
```bash
|
```bash
|
||||||
# Check daemon status
|
# Check daemon status
|
||||||
uvx hindsight-embed daemon status
|
uvx hindsight-embed@latest daemon status
|
||||||
|
|
||||||
# Manually start
|
# Manually start
|
||||||
uvx hindsight-embed daemon start
|
uvx hindsight-embed@latest daemon start
|
||||||
|
|
||||||
# View logs
|
# View logs
|
||||||
tail -f ~/.hindsight/daemon.log
|
tail -f ~/.hindsight/daemon.log
|
||||||
|
|
@ -224,7 +271,7 @@ tail -f /tmp/clawdbot/clawdbot-*.log | grep Hindsight
|
||||||
```bash
|
```bash
|
||||||
# Clone repo
|
# Clone repo
|
||||||
git clone https://github.com/vectorize-io/hindsight.git
|
git clone https://github.com/vectorize-io/hindsight.git
|
||||||
cd hindsight/hindsight-integrations/moltbot
|
cd hindsight/hindsight-integrations/openclawd
|
||||||
|
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
npm install
|
npm install
|
||||||
|
|
@ -242,7 +289,7 @@ npm run build && ./install.sh
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- **Node.js** 22+
|
- **Node.js** 22+
|
||||||
- **Moltbot** (Clawdbot) with plugin support
|
- **OpenClawd** (Clawdbot) with plugin support
|
||||||
- **uv/uvx** for running `hindsight-embed`
|
- **uv/uvx** for running `hindsight-embed`
|
||||||
- **LLM API key** (OpenAI, Anthropic, etc.)
|
- **LLM API key** (OpenAI, Anthropic, etc.)
|
||||||
|
|
||||||
|
|
@ -253,5 +300,5 @@ MIT
|
||||||
## Links
|
## Links
|
||||||
|
|
||||||
- [Hindsight Documentation](https://vectorize.io/hindsight)
|
- [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)
|
- [GitHub Repository](https://github.com/vectorize-io/hindsight)
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
"""Hindsight embedded CLI - local memory operations without a server."""
|
"""Hindsight embedded CLI - local memory operations without a server."""
|
||||||
|
|
||||||
__version__ = "0.4.2"
|
__version__ = "0.4.3"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-embed"
|
name = "hindsight-embed"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Hindsight embedded CLI - local memory operations without a server"
|
description = "Hindsight embedded CLI - local memory operations without a server"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-litellm"
|
name = "hindsight-litellm"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Universal LLM memory integration via LiteLLM - works with 100+ providers"
|
description = "Universal LLM memory integration via LiteLLM - works with 100+ providers"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@vectorize-io/hindsight-openclawd",
|
"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",
|
"description": "Hindsight memory plugin for OpenClawd - biomimetic long-term memory with fact extraction",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"types": "dist/index.d.ts",
|
"types": "dist/index.d.ts",
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "hindsight-all"
|
name = "hindsight-all"
|
||||||
version = "0.4.2"
|
version = "0.4.3"
|
||||||
description = "Hindsight: Agent Memory That Works Like Human Memory - All-in-One Bundle"
|
description = "Hindsight: Agent Memory That Works Like Human Memory - All-in-One Bundle"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue