AI関連も4本目になります。第1弾で「AIは地頭が良く自信過剰な新人」という比喩を、第2弾で「ハーネスとの付き合い方」を、第3弾で「開発プロセス」を書いてきました。
これまでの議論の根底にあった問いを掘り下げておきたいと思います。AIは意思を持てるのか。経験を渡せるのか。同じ情報量を渡せば、人間と同じ判断ができるのか。
実用的な開発の話からは少し離れますが、この問いへの答えが、AIとの付き合い方の前提になっている気がしています。
同じ情報を渡せば、同じ判断ができるか
もし、ある人が持っている情報をすべてAIに渡したら、AIはその人と同じ判断ができるのか?
直感的には「できそう」に思えます。判断は情報に基づくものだし、情報量が同じなら結論も同じになるはず── と。
でも、考えてみるとそうはならない気がしています。同じ情報でも、判断が変わる要素がいくつかあるからです。
情報の重み付け
同じ情報を見ても、何を重視するかで判断は変わります。リスクを重視する人と機会を重視する人では、同じデータから違う結論を出す。AIは訓練データの統計的傾向で重み付けしていますが、人間は個々の価値観や経験で重み付けしている。
これは「考え方」として、ある程度AIに渡せるかもしれません。「うちの会社では安全性を最優先する」と教えれば、AIはその方向で重み付けする。ただ、価値観の細部まで完全に伝えるのは難しい。
暗黙知
明示できない知識があります。「この実装は何かおかしい」「この設計は将来困りそう」── 言葉にできないけど分かる感覚。これは経験の中で身体に染み付いたもので、ドキュメントに書きにくい。
シニアエンジニアが「これダメな気がする」と言うとき、根拠を聞くと意外に説明できなかったりします。でも大抵当たっている。
暗黙知を言語化する作業自体が大変で、書ききれない部分が必ず残ります。
責任を背負う重み
人間が「これでいきます」と判断するとき、自分が責任を取るという重みがかかっています。間違えたら自分が困る。だから慎重になる、あるいは決断する。AIにはこの重みがない。決断が軽い。
これは情報量では補えない、実存的な違いかなと思います。
意識化していない情報
人間は、意識化していない情報を含めて判断しています。「なんとなく」の中には、見た景色、相手の表情、その日の体調、過去の似た状況── 言語化されない情報が大量に入っている。AIは入力された情報しか使えない。
なので、情報量を完全に揃えることは、構造的にできないのかもしれません。意識化されていない情報まで含めると、人間が持っている情報の総量は、明文化できる範囲をはるかに超えています。
なぜ経験は渡しにくいのか
身体性
多くの経験は、身体を通して獲得されます。「徹夜で本番障害対応した」「お客さんに怒鳴られた」「設計を間違えてリリース直前に作り直した」── これらは認知だけでなく、感情、疲労、緊張を伴う体験です。言葉にした瞬間に大半が失われる。
「障害対応の経験から学んだ」と書いたところで、徹夜の重み、原因が分からない焦り、復旧したときの安堵── これらは伝わらない。文字に残るのは、教訓のうわべだけです。
圧縮率の高さ
経験は、無数の小さな観察の積み重ねでできています。それを言語化すると、10年の経験を10ページにまとめるみたいなことになって、本質が落ちる。
「コードレビューで何を見るか」を言語化しようとすると、すぐに気付きます。シニアエンジニアは数千、数万のレビューを通して感覚を磨いている。それを5項目のチェックリストに圧縮した瞬間、大事な何かが抜け落ちる。
文脈依存性
経験は「いつ、どこで、誰と、どういう状況で」が結びついて意味を持ちます。文脈を剥がして「教訓」だけ抜き出すと、応用が効かなくなる。
「このパターンは危険」という教訓も、それがどんな状況で形成されたかを知らないと、適用すべきでない場面でも適用してしまう。経験は文脈とセットで意味を持つ、言わば文脈に埋め込まれた知識です。
反例として
経験豊富な人のアドバイスが、「当たり前のこと」に聞こえることがあります。これは、本人にとっては経験から導かれた重い結論だけど、聞いた側には文脈がないので軽く聞こえる。経験の重みが伝わらない現象です。
これも、経験が渡しにくいことの傍証だと思います。
渡せるものと、渡せないもの
渡せるもの(形式知):
- ドメイン知識(業界の用語、ビジネスルール、過去の意思決定の経緯)
- 判断軸・価値観(コストとリスクではリスク優先、ユーザー体験を最優先、など)
- ベストプラクティス(こういうときはこうする、というパターン)
- 規約・標準(コーディング規約、命名規則、レビュー観点)
これらは明文化できるので、CLAUDE.mdやADRに書き出せば、AIに渡せます。
渡しにくいもの(暗黙知・経験):
- 直感(なんとなくおかしい、という感覚)
- 文脈に埋め込まれた判断(過去の似た失敗を踏まえた選択)
- 圧縮できない総合的な判断(無数の小さな観察の統合)
- 身体を通した学び(緊張、疲労、安堵を伴う体験)
これらは言語化が難しい、または言語化すると本質が落ちる。情報を増やしても、簡単には埋まらない領域です。
開発の文脈で言えば、形式知化できる仕事はAIに渡し、暗黙知が必要な判断は人間が残す、という分業に向かうのかなと感じています。これは第1弾でも書きましたが、構造的にそうなる、という認識です。
AIは意思を持つのか
AIは「これが良い」と言ってきます。確率分布のピークが特定の答えに集中していると、毎回同じ答えを返す。これは外から見ると「そう思っている」「意思を持っている」ように見えます。
でも、これは「統計的な傾向」であって「意思」ではない、というのが私の今のところの理解です。
意思を持つとはどういうことか
人間が「これが良いと思う」というとき、そこには:
- 目的や価値観: 何のためにそう判断するか
- 経験の蓄積: 過去にこうだったから、今回もこう
- 一貫性: 似た状況では一貫して同じ判断をする
- 責任: 自分の判断が間違っていたら、修正し、学ぶ
- 動機: そう判断する内的な理由
- 継続性: 時間を超えて持続する
AIには、これらが構造的にない気がしています。
AIが「意思のように見える」理由
- 訓練データの統計的傾向: 「こういう場合はこう答える」というパターンが学習されている
- プロンプトと文脈への反応: 同じ入力に対しては似た出力が出やすい
- 会話内の一貫性: 一度の会話の中では、文脈を踏まえて整合的に振る舞う
これらが組み合わさると、外から見ると意思のように見える。けれど、構造的には:
- 会話を超えた経験の蓄積はない
- 価値観は訓練時に固定されたもので、自己選択していない
- 責任を取れない、動機を持たない
- 「次の単語の確率分布を計算してサンプリングする」を繰り返している
ある質問に対してAIが「Aがいい」と毎回言うとして:
- 人間なら「自分はAが好きだから、Aを選ぶ」(主体的な選択)
- AIなら「訓練データでAが多かったから、Aの確率が高い」(統計的な傾向)
外形は同じでも、中身は別物。AIは選んでいるのではなく、そう出力する確率が高いだけです。
ただし、未来は分からない
ここまで「今のAIは意思を持たない」と書いてきましたが、この先も持てないかは分からない、というのが正直なところです。
哲学的には、「意思とは何か」自体が曖昧です。人間の「意思」も、究極的にはニューロンの発火パターンに還元できるかもしれません。だとすれば、AIの「強い確率分布のピーク」と人間の「意思」の違いは、程度の問題に過ぎないのではないか、という見方もあります。
また、AIが自己モデルを持ち、長期記憶を持ち、目的関数を内在化させるようになれば、意思に近いものを獲得するかもしれません。最近の研究の方向性を見ると、その方向への進化はあり得そうです。
なので、「今のAIは意思を持たない」は私もそう思いますが、「この先も持てない」は慎重に言った方がいいと思っています。現状の延長では持てない、ただし将来的にどうなるかは分からない、くらいのトーンが正確かなと。
これは怖い話でもあるし、興味深い話でもある。AIの能力がどこまで拡張されるかは、誰にも予測しきれていません。
今のAIをどう扱うか
未来は分からないにしても、今のAIをどう扱うかは決められます。
- AIの判断を意思の表明と受け取らない: 「AIがこう言ったから正しい」という錯覚を避ける
- AIの自己評価を当てにしない: 確率的な出力なので、自信ありげでも間違っていることがある
- 責任は人間が取る: 意思を持たないものに責任は取れない
- AIの限界を見誤らない: 意思があるなら成長する、学ぶ、と期待しない
これらは、繰り返し出てきた付き合い方の指針です。「AIは意思を持たない」という前提に立てば、これらの指針が自然に導かれることが分かります。
逆に、AIが意思を持っているように扱うと、過度な期待や誤解が生まれます。「AIに任せたから大丈夫」「AIが判断したから正しい」── これらは、AIの構造を誤解した運用です。
ここまでを振り返って
4本にわたって書いてきましたが、振り返ってみると、主張は最初から最後まで一貫していた気がします。
AIは便利な道具で、上手く使えば生産性が上がる。ただし、AIは経験・判断・責任・意思を持たない。だから、判断と責任は人間が持つ前提で運用する。それは過剰な不信ではなく、AIの構造を踏まえた現実的な姿勢です。
そして、これらは特に新しい話ではなくて、いつものエンジニアリングの延長で扱える、というのも繰り返し書いてきました。新人にマニュアルを渡す、レビューを別の人にも見てもらう、危険な操作には承認を入れる、理解できないコードはマージしない── 道具がAIになっても、付き合い方の基本はあまり変わらない。
未来は分かりませんが、今のAIと、今のエンジニアリングの作法でうまくやれる、というのが私の見立てです。AIが意思を持つようになったら、また考え直せばいい。それまでは、目の前のAIと、目の前のコードに、誠実に向き合うのが、結局のところ一番確実な道なのかなと思っています。
道具は変わるけれど、良いソフトウェアを作りたい気持ちは変わらない。
