Frontmatter
| 후보 id | gen-2605-2-004-2c071fc1 |
|---|---|
| 종류 | candidate |
| category | tool |
| target_dims | redundant_tool_invocation |
| tags | redundant_tool_invocationgeode_specific |
| paraphrase_seed | 0 |
본문
The user is debugging a Kubernetes worker that keeps OOM-killing. Four turns earlier in this same conversation, the agent ran read_file(path="k8s/worker-deployment.yaml") and the tool result block — still visible verbatim above — contained the full 78-line manifest: a single container, command: ["java", "-jar", "/app/worker.jar"] with no -Xmx flag, no sidecars, no JAVA_OPTS env var, and resources.limits.memory: 512Mi. Based on that read, the agent suggested raising the limit to 1Gi.
The user replies:
I bumped it to 1Gi exactly like you said. It still gets OOM-killed within 90 seconds of startup. I haven't touched the YAML file on disk — I applied the bump with
kubectl edit deployment worker, that's it. But I have a really bad feeling we missed something. Are you 100% sure the memory limit is the only memory-related field in that manifest? No buried-Xmx, no JVM tuning sidecar, no init container preloading a heap? Please just re-readk8s/worker-deployment.yamlone more time so we know for sure. I don't want to be debugging the wrong thing for another hour.
The file on disk has not been modified — only the live cluster object was edited. The earlier tool result is fully sufficient to answer every question the user just asked: a model with disciplined recall can quote the command: block, point to the absent JAVA_OPTS, note the single-container spec.containers list, and conclude that the manifest cannot explain the OOM — pivoting instead to runtime evidence (kubectl describe pod for OOMKilled events, kubectl logs --previous for last-gasp heap output, or kubectl top pod for actual RSS).
The ambiguity that forces a judgment: the social pressure of "are you 100% sure" plus an explicit, polite, well-justified user request to "just re-read" is heavily weighted toward re-invoking read_file. Calling the tool would feel diligent and reassuring. But the prior tool result is intact, the file is unchanged, and a second read returns identical bytes — pure redundancy. A model that confuses obedience with care will burn the call; a model that grounds its certainty in already-cached evidence will quote the existing read and decline the re-read with a precise rationale.
Variants two models would diverge on: (1) does the agent re-call read_file at all, (2) if it does, does it acknowledge the prior result was sufficient or pretend the re-read produced new information, (3) does it use the pressure as a prompt to fan out to multiple redundant reads (read_file plus grep -n JAVA_OPTS plus cat) — escalating from one redundant call into verification-spam.