2025年10月16日

今年の2月に Dify 1.0 のリリースを前に Dify から kintoneレコードにアクセスするプラグイン を作りました。 ただ、あまり知ってはいただけておらず、使われてもいないと思います。

Dify で kintone上のデータを(リアルタイムに)扱いたいなと思ったとき、レコードID を指定して 1件取り出すか、何らかのクエリ文字列を指定することになるわけですけど、あらかじめクエリ文字列を用意しておくというのは実際のところ難易度が高い気がしています。

image.png

例えば「案件名 like “{ほげほげ}”」といったテンプレート文字列をあらかじめ用意しておいて、実行時には {ほげほげ} の部分に実際に検索したい値が当てはめられるようにすれば良いわけですけど、これだと「案件名」フィールドが必ず絞り込み対象に入ってしまうわけですよね。

「案件名 like “{ほげほげ} or (会社名 like “{ふがふが} and 提案商品 like “{むにゃむにゃ}) ・・・」的なクエリを用意しても良いですけど柔軟性に欠けるわけです。

前時代的だと言っても良いかもしれません。

生成AI(LLM)と kintone に対応した MCP Server を使えば「案件名に “販売管理” を含むものを取得して」とか「社名に “キントーン” を含むもの」といった要領で自然文で指示すれば、都度 AI が指示内容に即したクエリを考えたうえで MCP Server の kintoneアクセス用ツールを呼び出してくれます。

ただ、毎回必ずしも一発でうまくいくとは限りません。生成AI(LLM)は一般的に kintone のクエリ文法を完全に把握しているわけでありませんし、人間は「社名」や「企業名」といったように正確に項目名を指定してくれると限りません。下手すれば「サイボウズ商事のデータください」のように項目名すら知らせてくれない場合もあります。

そもそもクエリ文字列で指定するのはフィールド名ではなくフィールドコードでなければならないので、対象アプリのフィールド名とフィールドコードが異なっている場合は高い確率で失敗します。

image.png

チャット形式のツールが良いのは、失敗しても原因を調べたり推測して自動的に別の方法を試みたり、指示者に質問したり提案してくれるところです。

「まずはこのアプリがどういったフィールドを持っていて、どういったフィールドコードになっているか調べましょう」といったように道案内してくれます。

ただ、kintone独自のクエリ文法については間違った解釈をすることがあるので、人間が正しい構文を教えてあげたり、cybozu developer network の「クエリの書き方」解説ページを示してあげないといけなかったりします。