프로젝트 소개
Phronesis는 비결정적 AI 에이전트에 대한 내구성 있고 결정적인 거버넌스를 제공하기 위해 설계된 도메인 중립 RETE 규칙 엔진입니다. 이 엔진은 Claude Code, Codex, Gemini CLI와 같은 장기 실행 LLM 세션에서 발생하는 "컨텍스트 드리프트" 문제를 해결합니다. 이러한 세션에서는 `CLAUDE.md`와 같은 프로젝트별 지침이 컨텍스트 창이 가득 차고 자동 압축이 트리거되면서 점차 사라집니다.
전통적인 접근 방식은 LLM이 컨텍스트 내에서 지침을 기억하도록 의존하지만, Phronesis는 대화에서 완전히 벗어나 규칙을 적용합니다. 규칙은 `.phronesis/rules.json`에 디스크에 저장되며, 가벼운 훅을 통해 실제 작업 순간에 평가됩니다. 따라서 규칙은 토큰 수에 관계없이 일관되게 실행되며, LLM의 컨텍스트 창에 로드되지 않습니다.
이 시스템은 에이전트 작업의 경계 역할을 합니다. 호스트는 제안된 도구 호출을 정규화하고, 엔진은 내구성 있는 규칙을 평가하며, 호스트는 허용, 경고, 또는 차단 결정을 받습니다. 주요 하위 시스템은 다음과 같습니다.
1. **내구성 있는 컨텍스트**: `.phronesis/durable.md`에 간결한 프로젝트 지침을 유지하고, 세션 경계에서 이를 재주입합니다.
2. **신뢰도 점수**: Cargo, xcodebuild, SwiftPM과 같은 선언적 도구체인 정의를 통해 빌드, 테스트, 알려진 버그 신호를 읽어, 증거가 불완전한 경우 Git 변이에 대해 경고합니다.
3. **여정 사실**: 호출 간의 시간적 패턴(예: 인증 변동 또는 빌드 만료)을 일치시키기 위해, 메모리에 누적하지 않고 내구성 있는 호출별 저널을 유지합니다.
4. **구조적 코드 그래프**: Rust, Python, TypeScript, Swift, Java를 쿼리 가능한 관계(예: `defines_fn`, `calls_api`)로 파싱하여, 규칙을 구체적인 코드 참조에 바인딩합니다.
5. **드리프트 감지**: 규칙과 내구성 있는 지침, 에이전트 메모리, 바인딩된 코드를 비교하여 불일치를 식별합니다.
Phronesis는 Rust로 구현되었으며, 핵심 라이브러리, LLM 환경과의 통합을 위한 MCP 서버(`phr-mcp`), 그리고 확장 가능한 술어와 가드 조건을 위한 샌드박스 Rhai 평가기를 포함합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.