File size: 1,227 Bytes
782bbd9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from typing_extensions import TypedDict, Annotated, Sequence, List
from langchain_core.messages import BaseMessage
from langgraph.graph.message import add_messages
from langchain_core.tools import tool 
from pydantic import BaseModel, Field
import operator 

class ExecutorState(TypedDict):
    """
    State for the executor agent containing message history and research metadata.
    """
    executor_messages: Annotated[Sequence[BaseMessage], add_messages]
    execution_job: str
    executor_data: List[str]

class ExecutorOutputState(TypedDict):
    """
    Output state for the executor agent containing final executor results.
    """
    output: str
    executor_data: List[str]
    executor_messages: Annotated[Sequence[BaseMessage], add_messages]


class PlannerOutput(BaseModel):
    """Simplified output for the planner that only returns execution jobs"""
    executor_jobs: List[str] = Field(description="List of execution jobs to be completed")

class MasterState(TypedDict):
    """Master orchestrator state"""
    query_brief: str
    execution_jobs: List[str]
    completed_jobs: Annotated[List[str], operator.add]
    worker_outputs: Annotated[List[ExecutorOutputState], operator.add]
    final_output: str