Skip to content

[P1] Sprint 2.2b: LangChain Memory for Session State (Detailed) #172

@ariffazil

Description

@ariffazil

Objective

Use LangChain memory modules for cross-tool session persistence.

Repository

https://github.com/langchain-ai/langchain

Effort

3 days

Implementation

Constitutional Memory Class

from langchain.memory import ConversationBufferMemory

class ConstitutionalMemory:
    def __init__(self, session_id: str):
        self.memory = ConversationBufferMemory(
            memory_key="session_state",
            return_messages=True
        )
    
    async def add_stage(self, stage: str, result: dict):
        """Store stage results (111→222→333→...)"""
        self.memory.save_context(
            {"stage": stage},
            {"result": result}
        )
    
    async def get_context(self) -> dict:
        """Retrieve full session context"""
        return self.memory.load_memory_variables({})

Tool Integration

@mcp.tool()
async def agi_sense(query: str, session_id: str) -> dict:
    memory = ConstitutionalMemory(session_id)
    result = await sense_logic(query)
    await memory.add_stage("111_sense", result)
    return result

Subtasks

  • Install LangChain: pip install langchain langchain-community
  • Create codebase/memory/session.py
  • Implement ConstitutionalMemory class
  • Integrate with all 9 MCP tools
  • Add cross-tool state chaining
  • Test session persistence

Acceptance Criteria

Files Changed

  • codebase/memory/session.py (new)
  • All tool files in mcp_server/tools/*.py

Blockers

None (enhanced by #166)

Related

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions