feat: Implemented memory persistent
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
from langgraph.graph import StateGraph, START, END
|
||||
from langchain_core.messages import SystemMessage, ToolMessage, BaseMessage
|
||||
from langgraph.checkpoint.base import BaseCheckpointSaver
|
||||
from langgraph.checkpoint.memory import InMemorySaver
|
||||
from langchain_core.runnables import RunnableConfig
|
||||
from typing import Literal, Callable, Any
|
||||
from typing import Literal, Callable, Any, Union
|
||||
from .schemas import MessagesState
|
||||
from dataclasses import dataclass
|
||||
import logging
|
||||
@@ -30,7 +31,7 @@ class Agent:
|
||||
self,
|
||||
model: Any,
|
||||
config: AgentConfig | None = None,
|
||||
checkpointer: InMemorySaver | None = None,
|
||||
checkpointer: Union[BaseCheckpointSaver, None] = None,
|
||||
tools: list | None = None
|
||||
):
|
||||
"""
|
||||
@@ -72,6 +73,19 @@ class Agent:
|
||||
"""Expone el grafo para inspección en tests."""
|
||||
return self._build_agent()
|
||||
|
||||
async def ainvoke(self, state: dict, config: RunnableConfig | None = None) -> dict:
|
||||
"""
|
||||
Versión asíncrona de invoke, necesaria para checkpointers de DB.
|
||||
"""
|
||||
if not config:
|
||||
config: RunnableConfig = {"configurable": {"thread_id": "default"}}
|
||||
|
||||
if "messages" not in state:
|
||||
raise ValueError("State must contain 'messages' key")
|
||||
|
||||
# Llamamos al método ainvoke del grafo compilado
|
||||
return await self._compiled_agent.ainvoke(state, config=config)
|
||||
|
||||
def invoke(self, state: dict, config: RunnableConfig | None = None) -> dict:
|
||||
"""
|
||||
Ejecuta el agente con el estado inicial.
|
||||
|
||||
Reference in New Issue
Block a user