Metadata-Version: 2.4
Name: progress-memory-langchain
Version: 0.1.0
Summary: LangChain integration for the Progress Memory SDK
Author: Progress Software Corporation
License: Copyright © Progress Software Corporation
License-File: notices.txt
Requires-Python: >=3.11
Requires-Dist: jinja2>=3.1.5
Requires-Dist: langchain-core>=0.3
Requires-Dist: progress-memory>=0.1.0
Requires-Dist: pydantic>=2.0
Requires-Dist: pygments>=2.20.0
Requires-Dist: pyopenssl>=26.3.0
Requires-Dist: urllib3>=2.2.2
Provides-Extra: dev
Requires-Dist: langchain-openai>=0.2; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Description-Content-Type: text/markdown

# progress-memory-langchain

LangChain integration for the [Progress Memory](https://www.progress.com) SDK.

Provides two integration tiers:

**`ProgressMemoryTools` ⭐ recommended for production** — exposes `remember`, `recall`, and `forget` as LLM-callable `StructuredTool` objects. The LLM decides when to invoke each one — token-efficient and semantically accurate.

**`ProgressMemoryLangChainMemory`** (quick start) — automatically recalls memories before every LLM call and saves each exchange after.

## Quick start — Tools (production)

```python
from progress_memory import ProgressMemoryClient, ProgressMemoryConfig
from progress_memory_langchain import ProgressMemoryTools

config = ProgressMemoryConfig.from_env()
client = ProgressMemoryClient(config)

tools_provider = ProgressMemoryTools(client=client, user_id="user-123", agent_id="bot")
tools = tools_provider.create_tools()  # [remember, recall, forget]
```

## Quick start — Automatic memory (demos)

```python
from progress_memory_langchain import ProgressMemoryLangChainMemory

memory = ProgressMemoryLangChainMemory(
    client=client, user_id="user-123", agent_id="bot", auto_remember=True
)
chain_with_memory = memory.wrap(chain)
response = chain_with_memory.invoke({"input": "What are my preferences?"})
```
