Fable Mode는 AI 코딩 에이전트를 위한 오픈 소스 제어 평면입니다.
이는 에이전트가 작업 공간에 쓰기 권한을 얻기 전에 신중하게 행동하고, 증거를 생성하며, 적대적 검토(adversarial review)를 통과하도록 만듭니다. 이 게이트는 프롬프트의 조언이 아니라 기계적인 장치입니다: 타이머도 없고, 증명도 없고, 쓰기 접근 권한도 없습니다.
KERR // ORRERY
단일 독립형 HTML 파일로 구성됩니다. Raw WebGL을 사용하며 라이브러리나 외부 에셋, 빌드 단계가 전혀 필요하지 않습니다.
2-kerr-orrery-demo-rex.mp4
최종 결과물까지 7번의 렌더링이 거부되었고 · 2개의 버그가 포착되었으며 · 10/10의 레드팀 프로브를 통과했습니다.
Fable Mode 개요
launch-film.mp4
세션은 잠긴 상태로 시작합니다. 자신감만으로는 잠금이 풀리지 않습니다.
- 아래 옵션 중 하나를 사용하여 MCP 서버를 설치하세요.
- 전체 워크플로우가 필요하다면 선택적 에이전트 스킬(Agent Skill)을 추가하세요.
- 구체적인 코딩 작업을 위해 에이전트에게 Fable Mode 사용을 요청하고 시간 예산을 선택하세요.
실행 잠금이 걸린 새로운 세션이 시작됩니다:
{
"action": "create_session",
"session_name": "demo-refactor",
...
}
에이전트는 그 후 증거와 불변량(invariant)을 기록합니다. 초기 unlock_execution 요청은 권한 타이머와 증명 전제 조건이 충족될 때까지 거부됩니다.
언제든지 get_status를 사용하여 활성 단계, 남은 시간, 증거 카운트 및 잠금 상태를 확인할 수 있습니다.
동일한 게이트가 모든 단계를 보호합니다: 주장(claim)에 대한 증거 영수증, 코드에 대한 5개 벡터 레드팀 스웜(red-team swarm), 그리고 검증된 내용의 봉인된 기록입니다.
Fable은 하나의 PyPI 패키지로 배포됩니다. 이 패키지에는 런타임, stdio MCP 서버, 그리고 전체 에이전트 스킬이 포함되어 있습니다. 설정 과정이 명시적이어서 MCP 서버를 설치한다고 해서 작업 공간의 지침이 조용히 활성화되는 일이 없습니다.
에이전트가 작업을 수행할 프로젝트에서 설정을 실행하세요:
uvx --from fable-engine==1.3.9 fable-mode setup --yes
이는 격리된 uv 환경에서 고정된 패키지를 해결하고, 번들링된 스킬을 .agents/skills/fable-mode로 복사합니다.
미리보기는 --dry-run을 사용하거나 다른 스킬 디렉터리는 --target <dir>를 사용하세요. 영구적인 설치를 위해서는 다음을 사용하세요:
python -m pip install fable-engine
fable-mode setup --yes
그러면 에이전트 환경과 일치하는 호출만 선택합니다.
fable-engine을 stdio 서버로 실행합니다. 예를 들면:
// Claude Code: claude mcp add fable-engine -- uvx --from fable-engine==1.3.9 fable-engine
// Cursor 또는 다른 JSON 구성 클라이언트:
{
...
동일한 패키지는 직접적인 JSON 전송을 제공합니다. 하나의 fable_session 인자 객체를 fable-mode call에 파이프합니다:
printf '%s\n' '{"action":"create_session","session_name":"demo","objective":"Verify this change","time_budget_minutes":2}' \
| uvx --from fable-engine==1.3.9 fable-mode call
이 명령어는 JSON Lines를 사용합니다: 입력 라인마다 하나의 fable_session 인자 객체와 출력 라인마다 하나의 JSON 결과를 사용합니다. 권한 타이머(authority timer)와 세션이 동일한 신뢰 런타임에 머물도록 전체 워크플로우 동안 이 프로세스를 열어두는 것이 좋습니다. 한 줄 파이프는 단일 검사 호출에 유용합니다. 각 uvx 명령어는 격리된 환경을 해결할 수 있으며, pip install은 호출 사이에 Python 환경을 유지하는 경우 더 좋습니다. 세션 데이터는 해당 환경 외부의 Fable 데이터 디렉터리(FABLE_DATA_DIR로 재정의 가능)에 영구적으로 저장됩니다.
Python 3.10 이상, 런타임 종속성 없음. PyPI에서 fable-engine으로 게시되었습니다.
setup은 통합된 경로입니다. 이전의 install-skill 명령어는 스킬 전용 설치를 위한 호환 별칭으로 남아 있습니다. fable-engine이나 pip install fable-engine 어느 것도 자체적으로 워크스페이스에 지침을 작성하지 않습니다.
생각(Think) — 시간 제한이 걸린 숙고. 에이전트는 타이머가 끝날 때까지 코드를 작성할 수 없습니다.증명(Prove) — 주장은 실제 증거(도구 영수증, 해시, 불변성)가 필요합니다.공격(Attack) — 레드팀 스웜이 코드를 깨뜨리려고 시도합니다.작성(Write) — 그래야만 워크스페이스가 잠금 해제됩니다.
세션 내의 증거는 AI 에이전트에 의해 작성되므로, Fable은 작업 공간 잠금 해제 전에 외부 검토 모델에게 해당 증거를 감사하도록 선택적으로 요청할 수 있습니다. Stdlib 전용이며, 경계가 설정된 HTTPS 호출 1회만 사용하고, 로컬 모델이나 추가 RAM을 요구하지 않습니다. 기본값으로는 비활성화되어 있으며, 강제 적용 시에는 실패(fail-closed)합니다. 이는 조작된 증거의 비용을 높입니다. 기만이 불가능하다고 보장할 수는 없지만, 기계적인 게이트가 주요 권한으로 남아있습니다. 설정 및 정직한 한계: AI 증거 심사관.
-
완벽한 코드를 주장하는 것이 아닙니다. 이는 보장이 아니라 검증 가능한 워크플로우입니다.
-
더 큰 프롬프트를 의미하지 않습니다. 잠금은 단어에 의해서가 아니라 엔진에 의해 강제됩니다.
-
프레임워크 종속성을 의미하지 않습니다. MCP를 사용하며 현재 에이전트 옆에서 실행됩니다.
-
여기서 시작하세요: 실용 가이드
-
에이전트 스킬 참고 자료
-
V1 → V2 마이그레이션
-
V2 아키텍처
-
System 3 (실험적)
-
AI 증거 심사관 (선택 사항)
Issue 및 pull request는 환영합니다. CONTRIBUTING.md를 참조하세요.
MIT 라이선스 · REX가 제작