LangSmith Engine을 GitHub에 연결하기
LangSmith Engine을 GitHub에 연결하기
LangSmith Cloud에서 LangSmith Engine을 GitHub에 연결하거나, 셀프 호스팅 배포를 위해 자신만의 GitHub App을 만들고 구성해요.
GitHub 저장소 연결은 선택사항이에요. 연결하면 LangSmith Engine이 이슈 진단을 위해 소스 코드를 읽고 제안된 수정 사항이 있는 풀 리퀘스트를 열어요. Engine은 LangSmith Cloud에서 LangChain 관리 GitHub App을 사용하며, 셀프 호스팅 운영자는 자신만의 GitHub App을 만들고 관리해요.
출처: 문서
본문
LangSmith Cloud
LangSmith Cloud에서 Engine은 LangChain 관리 GitHub App을 통해 연결돼요. 직접 앱을 만들거나 구성하지 않아요.
저장소를 연결하려면:
- LangSmith 콘솔에서 추적 프로젝트를 열고 Engine 탭으로 가세요.
- Connect your agent's code repository 아래에서 Connect GitHub를 클릭하고 LangChain 관리 GitHub App을 승인하세요.
- Engine이 접근해야 할 저장소에 앱을 설치하세요. GitHub 조직에 앱을 설치하는 경우 GitHub 조직 소유자의 승인이 필요할 수 있어요. 소유자가 아니면 GitHub가 앱을 사용 가능하게 만들기 전에 소유자에게 설치 요청을 보내 승인을 받아요.
- Engine 탭의 GitHub Repository 필드에서 연결된 저장소를 선택하세요.
관리형 앱의 접근 및 보존 모델은 Engine 보안을 참고하세요.
셀프 호스팅
Engine은
github.com에만 연결해요. GitHub Enterprise Server는 지원되지 않아요: Engine의 샌드박스는github.com과api.github.com에 도달하고, 샌드박스 인증 프록시는 해당 호스트에 한해서만 저장소 자격 증명을 주입해요. GitHub Enterprise Server 인스턴스에서 만든 GitHub App은 사용할 수 없어요.
셀프 호스팅 배포를 위해 GitHub App을 만들고 구성하려면:
GitHub App 만들기
-
앱 만들기: GitHub Settings > Developer settings > GitHub Apps로 가서 New GitHub App을 클릭하세요.
- GitHub App name:
acme-langsmith-engine같은 고유한 이름. - Homepage URL:
https://langsmith.example.com같은 LangSmith 배포 URL. - Where can this GitHub App be installed?: 대부분의 셀프 호스팅 배포에서는 Only on this account를 선택하세요. 앱을 배포하려는 경우에만 Any account를 선택하세요.
- GitHub App name:
-
콜백 URL 설정: 다음 Callback URL을 추가하고,
<langsmith-host>를 LangSmith 호스트 이름으로 바꾸세요:https://<langsmith-host>/api-host/v1/integrations/forge/github/callback -
웹훅 URL 및 시크릿 설정: 시크릿 매니저나 다른 암호학적으로 안전한 생성기로 최소 32바이트의 무작위 웹훅 시크릿을 생성하세요. 이 값을 LangSmith 시크릿 스토어에 저장하세요. Webhook 아래에서 Active를 선택하고 Webhook URL을 설정하되,
<langsmith-host>를 LangSmith 호스트 이름으로 바꾸세요:https://<langsmith-host>/api-host/v1/integrations/forge/github/webhook생성된 값을 Webhook secret에 입력하세요.
-
저장소 권한 설정: Permissions > Repository permissions 아래에서 다음을 부여하세요:
- Contents: 읽기 및 쓰기.
- Pull requests: 읽기 및 쓰기.
- Metadata: 읽기 전용 (자동 선택됨).
Subscribe to events 아래에서는 이벤트를 선택하지 마세요. Engine은 이벤트 구독이 필요 없어요.
-
앱 만들고 값 수집: Create GitHub App을 클릭하세요. GitHub가 앱 설정 페이지에서 다음 값을 제공해요:
값 어디서 찾을까 환경 변수 App ID 숫자, 페이지 상단 FORGE_GITHUB_APP_IDPublic link 예: https://github.com/apps/acme-langsmith-engineFORGE_GITHUB_APP_PUBLIC_LINKClient ID About 아래 FORGE_GITHUB_CLIENT_IDClient secret Client secrets 아래에서 Generate a new client secret 클릭 (한 번만 표시됨) FORGE_GITHUB_CLIENT_SECRETPrivate key Private keys 아래에서 Generate a private key 클릭 ( .pem파일 다운로드)FORGE_GITHUB_APP_PEM -
상태 JWT 시크릿 생성: LangSmith는 HMAC 키를 사용해 단기 OAuth 상태 토큰에 서명하고 콜백 상태를 보호해요. 시크릿 매니저나 다른 암호학적으로 안전한 생성기로 최소 32바이트의 무작위 시크릿을 생성하세요. GitHub는 이 값을 제공하지 않아요. 이것이
FORGE_GITHUB_STATE_JWT_SECRET이에요. 별도로 생성하고 웹훅 시크릿이나 다른 자격 증명을 재사용하지 마세요. -
Kubernetes Secret 만들기:
GitHub 클라이언트 시크릿, 개인 키, 상태 JWT 시크릿, 웹훅 시크릿은 자격 증명이에요. Helm 값이나 명령줄 인수가 아닌 Kubernetes Secret에만 저장하세요.
기존 시크릿 관리 워크플로를 사용해 다음 키가 있는
langsmith-forge-github라는 Kubernetes Secret을 만드세요:키 값 forge_github_client_secretGitHub 클라이언트 시크릿 forge_github_state_jwt_secret별도로 생성된 상태 JWT 시크릿 forge_github_app_pemGitHub App 개인 키 PEM의 내용 forge_github_webhook_secretGitHub에서도 구성한 웹훅 시크릿 프로덕션 배포에서는 Sealed Secrets 또는 External Secrets Operator 같은 기존 시크릿 워크플로를 사용하세요.
-
langsmith_config.yaml에 구성 추가:
langsmith_config.yaml의hostBackend.deployment.extraEnv에 다음을 추가하세요. App ID, public link, Client ID는 리터럴value항목을 사용해요. 클라이언트 시크릿, 상태 JWT 시크릿, 개인 키, 웹훅 시크릿은secretKeyRef로 참조하세요.commonEnv나 인라인 값으로는 절대 설정하지 마세요:hostBackend: deployment: extraEnv: - name: FORGE_GITHUB_APP_ID value: "<app-id>" - name: FORGE_GITHUB_APP_PUBLIC_LINK value: "https://github.com/apps/<app-slug>" - name: FORGE_GITHUB_CLIENT_ID value: "<client-id>" - name: FORGE_GITHUB_CLIENT_SECRET valueFrom: secretKeyRef: name: langsmith-forge-github key: forge_github_client_secret - name: FORGE_GITHUB_STATE_JWT_SECRET valueFrom: secretKeyRef: name: langsmith-forge-github key: forge_github_state_jwt_secret - name: FORGE_GITHUB_APP_PEM valueFrom: secretKeyRef: name: langsmith-forge-github key: forge_github_app_pem - name: FORGE_GITHUB_WEBHOOK_SECRET valueFrom: secretKeyRef: name: langsmith-forge-github key: forge_github_webhook_secretHelm 구성을 적용하세요:
helm upgrade -i langsmith langchain/langsmith --values langsmith_config.yaml --version <version> -n <namespace> --wait --debug -
저장소에 앱 설치: 팟이 정상이 되면 Engine이 접근해야 할 저장소에 GitHub App을 설치하세요:
- 앱의 공개 링크(
FORGE_GITHUB_APP_PUBLIC_LINK)를 열고 Install을 클릭하거나, GitHub 조직의 Settings > Applications > GitHub Apps를 여세요. - Engine이 접근해야 할 저장소를 선택하세요. 설치가 모든 저장소에 접근을 부여하지 않으면 Engine이 필요로 하는 각 개인 저장소를 명시적으로 선택하세요.
- LangSmith에서 추적 프로젝트를 열고 Engine 탭으로 가서 GitHub Repository 필드에서 저장소를 선택하세요.
연결된 저장소를 통해 Engine이 진단에 소스 코드를 사용하고 제안된 수정 사항이 있는 풀 리퀘스트를 열 수 있어요.
- 앱의 공개 링크(
더 알아보기
- 에이전트의 이슈 찾기 및 수정: Engine 설정, 비용, 이슈 워크플로.
- 셀프 호스팅의 Engine: 설치, 아키텍처, 데이터 처리.
- Engine 보안: Engine이 데이터와 GitHub 접근을 처리하는 방법.