🐺

LangGraphのStreamをGitHub Actions Job Summaryへ表示する

に公開

はじめに

LangGraphを使用したAIワークフローの処理結果をGitHub ActionsのJob Summaryに表示させた話です。
Claude Code の actions とか見ていると見やすかったので試してみました。

主な流れ

LangGraphのストリーミング機能を利用し、chunk単位で処理結果を受け取りながら、GitHub ActionsのJob Summaryに連携していきます。

LangGraph
https://docs.langchain.com/oss/python/langgraph/overview

Job Summary
https://zenn.dev/tetoteto/articles/github_actions_summary_md_ex

実装

ここではPythonを使用した実装例を紹介します。
また、パッケージマネージャーはuvを使用しています。

環境構築

まず必要なパッケージをインストールします:

uv add langgraph langchain-openai

実装

基本的に環境変数に設定されているGITHUB_STEP_SUMMARYに対して追記することで、GitHub Actionsのジョブサマリーに反映されます。

# 省略

def update_github_summary(content: str):
    """GitHub Actions Summaryを更新する関数"""
    summary_file = os.environ.get('GITHUB_STEP_SUMMARY')
    if summary_file:
        with open(summary_file, 'a', encoding='utf-8') as f:
            f.write(f"{content}\n")
    else:
        print(content)  # ローカル実行時は標準出力

# 省略

builder = StateGraph(State, input=Input, output=Output)

# 必要なノードやエッジの追加
# 省略

workflow = builder.compile()
# ワークフローの実行(ストリーミング)
for step in workflow.stream(initial_state):
    node_name = list(step.keys())[0]
    update_github_summary(f"**完了ノード**: {node_name}")

GitHub Actionsのワークフローファイルでこのスクリプトを実行すれば、Job Summaryに結果が反映されます。

openai-python
https://github.com/openai/openai-python

LangChain OpenAI Integration
https://docs.langchain.com/oss/python/integrations/chat/openai#chatopenai

まとめ

GitHub Actions 上でAgentの挙動を見える化するために、Job Summaryへ中継すると実行結果がパッと見えるので便利な所感です。

Discussion