Repository navigation
Conversation
Member
LangChain Contract ScoreLangChain 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 ReportLangChain 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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