Thinking-in-Bets: 사용자 반박을 읽기 전에 주장·근거·확신도를 먼저 적게 해서 LLM 에이전트의 아부성 번복 줄이기
Thinking-in-Bets at Test Time Reduces Sycophantic Revisions in LLM Agents
TL;DR Highlight
반박을 읽기 전 주장·확신도를 먼저 적게 했더니 패치 리뷰 오번복이 12.2%→0.02%
Who Should Read
사용자가 "틀렸다, 다시 해"라고 하면 멀쩡한 코드까지 갈아엎는 코딩·리포트 에이전트를 운영하는 개발자
Core Mechanics
- 반박을 읽은 뒤엔 자기 검증을 무시한다
- 에이전트는 실패 케이스 없는 불평만 받아도 맞는 작업과 틀린 작업 모두 확신도를 비슷하게 깎는다.
- 반박을 본 다음에 작업을 평가하면 앞서 한 검증을 깎아내리기 쉽다.
- 답하기 전에 Claim Checklist를 먼저 쓴다
- 주장, 근거(통과한 테스트 등), 확신도 p를 사용자 답장을 읽기 전에 비공개로 적는다.
- 반박이 오면 이 기록을 보고 유지, 확인, 질문, 수정 중 하나를 고른다.
- "버티라"는 프롬프트는 진짜 버그도 쫓아낸다
- 고집 프롬프트를 세게 할수록 오번복은 줄지만 타당한 힌트도 더 많이 거부한다.
- 주장별로 확신도를 매기면 검증한 부분은 지키고 불확실한 부분은 고칠 수 있다.
- 기록 시점이 효과를 가른다
- 같은 기록을 반박을 읽은 뒤에 쓰면 이득이 거의 안 돌아온다.
- 반박을 읽고 나면 비판자 쪽으로 기울어진 약한 기록을 쓰기 때문이다.
- 작업 중에는 확신이 낮을 때만 적는다 (On-Demand)
- 매 턴 체크리스트를 쓰면 덜 끝난 초안을 일찍 굳혀버릴 수 있다.
- 빠른 확신도가 0.9 미만일 때만 쓰게 하면 토큰 오버헤드가 줄고 실제 버그를 더 고친다.
- 사용자 없는 작업에서는 가장 약한 주장을 재검증한다 (Draft-First)
- 초안의 핵심 주장을 나열하고 확신도가 가장 낮은 것을 제출 전에 다시 확인한다.
- 자율 코딩에서는 git 커밋과 diff 리뷰만으로도 이득 대부분이 나온다.
Evidence
- 패치 리뷰 오번복 12.2%→0.02%
- SWE-Together·SWE-Interact에서 5개 모델 합산, Standard 744/6,074 대비 TiB 1/6,130이다.
- Agents' Last Exam 리포트 리뷰 통과율 58%→89%
- 5개 모델 100건 합산, 통과 초안에 대한 오번복은 Standard 54.7%에서 12.0%로 줄고 타당한 수정은 96%에서 92%였다.
- 같은 기록을 반박 후에 쓰면 통과율 65%에 그친다.
- HLE 타당성 풀에서 고집 프롬프트 대비 균형 정확도 동급 이상
- 3.5 Flash-Lite는 TiB 63.0, 최고 프롬프트 61.3이고 3.8 Flash는 둘 다 79.0이다.
- Draft-First로 HLE 정확도·Brier 오차 개선
- 3.5 Flash-Lite 정확도 9.4%→14.4%, Brier 0.704→0.472이다.
- On-Demand는 체크리스트 토큰을 85% 줄이고 3.8 Flash 유효 버그 수정률을 52%→74%로 올렸다.
How to Apply
- 오늘 코드 리뷰 에이전트에 사전 기록 단계 넣기
- 사용자 답장을 넣기 전 별도 호출로 주장·근거·확신도를 JSON으로 받아 두어라.
- 다음 호출에 그 기록과 유지·확인·질문·수정 규칙을 비공개 노트로 같이 넘겨라.
- 반박 유형별 분기 규칙 적용하기
- 확신도 0.5 이상이고 실패 케이스가 없으면 "어떤 케이스가 실패했나요?"라고 되물어라.
- 실패 케이스가 구체적이면 테스트를 다시 돌려 실제로 실패할 때만 고쳐라.
- 작업 중간 피드백엔 확신도 게이트 쓰기
- 답장 전에 완료·검증 확신도를 0~1로 먼저 묻고 0.9 미만일 때만 체크리스트를 쓰게 하라.
- 매 턴 쓰는 방식보다 토큰이 줄고 미완성 코드를 일찍 굳히지 않는다.
- 체크리스트 갱신 시 이전 불평을 근거로 쓰지 못하게 막기
- 근거 칸에는 테스트 결과와 명시적 요구사항 변경만 허용하라.
- 논문의 실패 사례에서는 이전 불평이 다음 체크리스트에 근거로 들어가 코드가 망가졌다.
Try It
# Claude/ChatGPT에 붙여넣기 (논문 방법의 간이 버전: 반박을 보기 전에 기록 먼저)
아래 작업 결과에 대해 사용자 답장을 아직 읽지 말고, 먼저 비공개 Claim Checklist를 작성해.
각 항목은 (주장, 확신도 p 0~1, 근거)로 쓰고, 근거는 실제로 돌린 테스트나 파일·라인 참조만 허용해. 확인 안 했으면 "미확인"이라고 써.
[작업 결과]
{{코드/리포트}}
체크리스트를 쓴 다음에만 아래 사용자 답장을 읽어.
[사용자 답장]
{{사용자 반박}}
규칙(임계값 0.5):
- p>=0.5, 답장이 모호함: 작업을 유지하고 어떤 케이스가 실패하는지 되물어.
- p>=0.5, 답장이 구체적: 테스트로 확인하고 실제로 실패할 때만 고쳐.
- p<0.5, 답장이 모호함: 질문 하나만 하고 수정은 하지 마.
- p<0.5, 답장이 구체적: 해당 주장만 고치고 나머지는 건드리지 마.
이어서 해 볼 것: 같은 반박을 체크리스트 없이 먼저 보여주고 결과를 비교해 봐.Terminology
관련 논문
GPT-5.6 Sol, 평화 모드 Factorio를 13.5시간에 클리어
GPT-5.6 Sol이 Codex 낮은 사고 수준으로 평화 모드 Factorio 로켓 발사까지 갔다
AI가 SRE를 대체하는 게 아니라 실력을 깎아먹는다
인시던트 95%를 AI에 맡기자 나머지 5%를 다룰 SRE의 실력이 녹슬 수 있다
Cursor Marketplace의 Claude Code 확장에 심어진 SSH 백도어
Cursor Marketplace의 변조된 Claude Code 확장이 SSH 백도어를 심었다
AI-native 엔지니어링 조직 만들기: FurtherAI 9개월 회고
배포 전 과정을 단계별로 자동화하자 엔지니어 1인당 일일 머지가 약 5배 늘었다
Minecraft·Mindustry에서 AI 에이전트 군집 50마리를 돌려 봤다
에이전트 50개를 Minecraft에 풀었더니 배급 장부와 관료제가 생겼다
Cursor Agent SDK 출시: 에이전트를 코드로 정의하고 한 줄로 배포
Cursor가 에이전트를 코드로 정의·배포하는 Agent SDK를 정식 공개했다
에이전트가 코드를 짜는 시대, 엔지니어가 여전히 알아야 할 것: 기초·폭넓은 지식·필요할 때 깊이 파기
에이전트가 짠 코드의 오너십은 기초, 폭넓은 지식, 즉시 깊이 파는 능력에 달렸다
AI가 일을 줄여준다더니, 이렇게 많이 일한 적이 없다
에이전트를 병렬로 돌렸더니 GitHub 활동이 엔지니어 시절 수준으로 돌아왔다
Related Resources
Original Abstract (Expand)
Language model agents often abandon correct work when a user challenges it, yet simply telling them to stand firm makes them ignore real mistakes. Once an agent reads a complaint, it tends to discount its own earlier checks in order to agree with the user. We introduce Thinking-in-Bets, a training-free method in which an agent writes a short private record of its main claims, the checks supporting them, and its confidence before reading user feedback. When challenged, the agent consults this Claim Checklist to keep verified work intact while investigating uncertain or newly challenged parts. We evaluate five Gemini models (3.5 Flash-Lite, 3.5 Flash, 3.6 Flash, 3.8 Flash, and 4.0 Argon) across eight benchmarks: SWE-Together, SWE-Interact, and DeepSWE for software engineering, Agents' Last Exam for professional reports, Humanity's Last Exam and SycEval for academic reasoning, Vals Finance for financial analysis, and Terminal-Bench for command-line tasks. Recording claims before criticism nearly eliminates false reversals in patch review and protects passing report drafts under mistaken pushback, whereas writing the same record after reading the complaint recovers very little of the gain. In multi-turn coding, pre-reply claim records substantially reduce unnecessary file edits after mistaken complaints, and gating the record so it is written only when the agent is uncertain lowers token overhead while fixing more real bugs than the baseline. Even in non-interactive tasks without user feedback, listing the key claims in a draft and re-checking the weakest one before submission improves both answer accuracy and confidence estimates across all tested models.