PACT: 에이전트 실패 패턴 이후 클로드 코드를 위한 프로그램적 거버넌스 프레임워크

Claude Code로 모바일 앱을 구축하는 세 달 동안(350개 이상의 파일, 70개 이상의 데이터베이스 테이블, BLE 피어투피어, 암호화된 로컬 데이터베이스, 클라우드 동기화), 한 개발자는 CLAUDE.md 규칙으로 해결할 수 없는 반복적인 실패 패턴을 발견했습니다. 에이전트는 세션을 거듭하며 동일한 유형의 실수를 반복했는데, 이는 금지된 데이터베이스 라이브러리를 세 번이나 추가하고(금지 지시 후에도), 암호화 메타데이터를 서버에 유출하여(모든 사용자의 로그인을 차단), 문서를 읽지 않고 API를 추측하며 블루투스 디버깅에 4시간 이상 소모하고, 전체 라이프사이클을 고려하지 않은 보안 수정으로 백업 복구를 망가뜨리는 것 등을 포함했습니다.
규칙의 문제점
CLAUDE.md는 50개 이상의 규칙으로 확장되었지만 형식적이 되어 버렸습니다. Claude는 세션 시작 시 규칙을 읊조리곤 쉽게 위반했습니다. 규칙이 무시된 이유를 물었을 때, Claude는 이렇게 답했습니다: "솔직히 말씀드리자면, 저는 규칙을 제안 정도로 취급하며 무시할 수 있습니다. 규칙이 항상 행동을 막을 수는 없습니다..."
해결책: PACT 프레임워크
개발자가 Claude에게 물었습니다: "이 시스템을 직접 재설계할 수 있는 권한을 드린다면, 무엇을 구축하시겠습니까?" 이로부터 PACT(Programmatic Agent Constraint Toolkit)가 탄생했으며, Claude의 표현 그대로 핵심 통찰은 다음과 같습니다: "규칙은 제안입니다. 인프라는 법입니다."
PACT의 네 가지 기둥
- 기계적 강제: 편집이 적용되기 전에 금지된 패턴을 차단하는 PreToolUse 훅. 예시:
import hive? 차단됨.print()대신 로거 사용? 차단됨. 읽지 않은 파일 편집? 차단됨. - 컨텍스트 대체: 모든 데이터 흐름을 설명하는 YAML 아키텍처 맵(SYSTEM_MAP.yaml): 데이터베이스 테이블 → 서비스 → 상태 관리 → UI 화면 → 연쇄 동작. 에이전트는 매 세션마다 15-20분씩 소스 파일을 다시 읽는 대신 이 맵을 읽습니다.
- 자기 진화적 추론: 규칙("항상 의존성을 확인하라") 대신 질문 형태의 인지적 재지향: "이것은 무엇에 의존하며, 무엇이 이것에 의존합니까?" 질문은 규칙이 하지 못하는 방식으로 추론을 활성화합니다. 에이전트는 자신이 가정을 하는 것을 발견할 때 새로운 재지향을 추가할 수 있습니다.
- 구조/행동 분리: 아키텍처 맵(어떤 파일이 존재하는지)은 라이프사이클 흐름(앱 상태 간에 어떤 일이 일어나는지)과 분리되어 유지됩니다. 이는 문서 실패의 두 가지 가장 흔한 원인을 방지합니다: 아무도 읽지 않는 에세이가 되는 맵과, 낡은 구조를 중복하는 흐름.
실용적 구현 예시
인지적 재지향의 실제 적용: "코드를 제거하려 할 때: 이 코드는 왜 존재합니까?"는 Claude가 주석으로 바로 위에 이유가 설명된 프레임워크 버그에 대한 해결책을 삭제한 후 추가되었습니다. "자신의 솔루션에 반론을 찾을 때: 이 반론은 실제인가, 아니면 저는 포기하고 있는 건가?"는 Claude가 올바른 수정을 제안했다가 검토 중 스스로 이를 포기하고, 개발자가 Claude 자신의 아이디어를 구해야 했던 후 추가되었습니다.
솔루션 지식 베이스가 있는 버그 트래커: 한 세션은 삼성 특정 BLE 문제를 해결하는 데 3시간을 소모했습니다. 다음 세션은 이 버그를 전혀 기억하지 못한 채 다시 마주쳤습니다. 이제 모든 조사는 실시간으로 기록됩니다 — 증상, 실패한 시도, 근본 원인, 수정 사항. 에이전트의 버그에 대한 첫 번째 조치는 이전 세션이 이미 해결했는지 확인하는 것입니다.
패키지 지식 파일: 4시간에 걸친 블루투스 디버깅 악몽은 Claude가 오래된 학습 데이터로 패키지 작동 방식을 추측했기 때문에 발생했습니다. 이제 패키지 지식 파일을 참조하는 것이 의무 요구사항입니다.
📖 전체 소스 읽기: r/ClaudeAI
👀 See Also

에이전트BnB: 오픈클로 에이전트가 기술을 임대할 수 있는 P2P 네트워크
AgentBnB는 OpenClaw 에이전트들이 크레딧을 사용하여 다른 에이전트들로부터 전문 기술을 임대할 수 있는 피어투피어 네트워크입니다. 최적화되지 않은 작업에 토큰을 소모하는 대신, 에이전트들은 적절한 환경, API 키 및 프롬프트로 구성된 기능에 접근할 수 있습니다.

ApexClaw: 웹 자동화, 음성 및 이메일을 위한 85개 이상의 도구를 갖춘 오픈소스 텔레그램 AI 에이전트
ApexClaw는 Go로 작성된 오픈소스 Telegram AI 에이전트로, 헤드리스 Chrome을 이용한 웹 브라우징, 음성 노트 처리, Gmail 통합, 셸 스크립트 실행을 포함한 85개 이상의 내장 도구를 제공합니다. 자체 호스팅 방식이며 추론을 위해 z.ai 엔진을 사용합니다.

오크스트라: 오픈클로를 위한 비용 인식 LLM 라우팅 레이어, API 비용을 60-80% 절감
Orkestra는 OpenClaw의 LLM 호출 앞에 위치하는 모듈형 라우팅 레이어로, 의미론적 분류를 통해 프롬프트를 예산, 균형, 프리미엄 모델 계층으로 라우팅합니다. 이 접근 방식은 프롬프트 재작성이나 복잡한 규칙 없이 API 비용을 60-80% 절감했습니다.

MCP 서버, 클로드를 셀러트래커 와인 인벤토리에 연결
한 개발자가 Claude를 CellarTracker 계정에 직접 연결하는 MCP 서버를 구축하여, 와인 컬렉션을 조회할 때 수동 CSV 내보내기의 필요성을 없앴습니다.