AIエージェントがコードを書くとき、人間もそのコードを理解するべきだ、とよく言われます。その理由として、まず出てくるのは「正しいかどうかを確認するため」です。この章では、その考え方を出発点にして、検証(verification)だけでは理解の目的を説明しきれない、という話者の主張を見ます。
AI agents are often said to require humans to understand the code they write. The first reason people give is "to check whether it is correct." This chapter starts with that idea and examines the speaker's claim that verification alone cannot explain all the purposes of understanding.
理解は、正しさを確認するためだけなのか
Is understanding only for checking correctness?
エージェントの出力を人間が理解すれば、間違いを見つけられます。これは重要な理由です。しかし、ここでいう「正しい」には、いくつかの意味があります。
If humans understand an agent's output, they can find mistakes. This is an important reason. However, "correct" has several meanings here.
- 仕様に合っていること。頼んだ動作を実現しているかを確認します。
- 本番環境で障害を起こさないこと。実際に使われる環境を壊さないかを確認します。
- 設計としてよくできていること。目の前の動作だけでなく、システム全体の構成として適切かを見ます。
- Matching the specification. We check whether it performs the requested behavior.
- Not causing an incident in production. We check whether it will break the environment where it is actually used.
- Being well designed. We look at whether the overall system structure is appropriate, not only at the behavior in front of us.
この三つは似ていますが、同じではありません。仕様に合うテストに通っても、本番で問題が起きないとは限りません。また、問題なく動いても、設計がよいとは限りません。
These three ideas are similar, but they are not the same. Passing a test for the specification does not guarantee that nothing will go wrong in production. Also, working without problems does not guarantee that the design is good.
エージェントが検証ループを回す
Agents run verification loops
話者が示す変化は、次のようなものです。人間がエージェントに検証の手順を渡します。するとエージェントは、その手順を使って出力を確認できます。必要な質問を自分で立て、答えを調べ、問題があれば修正し、もう一度確認します。この流れを、検証ループとして何度も回せます。
The speaker describes the change as follows. A human gives the agent a verification procedure. The agent can then use that procedure to check its output. It asks the necessary questions, investigates the answers, fixes problems if it finds them, and checks again. It can repeat this flow many times as a verification loop.
ここで大切なのは、エージェントが一度だけテストするという話ではないことです。確認と修正を時間をかけて繰り返せる、という話です。エージェントの検証能力が高くなるほど、正しさを確認する作業で人間が担当する部分は小さくなります。
The important point is not that the agent tests only once. It can spend time repeating checks and fixes. As an agent's verification ability improves, the human share of the work of checking correctness becomes smaller.
その結果、「コードレビューが作業のボトルネックになっている」という問題も変わります。もしコードレビューの主な目的が、エージェントの出力が正しいかを判定することだけなら、その役割はエージェントの検証ループでかなり置き換えられるかもしれません。
As a result, the problem of code review being a bottleneck also changes. If the main purpose of code review is only to judge whether an agent's output is correct, the agent's verification loop may replace much of that role.
例:同じコードでも、目的によって見る点が違う
Example: The points we examine differ according to the purpose, even for the same code
例(説明用)
Example (for explanation)
エージェントが、ログイン後に一定時間が過ぎたら利用者を再認証させる変更を書いたとします。
Suppose an agent writes a change that makes a user authenticate again after a certain amount of time has passed since login.
From a verification perspective, we check the following:
- 仕様どおりの時間で再認証が起きるか。
- 本番環境で、正常な利用者まで突然ログアウトされるような障害を起こさないか。
- その変更の置き場所や構成が、システムの設計として適切か。
- Does reauthentication happen after the time specified?
- In production, could it cause an incident in which even normal users are suddenly logged out?
- Are the location and structure of the change appropriate as part of the system's design?
この三つを確認する手順をエージェントに渡せば、エージェントはテストや関連する確認を繰り返せます。人間は、検証結果を見て「合格」か「不合格」かを判断するだけになる可能性があります。これは、検証のための理解を考える場合の例です。
If we give the agent procedures for checking these three points, it can repeat tests and related checks. The human may end up only looking at the verification results and deciding "pass" or "fail." This is an example of thinking about understanding for verification.
検証のための理解と、参加のための理解
Understanding for verification and understanding for participation
Here the speaker separates two purposes of understanding.
- 検証のための理解:出力が正しいか、基準を満たすかを判定するための理解です。
- 参加のための理解:人間がシステムや仕事の流れを把握し、その後の作業に関わり続けるための理解です。
- Understanding for verification: Understanding used to judge whether an output is correct and meets the criteria.
- Understanding for participation: Understanding that lets humans grasp the system and the flow of work, and continue taking part in what comes next.
前者だけを考えるなら、エージェントが十分に検証できるようになったとき、人間が理解する必要は減ります。しかし、そこから「人間はもう理解しなくてよい」と結論するのは早すぎます。話者が問題にしているのは、検証が役に立たないことではありません。検証は、理解する理由のすべてではない、ということです。
If we consider only the first purpose, then humans need less understanding once agents can verify sufficiently well. But it is too soon to conclude from that that "humans no longer need to understand." The speaker is not saying that verification is useless. He is saying that verification is not the whole reason to understand.
例(説明用)
Example (for explanation)
先ほどのログイン変更を、エージェントが仕様・本番の安全性・設計の三つの基準で確認し、すべて合格にしたとします。人間はその結果から、コードが基準を満たしていると判断できます。
Suppose the agent checks the earlier login change against the three criteria—specification, production safety, and design—and passes all of them. From those results, the human can judge that the code meets the criteria.
それでも、検証結果が出たことと、人間が変更の意味を理解していることは同じではありません。この章の区別では、前者は「正しさの判定」です。後者は、プロジェクトに参加するための理解に関わります。人間がどこまで理解すべきかという次の問いは、単なる合否判定より広い問題になります。
Even so, receiving verification results is not the same as understanding the meaning of the change. In this chapter's distinction, the former is "judging correctness." The latter concerns understanding that enables participation in the project. The next question—how much humans should understand—is broader than a simple pass-or-fail judgment.
正しい出力の先に残る問い
The question that remains beyond a correct output
AIエージェントが自分で検証できるようになると、人間の役割は「正しさをチェックすること」だけではなくなります。では、人間は何を理解し、どのように仕事に関わるのでしょうか。話者はこの問いを、検証を超えた理解の問題として提示します。
When AI agents can verify their own work, the human role is no longer only to "check correctness." What, then, should humans understand, and how should they take part in the work? The speaker presents this as a problem of understanding beyond verification.
つまり、エージェントが正しいコードを作れることと、人間がその仕事に参加できることは別です。検証を自動化すると、正しさを確認する負担は減ります。その一方で、人間の理解をどのように保つかという問題が、よりはっきり見えてきます。
In other words, an agent's ability to produce correct code and a human's ability to participate in that work are separate things. Automating verification reduces the burden of checking correctness. At the same time, it makes the problem of maintaining human understanding more visible.
この区別が、この講演の転換点です。理解は、間違いを見つけるための安全確認に限られません。人間が作業の中にとどまり、次の考えや貢献につなげるためにも必要です。
This distinction is the turning point of the talk. Understanding is not limited to a safety check for finding mistakes. It is also necessary for humans to remain in the work and connect it to their next ideas and contributions.
この章の話は、Geoffrey Litt氏の講演「Understanding is the new bottleneck — Geoffrey Litt, Notion」の約2分23秒から約4分09秒までの内容に基づいています。講演の該当部分をYouTubeで見る