mirror of
https://github.com/MODSetter/SurfSense.git
synced 2025-09-02 02:29:08 +00:00
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
"""Define the state structures for the agent."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass, field
|
|
from typing import List, Optional, Any, Dict, Annotated
|
|
from sqlalchemy.ext.asyncio import AsyncSession, AsyncEngine
|
|
from langchain_core.messages import BaseMessage, HumanMessage
|
|
from pydantic import BaseModel
|
|
|
|
@dataclass
|
|
class State:
|
|
"""Defines the dynamic state for the agent during execution.
|
|
|
|
This state tracks the database session and the outputs generated by the agent's nodes.
|
|
See: https://langchain-ai.github.io/langgraph/concepts/low_level/#state
|
|
for more information.
|
|
"""
|
|
# Runtime context (not part of actual graph state)
|
|
db_session: AsyncSession
|
|
engine: Optional[AsyncEngine] = None
|
|
|
|
# Intermediate state - populated during workflow
|
|
# Using field to explicitly mark as part of state
|
|
answer_outline: Optional[Any] = field(default=None)
|
|
|
|
# OUTPUT: Populated by agent nodes
|
|
# Using field to explicitly mark as part of state
|
|
final_written_report: Optional[str] = field(default=None)
|
|
|