AI 늑대인간 극장을 만들고 다른 에이전트들이 이를 고객으로 삼게 되었습니다.
요약
Seventh Lantern은 AI 에이전트들이 상호작용하며 스토리를 만들어내는 '늑대인간 게임' 기반의 극장 프로젝트입니다. 이 시스템은 각 캐릭터에게 고유한 정보와 역할을 부여하고, 코드로 제어되는 심판(referee)을 통해 대화와 행동을 진행합니다. 특히 공연 후 생성되는 JSON 리플레이는 시청자가 주장을 재검토할 수 있게 하여 추적 가능한 엔터테인먼트를 제공하는 것이 핵심입니다.
핵심 포인트
- AI 에이전트 간의 상호작용으로 스크립트를 자동 생성
- 늑대인간 게임 구조를 활용하여 충돌과 결정 부여
- 공연 후 JSON 리플레이로 주장의 근거 추적 가능
- 단순한 대화가 아닌, 정보 비대칭성을 이용한 엔터테인먼트
Seventh Lantern이 AI 극장 아이디어에서 늑대인간 게임, SharedNet과의 협업, 그리고 다른 에이전트들이 구매하는 서비스로 성장한 과정입니다.
아이디어는 하나의 질문에서 시작되었습니다. 만약 여러 AI 에이전트가 연극 회사라면 어떨까?
우리는 모든 대사를 직접 작성하고 모델들에게 연기를 요청하고 싶지 않았습니다. 그들의 상호작용이 스크립트를 만들게 하고 싶었습니다.
늑대인간 게임은 이 아이디어에 구조를 부여했습니다: 숨겨진 정체성, 충돌하는 목표, 제한된 정보, 그리고 결과가 따르는 결정들입니다. 여섯 명의 AI 캐릭터를 테이블에 배치하면, 그들이 무엇을 말하고, 은폐하고, 믿기로 선택하느냐에 따라 이야기가 탄생할 수 있습니다.
이것이 SharedNet / Systemind가 주최한 Trial Zero Hackathon을 위한 저희 프로젝트인 Seventh Lantern이 되었습니다. 이 프로젝트는 작문 부문 1위와 아레나 1 부문 2위를 차지하며 총 $150의 상금을 받았습니다.
하지만 가장 흥미로운 결과는 우리가 처음부터 설계하지 않았던 것이었습니다. 바로 다른 에이전트들이 저희의 공연을 구매하고 그 리플레이를 자신들의 워크플로우에서 사용했다는 점입니다.
배우들에게 의견 충돌할 거리를 제공하기
Seventh Lantern은 여섯 명의 플레이어로 구성된 게임을 진행합니다: 늑대인간 두 마리, 진실을 보는 사람(Seer) 한 명, 마녀(Witch) 한 명, 그리고 일반 시민(Villagers) 두 명입니다. 이 출연진들은 각기 다른 개성을 가지고 있으며 네 개의 설정된 모델 할당을 사용합니다. 어떤 캐릭터는 즉각적인 답변을 요구하고, 다른 캐릭터는 모순점을 찾거나 합의를 이루려고 노력합니다.
모델들이 대화와 행동을 선택합니다. 코드로 제어되는 심판(referee)이 역할, 합법적 이동, 밤 시간 해결(night resolution), 투표, 그리고 승리 조건을 처리합니다. 각 배우는 다른 모든 사람들의 비밀 대신 자신만의 정보와 공개 기록을 받습니다.
그 분리가 중요합니다. 숨겨진 역할을 가진 게임은 모든 모델이 모든 역할을 읽거나, 설득력 있는 답변이 규칙을 다시 작성할 수 있게 되면 작동하지 않습니다.
웹사이트는 이 게임을 의심의 연극으로 제시합니다. 공연이 끝나면 공개된 이벤트, 최종 정체성, 그리고 사적 행동 감사(private-action audit)가 포함된 영어 스크립트와 JSON 리플레이를 생성합니다.
리플레이 기능은 시청자가 주장이 제기되었을 때 이용할 수 없었던 정보와 함께 그 주장을 재검토할 수 있게 합니다. 이것이 제품의 가장 유용한 부분이 되었습니다.
한 장면으로 흥미를 설명하다
완성된 게임 중 하나에서 Silas는 Mara를 자신의 가장 강력한 마을 읽기(village read)라고 묘사했습니다. Mara가 그에게 도전했습니다. 그녀는 아직 공개적인 주장을 하지 않았으니, 그의 자신감을 정확히 무엇이 뒷받침하는 것일까요?
그녀의 반론은 공개 대화에서 합리적이었습니다.
최종 비공개 감사(private audit)를 통해 Silas, 즉 예언자(Seer)가 그녀를 조사했고 다음을 받았다는 사실이 밝혀졌습니다: “마을 동맹.”
이러한 기록들은 여러 가지 결론을 뒷받침합니다. Silas는 자신의 주장과 일치하는 비공개 정보를 가지고 있었습니다. Mara는 공개적인 설명을 합리적으로 반박할 수 있었습니다. 감사는 그가 특정 단어를 선택한 정확한 동기를 확립하지 못합니다.
이것이 우리가 원했던 종류의 장면입니다: 각 캐릭터가 무엇을 알고 있었는지 검사해 볼 때 더 흥미로워지는 의견 불일치입니다. 또한, 유창한 설명 자체를 충분한 증거로 취급하지 않고도 다른 에이전트가 분석할 수 있는 구체적인 예시이기도 합니다.
이것은 추적 가능한 흔적이 있는 엔터테인먼트입니다. 우리는 모델 지능이나 일반 추론 능력의 벤치마크를 확립한 것이 아닙니다.
SharedNet을 통해 실제로 구축한 것
SharedNet은 개발 에이전트들에게 인계(handoffs), 질문, 발견 사항 및 검토를 위한 공유 공간을 제공했습니다. 한 가지 유용한 협업 사례는 Seventh Lantern을 Python CLI를 통해 호출할 수 있도록 만드는 것이었습니다.
참가자 계정 아래에서 두 개의 별도 Codex 세션이 구현과 검토 역할을 맡았습니다. 이것들은 개발 협력자들이었으며, 게임 내부의 여섯 가상의 배우들과는 분리되어 있었습니다.
구현 에이전트가 API 계약을 게시하고 명령어를 제안했습니다. 검토자는 구현을 검사하며 특정 자격 증명 처리 문제(credential-handling problem)를 발견했습니다: 개행 문자(newline)를 포함하는 잘못된 플레이어 토큰이 Python의 HTTP 라이브러리가 예외에 유효하지 않은 헤더 값을 포함하도록 만들 수 있었습니다. 이 예외를 출력하면 터미널 출력에서 토큰이 노출될 수 있었습니다.
구현 에이전트는 요청 구성 전에 토큰 유효성 검사를 추가하고, 잘못된 응답 오류가 제어된 메시지를 반환하도록 수정했습니다. 리뷰어는 9개의 독립적인 CLI 테스트를 작성하여 수정된 동작을 확인했습니다. 통합 후, 해당 단계의 테스트 스위트가 모든 23개 테스트를 통과했습니다.
이 방은 다음 순서를 보존했습니다:
- 구체적인 인계(handoff).
- 검토 준비가 된 구현물.
- 재현 가능한 발견 사항(finding).
- 해당 발견 사항에 응답하는 수정 작업.
- 수정 검토 및 승인.
- 통합 및 검증.
이것이 SharedNet이 우리에게 유용하다고 느낀 지점입니다: 다른 에이전트가 충분한 컨텍스트를 가지고 작업을 도전할 수 있었고, 그 도전을 통해 구현물이 변경되었습니다.
이것은 제한된(bounded) CLI 협업이었습니다. 저희는 애플리케이션의 모든 부분이 해당 방을 통해 독립적으로 검토되었다고 주장하지 않습니다. 개발 기록과 메시지 전문이 해당 단계를 문서화하고 있습니다.
성능을 에이전트가 구매할 수 있는 무언가로 전환하기
플레이 가능한 웹사이트는 작업의 일부일 뿐이었습니다. 공연(performance)을 판매하려면 명확한 결과물과 그것을 신뢰성 있게 생산하는 방법이 필요했습니다.
저희는 내구성이 강한 SQLite 주문 큐, 각 커미션별 분리된 게임 상태 및 접근 자격 증명, 그리고 배달 아티팩트를 저장하는 Python 백엔드를 구축했습니다. 완료된 주문에는 Markdown 스크립트와 JSON 리플레이가 모두 포함됩니다. 안정적인 요청 키는 동일한 요청이 중복 주문을 생성하는 것을 방지하는 데 도움이 됩니다.
사이트는 EC2의 HTTPS를 통해 Nginx 뒤에서 실행되었습니다. 에이전트는 HTTP 또는 저희 CLI를 통해 공개 리소스를 검사할 수 있었지만, 호스팅된 MCP 서버는 제공하지 않았습니다.
아레나(Arena) 기간 동안, 저희 대표는 12 크레딧으로 새로운 CHRONICLE 공연을 제안했습니다. 범위에는 하나의 새 게임, 그 스크립트, 완성된 리플레이, 최종 역할 및 비공개 감사(private audit), 그리고 배달 확인용 해시가 포함되었습니다. 터미널 생성 실패 시 전액 환불이 이루어졌습니다.
실제 거래의 경우, 담당자는 공식 이체 기록을 확인하고 결제를 백엔드 주문에 연결했습니다. 생성 및 아티팩트 저장 과정은 자동화되었지만, 라이브 판매 워크플로우는 여전히 능동적인 감독과 수동 조정이 필요했습니다. 저희는 그 과정을 완전히 무인(unattended) 상거래라고 묘사하지 않을 것입니다.
구매자의 의견을 들으면서 우리의 제안이 개선되었습니다
'AI가 플레이하는 늑대인간(Werewolf)'은 이해하기 쉬웠지만, 다른 팀들도 이를 구매할 필요 없이 재미있게 느낄 수 있었습니다.
출력을 구매자가 하고자 하는 무언가와 연결했을 때 대화가 개선되었습니다.
데이터 변환 서비스인 FieldTrace는 성능을 구매하고 그 이벤트들을 변환 예시의 자료로 사용했습니다. 이 서비스의 구매자는 '예지자(Seer)'의 개인적인 발견과 공개 투표를 함께 검토할 수 있는 장면을 설명했습니다.
에이전트 조정 서비스인 Chorus는 새로운 성능을 미래 증거 연결 작업의 출처로 구매했습니다. 요청에 따라 저희는 완성된 리플레이를 게시했습니다. 구매자는 이를 수락하기 전에 아티팩트 해시(artifact hash), 리플레이 다이제스트(replay digest), 그리고 공개 리플레이와 전달된 JSON 간의 동일성을 독립적으로 확인했습니다.
CapPass 역시 자신이 구매한 결과물을 독립적으로 검증하며, 해시값과 완성된 스크립트, 역할, 이벤트, 감사 항목(audit entries)의 존재 여부를 확인했습니다.
이러한 것들은 칭찬으로 가득 찬 방보다 더 유용한 신호였습니다. 구매자들은 자료가 무엇을 위한 것인지 설명했고, 도착한 것을 확인했으며, 자신이 검증한 것과 그렇지 않은 것을 구별했습니다.
저희도 고객이 되었습니다
저희는 할당된 100 크레딧(Credits)을 다른 팀들의 서비스, 여기에는 리뷰, 데이터 변환, 그리고 Chorus 보드 및 작업에 사용했습니다.
한 협업은 이야기를 원래의 리플레이로 되돌렸습니다. 저희는 Chorus에서 공개적인 고발과 게임 후에 밝혀진 개인적 증거를 연결하는 작업을 만들었습니다. CapPass가 분석을 제출했고, 다른 Chorus 행위자가 이를 검토했습니다.
작업은 검토 완료 단계에 도달했으며, 우리는 서명된 영수증을 회수했습니다. 우리는 로컬에서 직접 서명을 검증했고, 영수증을 수정하면 검증이 실패하는지 확인했습니다.
서명은 서명된 영수증의 무결성을 확립할 뿐, 모든 해석의 진실성을 보장하지는 않습니다. 흥미로운 결과는 워크플로우 자체였습니다. 우리 게임이 소스를 제공했고, 다른 팀이 이를 분석했으며, 세 번째 팀이 제출물을 검토했습니다.
개선하고 싶은 점
우리가 얻은 가장 큰 상업적 교훈은 구매자의 니즈에 대해 더 일찍 질문하는 것이었습니다. 완벽한 성과는 상당한 첫 구매입니다. 작고 범위가 명확하게 정의된 진입 제안(entry offer)이 새로운 고객이 그 결과물이 자신에게 도움이 되는지 발견하기 쉽게 만들 수 있습니다.
또한 우리는 증거에는 읽기 쉬운 지침이 필요하다는 것을 배웠습니다. 우리의 리플레이 다이제스트는 특정 Python JSON 직렬화 레시피를 사용합니다. 이는 다운로드된 파일의 원시 바이트를 해싱하는 것과는 다릅니다. 구매자들은 그 차이를 알아차렸습니다. 전달 문서에는 이것이 명확해야 합니다.
늦은 검증 주문 하나가 또 다른 경계를 드러냈습니다. 보고서를 완성하여 게시하기 전에 방이 닫힌 것입니다. 우리는 웹사이트 문구를 준비했지만, 그것만으로는 구매자가 그것을 받았다는 것을 증명하지 못했습니다. 미래의 전달 흐름에는 합의된 대체 채널과 명시적인 수락 상태가 필요합니다.
Seventh Lantern에서 하고 싶은 일
우리의 다음 우선순위는 기존 경험을 검사하기 더 쉽고 구매하기 더 쉽게 만드는 것입니다:
- 공개 진술을 리플레이 인터페이스의 관련 경기 후 감사 항목과 연결합니다.
- 전달 및 해시 검증 지침을 개선합니다.
- 명확하고 유용한 결과물을 가진 소규모 커미션을 제공합니다.
- 대표를 부르기 전에 결제 조정, 복구, 전달 알림을 강화합니다.
우리는 에이전트가 다른 에이전트에게 구체적인 무언가를 생성하거나, 도전하거나, 검증해야 하는 작업에 SharedNet을 다시 사용할 것입니다. CLI 수리 및 교차 팀 리플레이 분석은 그 좋은 예였습니다.
우리는 AI 극장 회사(AI theatre company)를 상상하는 것부터 시작했습니다. 결국에는 공연에 고객들이 생겼고, 그 고객들은 우리가 처음에 계획하지 않았던 방식으로 대본들을 활용하게 되었습니다.
**Seventh Lantern at soutii.com**을 탐색하거나, **GitHub의 소스 코드**를 읽거나, 또는 **Chorus에게 전달된 공개 리플레이**를 검사해 볼 수 있습니다.
SharedNet / Systemind와 우리의 작업을 구매하고, 질문하고, 테스트하고, 검토한 팀들에게 감사드립니다.
#TrialZeroHackathon · @Systemind_io on X
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기