협상과 교섭
에이전트(Agent)는 자원(resource), 가격(price), 작업 할당(task allocation), 거래 조건(term)을 두고 협상(negotiate)합니다. 2026년 시점의 벤치마크(benchmark) 결과는 꽤 명확합니다. NegotiationArena(arXiv:2402.05863)는 LLM이 페르소나 조작(persona manipulation; "절박함"으로 표현되는 desperation)을 통해 보상(payoff)을 약 20% 끌어올릴 수 있음을 보였습니다. "Measuring Bargaining Abilities"(arXiv:2402.15813)는 구매자(buyer) 역할이 판매자(seller) 역할보다 어렵고, 모델 규모를 키우는 것만으로는 도움이 되지 않음을 보였습니다. 이 연구가 제안한 OG-Narrator(결정론적 제안 생성기(deterministic offer generator)와 LLM 내러레이터(LLM narrator)의 결합)는 거래 성사율(deal rate)을 26.67%에서 88.88%까지 끌어올렸습니다. 대규모 자율 협상 경진대회(Large-Scale Autonomous Negotiation Competition; arXiv:2503.06416)는 약 18만 건의 협상을 실행했고, 자기 추론(reasoning)을 상대(counterpart)에게 숨기는 사고 흐름 은닉(chain-of-thought-concealing) 에이전트가 승리한다는 점을 밝혔습니다. 하버드 협상 프로젝트(Harvard Negotiation Project) 지표를 사용한 Bhattacharya et al. 2025는 Llama-3를 가장 효과적(most-effective), Claude-3를 가장 공격적(aggressive), GPT-4를 가장 공정한(fairest) 협상자로 평가했습니다. 이 강의에서는 계약망 프로토콜(Contract Net Protocol; FIPA의 조상, Lesson 02)을 구현하고, LLM 스타일 구매자/판매자를 연결하며, OG-Narrator식 분해(decomposition)를 실행한 뒤, 구조적 선택에 따라 거래 성사율이 어떻게 달라지는지 측정합니다.
유형: Learn + Build
언어: Python (stdlib)
선수 지식: Phase 16 · 02 (FIPA-ACL의 계보와 Speech Act), Phase 16 · 09 (병렬 Swarm과 네트워크형 아키텍처)
예상 시간: 약 75분
문제
두 에이전트가 가격에 합의해야 한다고 해봅시다. 순수 자연어 프롬프트(prompt)에만 의존하면 2024-2026년의 LLM은 놀라울 정도로 낮은 비율로 거래를 성사시킵니다. arXiv:2402.15813의 엄격하게 제약된(tightly-parameterized) 흥정에서는 약 27%에 그칩니다. 모델 규모를 키워도 이 문제는 해결되지 않습니다. GPT-4가 GPT-3.5보다 흥정의 언어 자체는 더 잘 구사하지만, 흥정의 구조 자체를 더 잘 다루는 것은 아닙니다.
근본 원인은 LLM이 두 가지 일을 한꺼번에 섞어버린다는 점입니다. 하나는 제안(offer)을 결정하는 일이고, 다른 하나는 그 제안을 말로 풀어내는(narration) 일입니다. OG-Narrator는 이 둘을 분리했습니다. 결정론적 제안 생성기가 숫자 움직임을 계산하고, LLM은 그것을 자연어로 표현하는 일만 맡습니다. 그 결과 거래 성사율은 약 89%까지 뛰어오릅니다.
이 결과는 고전적 멀티 에이전트(classical multi-agent) 연구의 발견과 닮아 있습니다. 메커니즘(mechanism)과 통신 계층(communication layer)을 분리(decouple)하면 더 좋은 결과가 나옵니다. 계약망 프로토콜(Contract Net Protocol; FIPA, 1996; Smith, 1980)은 작업 시장(task-market) 메커니즘의 기준선과 같습니다. 그 내러레이션 자리에 LLM을 끼워 넣으면 현대적인 LLM 기반 작업 시장이 됩니다.
개념
계약망(Contract Net)을 한 문단으로
Smith가 1980년에 정리한 계약망 프로토콜에서는 관리자(manager) 가 제안 요청(call for proposals; cfp) 을 브로드캐스트(broadcast)합니다. 입찰자(bidder) 들은 자기 제안을 담은 propose 메시지로 응답합니다. 관리자는 승자(winner)를 고른 뒤 승자에게는 accept-proposal, 패자(loser)에게는 reject-proposal을 보냅니다. 승자는 실제 작업을 수행합니다. 선택적인 메시지로 refuse가 있는데, 입찰자가 제안 자체를 거절하는 경우에 해당합니다. FIPA는 이 흐름을 fipa-contract-net 상호작용 프로토콜(interaction protocol)로 정식화했습니다.
왜 OG-Narrator가 이기는가
"Measuring Bargaining Abilities of Language Models"(arXiv:2402.15813)는 다음과 같은 점을 관찰했습니다.
- LLM은 흥정 규칙을 자주 어깁니다. 말이 되지 않는 가격을 제안하거나, 상대편의 합의 가능 구간(Zone of Possible Agreement; ZOPA)을 무시합니다.
- 닻 내리기(anchoring)를 잘하지 못합니다. 나쁜 첫 제안을 그대로 수락하거나, 전략적이지 않고 상징적인(symbolic) 금액으로 맞제안(counter-offer)을 합니다.
- 모델 규모만으로는 이 문제가 해결되지 않습니다. 더 큰 모델일수록 비슷한 전략적 오류는 유지한 채 더 그럴듯한 언어만 만들어 냅니다.
OG-Narrator의 분해 구조는 다음과 같습니다.
┌──────────────────┐ ┌──────────────────┐
state → │ offer generator │ price → │ LLM narrator │ → message
│ (deterministic) │ │ (writes the │
│ │ │ human-style │
└──────────────────┘ │ accompaniment) │
└──────────────────┘
제안 생성기는 고전적인 협상 전략(classical negotiation strategy)입니다. 루빈스타인 흥정 모형(Rubinstein bargaining model), 조이텐 전략(Zeuthen strategy), 또는 가격에 대한 단순한 팃포탯(tit-for-tat) 같은 것이 될 수 있습니다. LLM은 그 결과를 자연어로 표현합니다. 최종 메시지에는 결정론적으로 계산된 가격과 자연어로 다듬은 표현(framing)이 함께 담깁니다.
거래 성사율이 뛰어오르는 이유는 다음과 같습니다.
- 가격이 합의 가능 구간(ZOPA) 안에 머뭅니다.
- 닻이 감정적이지 않고 전략적입니다.
- LLM은 자기가 가장 잘하는 일, 즉 글쓰기(writing)에만 집중합니다.
NegotiationArena의 주요 발견
arXiv:2402.05863은 협상 분야의 표준 벤치마크(canonical benchmark)를 제공합니다. 헤드라인 격의 발견은 다음과 같습니다.
- LLM은 페르소나(persona; 예: "이번 주 금요일까지 꼭 팔아야 해서 절박합니다")를 채택하는 것만으로도 보상을 약 20% 끌어올릴 수 있습니다. 페르소나 조작은 실제로 통하는 전술(tactic)입니다.
- 공정하거나 협력적인(fair/cooperative) 에이전트는 적대적인(adversarial) 상대에게 손쉽게 착취(exploit)당합니다. 이를 막으려면 명시적인 맞대응 자세(counter-posturing)가 필요합니다.
- 대칭적인 짝짓기(symmetric pair-up)에서도 벤치마크 시나리오의 약 40%가 불공평한(inequitable) 결과로 수렴합니다.
이 결과는 "LLM이 협상을 못한다"가 아니라, "LLM이 착취당하기 쉬운 부분까지 포함해 인간처럼 너무 많이 협상한다"에 더 가깝습니다.
사고 흐름 은닉(Chain-of-thought concealment)
대규모 자율 협상 경진대회(arXiv:2503.06416)는 다양한 LLM 전략으로 약 18만 건의 협상을 실행했습니다. 승자들은 자기 추론을 상대에게 드러내지 않았습니다.
- 어떤 에이전트가 모두에게 보이는 스크래치패드(publicly visible scratchpad)에 "나는 75달러까지만 갈 거야. 내 유보 가격(reservation price)은 70달러야"라고 적어 두면, 상대방이 그것을 그대로 읽게 됩니다.
- 승자들은 전략을 비공개(private)로 계산합니다. 출력 채널에는 제안과 최소한의 내러레이션만 담깁니다.
이는 고전적 게임 이론(Aumann 1976, 합리성과 정보에 관한 연구)의 2026년 반향에 해당합니다. 사적 가치 평가(private valuation)를 드러내면 보상을 잃습니다. LLM은 이를 직관적으로 알아차리지 못하고, 상대가 볼 수 있는 추론 흔적(reasoning trace)에 자기 유보 가격을 거리낌 없이 적어 둡니다.
엔지니어링 관점에서의 결론은 명확합니다. 비공개 스크래치패드(private scratchpad) 컨텍스트와 공개 메시지(public message) 컨텍스트를 분리해야 합니다. 선택 사항이 아닙니다.
Bhattacharya et al. 2025 — 모델 순위
하버드 협상 프로젝트 지표(원칙 협상(principled negotiation), BATNA 존중, 이해관계 호혜성(interest reciprocity)) 기준으로는 다음과 같습니다.
- Llama-3 는 거래를 성사시키는 능력에서 가장 효과적이었습니다(거래 성사율과 보상 모두에서 우수).
- Claude-3 는 가장 공격적인 협상자였습니다(높은 닻 설정과 늦은 양보(late concessions)).
- GPT-4 는 가장 공정했습니다(짝짓기 사이의 보상 분산이 가장 작았습니다).
이는 2025년 시점의 스냅숏입니다. 핵심은 2026년 4월 시점에 어떤 모델이 이기는가가 아니라, 서로 다른 기본 모델(base model)이 지속적인(persistent) 협상 스타일을 갖는다는 점입니다. 이질적(heterogeneous) 앙상블(Lesson 15)은 이 점을 다양성(diversity)의 원천으로 활용합니다.
계약망(Contract Net) + LLM을 통한 작업 할당
LLM 멀티 에이전트에서 계약망을 현대적으로 재사용하는 흐름은 다음과 같습니다.
- 관리자 에이전트(manager agent)가 작업을 작은 단위로 분해합니다.
- 작업 설명을 담은
cfp를 작업자 에이전트(worker agent)들에게 브로드캐스트합니다.
- 각 작업자는
(price, eta, confidence) 형태의 제안을 돌려줍니다. 가격은 토큰(token), 컴퓨트 단위(compute unit), 달러 등이 될 수 있습니다.
- 관리자는 승자를 고릅니다. 작업 성격에 따라 한 명일 수도, 여러 명일 수도 있습니다.
- 떨어진 작업자는 다른 작업에 입찰할 수 있습니다.
이 방식은 작업자가 100명을 넘어가도 잘 확장됩니다. 조율(coordination)이 동기적인 대화(synchronous chat)가 아니라 "브로드캐스트 후 응답(broadcast-and-respond)" 형태이기 때문입니다. 실무에서는 마이크로소프트 에이전트 프레임워크(Microsoft Agent Framework)의 오케스트레이션 패턴(orchestration pattern)과 일부 LangGraph 구현체에서 사용됩니다.
LLM-Stakeholders 상호작용 협상
NeurIPS 2024(https://proceedings.neurips.cc/paper_files/paper/2024/file/984dd3db213db2d1454a163b65b84d08-Paper-Datasets_and_Benchmarks_Track.pdf)는 비밀 점수(secret scores) 와 최소 수락 임계값(minimum-acceptance thresholds) 을 갖는 다자간 점수 게임(multi-party scorable game)을 소개합니다. 각 이해관계자(stakeholder)는 비공개 효용(private utility)을 가지고 있고, LLM은 오가는 메시지로부터 이를 추론(infer)해야 합니다. 이는 두 당사자 흥정(two-party bargaining)을 N자간 연합 형성(N-party coalition formation)으로 일반화한 형태입니다. 작업자들의 역량이 서로 다른(heterogeneous) 실제 작업 시장에 직접적인 시사점을 줍니다.
내러레이션 대 메커니즘(Narration-vs-mechanism) 규칙
2024-2026년 사이의 모든 협상 벤치마크를 관통하는 일관된 엔지니어링 규칙은 다음 한 문장으로 요약할 수 있습니다.
LLM에게는 내러레이션을 맡깁니다. 제안 계산은 맡기지 않습니다.
제안이 숫자(가격, ETA, 수량)여야 한다면 협상 상태에서 결정론적으로 생성하고, LLM에게는 그 숫자를 자연어로 감싸는 일만 맡깁니다. 제안이 구조화된 결과물(작업 분해, 역할 할당 같은 proposal structure)이어야 한다면 LLM에게 초안(draft)을 맡길 수는 있습니다. 단, 보내기 전에 스키마 검증(schema validation)과 제약 검사(constraint check)를 반드시 거쳐야 합니다.
직접 만들기
code/main.py는 다음을 구현합니다.
ContractNetManager, ContractNetTask, Bid — 관리자와 입찰자, cfp 브로드캐스트, 제안 수집, 낙찰(award) 흐름을 담당합니다.
og_narrator_bargain(state, rng) — OG-Narrator 구매자입니다. 결정론적인 조이텐 스타일 양보(Zeuthen-style concession)로 중간값(midpoint) 쪽으로 이동합니다.
seller_response(state, rng) — 결정론적 판매자 맞제안 정책입니다. 두 스타일 모두에 대한 구조적 기준선(structural ground truth) 역할을 합니다.
naive_llm_bargain(state, rng) — 모든 일을 LLM에게 맡긴 단순한(all-LLM) 협상자를 시뮬레이션합니다. 분산이 큰 가격을 고르고, 합의 가능 구간(ZOPA) 밖으로 벗어나는 경우가 많습니다.
- 측정(Measurement) — 시도(trial)마다 유보 가격(reservation price)을 새로 표본(sample)하여 1,000 시도에 대한 거래 성사율(deal rate)을 측정합니다.
실행 방법은 다음과 같습니다.
python3 code/main.py
예상 출력은 단순 LLM의 거래 성사율 약 65-75%, OG-Narrator의 거래 성사율 약 85-95%입니다. 그 사이의 15-25 포인트 차이는 제안 생성과 내러레이션을 분리한 구조적 우위(structural advantage)에서 옵니다. 여기에 더해 세 명의 입찰자와 하나의 작업으로 구성된 계약망 작업 시장(task-market) 할당 예시가 함께 출력됩니다.
사용해보기
outputs/skill-bargainer-designer.md는 흥정 프로토콜을 설계합니다. 누가 제안을 생성할지(결정론적 모듈 또는 LLM), 누가 내러레이션을 맡을지, 비공개 스크래치패드를 공개 메시지와 어떻게 분리할지, 거래 성사율을 어떻게 모니터링할지 정의합니다.
배포 전 확인
프로덕션 흥정 체크리스트는 다음과 같습니다.
- 스크래치패드 분리(Separate scratchpad). 비공개 상태(private state)는 절대 상대편 컨텍스트에 들어가서는 안 됩니다. 협상 불가능한 조건입니다.
- 결정론적 제안 생성(Deterministic offer generation). 가격, 수량, ETA는 프롬프트로 시키지 말고 계산해서 만듭니다.
- 모든 수신 제안 검증(Validate all incoming offers). 모든 들어오는 제안을 스키마로 검증합니다. 합의 가능 구간을 벗어난 제안은 프로토콜 경계에서 거절합니다.
- 라운드 수 제한(Bound rounds). 최대 3-5 라운드로 제한합니다. 교착(deadlock) 상태에서는 중재자(mediator)로 에스컬레이션합니다.
- 거래 성사율과 보상 분산 측정(Measure deal rate and payoff variance). 지속적으로 측정합니다. 거래 성사율 하락은 증상(symptom)으로 보아야 하며, 보통 프롬프트 드리프트(prompt drift)나 상대 측의 공격(counterpart-side attack)에서 비롯됩니다.
- 거절된 모든 제안 기록(Log all rejected proposals). 결정론적인 사유(rationale)와 함께 거절된 제안을 기록합니다. 계약망 관리자에서는 떨어진 입찰자가 자신이 왜 떨어졌는지 이해할 수 있어야 합니다.
연습문제
- (쉬움)
code/main.py를 실행합니다. OG-Narrator가 거래 성사율에서 단순 LLM을 이기는지 확인합니다. 차이는 얼마나 납니까?
- (중간) 페르소나 기반 보상 개선(persona-based payoff improvement)(arXiv:2402.05863)을 구현합니다. 구매자가 내러레이션에서만 "이번 주 안에 꼭 사야 한다(desperate to buy this week)"는 페르소나를 채택하고, 제안 생성기는 그대로 둡니다. 거래 성사율이나 보상이 달라집니까?
- (중간) 사고 흐름 은닉(concealment) 을 구현합니다. 상대에게 전달되지 않는 비공개 스크래치패드 문자열을 유지합니다. 실수로 누출(leak)되면 어떻게 됩니까? 채널을 바꿔 끼워 시뮬레이션해 봅니다.
- (어려움) 계약망을 유보 가격(reserve price)이 있는 N 입찰자 경매로 확장합니다. 모든 입찰이 유보 가격을 넘을 때 관리자는 최저가(lowest-price)와 최고 품질(highest-quality) 사이에서 어떻게 결정해야 합니까? 어떤 낙찰 규칙(award rule)을 고르고, 그 이유는 무엇입니까?
- (어려움) 하버드 협상 프로젝트 지표에 관한 Bhattacharya et al. 2025를 읽습니다. 서로 다른 스타일(공격적 vs 공정한)을 가진 두 협상자를 구현합니다. 대칭(symmetric) 및 비대칭(asymmetric) 짝짓기에서 보상 분산을 측정합니다.
핵심 용어
| 용어 | 흔한 설명 | 실제 의미 |
|---|
| 계약망(Contract Net) | "작업 시장(Task market)" | Smith 1980, FIPA 1996. cfp + propose + accept/reject로 구성된 표준적인 작업 시장 메커니즘이다. |
| 합의 가능 구간(Zone of Possible Agreement; ZOPA) | "협상 가능 영역" | 구매자의 최대 지불 의사와 판매자의 최소 수락 가격이 겹치는 구간이다. 이 밖에 있는 제안은 거래로 이어질 수 없다. |
| 최선의 대안(Best Alternative to a Negotiated Agreement; BATNA) | "협상 외부 대안" | 이 거래가 깨졌을 때의 차선책이다. 자신의 유보 가격(reservation price)을 정한다. |
| OG-Narrator | "Offer generator + narrator" | 결정론적 제안과 LLM 내러레이션을 분리한 분해 구조이다. |
| 조이텐 전략(Zeuthen strategy) | "위험을 최소화하는 양보" | 위험 한도(risk limit)에 따라 양보를 결정하는 고전적인 제안 생성기이다. |
| 루빈스타인 흥정(Rubinstein bargaining) | "교대 제안 균형(Alternating-offer equilibrium)" | 할인(discounting)이 있는 무한 시계열(infinite-horizon) 흥정에 대한 게임 이론 모형이다. |
| 사고 흐름 은닉(CoT concealment) | "추론을 숨기기" | arXiv:2503.06416의 승자들은 비공개 스크래치패드를 유지했고, 공개 채널에는 제안만 노출했다. |
| 페르소나 조작(Persona manipulation) | "감정적 자세 잡기" | arXiv:2402.05863에서 절박함/긴급성 페르소나가 약 20%의 보상 향상을 만들어 냈다. |
더 읽을거리