Spaces:
Running
Running
| """ | |
| State schema for DS-STAR multi-agent system. | |
| Defines the centralized state structure shared across all agents. | |
| """ | |
| import operator | |
| from typing import Annotated, List, TypedDict | |
| from langchain_core.messages import AIMessage, HumanMessage | |
| class PlanStep(TypedDict): | |
| """Individual plan step with number and description""" | |
| step_number: int | |
| description: str | |
| class DSStarState(TypedDict): | |
| """ | |
| Centralized state for DS-STAR pipeline. | |
| This state is passed between all agents in the graph. | |
| Uses reducer pattern for message accumulation. | |
| """ | |
| # User input | |
| query: str | |
| # Data file descriptions (from Stage 1 - Analyzer) | |
| data_descriptions: dict[str, str] | |
| # Current plan - list of completed steps | |
| # NO REDUCER - we need full control for backtracking | |
| plan: List[PlanStep] | |
| # Code and execution | |
| current_code: str | |
| execution_result: str | |
| # Verification and routing | |
| is_sufficient: bool | |
| router_decision: str # "Add Step" or "Step N" | |
| # Iteration tracking | |
| iteration: int | |
| max_iterations: int | |
| # Messages for agent communication (accumulated with reducer) | |
| messages: Annotated[List[HumanMessage | AIMessage], operator.add] | |
| # Next node routing (for internal control flow) | |
| next: str | |
| # LLM instance (shared across all agents) | |
| llm: object | |