Legal Agent Workshop의 기능
Legal Agent Workshop은 법률 AI 에이전트를 구축하고 평가하는 실습형 2회 세션 프로젝트입니다. 참가자는 먼저 에이전트형 조사 루프를 구현하고 검증되지 않은 법률 메모를 작성합니다. 그런 다음 에이전트의 통제 밖에서 작동하는 검증 계층을 추가합니다.
이 저장소는 일반 OpenAI Python SDK 코드로 구성된 사전 구축 키트를 제공합니다. 도구별 파일, Files API를 이용한 문서 읽기, 인용 확인이 완료된 사실을 추적하는 사건 관리 시스템이 포함되어 있습니다. 포함된 사건은 northbridge-v-caldera이지만, 에이전트 자체는 일반적으로 설계되어 사건 내용을 포함하지 않습니다.
중요한 작업 공간 규칙: Muse Code는
agent/디렉터리에서만 실행해야 합니다.cases/,world/,ground_truth/,solutions/,ui/디렉터리는 Muse Code 작업 공간 외부에 유지해야 합니다.
주요 기능
- 일반 법률 에이전트: 에이전트가 체크리스트를 작성하고, 계획을 세우며, 문서를 조사하고, 메모를 작성합니다.
- OpenAI Python SDK 구현: 에이전트 루프는 별도의 에이전트 프레임워크가 아닌 직접적인 SDK 코드를 사용합니다.
- 문서 분석: 키트는 Files API를 사용해 사건 문서를 읽습니다.
- 인용 확인 사실: 사건 관리 시스템은 근거 인용이 포함된 사실을 기록합니다.
- 외부 검증: 체크리스트와 메모 검사는 에이전트의 통제 밖에서 실행됩니다.
- 정답 데이터 비교: 체크리스트 검증기는 에이전트가 볼 수 없는 사건별 정답 체크리스트와 에이전트의 작업을 비교합니다.
- 재개 가능한 워크플로: Session 1 실행을 분기한 뒤 검증을 활성화하여 계속 진행할 수 있습니다.
- 실시간 Agent Console: 사전 구축된 인터페이스에서 턴, 체크리스트 항목, 뒷받침 증거, 증거 공개, 변호사 승인을 확인할 수 있습니다.
저장소 구조 이해하기
HANDBOOK.md에는 설정 지침, 두 워크숍 세션, 1.7절의 Muse Code 기본 규칙 프롬프트가 포함되어 있습니다.agent/에는 시작 코드가 있으며, Muse Code 작업 공간으로 노출해야 하는 유일한 디렉터리입니다.cases/northbridge-v-caldera/에는 사건 목표와 에이전트에 제공되는 문서가 들어 있습니다.ground_truth/에는 외부 검증에 사용되는 비공개 체크리스트가 들어 있습니다. 이 디렉터리는 사건에 포함하거나 에이전트에게 보여서는 안 됩니다.world/는 공개되지 않은 후속 문서와 증거 공개 스크립트를 포함한 시뮬레이션된 외부 세계를 나타냅니다.solutions/에는 Session 1과 Session 2의 스냅샷이 들어 있습니다.ui/에는 사전 구축된 Agent Console이 들어 있으며 Muse Code 작업 공간 외부에 유지됩니다.
워크숍 설치 및 구성
1. 저장소 복제
프로젝트를 복제한 다음 Muse Code를 설정하거나 실행하기 전에 agent/ 디렉터리로 이동합니다.
git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent
2. 환경 파일 생성
예제 구성을 .env로 복사합니다.
cp .env.example .env
.env를 편집하고 MODEL_API_KEY를 추가합니다. CASE_DIR가 포함된 사건을 가리키는지 확인합니다.
../cases/northbridge-v-caldera
3. 설정 도우미 실행
./helper setup
설정 명령은 OpenAI Python SDK가 설치된 .venv 환경을 만들고, 사건 문서를 예상 위치에 복사하며, 구성된 API 키를 확인합니다.
4. Muse Code 시작
계속 agent/ 안에 있는 상태에서 Muse Code를 실행합니다.
muse
첫 메시지는 HANDBOOK.md 1.7절의 기본 규칙 프롬프트여야 합니다. Muse Code를 재시작하거나 새 세션을 시작할 때마다 해당 프롬프트를 다시 제출합니다.
Session 1: 법률 에이전트 구축 및 실행
Session 1에서는 제공된 키트를 사용해 일반 에이전트형 루프를 구현합니다. 모든 작업을 agent/ 안에서 진행하면서 HANDBOOK.md의 단계별 지침을 따릅니다.
권장 워크플로는 다음과 같습니다.
- 체크리스트 작성: 조사에서 다뤄야 할 질문과 증거를 식별합니다.
- 조사 계획: 사용 가능한 도구와 사건 문서를 어떻게 활용할지 결정합니다.
- 조사: 제공된 문서 워크플로를 통해 문서를 읽고, 사건 관리 시스템에 인용 확인 사실을 기록합니다.
- 결과 준비: 조사에 기반한 검증되지 않은 메모로 실행을 마무리합니다.
이 단계에서 메모는 의도적으로 검증되지 않은 상태입니다. Session 2에서는 겉보기에는 완전한 에이전트 출력도 필요한 체크리스트 항목을 누락하거나 메모 규칙을 위반할 수 있음을 보여 줍니다.
Agent Console에서 실행 확인
저장소 루트에서 사전 구축된 인터페이스를 시작합니다.
python3 ui/ui.py
브라우저에서 http://127.0.0.1:8765를 엽니다. 콘솔에서는 각 에이전트 턴, 체크리스트, 체크리스트 항목의 입증 방식 등 실행 과정을 실시간으로 확인할 수 있습니다. 또한 워크숍의 증거 공개 및 변호사 승인 단계도 지원합니다.
Session 2: 에이전트가 놓친 내용 테스트
Session 2에서는 서로 독립적인 두 가지 검증 검사를 도입합니다. 하나는 사건의 숨겨진 정답 데이터와 체크리스트를 비교하여 평가합니다. 다른 하나는 필수 규칙에 따라 메모를 평가합니다.
메모 확인
agent/에서 RUN_ID를 세션 1 실행의 식별자로 바꾸어 실행합니다.
./helper verify RUN_ID --memo
이 명령은 세션 1의 메모 확인에서 발견되는 문제를 보여 줍니다.
체크리스트 확인
./helper verify RUN_ID --checklist
이 명령은 에이전트의 체크리스트를 사건별 정답 체크리스트와 비교합니다. 정답은 사건과 에이전트의 작업 공간 모두 외부에 유지됩니다.
확인 검사 만들기
HANDBOOK.md의 세션 2 지침에 따라 체크리스트 확인과 메모 확인을 만듭니다. 신뢰 경계를 유지해야 합니다. 에이전트가 자신의 작업을 승인하도록 하는 대신, 이러한 검사는 에이전트의 통제 밖에서 실행되어야 합니다.
확인을 활성화한 상태로 실행 계속하기
기존 체크리스트에서 원래 세션 1 실행을 분기합니다.
./helper branch RUN_ID
계속된 워크플로는 거부, 에스컬레이션, 새 증거 공개, 재개 및 변호사 승인을 비롯한 확인 인식 동작을 실행합니다. 분기하면 관련 없는 조사를 새로 시작하는 대신 체크리스트를 출발점으로 유지할 수 있습니다.
보류된 증거 공개
실행이 needs_input 상태에 도달하면 시뮬레이션된 외부 세계를 사용하여 후속 자료를 공개합니다. 이 명령은 저장소 루트에서 실행합니다.
python3 world/release.py
증거가 공개되면 워크숍 흐름을 계속 진행하고 Agent Console에서 재개된 실행을 확인합니다.
고급 팁
작업 공간 경계 보호
항상 저장소 루트가 아니라 agent/에서 Muse Code를 시작합니다. 이렇게 하면 Muse Code가 사건 원본, 숨겨진 정답, 시뮬레이션된 세계, 솔루션 스냅샷 또는 UI 코드를 볼 수 없습니다. 이러한 분리는 워크숍의 확인 모델에서 핵심적인 역할을 합니다.
에이전트에 정답을 절대 노출하지 않기
ground_truth/northbridge-v-caldera.json 파일은 외부 체크리스트 확인을 위해 존재합니다. 이 파일을 사건에 복사하거나, Muse Code 작업 공간에 포함하거나, 에이전트에 제공하지 마십시오.
재시작 후 기본 규칙 다시 적용
재시작했거나 새로 만든 Muse Code 세션에서도 기본 규칙 프롬프트를 제공해야 한다는 요구 사항은 사라지지 않습니다. 매번 HANDBOOK.md의 1.7절에서 이를 복사합니다.
정해진 레이아웃으로 다른 사건 추가
새 사건은 objective.md 파일과 documents/ 디렉터리가 포함된 폴더로 표현합니다. 사건은 agent/ 외부에 두고 CASE_DIR가 해당 폴더를 가리키도록 설정합니다. README에는 추가적인 사건 작성 또는 정답 생성 단계가 명시되어 있지 않으므로, 확인 설정을 확장하기 전에 핸드북을 따릅니다.
솔루션 스냅샷을 신중하게 사용
solutions/01_session1/ 및 solutions/02_session2/ 디렉터리는 두 세션의 스냅샷을 제공합니다. 이 디렉터리들은 Muse Code 작업 공간 외부에 있으므로 에이전트의 작업 컨텍스트에 포함하지 않고 워크숍 참고 자료로 사용할 수 있습니다.
명령어 참조
git clone https://github.com/meta-models/legal-agent-workshop.git
cd legal-agent-workshop/agent
cp .env.example .env
./helper setup
muse
# 저장소 루트에서
python3 ui/ui.py
python3 world/release.py
# agent/에서
./helper verify RUN_ID --memo
./helper verify RUN_ID --checklist
./helper branch RUN_ID
결론
Legal Agent Workshop은 법률 에이전트 개발의 양면을 보여 줍니다. 계획을 세우고 조사하며 초안을 작성할 수 있는 에이전트를 구축하는 일과, 그 작업이 완전하고 규정을 준수하는지 테스트하는 외부 통제 수단을 만드는 일입니다. 사건, 정답, 확인 리소스 및 시뮬레이션된 증거를 Muse Code 작업 공간 외부에 유지함으로써 이 프로젝트는 신뢰 경계를 명시적이고 테스트 가능한 것으로 만듭니다.
