* fix(llamaindex): use uuid for document_id and sync version metadata - Replace timestamp-based document_id with uuid4 hex to prevent collisions on rapid retains (timestamp_ms can duplicate in tight loops) - Sync __version__ in __init__.py to match pyproject.toml (0.1.2) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(docs): pass memory to run() instead of ReActAgent constructor LlamaIndex 0.14.x ReActAgent does not accept a memory parameter in its constructor — it's silently dropped via **kwargs. Memory must be passed to agent.run(memory=...) where AgentWorkflow picks it up. Also fixes the undefined `tools` variable (now `tools=[]`). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(llamaindex): strip ReAct reasoning traces from retained assistant messages HindsightMemory.put/aput now extracts only the final Answer: text from assistant messages containing ReAct reasoning (Thought:/Action:/Observation: prefixes), preventing internal reasoning traces from polluting long-term memory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(llamaindex): fix docstring example to pass memory to run() The HindsightMemory class docstring showed the broken pattern of passing memory= to the ReActAgent constructor, which silently drops it. Updated to show the correct pattern: pass memory to agent.run(). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| hindsight_llamaindex | ||
| tests | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
hindsight-llamaindex
LlamaIndex integration for Hindsight — persistent long-term memory for AI agents.
Provides two complementary patterns:
- Tools (
HindsightToolSpec) — Agent-driven memory via LlamaIndex'sBaseToolSpec. The agent decides when to retain/recall/reflect. - Memory (
HindsightMemory) — Automatic memory via LlamaIndex'sBaseMemoryinterface. Messages are stored on every turn and recalled as context.
Installation
pip install hindsight-llamaindex
Quick Start: Agent Tools
import asyncio
from hindsight_client import Hindsight
from hindsight_llamaindex import HindsightToolSpec
from llama_index.llms.openai import OpenAI
from llama_index.core.agent import ReActAgent
async def main():
client = Hindsight(base_url="http://localhost:8888")
spec = HindsightToolSpec(
client=client,
bank_id="user-123",
mission="Track user preferences",
)
tools = spec.to_tool_list()
agent = ReActAgent(tools=tools, llm=OpenAI(model="gpt-4o"))
response = await agent.run("Remember that I prefer dark mode")
print(response)
asyncio.run(main())
Quick Start: Automatic Memory
from hindsight_client import Hindsight
from hindsight_llamaindex import HindsightMemory
client = Hindsight(base_url="http://localhost:8888")
memory = HindsightMemory.from_client(
client=client,
bank_id="user-123",
mission="Track user preferences",
)
agent = ReActAgent(tools=tools, llm=llm, memory=memory)
Configuration
from hindsight_llamaindex import configure
configure(
hindsight_api_url="http://localhost:8888",
api_key="your-api-key",
budget="mid",
tags=["source:llamaindex"],
context="my-app",
mission="Track user preferences",
)
Requirements
- Python 3.10+
llama-index-core >= 0.11.0hindsight-client >= 0.4.0