개요
이 가이드 에서는 Atlas Agent Engine 에이전트 를 위한 로컬 개발 환경을 시작하는 방법을 학습 수 있습니다. agentengine dev 명령은 애플리케이션 코드가 포함된 Docker 이미지를 빌드하고 머신에서 오케스트레이터, 에이전트 샌드박스, 도구 샌드박스 및 로컬 MongoDB 인스턴스 포함한 전체 에이전트 스택 시작합니다. 환경이 실행 중이면 CLI 서비스 URL을 출력하므로 에이전트 개발하고 테스트할 수 있습니다.
전제 조건
시작하기 전에 agentengine CLI 설치해야 합니다. CLI 설치하고, 프로젝트 를 인증 및 등록하는 방법에 대해 자세히 학습 설치 및 인증을 참조하세요.
선택적 구성 설정
이 섹션에서는 로컬 개발 환경을 구성하는 데 사용할 수 있는 선택적 설정에 대해 설명합니다.
메모리 활성화
agent.yaml 파일 에 features.memory: true을 설정하다 경우, 로컬 환경을 시작하기 전에 .env 파일 에 다음 변수를 추가합니다:
VOYAGE_API_KEY: 메모리 임베딩을 생성하는 데 필요합니다.MONGOMEM_DB_NAME: 선택 사항입니다. 메모리 서버 기록하는 MongoDB database 이름입니다. 기본값은mdb_memory_<project-id>입니다.
로컬 개발 설정 구성
dev.yaml 파일 사용하여 로컬 서비스 포트 할당을 재정의하고 개발 중에 로컬 MongoDB 인스턴스 켜거나 끌 수 있습니다. dev.yaml 파일 을 agent.yaml 파일 과 동일한 디렉토리 에 배치합니다. 이 파일 선택 사항이며 플랫폼에서 해당 파일을 .gitignore 파일 에 추가하지 않으므로 설정을 커밋 하고 주식 할 수 있습니다.
다음 표에서는 dev.yaml 파일 에 포함할 수 있는 필드에 대해 설명합니다.
필드 | 유형 | 필수 사항 | 설명 |
|---|---|---|---|
| int (1-65535) | no | 플랫폼 서비스에 대한 포트 재정의입니다. 유효한 서비스 이름은 |
| 부울 | no | 개발 스택 의 일부로 로컬 MongoDB 인스턴스 시작할지 여부입니다. 기본값은 |
| int | no | 포트 MongoDB 로컬에서 실행 때 수신 대기합니다. 기본값은 |
다음 예시 사용 가능한 모든 필드를 설정하는 dev.yaml 파일 보여줍니다.
services: playground: port: 3000 oe: port: 8000 aer: port: 8001 tool: port: 8002 mongodb: local: true port: 27017
로컬 개발 시작
agentengine dev 명령은 두 가지 스타트업 모드, 즉 활성 개발을 위한핫 리로드 모드 와 프로덕션과 유사한 토폴로지 모드 지원합니다.
핫 리로드 모드(권장)
핫 리로드 모드 단일 앱 컨테이너 내에서 모든 에이전트 서비스를 실행하고 소스 코드 직접 마운트합니다. 파일 편집하면watchfiles가 변경 사항을 감지하고 전체를 다시 빌드할 필요 없이 영향을 받는 서비스를 자동으로 다시 로드합니다.
(선택 사항) VS Code 개발자 컨테이너로 연결합니다.
VS(Visual Studio) Code를 사용하는 경우 다음 단계를 수행하여 실행 컨테이너 에 직접 연결합니다. 이는 완전한 IntelliSense 및 디버깅 지원 통해 통합 개발 환경을 제공합니다.
VS Code 에 Dev Containers 확장을 설치합니다.
스택 이 실행 동안 Command Palette를 열고 Dev Containers:/ Reopen in Container을 선택합니다.
VS Code 앱 컨테이너 에 연결하고 그 안의 작업 공간을 다시 로드합니다.
격리 모드
--isolated 플래그를 사용하여 격리 모드 에서 로컬 환경을 시작할 수 있습니다. 격리 모드 프로덕션 토폴로지 미러링하여 별도의 컨테이너 에서 각 에이전트 서비스를 시작합니다. 이 모드 사용하여 서비스 경계를 넘어 동작의 유효성을 검사하거나 프로덕션별 문제를 재현할 수 있습니다. 코드가 호스팅하다 에서 마운트되지 않으므로 코드를 변경한 후 이미지를 다시 빌드해야 합니다.
로컬 환경 관리
다음 agentengine dev 명령을 사용하여 실행 환경을 관리 .
로그 보기
실행 모든 서비스에서 로그를 스트림 하려면 다음 명령을 실행 .
agentengine dev logs
특정 서비스에서 로그를 스트림 하려면 서비스 이름을 위치 인수로 전달합니다.
agentengine dev logs <service>
단일 리포지토리에서 --all를 전달하여 공유된 모든 작업 공간 스택 에 대한 스트림 로그를 전달합니다.
agentengine dev logs --all
로컬 스택 상태 확인
agentengine dev status 명령은 서비스별 상태 및 게시된 호스팅하다 URL을 포함하여 로컬 작성 스택 의 현재 상태 표시합니다. 다음 예시 에서는 명령 구문을 보여줍니다.
agentengine dev status [--workspace <name>] [--all] [--json]
다음 표에서는 사용 가능한 플래그에 대해 설명합니다.
플래그 | 설명 |
|---|---|
| (Monorepo에만 해당) 루트 |
| (Monorepo에만 해당) 모든 워크스페이스 스택 대상으로 합니다. |
| 기계가 읽을 수 있는 상태 객체 stdout에 출력합니다. |
서비스 재시작
agentengine dev restart 명령은 이미지를 다시 빌드하지 않고 app 및 oe 컨테이너를 핫 리로드하여 다시 시작합니다. 호스팅하다 에 대한 종속성을 변경한 후 사용합니다. 다음 예시 에서는 명령 구문을 보여줍니다.
agentengine dev restart [--workspace <name>]
이 명령은 핫 리로드 스택 만 대상으로 합니다. --all 또는 격리 모드 지원 하지 않습니다.
새 종속성 추가
pyproject.toml 파일 에 종속성을 추가할 때 uv.lock 파일 이미 존재하는 경우 로컬 개발 스택 종속성을 설치하지 않을 수 있습니다. uv.lock 파일 있는 경우, 개발 엔트리포인트는 --frozen 플래그로 환경을 동기화하며, 이는 pyproject.toml 파일 대신 lockfile에서 종속성을 해결합니다.
새 종속성을 설치하려면 다음 명령을 실행 uv.lock 파일 삭제 하고 스택 다시 시작합니다.
rm uv.lock agentengine dev stop agentengine dev up
또는 스택 다시 시작하기 전에 다음 명령을 실행 잠금 파일을 업데이트 할 수 있습니다.
uv lock agentengine dev stop agentengine dev up
비공개 아티팩트 리포지토리 사용
에이전트 가 비공개 아티팩트 리포지토리(예: npm 리포지토리)에서 호스팅되는 패키지에 의존하는 경우, agent.yaml 파일 의 artifact_repositories 차단 에서 해당 패키지를 선언합니다. 핫 리로드 모드 에서 agentengine dev up 및 agentengine dev restart 명령은 type: pypi 항목에 대한 레지스트리 자격 증명 자동으로 구성합니다. CLI npm 항목을 자동으로 구성하지 않습니다. npm 비공개 종속성의 경우, 프로젝트 수준 .npmrc 파일 과 같은 로컬 npm 구성을 통해 인증합니다.
선언된 각 PyPI 리포지토리 에 대해 다음 중 하나를 통해 자격 증명을 제공합니다.
프로세스 환경 또는
.env파일 의UV_INDEX_<NAME>_PASSWORD(및 선택적으로_USERNAME) 변수입니다. 예시 들어corps-pypi라는 인덱스 의 경우UV_INDEX_CORPS_PYPI_PASSWORD설정하다 .선언된
secret필드.env파일 에서 읽습니다.AWS Code 아티팩트 인덱스 의 경우 활성 AWS 프로필 또는 SSO 세션에서 생성된 토큰입니다.
선언된 리포지토리 에 대한 자격 증명이 확인되지 않으면 CLI 실패하고 확인할 리포지토리 와 소스의 이름을 지정합니다.
자동 구성을 건너뛰고 UV_INDEX_* 변수를 직접 관리 하려면 다음 명령을 실행 .
agentengine dev up --no-artifact-auth
참고
type: pypi 항목을 선언하고 --isolated 또는 --all 모드 에서 시작하는 경우 CLI 종속성 설치에 실패한 컨테이너를 시작하는 대신 오류를 반환합니다.
artifact_repositories 스키마 에 대해 학습 에이전트 YAML 스키마를 참조하세요. cloud 빌드에서 비공개 아티팩트 리포지토리가 작동하는 방식을 학습 보려면 비공개 아티팩트 리포지토리를 참조하세요.
서비스 중지
컨테이너를 제거하지 않고 로컬 환경을 일시 중지하려면 다음 명령을 실행 .
agentengine dev stop [--workspace <name>] [--all]
이 명령은 컨테이너를 제거하지 않고 중지합니다. agentengine dev up를 다시 실행하여 다시 빌드하지 않고 컨테이너를 재개합니다.
로컬 상태 재설정
모든 컨테이너를 중지하고 관련 볼륨과 생성된 런타임 파일을 모두 제거 하려면 다음 명령을 실행 .
agentengine dev clean [--workspace <name>] [--all]
경고
agentengine dev clean를 실행하면 MongoDB Atlas 로컬 볼륨에 저장된 모든 로컬 데이터가 영구적으로 삭제됩니다. 이 명령을 실행 전에 필요한 데이터를 백업합니다.
정리 후 agentengine dev up를 실행 파일을 다시 생성하고 새 로컬 컨테이너를 시작합니다.
원격 MCP 서버 인증
agentengine dev mcp auth 명령은 mcp.servers 아래의 agent.yaml 파일 에 구성된 원격 MCP 서버에 대한 OAuth 자격 증명 관리 . 명령은 ~/.agentengine/mcp-oauth의 개발자 자격 증명 캐시 에 로그인 자격 증명 쓰기 (write) , 생성된 agentengine dev up 스택은 해당 디렉토리 자동으로 마운트합니다.
캐시 각 프로젝트 와 각 MCP 엔드포인트에 대해 별도입니다. 한 프로젝트 에서 로그인해도 다른 프로젝트 에 로그 되지 않으므로 프로젝트 당 한 번씩 agentengine dev mcp auth login 명령을 실행 해야 합니다. MCP 서버의 이름 지정 요구 사항에 대해 학습 서버 이름 지정 규칙을 참조하세요.
인증 로그인
다음 예시 와 같이 agentengine dev mcp auth login 명령을 사용하여 서버 에 대한 제공자 권한 부여 부여 흐름을 열고 개발자 캐시 에 자격 증명 저장합니다.
agentengine dev mcp auth login <server> [--no-browser]
--no-browser 플래그는 브라우저에서 URL 여는 대신 로그인 URL 출력합니다.
서버 가 알리는 권한 부여 URL https 체계를 사용해야 합니다. 서버 다른 체계를 사용하는 권한 부여 엔드포인트를 알리면 명령이 중지되고 Refused to open unauthorized MCP OAuth URL 오류가 생성됩니다.
인증 상태
다음 예시 와 같이 agentengine dev mcp auth status 명령을 사용하여 서버 에 대해 캐시된 자격 자격 증명 존재하는지 확인합니다.
agentengine dev mcp auth status [server] [--check]
--check 플래그는 캐시된 자격 증명 사용하여 MCP 서버 에 연결하고 도구 목록 엔드포인트를 호출하여 서버 이를 수락하는지 확인합니다.
인증 업로드
agentengine dev mcp auth upload 명령을 사용하여 서버 의 로컬 OAuth 캐시 64인코딩하고 이를 AGENTIC_MCP_OAUTH_B64_<SERVER>라는 이름의 작업 공간 시크릿으로 저장 . 이 명령은 배포된 에이전트에 권한 부여 자격 증명 노출합니다.
다음 예시 에서는 명령 구문을 보여줍니다.
agentengine dev mcp auth upload <server> [--workspace-id <id>] [--sync]
--workspace-id 플래그는 작업 공간 ID 지정하고 ``-- 동기화`` 플래그는 업로드 직후 활성 배포에서 시크릿을 다시 로드합니다.
업로드하기 전에 CLI 는 캐시 에 기록된 서버 URL agent.yaml 파일 의 URL 과 일치하는지 확인합니다. 캐시 다른 엔드포인트에 대해 기록된 경우 CLI 업로드를 거부하고 agentengine dev mcp auth login 명령을 다시 실행 하라는 메시지를 표시합니다.
구성 유효성 검사
agentengine agent validate 명령은 빌드 파이프라인 사용하는 것과 동일한 구문 분석기 및 유효성 검사기를 사용하여 로컬에서 agent.yaml 파일 린트합니다. 빌드하기 전에 실행하여 오타, 잘못된 값, 네트워크 정책 오류를 파악하세요.
다음 예시 에서는 명령 구문을 보여줍니다.
agentengine agent validate [path] [--strict]
기본값 경로는 ./agent.yaml입니다. 명시적 경로를 전달하여 단일 리포지토리 작업 공간과 같은 다른 위치 에 있는 파일 유효성을 검사합니다.
이 명령은 다음과 같은 종료 코드를 반환합니다.
종료 코드 | 의미 |
|---|---|
|
|
| 유효성 검사에 실패했습니다. 출력은 유효하지 않은 필드를 식별합니다. |
| 파일 또는 I/O 오류입니다. 파일 읽을 수 없습니다. |
이 명령은 인증 필요하지 않으며 유효한 토큰 없이 CI에서 실행 수 있습니다.
artifact_repositories이 비어 있지 않은 경우, 명령은 선언된 인덱스 이름을 agent.yaml과 동일한 디렉토리 에 있는 프로젝트 도구와 비교하여 교차 확인합니다. Python 에이전트의 경우 pyproject.toml 및 uv.lock를 읽습니다. TypeScript 에이전트의 경우 package.json, .npmrc 및 package-lock.json로 표시됩니다. 자격 증명 주입이 옵트인되어 있으므로 잠금 파일에 선언되지 않은 비공개 URL이 허용됩니다. cloud 빌드를 차단 하는 것과 동일한 심각한 오류가 유효성 검사 중지하고 종료 코드 1를 반환합니다.
로그인하면 이 명령은 artifact_repositories[].secret 값이 누락되거나 잘못 지정된 경우 비차단 경고를 출력하며, 여기에는 활성 agentengine init 컨텍스트 없이 작업 공간 범위 항목이 선언된 경우 WORKSPACE_CONTEXT_NEEDED이 포함됩니다. 이러한 경고를 종료 코드 1로 처리하려면 --strict를 전달합니다. cloud 빌드에서 비공개 아티팩트 리포지토리가 작동하는 방식을 학습 보려면 비공개 아티팩트 리포지토리를 참조하세요.
참고
agentengine agent validate 명령은 실험적입니다. 유효성 검사기가 더 많은 agent.yaml 필드를 포함하도록 확장됨에 따라 플래그, 출력 형식 및 종료 코드가 변경될 수 있습니다.
다음 단계
로컬 환경이 실행 후에는 에이전트 를 테스트하고 코드를 반복할 수 있습니다. 에이전트 를 수동으로 테스트하고 코드 변경 사항을 적용 방법을 학습 에이전트 테스트를 참조하세요.