Skip to content

feat: implement powermem langchain middleware - #1169

Closed
aayc123 wants to merge 1 commit into
oceanbase:vldb_2026from
7774596:vldb_2026
Closed

aayc123 wants to merge 1 commit into
oceanbase:vldb_2026from
7774596:vldb_2026

Conversation

@aayc123

@aayc123 aayc123 commented Jul 14, 2026

Copy link
Copy Markdown

Summary

Implement PowerMemMiddleware to integrate PowerMem as a long-term memory layer for LangChain v1 agents via middleware hooks.

Solution Description

PowerMemMiddleware uses LangChain v1 middleware hooks to connect PowerMem with create_agent.
In before_agent, it searches PowerMem with the latest user message and injects relevant memories into the model context as a SystemMessage. In after_agent, it writes the user message and assistant reply back to PowerMem when save_interactions=True. Search failures are handled fail-open, and async calls are supported through abefore_agent and aafter_agent. User identity always comes from the explicit user_id constructor argument.

Team

Dase314

@CLAassistant

CLAassistant commented Jul 14, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@LINxiansheng

Copy link
Copy Markdown
Member

LangChain Contract Score

LangChain Contract Score
========================
score: 100.00 / 100
suites: 2
rule: A weighted capability receives credit only when it passes on every configured Python suite and all declared prerequisite capabilities also receive credit. Gate tests are reported but do not add points.

Public import contract: PASS (gate)
  py311: passed
  py312: passed
Retrieve memory before model call: PASS (35/35)
  py311: passed
  py312: passed
Persist interaction after agent run: PASS (25/25)
  py311: passed
  py312: passed
Disable interaction persistence: PASS (10/10)
  py311: passed
  py312: passed
Fail-open on search error: PASS (15/15)
  py311: passed
  py312: passed
Async memory injection: PASS (15/15)
  py311: passed
  py312: passed

LangChain Contract Report

LangChain Contract Report
=========================
score: 100.00 / 100
rule: A weighted capability receives credit only when it passes on every configured Python suite and all declared prerequisite capabilities also receive credit. Gate tests are reported but do not add points.

Suite Summary
-------------
py311: passed=6/6, failures=0, errors=0, skipped=0
py312: passed=6/6, failures=0, errors=0, skipped=0

Gate Checks
-----------
Public import contract [gate] PASS
  - py311: passed
  - py312: passed

Weighted Breakdown
------------------
Retrieve memory before model call [35/35] PASS
  - py311: passed
  - py312: passed
Persist interaction after agent run [25/25] PASS
  - py311: passed
  - py312: passed
Disable interaction persistence [10/10] PASS
  - py311: passed
  - py312: passed
Fail-open on search error [15/15] PASS
  - py311: passed
  - py312: passed
Async memory injection [15/15] PASS
  - py311: passed
  - py312: passed

Workflow run

@PsiACE PsiACE added the vldb 2026 VLDB 2026 contributions label Jul 14, 2026 — with ChatGPT Codex Connector
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

vldb 2026 VLDB 2026 contributions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants