0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

脱 Meat Protocol!その2 ChatGPTのI/Oを改善しようとしたらOpenAI公式がすぐ横にいた話

0
Last updated at Posted at 2026-09-25

Meat Protocol

Meat Machine に含まれるカテゴリの一つ。

例えば、システムAからシステムBへ情報を受け渡す際に、
人間が情報を運搬している状態を指します。

なお、上記の用語は私が勝手に制定しようとしているだけです。

前回の、

「Dropboxのディレクトリからファイルを選択して『読み込み』ボタンを押したら、そのままChatGPTが読んでくれないかなあ」

の続きです。

今回の話はだいたいこんな感じ
ee7458d4-2430-4e91-aa4b-440ec47e7284.png

Web版ChatGPTに簡単なI/Oを実装したい。

いろいろ考えた結果、

「Dropboxを経由して、そこに置いてあるファイルの読み書きを自動化すればいいのでは?」

という結論になりました。

Dropbox APIからディレクトリ構造とファイル名を取得して、ブラウザ拡張でWeb版ChatGPTの横にちょっとした小窓を表示。

そこにディレクトリツリーを表示して、ファイルを選択。

「読み込み」ボタンを押すと、

プロンプトを自動生成 → ChatGPTの入力欄へ自動貼り付け → 自動送信

まで行います。

アプリ名は 「Primitive IO」。

実装できた!

こんな感じ。

スクリーンショット_2026-09-22_11-55-56.png

これで、

「ファイルを選択 → 読み込み」

だけでChatGPTにDropbox上のファイルを読ませられるようになりました。

よし!

……と思って、さらに調査していたら。

公式もDropboxに対応してた

ChatGPTにさらに調査させてみると、2026年9月に入ってから公式のLibrary機能がDropboxに対応したとのこと。

がーん!!

作った直後に知りました。

実際に試してみると、確かにLibraryへ移動すればDropboxのディレクトリツリーが表示されます。

Library
  └─ Dropbox
       ├─ project/
       │    ├─ foo/
       │    │   ├─ a.md
       │    │   └─ b.md
       │    └─ ...
       └─ ...

ここからDropboxのツリーを辿ってファイルを選択し、そのファイルを会話に参加させることができました。

「俺が作ったもの、公式に実装されてるじゃん……」

と、ちょっと落ち込みました。

でも、チャット中に使ってみるとちょっと違う

ここからは 2026年9月25日時点で、私の環境で実際に確認できた挙動 です。

すでに進行しているチャットの入力欄にある「+」から、Libraryを開くことができます。

しかし、ここで表示されるのはLibraryに入っているファイルで、私の環境ではDropboxのディレクトリツリーまでは表示されませんでした。

また、「+」からDropbox自体を指定することもできます。

ただし、そこから、

「Dropboxのこのディレクトリにある、このファイルを読み込む」

という任意のファイル選択をGUIで行う方法が、私には見つけられませんでした。

つまり、現状私が確認できた範囲では、

【Libraryへ移動】

Library
  ↓
Dropboxツリーを表示
  ↓
ディレクトリを探索
  ↓
ファイルを選択
  ↓
会話に参加

はできます。

一方で、

【進行中のチャット】

会話
  ↓
Dropboxツリーを開く
  ↓
ディレクトリを探索
  ↓
任意のファイルを選択
  ↓
そのまま現在の会話へ投入

という操作方法は確認できませんでした。

2026年9月に追加されたばかりの機能なので、これが現在の仕様なのか、まだロールアウトの途中なのかまでは分かりません。

もし方法をご存じの方がいたら教えてください。

Primitive IOは何が違う?

Primitive IOでは、ChatGPTの会話画面そのものから移動しません。

画面横にDropboxのツリーを常時表示しているので、

会話中
  │
  ├── 議論を続ける
  │
  └── 横のDropboxツリー
           ↓
       ファイルを選択
           ↓
        「読み込み」
           ↓
       現在の会話へ投入

という操作ができます。

つまり、

会話の途中で「あ、あのファイルも見てほしい」と思ったら、その場でツリーから選んで割り込ませる

という使い方ができます。

さらに現在はDropboxだけでなく、GitHubのリポジトリ内にあるファイルも同じUIから指定できるようにしています。

公式Libraryの登場で「Primitive IOいらなくなったか?」と思いましたが、実際に使い比べてみると、欲しかったものが少し違いました。

私が欲しかったのは、

「Dropboxに対応しているChatGPT」

というより、

「今いるチャット画面から動かずに、ファイルを選んで読み込めるUI」

だったようです。

じゃあDesktop版を使えばいいのでは?

ここまで読むと、

「そこまでWeb版のI/Oにこだわるなら、ChatGPTのDesktop版を使えばいいのでは?」

と思うかもしれません。

私もそう思って、Linux版のChatGPT Desktopを入れて試してみました。

しかし、私が欲しかったものとは少し違いました。

ChatGPTには、通常の Chat のほかに Work や Codex があります。

WorkやCodexは、ローカルファイルを扱ったり、実際の作業や実装を任せたりするには便利です。

ただ、私は普段こんな感じで使い分けています。

Chat
  └─ 調査・雑談・議論・仕様を考える

Codex
  └─ 実装をお願いする

Work
  └─ まとまった作業をお願いする

普段一番長く使うのはChatです。

仕様について「ああでもない、こうでもない」と話したり、調査したり、アイデアを整理したりするだけなら、WorkやCodexを起動する必要はありません。

WorkやCodexは、実際の作業や実装まで行ってくれる強力な機能ですが、単に仕様について議論したいだけの場面では、私にとっては少し大掛かりです。

なので、

考えるところはできるだけChatでやりたい。

これが、私がWeb版ChatGPTにこだわっている大きな理由です。

欲しいのは高機能なエージェントではない

Desktop版なら、この問題が全部解決するのではないかとも思いました。

しかし、少なくとも私が試した範囲では、通常のChatからローカルの任意のパスを指定して、

「この spec.md を読んで」

という使い方はできませんでした。

一方、Web版ではFirefoxのブラウザ拡張が使えます。

つまり私の用途では、

Web版Chat
  +
Dropbox
  +
Primitive IO

のほうが、普段の議論では使いやすいという逆転現象が起きました。

Desktop版なのに、私が一番使うChatでは欲しいI/Oが手に入らない。

しかもDesktop版では当然、Firefox用に作ったPrimitive IOも使えません。

「Desktop版ならローカルファイルと近くなるのでは?」

と思って試してみたのですが、少なくとも私が欲しかった方向の近さではありませんでした。

Chatでできた成果物を、そのまま次へ渡したい

そもそも私がやりたいことは、そんなに高度ではありません。

例えばChatでCodexに渡す仕様について30分議論したとします。

最終的にこんなファイルができれば十分です。

shared/
  ├─ spec.md
  ├─ todo.md
  └─ notes.txt

このフォルダを、

              ┌─ Chat
              │
shared/ ──────┼─ Work
              │
              └─ Codex

のように共通で読み書きできればいい。

ローカルファイルシステム全体へのアクセス権なんて必要ありません。

ユーザーが明示的に許可した1つのフォルダ階層だけ。

扱えるファイルも、極端な話 .md と .txt だけで構いません。

Chatで議論して、

「ここまでを spec.md に保存」

Codexを開いて、

「spec.md を実装して」

これだけでいいんです。

今は人間がファイルを運んでいる

ところが、この間のI/Oがうまくつながっていないと、

Chatで議論
    ↓
仕様が完成
    ↓
ファイルにする
    ↓
保存場所を指定する
    ↓
Codexへ移動
    ↓
そのファイルの場所を教える
    ↓
実装開始

となります。

AIはものすごく賢くなったのに、

AIとAIの間でMarkdownファイルを運んでいるのは人間です。

そうです。
冒頭で書いた Meat Protocol が、ここで発生しています。

もちろん、MCPなどを使ってもっと高度な仕組みを構築する方法もあります。

でも、私が欲しいのは自律エージェント同士を接続する巨大なシステムではありません。

ファイルを読む。

ファイルを保存する。

別のツールから同じファイルを読む。

本当にそれだけです。

人間は「この仕様でいこう」「これをCodexに実装してもらおう」と判断する。

コンピュータには、その間のファイル運搬だけやってほしい。

だからPrimitive IOでは、AIをもっと賢くするのではなく、

Chatの入口と出口を少しだけ使いやすくする

ことを目指しています。

こういうUIだったら分かりやすいのに

個人的には、チャットからLibraryへ画面遷移するのではなく、チャットを表示したままサイドバーだけLibraryに切り替わるようなUIだったら、かなり分かりやすいと思います。

┌──────────────┬──────────────────────┐
│ Library      │ Chat                 │
│              │                      │
│ ▼ Dropbox    │ ~~について議論~~ │
│   project/   │                      │
│    ▼ foo/    │                      │
│      a.md    │                      │
│      b.md    │                      │
│              │                      │
│              │ [メッセージを入力]   │
└──────────────┴──────────────────────┘

左側でファイルを探して、右側の現在の会話にそのまま渡す。

やりたいことは、それくらい単純です。

そして気づいたら、Primitive IOでだいたいそんなUIを勝手に作っていました。

次はOutput

今度は逆方向です。

例えばChatGPTと仕様について議論したあと、

「ここまでの議論をまとめて」

と頼んで、その結果をファイルとして保存する。

ここも毎回、

「この内容を○○というファイル名で、Dropboxの○○フォルダに保存して」

と自然言語で説明するのではなく、保存先やファイル名をUIから指定して半自動化したいと考えています。

読み込みが Input。

保存が Output。

だから Primitive IO。

高性能なAIと自然言語で会話できる時代になったけど、

I/Oくらいはボタンでやりたいんよねぇ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?