0xf

日記だよ

LangGraphの graph#steamの戻り値は dict[str,Any]より詳細にはできない

無念である。

    def stream(
        self,
        input: InputT | Command | None,
        config: RunnableConfig | None = None,
        *,
        context: ContextT | None = None,
        stream_mode: StreamMode | Sequence[StreamMode] | None = None,
        print_mode: StreamMode | Sequence[StreamMode] = (),
        output_keys: str | Sequence[str] | None = None,
        interrupt_before: All | Sequence[str] | None = None,
        interrupt_after: All | Sequence[str] | None = None,
        durability: Durability | None = None,
        subgraphs: bool = False,
        debug: bool | None = None,
        **kwargs: Unpack[DeprecatedKwargs],
    ) -> Iterator[dict[str, Any] | Any]:

invokeBaseMessageより詳しくできない。ステートの型とか指定できない。

    @override
    def invoke(
        self,
        input: LanguageModelInput,
        config: Optional[RunnableConfig] = None,
        *,
        stop: Optional[list[str]] = None,
        **kwargs: Any,
    ) -> BaseMessage:

そのため、せっかくステート型を定義してやりとりするのだけど肝心のど真ん中で型定義を活用できないのがもったいない。グラフをビルドするときに循環構造を検出してくれたりするので、python コードはグラフを構築するDSLでしかない、みたいな立て付けなのかも。