きっかけ
Webアプリでユーザーの自然言語入力を処理する機能を作ってた時のこと。「チケットを作成して」「明日の会議をリマインドして」みたいな曖昧な指示から、何をするべきかを自動判定する部分が本当に面倒だった。正規表現で頑張ったり、キーワード抽出したり、いろいろ試してみたけど、どうしても網羅しきれない。そんな時にIntentkit見つけた。インテント解釈の下流処理としてエージェントフレームワークを組み合わせるならXata AgentでLLMエージェントを構築する方法も参考になります。
使ってみた
まずGitHub cloneしてから、intent.jsonの構造を眺めて、自分のアプリに合わせてスキーマを定義してみた。たとえばこんな感じで、意図ごとにパラメータを指定するだけ。その後pip installして、pythonのAPIを呼ぶだけで、あとはキットが「ユーザーはこの意図を持ってる」と判定して、構造化されたデータで返してくれる。最初は「本当にこんなシンプルで動くのかな」と疑ってたけど、テストしたら一発で動いた。
ここが良い
一番良かったのは、複数の入力形式に対応できるってこと。「チケット作成」という意図ひとつに対して、ユーザーは「チケットを作成して」とか「新しいタスクを登録して」とか、いろんな言い方をするじゃん。従来は全パターン手動で書く必要があったんだけど、このキットはそれを意図レベルで統一的に管理できる。設定は一度で済むし、後から新しい言い方が増えても、intent定義を足すだけ。実装の保守性が段違い。
気になった点
ドキュメントが正直まだ薄めで、複雑な条件分岐をしたい時は自分でコード読む必要がある。あと日本語の入力精度が期待値より下の場合もあるから、そこは前処理が必要かもしれない。
まとめ
ユーザーの自然言語を解釈してルーティングする仕組みが必要な人には、本当に推奨できる。定義がシンプルで、拡張性も高い。自分はもう手放せないツールになってる。AIワークフロー全体の自動化を検討しているならDifyでエージェントワークフローをノーコードで構築する方法も合わせてどうぞ。