🐺
LangGraphのStreamをGitHub Actions Job Summaryへ表示する
はじめに
LangGraphを使用したAIワークフローの処理結果をGitHub ActionsのJob Summaryに表示させた話です。
Claude Code の actions とか見ていると見やすかったので試してみました。
主な流れ
LangGraphのストリーミング機能を利用し、chunk単位で処理結果を受け取りながら、GitHub ActionsのJob Summaryに連携していきます。
LangGraph
Job Summary
実装
ここでは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
LangChain OpenAI Integration
まとめ
GitHub Actions 上でAgentの挙動を見える化するために、Job Summaryへ中継すると実行結果がパッと見えるので便利な所感です。
Discussion