If you are curious about harness engineering, stop the prompt and write a specification.
Video

If you are curious about harness engineering, stop the prompt and write a specification.

2026.05.16
·YouTube·by 임근석/부산/NLP
#AI Agent#LLM#Prompt Engineering#Specification#Uroboros

핵심 포인트

  • 1Ouroboros는 슬롯 머신처럼 반복적인 프롬프팅 대신 AI와의 심층적인 인터뷰를 통해 사용자의 암묵지를 명확한 명세서로 변환하여 AI의 발산(divergence)을 방지하는 Harness Engineering 방법론을 제시합니다.
  • 2이 시스템은 소크라테스식 질문 접근법을 통해 모호함을 제거하고, 복잡한 작업을 원자적으로 분해하며, 단계별 검증과 반복적인 진화를 통해 예측 가능한 결과물을 생성하도록 돕습니다.
  • 3나아가 Ouroboros는 RLM(Recursive Language Model) 개념과 MCP(Multi-Agent Control Protocol) 기반의 에이전트 간 소통을 통해 AI가 스스로 컨텍스트를 관리하고 협업하는 'Agent OS'의 미래를 지향합니다.

Ouroboros는 LLM의 비결정적(non-deterministic) 응답 문제와 입력의 모호함(ambiguity of input)으로 인해 모델이 발산(diverge)하고 토큰을 비효율적으로 사용하는 문제를 해결하기 위한 Harness Engineering 방법론을 제시한다. 이는 "프롬프트를 멈추고 명세서를 시작하라(Stop prompting, start specifying)"는 슬로건을 바탕으로, LLM과의 상호작용에서 인간의 암묵지(tacit knowledge)와 의도를 명확하게 전달하여 AI가 수렴(converge)된 결과물을 도출하도록 돕는다.

핵심 방법론: Ouroboros의 워크플로우

  1. 인터뷰(Interview): Ouroboros의 핵심 철학인 소크라테스식 추론(Socratic Reasoning)을 통해 사용자의 머릿속에 있는 아이디어나 프로젝트에 대한 본질적인 질문을 던진다. 이 과정은 MCP(Master Control Program)라고 불리는 질문자 에이전트가 순수하게 질문만 생성하도록 설계되어, 사용자의 모호한 의도를 명확하게 끄집어내고 암묵지를 명세화한다. MCP는 툴(tool)이 없어 외부 컨텍스트에 갇히지 않고 순수한 질문을 생성하며, 메인 세션(main session) 에이전트와 사용자가 대화하여 답변을 준비하는 삼자 대면(three-way interaction) 형태를 취할 수 있다.
  2. 시드 생성(Seed Generation): 인터뷰를 통해 얻어진 명확한 답변들을 바탕으로 프로젝트의 시드(seed)를 생성한다. 이 시드는 프로젝트의 목표(goal), 제약 조건(constraint), 성공 기준(acceptance criteria), 모호성(ambiguity) 등을 포함한다. 생성된 시드는 고정(frozen)된다.
  3. 트리 분해(Tree Decomposition): 고정된 시드는 AC(Acceptance Criteria) 트리 구조로 쪼개진다. 이는 작업을 트리의 형태로 구성하고, 각 하위 태스크가 원자적(atomic)인지 확인하며 맥킨지(McKinsey)의 MECE(Mutually Exclusive, Collectively Exhaustive) 원칙처럼 분해한다. 이 과정을 통해 각 태스크는 하나의 에이전트가 풀기 좋은 형태로 만들어져 컨텍스트 엔지니어링(Context Engineering)에서 발생하는 Lost in the Middle 현상이나 Primacy/Recency Bias 문제를 줄인다.
  4. 실행(Execution): 트리 형태로 쪼개진 각 태스크는 에이전트에 의해 실행된다. 이 실행은 리프 노드(leaf node)부터 시작하여 부모 노드(parent node)로 거슬러 올라가며 평가를 받는다. 충돌이 발생할 경우, Ouroboros 코디네이터(Coordinator)가 개입하여 AC를 추가하는 방식으로 문제를 해결한다.
  5. 검증(Evaluation): 실행된 결과물에 대한 3단계 검증 프로세스를 거친다.
    • Phase 1 (Deterministic Check): 코드 린트(lint), 빌드(build), 테스트(test) 통과 여부 등 결정론적(deterministic)인 기준으로 결과를 확인한다.
    • Phase 2 (Semantic Check): 에이전트 스스로 다른 에이전트를 사용하여 각 태스크의 완료된 결과물(artifact)을 시맨틱(semantic)하게 평가하고 AC를 제대로 완수했는지 확인한다.
    • Phase 3 (Consensus): 여러 모델(혹은 에이전트)이 참여하여 컨센서스(consensus)를 통해 최종적인 평가를 수행한다. 이 과정에서 누락된 부분이 있다면 실패(fail)로 간주되며, QA 모드(QA mode)를 통해 수정하거나 진화(evolution) 과정을 거친다.
  6. 진화(Evolution) 및 재귀(Recursion): Ouroboros는 진화 개념을 도입하여 자기 개선(self-improvement)을 수행한다. 초기 시드와 생성된 결과물을 비교하여 소크라테스 에이전트가 놓친 부분을 질문하고, 이를 반영하여 두 번째 이터레이션(iteration)을 시작한다. 온톨로지(ontology) 유사도를 기준으로 진화 과정을 제어하며, 예를 들어 한 세대(generation)와 다음 세대 간의 온톨로지 유사도(ontology similarity)가 95% 이상(≥0.95\ge 0.95)이 되면 진화를 멈추고 수렴(convergence)했다고 판단한다. 이 과정은 최대 30 사이클(cycles)로 제한될 수 있다.

RLM(Recursive Language Model)과의 연결:
Ouroboros는 RLM의 개념과도 유사한 접근을 보인다. RLM은 큰 프롬프트가 들어왔을 때 이를 재귀적으로(recursively) 쪼개고 재작성하여 모델에게 넘겨주는 방식이다. Ouroboros의 트리 분해 및 MCP를 통한 서브 태스크 할당 방식은 컨텍스트(context)를 환경(environment)으로 취급하고 프로그래밍적으로 분해하여 재귀적으로 호출하는 RLM의 특성과 유사하다. 이는 모델의 추론 정확도를 향상시키며, 에이전트가 스스로 메모리(memory)를 관리하고 하위 태스크를 할당하는 OS(Operating System)와 같은 접근 방식으로 확장될 수 있다.

에이전트 구성:
Ouroboros는 Socratic Interviewer, Ontologist, Seed Architect, Evaluator, Contrarian, Hacker, Simplifier, Researcher, Architect 등 9가지 에이전트 역할을 정의하며 각기 다른 목적에 따라 워크플로우를 수행한다. 특히 MCP는 의도적으로 툴(tool)이 없는 순수 질문자로 설계되어, 질문을 통해 사용자의 생각을 명확히 하고 모호성을 제거하는 데 집중한다.

Ouroboros는 단순히 AI에게 작업을 지시하는 것을 넘어, 인간의 사고 과정을 AI와 공유하고 협력하여 명확하고 수렴적인 결과물을 도출하는 Harness Engineering의 방향을 제시한다.