Telegram에서 3개 에이전트 AI 트레이닝 시뮬레이터를 구축했습니다 — 작동 방식 소개
요약
Telegram을 기반으로 3개의 AI 에이전트가 협업하는 트레이닝 시뮬레이터 TeachSim을 소개합니다. LangGraph를 활용해 Chaos, Mentor, Scoring 에이전트가 단일 상태를 공유하며 실시간 코칭과 성과 측정을 수행합니다.
핵심 포인트
- LangGraph StateGraph를 이용한 멀티 에이전트 아키텍처 구현
- 역할별 최적화된 Temperature 설정을 통한 에이전트 특성 제어
- DeepSeek V4 Flash 모델을 활용한 실시간 시나리오 시뮬레이션
- 소크라테스식 힌트 제공 및 정량적 성과 보고 기능
압박감을 주는 캐릭터로 교육생을 스트레스 테스트하고, 소크라테스식 힌트로 실시간 코칭을 제공하며, 성과를 점수화하는 작동 가능한 Telegram 봇입니다. 이 모든 것이 단 하나의 메시지로 이루어집니다.
문제점 (The Problem)
대부분의 AI 트레이닝 도구는 두 가지 중 하나를 수행합니다: 퀴즈를 내거나, 역할극 (roleplay)을 하는 것입니다. 둘 다 전문적인 기술 훈련에는 완전히 적합하지 않습니다. 퀴즈는 당신이 무엇을 알고 있는지 알려줍니다. 도움이 되는 AI와의 역할극은 당신이 무엇을 말했어야 했는지를 알려줍니다.
빠져 있는 조각은 바로 압박감 (pressure)입니다. 현실적인 조건 하에서 당신이 어떻게 반응하는지 지켜보고, 당신이 잘못된 방향으로 가고 있을 때 넛지 (nudge)를 주며, 실제로 어떻게 수행했는지에 대한 정직한 보고를 제공하는 무언가가 필요합니다.
그것이 제가 만들고 싶었던 것입니다.
TeachSim이란 무엇인가 (What TeachSim Is)
TeachSim은 Telegram 기반의 트레이닝 시뮬레이션입니다. 교육생은 세션을 시작하여 현실적인 직장 시나리오에 투입되며, 이를 실시간으로 헤쳐 나가야 합니다. 그들이 보지 못하는 것: 두 개의 추가적인 AI 에이전트가 전체 대화를 지켜보고 있다는 사실입니다. 하나는 교육생이 막히거나 잘못된 방향으로 갈 때 소크라테스식 힌트 (Socratic hint)를 제공할 준비가 되어 있습니다. 다른 하나는 세션이 종료되는 즉시 발송되는 점수화된 성과 보고서를 작성합니다.
세 개의 에이전트. 하나의 대화. 교육생은 오직 그들 중 한 명하고만 대화합니다.
아키텍처 (The Architecture)
세 개의 에이전트는 LangGraph StateGraph의 노드로 실행되며, 모든 교환 과정에서 모든 것(대화 기록, 에스컬레이션 레벨, 사용된 힌트, 해결 신호, 점수 산정 차원)을 추적하는 단일 상태 (state) 객체를 공유합니다.
User message → Chaos node → Mentor node → [conditional]
│
session_active=False → Score → END
각 에이전트는 자신의 역할에 맞게 조정된 고유의 LLM 클라이언트를 가집니다:
get_chaos_client() # temperature=0.75 — 자연스럽고 다양한 캐릭터 대화
get_mentor_client() # temperature=0.3 — 절제된 소크라테스식 힌트
get_scoring_client() # temperature=0.1 — 결정론적인 (deterministic) JSON 보고서
세 에이전트 모두 OpenRouter를 통해 DeepSeek V4 Flash를 호출합니다. 모델 문자열은 deepseek/deepseek-v4-flash입니다. 제공자(provider)를 변경하려면 환경 설정(environment)에서 파일 하나만 수정하면 됩니다.
두 가지 라이브 시나리오
STEM 분야의 여학생들: 소외된 학생에게 대응하기
교육생은 STEM 그룹에서 소외감을 느끼는 Jamie라는 학생으로부터 메시지를 받습니다. 교육생은 답장을 작성해야 합니다. Chaos Persona (Jamie)는 교육생이 머뭇거리거나, 과도하게 사과하거나, 기술적으로는 맞지만 정서적으로 공감 능력이 부족한(tone-deaf) 내용을 작성할 경우 상황을 악화(escalate)시킵니다.
이 시나리오는 Brooks (2025) TALK 프레임워크에 기반하며, 채점 루브릭(scoring rubric)은 다음 세 가지 패턴을 명시적으로 추적합니다: 반응성 (Jamie가 실제로 말한 내용에 대응했는가, 아니면 단순히 감정적 카테고리에만 대응했는가?), 불필요한 사과 (Jamie의 문제를 해결하기보다 자신의 불편함을 드러내는 완곡한 표현(hedging)), 그리고 토픽 피라미드 (첫째로 연결, 둘째로 설명, 셋째로 실질적인 마무리).
멘토는 단순히 키워드 트리거에 반응하는 것이 아니라, 교육생이 실제로 작성한 답장 초안을 읽고 개입 여부를 결정합니다.
Claude Code 평가
교육생은 Claude Code에 대한 접근 권한을 부여받기 전, 계층화된 역량 프레임워크(competency framework)에 따라 AI 트레이너 페르소나인 Alex(따뜻하고 인내심 있는) 또는 Jordan(직설적이고 도전적인)으로부터 평가를 받습니다. 최대 16회의 대화, 3단계의 난이도, 그리고 계층별로 변하는 커버리지 임계값(coverage thresholds)이 적용됩니다.
초보(Novice) 난이도는 선택 사항과 관계없이 항상 Alex에게 연결됩니다. 전문가(Expert) 난이도는 준비 완료 판정이 내려지기 전, 세 계층 모두에서 80%의 커버리지를 달성해야 합니다.
내부 작동 원리
Chaos Persona는 상황을 악화시킵니다. 악화 단계(Escalation level)는 0에서 4까지 진행되며 절대 감소하지 않습니다. 교육생이 머뭇거리거나, 반복적인 실수를 하거나, 명백히 목표에서 벗어난 결과물을 내놓으면, 페르소나는 더욱 직설적으로 변하고 인내심이 줄어듭니다. 교육생은 단순히 예의 바르게 행동한다고 해서 분위기를 초기화할 수 없습니다. 반드시 실제 문제를 해결해야 합니다.
멘토(Mentor)는 문제를 식별할 때까지 침묵합니다. 멘토 트리거(Mentor triggers)는 시나리오별로 ID(MT-01부터 MT-99까지), 심각도 가중치(severity weights), 그리고 max_fires 상한선이 포함된 구조화된 조건으로 정의됩니다. 동일한 트리거는 두 번 발생하지 않습니다. 트리거가 작동하면 힌트는 메인 대화와 분리된 코칭 노트(coaching note) 형태로 나타납니다. 교육생은 시스템이 지켜보고 있다는 사실은 알지만, 시스템이 정확히 언제 말을 걸지는 알 수 없습니다.
새로운 시나리오를 만드는 데 Python은 필요하지 않습니다. 페르소나(persona), 에스컬레이션 아크(escalation arc), 해결 조건(resolution conditions), 멘토 트리거, 채점 루브릭(scoring rubric), 난이도 변형(difficulty variants) 등 시나리오 정의 전체가 JSON 파일에 담겨 있습니다. Pydantic이 시작 시 모든 JSON을 검증합니다. 새로운 시뮬레이션 주제를 추가하는 것은 코드 문제가 아니라 스키마(schema) 문제입니다.
직접 체험해보기
봇은 @teachsim_bot에서 라이브로 운영 중입니다. 세션을 시작하고, 시나리오와 난이도를 선택한 뒤, 카오스 페르소나(Chaos Persona)가 약한 첫 답변에 어떻게 반응하는지 확인해 보세요.
1. Telegram 열기 → @teachsim_bot 검색
2. /start 입력
3. 시나리오 선택
...
세션은 20분 후에 타임아웃됩니다. 세션이 종료되거나 교육생의 대화 횟수가 소진되면 점수 보고서(score report)가 자동으로 생성됩니다.
현재의 솔직한 상태
현재 두 개의 시나리오가 프로덕션(production) 환경에서 운영 중입니다. 총 네 개를 구축했으나, 그중 두 개는 프로덕션의 시나리오만큼 교육적 가치가 높지 않아 폐기(deprecated)되었습니다. 리포지토리(repo)는 오픈 소스로 공개할지 결정할 때까지 현재 비공개 상태입니다. 이 봇은 단일 인스턴스(single-instance), 단일 리전(single-region) 방식으로 운영되며, 아직 동시 확장성(concurrent scale)을 고려하여 설계되지는 않았습니다.
오픈 소스 공개에 대하여
아직 고민 중입니다. 여기에는 충분히 많은 내용(에이전트별 온도 조절(temperature tuning)이 적용된 3-에이전트 LangGraph, 데이터 기반 시나리오 스키마, 소크라테스식 멘토 트리거 등)이 포함되어 있어, 폐쇄적인 도구보다는 레퍼런스 구현체(reference implementation)로서 더 유용할 수도 있습니다. 만약 이 시스템을 기반으로 도메인 특화 교육 시뮬레이션을 구축하고자 하는 분들의 관심이 있다면, 오픈 소스로 공개하는 것이 타당할 것입니다. 만약 이 도구를 무언가에 활용하고 싶다면, 저에게 무엇인지 알려주세요.
다음 단계
TeachSim은 직장 및 도구 시나리오, 즉 높은 이해관계(high stakes), 명확한 정답, 측정 가능한 결과가 존재하는 환경을 중심으로 구축되었습니다. 아키텍처(Architecture)는 이러한 목적에 잘 작동합니다. 하지만 동일한 3개 에이전트 설계(압박을 주는 캐릭터, 침묵하는 멘토, 점수가 매겨진 보고서)는 훨씬 더 오래되고 어려운 문제인 일상 대화(everyday conversation)에도 적용될 수 있습니다.
저는 동일한 기반 위에 두 번째의 더 실질적인 시뮬레이션 플랫폼을 계획하고 있습니다. 이 플랫폼은 Alison Wood Brooks의 대화 연구, 특히 주제의 흐름(topic flow), 후속 질문(follow-up questions), 그리고 사람들이 진정으로 경청받고 있다고 느끼는지 아니면 그저 예의상 응대받고 있다고 느끼는지를 결정짓는 패턴에 관한 연구에 근거합니다. TeachSim의 멘토가 기술적인 실수를 감시한다면, 이 플랫폼의 멘토는 대부분의 사람들이 스스로 인지하지 못하는 대화 습관을 감시합니다. 예를 들어, 주제를 확장하는 대신 종결시켜 버리는 질문, 불편함을 나타내는 화제 전환(pivot), 그리고 사실상 화자 자신에 관한 것인 사과 등이 있습니다.
첫 만남과 첫 데이트부터 정서적으로 복잡하고 이해관계가 높은 대화에 이르기까지, 6개의 단계(tiers)에 걸쳐 38개의 상황이 설계되었습니다. 9개의 JSON 파일이 구축되었고, 그중 2개는 봇(bot) 테스트를 마쳤습니다. 아키텍처는 동일하지만, 그 아래에 깔린 이론적 계층(theory layer)은 다르고 더 깊습니다.
준비가 되면 이에 대해 더 자세히 말씀드리겠습니다. 대화 과학(conversation science)과 AI 시뮬레이션이 여러분이 작업 중인 분야와 겹친다면, 계속 지켜봐 주세요.
맺음말
TeachSim이 거는 승부수는 압박 테스트(pressure-testing)가 AI 트레이닝 도구에서 누락된 계층이라는 점입니다. 대부분의 도구는 당신이 틀린 후에 정답을 알려줍니다. 하지만 이 도구는 실제 상황처럼 느껴지는 조건 하에서 당신이 직접 정답을 찾아내도록 만듭니다. 이것이 더 나은 기억 유지(retention)를 만들어내는지, 더 빠른 기술 전이(skill transfer)를 유도하는지, 아니면 그저 더 높은 스트레스를 유발하는지는 제가 측정해보고 싶은 부분입니다. 만약 세션을 실행해 보시고 긍정적이든 부정적이든 반응이 있다면, 꼭 들려주시기 바랍니다.
TeachSim은 @teachsim_bot에서 라이브로 운영 중입니다. LangGraph, DeepSeek V4 Flash, 그리고 python-telegram-bot을 사용하여 구축되었습니다. 저장소(Repo)는 현재 비공개 상태이며, 오픈 소스 전환 여부는 결정 대기 중입니다. Alison Wood Brooks의 대화 연구를 기반으로 한 두 번째 시뮬레이션 플랫폼이 동일한 아키텍처(Architecture) 상에서 개발 중입니다.
GitHub에서 저를 찾아보세요: github.com/mediblacksand
참고 문헌: Brooks, Alison Wood. Talk: The Science of Conversation and the Art of Being Ourselves. Crown, 2025.
Zhang Fu를 추모하며, 1950–2026.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기