Skip to content

This project is a simple Table Talk RPG (TRPG) game master (GM) agent built using LangChain and LangGraph. Users can experience a “light TRPG” in which they interact with an AI (GM) on the console to advance the story.

License

Notifications You must be signed in to change notification settings

edo1z/light-trpg-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Light TRPG Agent

このプロジェクトは、LangChain とLangGraph を利用して構築した、シンプルなテーブルトークRPG(TRPG)のゲームマスター(GM)エージェントです。

コンソール上でユーザーがAI(GM)と対話しながら物語を進める「ライトTRPG」を体験できます。

特徴

  • LangChain / LangGraph を活用した対話型エージェント構成
  • roll_dice ツール によるサイコロ判定
  • update_game_state ツール によるプレイヤーの HP・アイテム・ターン数の更新
  • プロンプト制御 で無限ループや連続ツール呼び出しを制限(シンプルに安定動作)
  • ステート管理 でターン数・HP・アイテム・セッション終了を制御

必要な環境 / バージョン

  • Python 3.10 以上(3.12 など最新でも可)
  • Poetryでのパッケージ管理を推奨
  • 主なライブラリ
    • langgraph
    • langchain-openai
    • langchain-community
    • python-dotenv

セットアップ手順

  1. リポジトリをクローン / ダウンロード
git clone <このリポジトリのURL>
cd light-trpg-agent
  1. Python の仮想環境を作成し、必要パッケージをインストール
poetry install
  1. .env ファイルの用意
  • OpenAI API キーを指定する .env を作成し、以下のように環境変数を設定
OPENAI_API_KEY=sk-***********
  • .env ファイルをプロジェクト直下に置く

実行方法

poetry run python light-trpg-agent.py
  • 実行すると、コンソール上で「TRPGセッション開始」のメッセージが表示され、AI が順次プロンプトを出してきます。
  • はじめに下記のような流れが提示されるはずです(ジャンル / 主人公名 / 世界観 / 目標 / ターン数などを質問される)。
  • 入力を行うと、AI がサイコロを振って初期 HP やアイテムを決定 → 物語の序盤シーンを描写 → 以後、ターン数をカウントしながら物語が進みます。

遊び方

  1. 初期設定
    • AI が「ジャンルは?」「主人公の名前は?」など質問してくるので、コンソールに回答します。
    • 続いて AI がサイコロ(roll_dice ツール)を呼び出し、初期 HP とアイテムをランダムに決定します。
  2. 行動コマンド
    • 毎ターン、ユーザーが「扉を開ける」「敵を攻撃」「アイテムを使う」など好きなアクションを入力してください。
    • AI は状況に応じてサイコロ判定 (roll_dice) を行い、update_game_state ツールを呼び出して HP やターン数を更新します。
  3. セッション終了
    • ターン数が指定した上限 (max_turns) に到達したらセッションが終了します。
    • 終了時は AI がストーリー要約を表示してくれます(プロンプトに基づく動き)。

カスタマイズ

  • プロンプト
    • light-trpg-agent.py 内のシステムプロンプトを編集することで、より細かいルールを指定可能です。
    • 例: 「敵を倒すときは 2d6+3 の判定を行う」「ターン数が経過するとイベントが発生する」など。
  • ツール
    • roll_dice 内を変更し、2d6+筋力 ボーナスなどの解析ロジックを追加するとバリエーションが増えます。
    • update_game_state でアイテムのステータスや HP が 0 以下の場合の処理などを加えられます。
  • UI / フロントエンド
    • コンソールベースのやり取りをブラウザUI (SvelteKit / Streamlit 等) に切り替えるだけで、インタラクティブな体験が可能になります。

ライセンス

本プロジェクトは MIT License の下で公開されています。 詳細は LICENSE ファイルをご覧ください。

About

This project is a simple Table Talk RPG (TRPG) game master (GM) agent built using LangChain and LangGraph. Users can experience a “light TRPG” in which they interact with an AI (GM) on the console to advance the story.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages