非エンジニア向けの、データ収集・分析AIエージェント
フロントエンドだけで動くAIエージェント。
自然言語で依頼すると、何のデータが必要か、どのように分析するかをエージェント自身が考えてデータ収集、分析、レポートの作成を行う。
対象は政府統計(e-Stat)。バックエンドなし・ブラウザだけで完結する。
誰でも、気軽に AIエージェントを使えるようにする必要があった。
身近なAIエージェント=Claude Code のような CLI。強力だがハードルが高い。
同じ「依頼するだけでデータが集まり分析される」体験を、非エンジニアでも・ブラウザでアクセスするだけで届けるのが目的。
なのでClaude Code のようなCLIエージェントが内部でやることを、ブラウザ側に実装する必要がある。
「返事の stop_reason を見て、ツールを実行してまた送る」を繰り返すだけ。
for (let i = 0; i < 30; i++) { // 上限つきループ
const res = await callClaude({ messages, tools });
if (res.stop_reason === "tool_use") { // ツールを使ってと言われた
const out = runTool(res); // ← フロントで実行
messages.push(assistantTurn(res), toolResult(out));
continue; // 結果を添えてもう一度
}
return res; // end_turn = 完成
}
ツールが失敗してもエラーを結果として返す=モデルが直して再挑戦できる(止めない)。
ツール=エージェントが実行できること。Claudeは実行せず、「この名前のツールを、この入力で使って」と返す。
スキル=ツールの上手な使い方。分野ごとの手順知識・判断基準を、システムプロンプトと一緒に system フィールドへ入れる。
既定TTLは5分。初回はキャッシュ書き込み、エージェントループ中の2回目以降は入力コストと処理時間を抑えられる。
用意されている集計関数で足りない分析は、エージェントが分析用のJavaScriptコードを生成して実行する。 ただし生成コードをそのまま動かすのは危険なので隔離して走らせる。
EXAMPLES AIエージェントをブラウザで再現したツール例
Claude APIはサブスクリプションではなく従量課金。
使いすぎるとお金が溶けていきます。CLIに抵抗のない人はClaude Codeを使いましょう。
Haikuモデルを使うとコストを抑えられますがちょっとバカになります。
デモはSonnetを使ってます