


채팅과 이슈 추적기에서 요청을 받는 코딩 에이전트 서비스 만들기
코드 호스팅 플랫폼, 이슈 추적기, 채팅에서 일을 받는 코딩 에이전트 서비스를 만들 때 쓴다. 메인·검토·분석 역할을 나누고, 스레드마다 샌드박스를 하나씩 두며, 미들웨어 순서를 정하고, CI 자동 복구에 켜고 끄는 스위치를 단다.
이 AI 규칙을 사용하려면
## 런타임 역할마다 일을 하나씩 정하고, 검토 역할은 읽기만 하게 하기
각 런타임 역할에 하나의 명확한 책임을 부여한다.
- 기본 코딩 에이전트 그래프는 스레드마다 새 에이전트를 만들되, 영속 상태는 스레드의 샌드박스와 메타데이터에 유지한다.
- 검토자 그래프는 발견 사항 모델과 전용 게시 작업을 통해 읽기 전용 코드 검토를 수행하며, 변경, commit, push 또는 검토 개시 도구를 사용하지 않는다.
- 분석기 그래프는 초기 구축 및 지속 학습 모드에서 저장소별 검토 지침을 만들고, 하나의 전용 도구를 통해 저장한다.
- 웹 애플리케이션은 코드 호스팅 플랫폼, 이슈 추적기, 채팅의 webhook을 수신하고, 안정적인 스레드를 결정한 뒤 해당 그래프 실행을 시작하거나 스트리밍한다.
- 대시보드는 로그인, 사용자 프로필, 팀 기본값, 활성화된 저장소, 검토 방식 관리, 인터페이스에서 사용하는 스레드 API를 담당한다.
분석기 절차를 각 샌드박스에 복사하지 말고, 버전이 지정된 읽기 전용 가상 스킬로 제공한다. 예약된 지속적 개선은 초기 구축이 완료된 후에만 등록한다. 모든 그래프 진입점과 애플리케이션 경로를 하나의 런타임 매니페스트에 유지하되, 완전한 개발 런타임과 웹 전용으로 범위를 좁힌 프로세스를 모두 허용한다.
## 개발 도구를 한 벌로 정하고, 가장 작은 테스트부터 돌리기
의존성 관리자, 테스트 실행기, 린터, 포매터, 타입 검사기, 최소 언어 버전, 배포된 런타임 버전을 각각 하나씩 선언한다. 저장소는 지원되는 최소 버전과 배포 메타데이터에 고정된 더 최신 버전 모두에서 유효해야 한다.
다음 작업을 위한 명령을 문서화한다.
1. 개발 의존성 설치
2. 전체 그래프 및 웹 런타임 시작
3. 웹 애플리케이션만 시작
4. 전체 단위 테스트 디렉터리 실행
5. 단일 테스트 파일 또는 테스트 사례 실행
6. 변경 없이 린트 및 서식 검사
7. 포매터 및 안전한 자동 수정 적용
8. 프로덕션 코드와 테스트 코드의 타입 검사
기본적으로 단위 테스트를 사용한다. 통합 테스트용 전용 디렉터리를 마련하고, 통합 테스트 모음이 없는 경우를 모호한 실패가 아닌 명시적인 무동작으로 처리한다. 개발 중에는 저장소 전반을 검사하기 전에 단일 테스트 또는 관련된 최소 테스트 모음을 실행한다.
## 스레드마다 샌드박스를 하나 두고, 고장 나면 다시 만들기
스레드 식별자를 키로 사용하는 프로세스 내 샌드박스 캐시를 유지하고, 샌드박스 식별자를 스레드 메타데이터에 영속 저장한다. 수명 주기 상태를 명시적으로 처리한다.
1. 샌드박스가 캐시되어 있으면 상태를 확인한다. 확인에 실패하면 다시 만들고, 정상이라면 인증된 네트워크 프록시를 갱신한다.
2. 메타데이터에 생성 센티널이 있지만 캐시된 샌드박스가 없으면, 대체 샌드박스를 만들기 전에 오래된 센티널을 지운다.
3. 샌드박스가 없으면 생성 센티널을 기록하고 샌드박스를 만든 뒤, 센티널을 실제 식별자로 교체한다.
4. 메타데이터에 식별자가 있지만 프로세스 캐시가 비어 있으면 다시 연결하고, 재연결에 실패할 경우 다시 만드는 방식으로 전환한다.
인증 프록시를 지원하는 공급자의 경우, 생성하거나 갱신할 때마다 유효 기간이 짧은 새 설치 자격 증명을 발급받는다. 프록시가 코드 호스팅 플랫폼과 API 인증을 주입하도록 하여, 샌드박스 명령이 실제 자격 증명을 저장하는 대신 무해한 자리표시자를 사용할 수 있게 한다. 이 기능이 없는 공급자는 프록시 경로를 명시적으로 건너뛰어야 한다.
실행할 때마다 자동화 신원 구성을 다시 적용한다. 재사용하거나 다시 연결한 환경에서는 전역 설정이 사라질 수 있으며, 이후의 배포 검사는 작성자 신원이 인식되지 않는 commit을 거부할 수 있다.
## 모델 호출을 감싸는 미들웨어를 정해진 순서로 실행하기
모델 호출을 둘러싼 미들웨어를 의도적으로 정한 순서에 따라 실행한다.
1. 도구 입력 정리 및 정규화
2. 모델 호출 횟수 제한 및 한도 도달 시 정상 종료
3. 도구 예외를 도구 메시지로 변환
4. 적용 가능한 상위 디렉터리 지침을 실행당 한 번만 파일 읽기에 추가
5. 실행 중 도착한 이슈 또는 채팅 메시지를 다음 모델 호출 전에 주입
6. 외부 어시스턴트 상태 표시기 갱신
7. 빈 모델 응답을 계속 진행 또는 완료 확인을 위한 합성 도구 호출로 대체
8. 전체 단계 한도에 도달하면 출처 채널에 알림
9. 샌드박스 실패가 반복되면 회로 차단기 작동
10. 별도의 대체 모델이 구성된 경우에만 모델 대체 경로 추가
11. 공급자 호출 직전에 잘못된 형식의 공급자별 추론 블록 제거
계속 작업하라는 시스템 지침과 빈 응답 보호 장치를 함께 사용하여 작업이 아무 알림 없이 끝나지 않도록 한다. 검토자에게 범위 한정 파일 지침, 메시지 대기열 주입, 대체 모델 또는 샌드박스 복구가 필요하지 않다면 검토자 미들웨어를 더 간결하게 유지한다. 사용되지 않는 미들웨어 구성 요소가 존재한다고 해서 활성화되는 것은 아니다. 새 미들웨어는 올바른 위치에 명시적으로 등록한다.
## 역할마다 필요한 도구만 주기
사용자 정의 도구의 작고 평면적인 레지스트리를 유지한다. 기본 에이전트에는 승인된 네트워크 요청, 검색, 이슈 추적기 작업, 검토 요청, 예약된 재개, 채팅 답변을 제공할 수 있다. 검토자에게는 읽기 중심 네트워크 도구와 발견 사항 생성, 갱신, 목록 조회 및 검토 게시 기능만 제공해야 한다. 분석기에는 검토 지침 저장에 필요한 작업만 제공해야 한다.
파일, 셸, 검색, 작업, 계획을 위한 범용 기본 기능은 에이전트 프레임워크가 제공하게 한다. 사용자 정의 레지스트리에 이러한 도구를 중복해서 넣지 않는다.
작업 게시를 에이전트 실행 후의 안전망에 의존하지 않는다. 에이전트 워크플로는 승인된 각 commit, push, 검토 개시 또는 갱신, 출처 채널 답변을 명시적으로 수행해야 한다. 읽기 전용 검토자는 이러한 변경 기능을 절대로 상속해서는 안 된다.
## 모델은 정해진 순서로 고르고, 자격 증명은 암호화해 두기
각 실행의 모델과 추론 수준을 다음 순서로 결정한다.
1. 실행을 유발한 이벤트 또는 인터페이스가 제공한 스레드별 구성
2. 확인된 사용자의 프로필 재정의
3. 팀 기본값
지원되는 모델 식별자, 추론 수준 규칙, 공급자 인수, 모델 생성, 대체 모델 선택을 중앙에서 관리한다. 자동 검토 생성 권한 같은 동작 플래그는 webhook 코드 곳곳에 흩어 놓지 말고 사용자 프로필에 둔다.
저장된 사용자 인증 자격 증명을 암호화하고, 실행 중에는 프로세스 내에서만 캐시한다. 사용자 자격 증명을 사용할 수 없으면 유효 기간이 짧은 애플리케이션 설치 자격 증명으로 대체한다. 인증된 샌드박스 프록시를 구성할 때도 같은 애플리케이션 자격 증명을 사용하되, 원본 자격 증명을 샌드박스 안에 절대로 영속 저장하지 않는다.
이벤트를 라우팅하기 전에 webhook의 진위를 검증한다. 코드 호스팅 플랫폼의 서명 검사, 채팅 검증, 이슈 추적기 검증, 대시보드 로그인 처리는 각각의 담당 모듈에 유지한다.
## 후속 메시지를 같은 스레드와 샌드박스로 돌려보내기
외부 대화의 식별 정보에서 안정적인 스레드 식별자를 도출하여, 동일한 이슈, 채팅 스레드, 브랜치 또는 검토의 모든 후속 요청이 같은 에이전트 상태와 샌드박스로 돌아오게 한다. 검토자 실행에는 별도의 결정론적 네임스페이스를 부여하고, 메타데이터에 스레드 종류를 표시한다.
실행 중 메시지가 도착하면 스레드 대기열에 넣고 다음 모델 호출 전에 주입한다. 이렇게 하면 현재 실행을 포기하거나 경쟁하는 에이전트를 만들지 않고도 연속성을 유지할 수 있다. 외부 사용자가 작업 진행 중, 완료, 단계 한도에 따른 종료를 구분할 수 있도록 상태 갱신 시점을 모델 호출 경계에 맞춘다.
## CI 자동 복구는 스위치가 켜져 있을 때만 돌리기
자동 복구 흐름은 실패한 검사, 병합 충돌 또는 에이전트가 작성한 검토의 실행 가능한 피드백에 대응할 수 있다. 영속적인 검토 메타데이터를 통해 원래 스레드를 찾은 다음, 기본 에이전트 그래프에서 신뢰도 기준을 통과해야 하는 복구 실행을 시작한다.
계층형 활성화를 요구한다.
- 사용자별 자동화 플래그
- 저장소의 명시적인 사용 설정
- 검토별 활성화 또는 비활성화 재정의
기준 브랜치에 이미 존재하는 실패, 사람이 작성한 commit, 같은 헤드 리비전의 반복 처리, 다른 복구 실행이 활성화된 동안의 일괄 처리, 엄격한 반복 한도에 관한 건너뛰기 규칙을 중앙에서 관리한다. 주기적 모니터는 누락된 이벤트를 찾기 위해 에이전트가 작성한 열린 검토를 훑는 대체 수단으로만 사용한다.
## 새 공급자와 도구는 각자의 레지스트리에 추가하고, 코드는 비동기로 유지하기
샌드박스 공급자를 해당 통합 모듈에 추가하고 공급자 팩토리 맵에 등록한다. 사용자 정의 도구를 도구 패키지에 추가하고 한 번만 내보낸 뒤, 그 도구가 필요한 역할별 도구 목록에만 포함한다. 미들웨어를 자체 모듈에 추가하고 내보낸 뒤, 순서가 정해진 스택의 의도한 위치에 배치한다. 대시보드 엔드포인트는 마운트된 라우터에 추가하고 새 그래프는 런타임 매니페스트에 추가한다.
비동기 전용 애플리케이션은 비동기 방식으로 유지한다. 병렬적인 동기 구현을 만들지 않는다. 인터페이스가 허용하면 동기 메서드를 생략하고, 추상 계약이 요구할 때는 지원되지 않는 작업 오류를 발생시키는 최소한의 메서드만 제공한다.
기본적으로 단위 테스트를 사용하고, 실제 통합에는 전용 통합 테스트 영역을 사용하며, 주석은 드물게 작성한다. 주석은 구현을 되풀이하지 말고 명확하지 않은 이유나 순서 제약을 설명해야 한다.
