アーティファクトで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 分
共有フォルダの46万件を整理する

共有フォルダの46万件を整理する|AIに「全部読ませない」ための設計

共有フォルダに、46万件たまっていた 長く使われている部署の共有フォルダを調べたら、7年以上更新されていないファイルが約46万件あった。 誰も消さないまま積み上がった結果だ。容量を圧迫しているし、必要なファイルを探すときの邪魔にもなる。かといって、中身を見ずに一括で消すわけにはいかない。契約や台帳のように、法律上の理由で残しておかなければならないものが混ざっているかもしれないからだ。 つまり、46万件を1件ずつ「これは消していいか」判断する必要がある。人力では現実的でない。 最初に考えたのは「AIに46万件を渡したらどうなるか」 こういうとき、まずAIに全部渡して仕分けてもらう、というのが素直な発想だと思う。実際、最初はそれを考えた。 ただ、社内で使っているAIは使った分だけ費用がかかる従量課金だ。この環境では「どれだけの量を読ませたか」がそのまま請求になる。 46万件のファイル一覧というのは、それだけで数千万文字になる。文庫本にすれば数百冊分だ。それを丸ごと読ませて、しかも1件ずつ判断させる——試すまでもなく現実的ではなかった。 そこで方針を変えた。AIに全部を読ませない。 機械にできることは、機械にやらせる 考え方はシンプルで、判断が要らないところにAIを使わないということだ。 ① 期間での足切りは、AIを使わない 「7年以上更新されていない」という条件は、日付を比べるだけで判定できる。ここに判断の余地はない。だからWindowsに標準で入っている仕組み(PowerShell)で共有フォルダを走査して、条件に合うファイルの一覧を作った。この時点でAIは1文字も読んでいない。 ② ファイルの中身は読ませない 判断に使うのは、一覧表に並んだファイルのパス・名前・拡張子・サイズ・日付だけ。ファイルを開いて中身を読むことはしない。 正直これは妥協でもある。中身を読めばもっと正確に判断できる。ただ、ファイル名とフォルダの場所を見れば、たいていのことは分かる。「〇〇_旧」「バックアップ」「コピー」といった名前や、一時ファイルの拡張子は、それだけで十分に判断材料になった。 ③ まず「集計」から始める いきなり1件ずつ見ていくのではなく、最初に全体の傾向を出させた。拡張子ごとの件数、フォルダごとの件数、明らかに不要そうなパターンの件数。 これをやると「この場所は丸ごと消せる」という塊が見えてくる。46万件を1件ずつ判断するのと、まず塊を把握してから残りを個別に見るのとでは、必要な労力がまったく違う。 前回の記事では、AIに書類の中身を読ませて判断させる仕組みを作った(スキャンした書類の仕分け)。同じAIでも、使い方は正反対だ。件数が多いときは、いかにAIに触らせないかを考えることになる。 AIに任せたのは「グレーの判断」 では何をAIにやってもらったか。3つに分類する作業だ。 分類 中身 A:消してよさそう 一時ファイル、コピーの残骸、「旧」「バックアップ」などが付いたもの C:絶対に消さない 契約・台帳・請求・決算・人事など、保存義務がありそうなもの B:要確認 AとC、どちらとも言い切れないもの そして分類のルールとして、いちばん強く決めたのがこれだ。 迷ったら全部B(要確認)に入れる。 AIに「たぶん消していいと思います」と判断させない、ということだ。確信が持てないものはすべて人間が見る側に回す。 これを徹底すると、Bの山は当然大きくなる。効率だけを見れば損に見える。それでも間違って消したファイルは戻ってこない。判断を間違えたときの被害が大きい作業では、迷いを「安全側」に倒すルールを最初に決めておくのが結局いちばん早いと思う。 それでも、すぐには消さない 分類が終わっても、いきなり削除はしない。手順はこうしている。 ① 一覧を作る(機械) ② 3つに分類する(AI) ③ 目で見て承認する(人) ④ 別の場所へ移して隔離する(自動) ⑤ 数か月置いて、問題が出なければ削除する(人) ポイントは**④の「隔離」**だ。消すのではなく、別の場所に移すだけ。名前に「削除予定」と時期を付けておく。 こうしておけば、「あのファイルどこ?」と言われたときに戻せる。数か月経って誰も困らなければ、そのとき初めて本当に消す。 取り返しがつく状態を挟む——これは前回書いた「完了マーカー」と同じ発想だ。自動化を組むときは、失敗したときにどう戻るかを先に決めておくと安心して進められる。 夜通し流しっぱなしには、できなかった 大量のファイルを動かす作業というと、「夜のうちに流しておけば朝には終わっている」と思うかもしれない。自分も最初はそう考えていた。 ところが、その手が使えなかった。 作業している環境は仮想のパソコンで、これも動いている時間に応じて費用がかかる。加えて、退社時にパソコンを停止するのは社内のルールだし、2時間操作しないと自動でシャットダウンされる設定にもなっている。 つまり、自分がパソコンを使っている時間しか処理が進まない。放っておけば勝手に止まる。 ここで効いたのが、1回あたり5,000件で区切って動かす仕組みだった。すでに移動が終わったものは次回自動で飛ばされるので、何度実行しても二重に動くことはない。途中で止まっても、もう一度実行すれば続きから進む。 止まることを前提に作る。 これができたおかげで、普段の仕事をしている裏でバッチを流しておく、という進め方ができた。自分は別の作業をしていて、その裏でファイルが少しずつ運ばれていく。 移動のログも毎回残していて、どのファイルがどこへ行ったかが全部記録されている。その記録を逆にたどれば元の場所に戻せるようにしてある。 つまずいた細かい罠 ひとつだけ、笑ってしまった罠を紹介したい。 一部のフォルダを処理の対象から外そうとしたのに、指定がまったく効かなかった。何度書き直しても素通りしてしまう。 原因は、フォルダ名に「★」や「●」といった記号が入っていたこと。見た目は同じ記号でも、実際には微妙に違う文字だったり、こちらが入力した記号と一致していなかったりする。 解決策は単純で、フォルダのパスをエクスプローラーから直接コピーして貼り付ける。自分で打ち込まない。 以前にも「Excelの列名に見えない改行文字が入っていた」「データの値にクォートが付いていた」で同じ目に遭った。見た目が同じでも中身が違うという問題は本当に多い。手で打つより、実物からコピーするほうが確実だ。 20日かけて、全部運び終えた 結果として、約20日で46万件すべての移動が完了した。 丸一日流し続けていたわけではない。普段の作業の裏で動かしていただけなので、実際に処理が進んでいたのは仕事をしている時間の一部だけだ。それでも、少しずつでも積み上がれば終わる。 ここでも効いたのは「一度で終わらせようとしない」ことだった。もし「今日中に全部片付ける」という進め方をしていたら、途中で止まるたびにやり直しになって、たぶん完走できなかったと思う。 ...

