ForcePilot/src/agents/registry.py

39 lines
1.2 KiB
Python
Raw Normal View History

2025-03-24 19:07:51 +08:00
from typing import Type, Annotated, Optional, TypedDict
from abc import abstractmethod
from langchain_openai import ChatOpenAI
2025-03-25 05:40:07 +08:00
from langchain_core.messages import BaseMessage
2025-03-24 19:07:51 +08:00
from langgraph.graph.state import CompiledStateGraph
2025-03-25 05:40:07 +08:00
from langgraph.graph.message import add_messages
2025-03-24 19:07:51 +08:00
from dataclasses import dataclass
class State(TypedDict):
"""
定义一个基础 State 各类 graph 继承, 其中:
1. messages 为所有 graph 的核心信息队列, 所有聊天工作流均应该将关键信息补充到此队列中;
2. history 为所有工作流单次启动时获取 history_len messages 所用(节约成本, 及防止单轮对话 tokens 占用长度达到 llm 支持上限),
history 中的信息理应是可以被丢弃的.
"""
messages: Annotated[list[BaseMessage], add_messages]
history: Optional[list[BaseMessage]]
@dataclass(kw_only=True)
class Configuration:
"""
定义一个基础 Configuration 各类 graph 继承
"""
2025-03-25 05:40:07 +08:00
pass
2025-03-24 19:07:51 +08:00
class BaseAgent():
def __init__(self, configuration: Configuration):
self.configuration = configuration
@abstractmethod
def get_graph(self) -> CompiledStateGraph:
pass