Projection Engine: 추론 세계에 진입하는 AI 에이전트를 구축하다
요약
본 글은 AI가 단순히 답변을 내놓는 것을 넘어, 문제에 대해 체계적으로 '추론'하는 과정을 구현한 Projection Engine을 소개합니다. 이 엔진은 질문을 인지, 압축, 테스트 등 6단계의 복잡한 흐름으로 처리하며, Sanity와 같은 구조화된 외부 세계를 활용하여 추론의 깊이와 재사용성을 높이는 것이 핵심입니다.
핵심 포인트
- AI 에이전트가 단순 답변 대신 '추론 과정'을 거치도록 설계함.
- Projection Engine은 6단계(Perceive~Exit)의 체계적인 질문 처리 흐름을 가짐.
- Sanity를 정보 저장소가 아닌, 추론하는 구조화된 외부 세계로 활용함.
- 외부 환경과의 상호작용을 통해 에이전트의 움직임과 깊이를 확보함.
This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content
제가 만든 것 (What I Built)
저는 AI 에이전트를 만들려고 시작한 것이 아닙니다.
저는 AI가 모든 것을 즉시 답변으로 무너뜨리지 않고, 문제에 대해 추론하는 방법을 알아내려고 노력하고 있었습니다.
그것이 바로 Projection Engine이 되었습니다.
기본 흐름은 다음과 같습니다:
질문 (Question) → 투영 (Projection) → 긴장 (Tension) → 다음 움직임 (Next Move) → 재사용 가능한 시스템 (Reusable System) → AI 빌드 프롬프트 (AI Build Prompt)
이 엔진은 질문을 여섯 단계에 걸쳐 실행합니다:
인지 (Perceive) → 압축 (Compress) → 테스트 (Test) → 제거 (Strip) → 통합 (Integrate) → 종료 (Exit)
흥미로운 부분은 추론 이후에 일어나는 일입니다.
에이전트 뒤의 세계 (The World Behind the Agent)
여기서 Sanity가 중요해졌습니다.
저는 Sanity를 단순히 정보 데이터베이스로 사용하지 않았습니다.
이를 추론하는 동안 Projection Engine이 쿼리하는 **구조화된 세계(structured world)**로 사용했습니다.
개념적 아키텍처는 다음과 같습니다:
Sanity = 세계 (world)
MCP / Context = 문턱 (doorway)
Projection Engine = 움직임 (movement)
Gemini = 해석기 (interpreter)
출력 (Output) = 흔적 (trace)
Sanity의 콘텐츠에는 단계(stages), 메커니즘(mechanics), 방법론(methods), 긴장감(tensions), 다음 움직임(next moves), 분석 렌즈(analytical lenses)와 같은 것들이 포함됩니다.
따라서 모델은 빈 공간에서 추론하는 것이 아닙니다.
구조화된 환경을 통해 움직이고 있는 것입니다.
Projection이 발생하는 것을 보기 (Seeing the Projection Happen)
터미널을 통해 직접 질문을 실행할 수 있습니다:
node write.mjs "whether to trust a plan that sounds too clean"
그러면 엔진은 6단계의 프로젝션(projection)을 생성합니다.
출력의 유용한 부분 중 하나는 즉시 답변으로 뛰어들지 않는다는 것입니다.
먼저 긴장(tension)을 표출합니다.
이러한 긴장에서 구체적인 **다음 행동(Next Move)**을 생성합니다.
이 예시에서:
계획의 가정에 대한 스트레스 테스트(Stress-Test the Plan's Assumptions)
이는 추론이 나아갈 곳을 제공합니다.
다음 행동에서 재사용 가능한 시스템으로
엔진은 이 다음 행동을 한 단계 더 발전시킵니다.
단순히 다음과 같이 말하는 대신:
계획을 스트레스 테스트하세요.
이러한 행동을 반복 가능하게 만들 수 있는 재사용 가능한 구조가 무엇인지 질문합니다.
그 결과로 나온 것은:
계획 청결도 감사 시스템(Plan Cleanliness Audit System)
이제 출력물은 단순히 조언에 그치지 않습니다.
실제 시스템 명세의 시작이 됩니다.
생성된 구조에는 다음과 같은 것들이 포함됩니다:
- 목적 (Purpose)
- 트리거 (Trigger)
- 입력 (Inputs)
- 프로세스 (Process)
- 출력 (Outputs)
- 실패 모드 (Failure modes)
- 첫 구현 (First implementation)
그리고 빌더 프롬프트를 구축합니다
이것은 아마도 제가 실험에서 가장 좋아하는 부분일 것입니다.
엔진은 그 시스템 명세를 가져와 **AI 빌드 프롬프트(AI Build Prompt)**로 변환합니다.
따라서 체인(chain)은 다음과 같이 됩니다:
질문 → 추론 → 긴장 → 다음 행동 → 재사용 가능한 시스템 → AI 빌드 프롬프트
이 프롬프트는 본질적으로 다음과 같은 내용을 전달합니다:
이 추론으로부터 나타난 시스템입니다. 이제 이것을 구축하세요.
이는 시스템에 대해 생각하는 것과 실제로 그것을 구성하는 것 사이에 다리를 놓습니다.
AI를 활용한 개발 (Building With AI)
개발 과정에서 저는 시스템의 일부를 탐색하고 구체화하기 위해 Claude를 사용하기도 했습니다.
이러한 결과물들은 개발 과정의 흔적(development trail)으로 남았습니다:
하지만 Claude는 최종 데모에서 다운스트림 빌더(downstream builder) 역할을 하지는 않습니다.
실제 테스트는 다릅니다.
Projection Engine이 AI Build Prompt를 생성하고, 저는 이 프롬프트를 가져와 ChatGPT에 전달합니다.
그러면 ChatGPT가 엔진이 산출한 명세(specification)로부터 실제로 무엇을 구축할 수 있는지 확인합니다.
제가 테스트하고 싶은 부분이 바로 그 부분입니다.
데모 (Demo)
데모에서는 Projection Engine이 실제 질문에 대해 터미널에서 실행되는 모습을 보여줍니다:
node write.mjs "How do I know when the strange behavior of a system is a failure, a signal, or something I haven't understood yet?"
녹화된 영상은 다음 과정을 거쳐 출력을 따라갑니다:
Perceive → Compress → Test → Strip → Integrate → Exit
그리고:
Tension → Next Move → Reusable System → AI Build Prompt
마지막 부분이 흥미롭습니다.
제가 생성된 AI Build Prompt를 ChatGPT에 복사하여 붙여넣고, 엔진이 설명한 시스템을 구축하도록 시도하게 합니다.
코드 (Code)
공개 저장소에는 챌린지에서 사용된 구현체가 포함되어 있습니다.
Sanity를 활용한 방법 (How I Used Sanity)
Sanity는 에이전트의 뒤에 있는 구조화된 추론 환경(structured reasoning environment)이 되었습니다.
여기는 엔진이 쿼리할 수 있는 조각들(pieces)을 저장합니다:
- Projection stages (투영 단계)
- Mechanics (메커니즘)
- Methods (방법)
- Analytical lenses (분석적 렌즈)
- Tensions (긴장감/갈등)
- Next moves (다음 움직임)
- Sources (출처)
중요한 차이점은 이 콘텐츠가 단순한 참고 자료(reference material)가 아니라는 것입니다.
데이터 자체가 행동의 일부가 됩니다.
엔진은 구조화된 세계에 질의하고, 발견한 것을 해석하며, 상호작용으로부터 새로운 흔적(trace)을 생성합니다.
Sanity Project 상세 정보
Project ID: 358bqlwi
Dataset: production
Runtime: Node v20.20.2
Model: gemini-3.5-flash-lite
현재 버전은 호스팅되는 다중 사용자 애플리케이션이라기보다는 터미널 기반 시스템입니다.
Sanity 읽기 경로는 MCP/Context를 통해 처리되며, 애플리케이션이 생성된 필드에 대한 쓰기 경로를 제어합니다.
모델 자체는 Sanity 쓰기 토큰을 받지 않습니다.
에이전트 세션
실제 세션은 의도적으로 간단합니다.
저는 엔진에게 질문을 던집니다.
엔진은 구조화된 세계에 질의합니다.
다양한 렌즈(lenses)들이 그 질문을 해석합니다.
그 차이점들이 긴장감을 만듭니다.
그 긴장감이 다음 행동(next move)을 만들어냅니다.
다음 행동은 재사용 가능한 시스템이 됩니다.
그리고 그 시스템은 또 다른 AI가 구축할 수 있는 프롬프트가 됩니다.
이것이 실험입니다.
저는 단순히 AI가 질문에 답할 수 있는지 테스트하는 것이 아닙니다.
구조화된 콘텐츠가 추론 과정 자체의 일부가 될 때 무슨 일이 일어나는지, 그리고 그 결과로 나온 추론이 또 다른 AI가 실제로 구축하기에 충분히 재사용 가능한 무언가가 될 수 있는지를 테스트하고 있습니다.
저의 다른 작업들
Projection Engine은 AI, 사이버 보안, 창의성, 개인 시스템을 둘러싼 더 큰 실험들의 일부입니다.
전체 라이브러리: TagzAuthor
작업 지원하기: ko-fi.com/tagzauthor
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기