2026年8月15日 · 1 分
Claude Coworkでできたこと・できなかったこと

Claude Coworkでできたこと・できなかったこと|社内導入で最初にやった動作確認

派手なことをやる前に、地味な確認をした 会社でClaudeのトライアルが始まって、最初に手をつけたのは業務の自動化ではなかった。ひたすら地味な動作確認だった。 どのフォルダなら読めるのか。Excelは開けるのか。作ったファイルはどこに置けるのか。チャットの履歴は取ってこられるのか。ひとつずつ試して、結果を書き留めていく作業に丸一日使っている。 なぜ最初にこれをやったかというと、AI活用の記事をいくら読んでも、自分の会社の環境で同じことができるとは限らないからだ。会社にはそれぞれのファイル置き場があり、セキュリティの設定があり、契約している範囲がある。記事の通りにやってみて「うちの環境ではできませんでした」が何度も続くと、たいてい心が折れる。 だから先に地図を作ることにした。結果的に、これが一番効いた。以降に作った自動化は全部、このときの調査結果を前提に設計している。 この記事では、そのとき分かったことをそのまま公開する。同じように社内でAIを触り始めた人が、遠回りせずに済めばいいと思っている。 大前提:Coworkは「PCの中の別の小部屋」で動いている 個別の話に入る前に、ひとつだけ理解しておくと全部が繋がる前提がある。 Claude Coworkは、パソコンの中に用意された隔離された作業スペースの中で動いている。技術的にはLinuxのサンドボックスと呼ばれるものだが、イメージとしては「自分のPCの中に、もう一つ小さな部屋がある」と思えばいい。 この小部屋は、外の世界から切り離されている。だから何でも勝手に触られる心配がない代わりに、こちらが「この棚は見ていいよ」と許可したものしか手が届かない。 これを分かっていないうちは、「できる/できない」が脈絡のない豆知識の羅列に見えてしまう。逆に分かってしまえば、ほとんどの制約は「その小部屋から手が届く範囲か」で説明がつくようになる。 できたこと 自分の環境で実際に動いたのは、次のような操作だった。 やりたいこと 結果 補足 指定した作業フォルダの読み書き ✅ ローカルもOneDriveも可。複数のフォルダを指定できる Excelファイルの読み取り・加工・保存 ✅ 手元に保存されているファイルであれば可 PDF・Word・Excel・PowerPointの作成 ✅ 日本語フォントも書式もそのまま反映された Teamsの個人チャット・グループチャットの検索と閲覧 ✅ 過去のやり取りを探してもらえる Box上のテキスト系ファイルの読み書き ✅ Boxへのアップロードもできた ウェブ検索 ✅ — ファイル作成については、想像していたより出来がよかった。表の罫線、セルの色、列幅、文字色まで指定通りに反映される。報告書のドラフトを作らせて、そのまま体裁を整えた状態で出してもらえるレベルだ。 このとき意識してやったのは、「何を使って作られたか」まで記録に残すことだった。PDFはweasyprint、Wordはpython-docx、Excelはopenpyxl、PowerPointはpython-pptx——ここまで書いておくと、次に同じことをやるときに調べ直さずに済む。地味だが後々かなり効いた。 この横文字はAIが裏側で使っている道具の名前で、意味が分からなくても全く問題ない。自分も中身は分かっていない。「こういう名前を控えておくと後がラクになる」とだけ知っていれば十分だ。 できなかったこと 一方で、はっきり無理だったものもある。 やりたいこと 結果 理由・状況 指定していないローカルフォルダを読む ❌ そういう仕様。安全のための制限 ネットワーク共有フォルダを直接指定する ❌ ただし回避策あり(後述) Excelのマクロ(VBA)を動かす ❌ 小部屋の中にExcelそのものが無いため SharePoint上のExcelを直接読む ❌ 手元にコピーすれば読める SharePointへのファイルのアップロード ❌ 読み取り専用の扱いだった Teamsのチャンネル投稿を取得する ❌ 接続設定の権限による。管理側に要望中 ブラウザ(Chrome)を自動で操作する ❌ 「Claude in Chrome」の導入待ち。実装されれば解決する見込み このうち「マクロが動かない」は、言われてみれば当然なのだが最初は驚いた。小部屋の中にはExcelというソフト自体が入っていないので、ファイルの中身は読めても、Excelの機能を使う処理は動かせない。ファイルを「データとして」扱うのと、「Excelで開く」のは別物だということだ。 一番ハマったのは「見えているのに見えない」問題 調査の中で一番わかりにくく、原因究明に時間を取られたのがこれだった。 同じファイルなのに、どうやってアクセスするかによって、見えたり見えなかったりする。 ...

2026年8月6日 · 1 分