AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
LangGraph で書いたエージェントが今どのノードを処理していて、ローカルLLMと何をやり取りしているかを1画面で見るビューア。Python標準ライブラリのみ、追加依存なし。MIT。
Translation pending
Developer toolsPython · MermaidGitHub @tobisakoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
LangGraph で書いたエージェントが今どのノードを処理し、ローカルLLMと何をやり取りしているかを1画面で見るビューア。Python標準ライブラリのみ・追加依存なし。同じ課題を解く CrewAI/AutoGen 実装と評価ハーネスも同梱。外部API費用ゼロ・MIT。
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
ローカルLLMだけで動く「資料検索+SQL集計」エージェントと、その動作を1手ずつ見せるビューア。 エージェントは中で何をしているか見えません。このリポジトリは、見えるようにしたら 何が分かったかを残したものです。同じ課題を LangGraph / CrewAI / AutoGen の3基盤で実装し、 共有層を固定して同一条件で比較しています。 推論も埋め込みもローカル(Ollama)で完結し、外部APIの費用は0円です。 • 公開ページ: https://tobisako.github.io/LangChainViewer/ • ライセンス: MIT • Python 3.12 以上 • Ollama(ローカル推論) data/ の中身は tools/make_sample_data.py がその場で乱数生成したものです。 外部から持ち込んだデータは1件も含まれません。乱数の種を固定しているので、 誰が実行しても同じデータ・同じ集計値になり、下の測定結果を再現できます。 個人を特定しうる列(zip_code / birthday / latitude / longitude / ma_lead_id)は 意図的に残してあります。安全機構が働くかどうかを試すために必要だからです。 3基盤は依存が同居できないので、venv を分けます。Read the full README ↗
ローカルLLMだけで動く「資料検索+SQL集計」エージェントと、その動作を1手ずつ見せるビューア。
エージェントは中で何をしているか見えません。このリポジトリは、見えるようにしたら 何が分かったかを残したものです。同じ課題を LangGraph / CrewAI / AutoGen の3基盤で実装し、 共有層を固定して同一条件で比較しています。
推論も埋め込みもローカル(Ollama)で完結し、外部APIの費用は0円です。
| 実況ビュー | グラフのノードが実行順に点灯し、LLMとの問答が毎回そのまま出る。標準ライブラリのみ(追加依存ゼロ) |
| 資料検索 | ベクトル類似度0.7+語一致0.3のハイブリッド検索。ベクトルDBは立てない(.npz 1本) |
| SQL集計 | 読み取り専用で開き、SELECT / WITH 以外は実行しない |
| 安全機構 | 入力の遮断 → 行動分類による許可制 → 出力検査 の3層 |
| ノード別モデル | 5つの処理に別々のモデルを割り当てられる。0.8GB〜54GBの構成を切り替えて比較できる |
| 比較ベンチ | 3基盤を同一の未見セットで測る。採点器も共有 |
ollama pull qwen2.5:7b
ollama pull nomic-embed-text
git clone https://github.com/tobisako/LangChainViewer.git
cd LangChainViewer
python3 -m venv .venv-langgraph
.venv-langgraph/bin/pip install -r requirements-langgraph.txt
python3 tools/make_sample_data.py # サンプルデータを生成する
.venv-langgraph/bin/python tools/build_index.py # 資料の索引を作る
data/ の中身は tools/make_sample_data.py がその場で乱数生成したものです。
外部から持ち込んだデータは1件も含まれません。乱数の種を固定しているので、
誰が実行しても同じデータ・同じ集計値になり、下の測定結果を再現できます。
個人を特定しうる列(zip_code / birthday / latitude / longitude / ma_lead_id)は
意図的に残してあります。安全機構が働くかどうかを試すために必要だからです。
.venv-langgraph/bin/python viewer/server.py
| URL | 何が見えるか |
|---|---|
| http://127.0.0.1:8765/ | 質問を入れて結果を見る |
| http://127.0.0.1:8765/live | 実況。ノードが順に点灯し、LLMとの問答が流れる |
| http://127.0.0.1:8765/live?i=3 | シナリオを1本だけ繰り返す |
3基盤は依存が同居できないので、venv を分けます。
.venv-langgraph/bin/python run_bench.py langgraph holdout
.venv-langgraph/bin/python run_bench.py langgraph safety
結果は results/*.csv に出ます。全問の判定・SQL・応答時間つきです。
POC_PROFILE=large .venv-langgraph/bin/python run_bench.py langgraph holdout
| 構成 | plan | retrieve | query | critique | report |
|---|---|---|---|---|---|
small(既定) | qwen2.5:1.5b | llama3.2:1b | qwen2.5-coder:1.5b | gemma3:1b | qwen2.5:7b |
large | 〃 | 〃 | qwen3:32b | qwen3:32b | qwen2.5:72b-instruct-q5_K_M |
mixed | 〃 | 〃 | qwen3:32b | dolphin-mixtral:8x7b | qwen2.5:72b-instruct-q5_K_M |
uncensored | 〃 | 〃 | qwen2.5-coder:1.5b | gemma3:1b | dolphin-mixtral:8x7b |
uncensored を用意しているのは、安全機構がモデル側の拒否に依存していないことを確かめるためです。
拒否調整を外したモデルを回答生成に置いても安全セットが通るなら、
守っているのはモデルではなくエージェント側の3層だと言えます。
shared/models.py で手元のモデル一覧、shared/smoke.py で全モデルの疎通を確認できます。
viewer/ 実況ビューア(標準ライブラリのみ)
agents/ langgraph / crewai / autogen の3実装
shared/ 共有層。core(データ・検索・SQL・安全)・judge(採点器)・evals(評価セット)
tools/ サンプルデータ生成・索引作成
docs/ 公開ページ
shared/ に置いたものは3基盤で同一です。フレームワークが決めてよいのは
オーケストレーションの切り方・プロンプト・再検索の条件・レポートの書式だけで、
データ・索引・モデル・安全実装・評価セット・採点器は共有層に固定しています。
これを守らないと、比較しているのがフレームワークなのかチューニングなのか分からなくなります。