アーティファクトでBoxの管理画面を作った

アーティファクトでBoxの管理画面を作った|チャットでは動くのに、中では動かないもの

アーティファクトの使い道が、また一段広がった 以前、書類の仕分けを自動化した記事で、Claudeの「アーティファクト」という機能の使い道について書いた。要約するとこうだ。 繰り返しやっている作業のボタンを1つ作ってみる。アーティファクトは、AIへの指示を「アプリの操作」に変換する道具として使える。 今回はその続きになる。ボタン1つではなく、画面の横に出しっぱなしにしておく管理画面を作ってみた。 きっかけは、社内のClaudeにBoxとつながる機能(コネクタ)が入ったことだった。 作ったもの 2つ作った。 ① ファイル一覧・更新監視の画面 Boxのフォルダをブラウザ上で開いて、中身を見られるようにしたもの。 フォルダをクリックして階層を掘り下げられる(パンくず表示つき) ファイル名・サイズ・更新日時を一覧表示、列見出しをクリックで並べ替え 名前で絞り込み検索 前回見たときからの差分を検出して、更新・新規のファイルに色を付ける ② Box AIで一括分析する画面(本命だった) こちらは少し説明が要る。Box AIというのは、Box自身が持っているAI機能のことだ。Claudeとは別物で、Boxに置いてあるファイルをBoxの中で読んで答えてくれる。 なぜそれを使いたかったかというと、ファイルの中身をClaudeに送らなくて済むからだ。社内のClaudeは使った分だけ費用がかかるので、大量のファイルをそのまま読ませると高くつく。Box AIに読ませて要約だけ受け取れば、こちら側の負担はぐっと減る。46万件のファイルを整理したときに学んだ「必要な分だけ読ませる」の応用でもある。 作ったのは、フォルダ内のファイルに対してまとめてBox AIに指示を出す画面。「要点を抽出して」「リスクがありそうな箇所を挙げて」といった指示を自由に書いて、結果を一覧で見る——そんなものを想定していた。 契約書の要点抽出や、議事録からのアクション整理に使えるはずだった。 ところが、本命が動かなかった ②を動かしてみたら、すべてのファイルでエラーになった。Access denied——アクセスが拒否された、という意味だ。 調べていくと、原因は権限の設定だった。少し細かい話になるが、大事なところなので書いておく。 Box AIを外部のアプリから呼び出すには、2段階の許可が必要だった。 会社としてBox AIを有効にする → これは有効になっていた(Boxの画面から直接使えたので) アプリごとにBox AIの利用を許可する → こちらが未設定だった つまり「自分はBoxの画面からBox AIを使えるが、Claudeという"アプリ"にはBox AIを使う許可が下りていない」という状態だった。 ここで時間を使ったのは、最初にフォルダの閲覧権限を疑っていたことだ。ファイル名や更新日時は取れているのだから権限はあるはずなのに、と混乱した。切り分けの決め手になったのは「Boxの画面から手で操作すると成功する」という事実で、そこから「人ではなくアプリの側の権限だ」とたどり着いた。 そして、この権限はたぶん下りない 原因が分かったので、管理者への依頼文書を作った。ここまではSalesforceの設定を依頼したときと同じ流れだ。 ただ、今回は事情が違った。 この設定は、契約全体に対して有効になる。 外部アプリへの許可は、利用者ごとや部署ごとに切り分けられない。つまり依頼を受ける側から見ると、 「この会社(あるいはグループ全体)で、この外部アプリにBox AIを使わせてよいか」 という判断になる。こちらの感覚では「試しに使ってみたいだけ」でも、受け取る側にとっては全社の話なのだ。 そう考えると、一人の試用のために全体の設定を変えてもらうのは、筋として重い。通らない可能性のほうが高いと考えたほうが自然だと思った。 だから「使えないまま運用する」形にした ここが今回いちばん考えたところだ。 選択肢は2つあった。 A:許可が下りるまで待つ(下りなければ、作ったものは無駄になる) B:使えないままでも回る形にする Bを選んだ。 具体的には、Box AIで処理できなかったファイルに対して「Claudeのチャット用の指示文をコピー」というボタンを置いた。押すと、そのファイルに対する指示文とフォルダの情報が丸ごとコピーされる。あとはチャットに貼り付ければ、同じことができる。 自動ではない。ひと手間かかる。それでも、画面を見て「これを分析したい」と思ったその場から、2クリックで先に進める。 「使えるようになったら本気を出す」をやめた この判断は、たぶんこのブログでいちばん伝えたいことに近い。 社内でAIを使っていると、自分では動かせない壁に何度もぶつかる。権限、契約、管理者の判断。どれも自分の努力とは関係のないところで決まる。 そのたびに「解決したら再開しよう」と止めていたら、たぶん何も進まない。実際、以前に書いたできたこと・できなかったことの記事でも、ネットワーク上のフォルダが見えないという制約を、別のツールに運ばせることで回避した。あのときと考え方は同じだ。 制約は消えるのを待つものではなく、そのまま抱えて設計に織り込むもの——これが数か月かけて身についた感覚だと思う。 もちろん、依頼は出してある。通れば儲けもの、くらいの気持ちでいる。 アーティファクト内での制約(実際に踏んだもの) もうひとつ、作ってみて初めて分かったことがある。チャットでできることが、アーティファクトの中では必ずしもできない。 同じClaudeなのに、動く場所によって挙動が違うのだ。実際に踏んだものを書いておく。 制約 内容 ファイルの中身をそのまま取得できない 画像やPDFなどのデータを直接扱うツールは、アーティファクト内から呼び出すとエラーになる 連続で呼ぶと止まる 短時間にたくさん呼び出すと「リクエストが多すぎます」と拒否される。件数の上限を設けて回避した 画面内から呼び出すClaudeは精度が落ちる アーティファクトの中からもClaudeを呼べるのだが、使われるのは軽量なもので、チャットで対話するときほど賢くない。込み入った判断は任せられない(※Box AIとは別の話) 3つ目は特に注意が要る。「チャットでうまくいったから、画面に組み込めば同じことができるだろう」と考えると、たぶん失敗する。アーティファクトは"賢い判断"を任せる場所ではなく、“決まった操作"を並べる場所だと考えたほうが良さそうだ。 ...

2026年9月2日 · 1 分