구성 참조 - Amazon Q Developer

구성 참조

사용자 지정 에이전트 구성 파일은 사용자 지정 에이전트의 동작 방식을 정의하는 JSON 문서입니다. 이 섹션에서는 구성 개념과 공통 패턴을 다룹니다.

구성 참조

사용자 지정 에이전트 구성 파일 형식, 사용 가능한 필드 및 구문에 대한 자세한 내용은 보조 Amazon Q Developer CLI 설명서를 참조하세요.

다음을 실행하여 사용자 지정 에이전트 구성 파일의 JSON 스키마를 볼 수도 있습니다.

/agent schema

구성 개념

사용자 지정 에이전트 구성 파일에는 사용자 지정 에이전트 동작의 다양한 측면을 제어하는 여러 키 섹션이 포함되어 있습니다.

기본 메타데이터

모든 사용자 지정 에이전트에는 식별 및 문서화를 위한 기본 메타데이터가 포함될 수 있습니다.

  • 이름 - 사용자 지정 에이전트의 식별자(지정하지 않은 경우 파일 이름에서 파생됨)

  • 설명 - 사용자 지정 에이전트의 목적을 사람이 읽을 수 있게 설명한 내용

  • 프롬프트 - 시스템 프롬프트와 유사한 에이전트의 상위 수준 컨텍스트

도구 구성

도구 구성은 사용자 지정 에이전트가 사용할 수 있는 도구와 이러한 도구가 작동하는 방식을 제어합니다.

도구

기본 제공 도구와 MCP 서버 도구를 포함하여 사용자 지정 에이전트가 잠재적으로 사용할 수 있는 모든 도구를 나열합니다.

allowedTools

사용자 확인 없이 실행할 수 있는 도구를 지정하여 워크플로 효율성을 개선합니다.

toolAliases

이름 충돌을 해결하거나 바로 가기를 생성하는 데 유용한 도구의 대체 이름을 제공합니다.

toolsSettings

허용된 파일 경로 또는 서비스 권한과 같은 개별 도구에 대한 특정 동작을 구성합니다.

기본 제공 도구 설정

toolsSettings 섹션을 통해 기본 제공 도구를 구성하여 도구의 동작과 권한을 제어할 수 있습니다. 각 도구에서 지원하는 특정 구성 옵션으로 특정 작업을 사전 승인하거나 특정 리소스에 대한 액세스를 제한할 수 있습니다.

execute_bash 도구

다음과 같이 사용자 확인 없이 실행할 수 있는 bash 명령을 제어합니다.

{ "toolsSettings": { "execute_bash": { "allowedCommands": ["git status", "git fetch"], "deniedCommands": ["git commit .*", "git push .*"], "allowReadOnly": true } } }
allowedCommands

프롬프트 없이 허용되는 특정 명령 배열입니다. 앵커 \A\z를 사용한 정규식 형식을 지원합니다.

deniedCommands

거부할 명령 배열입니다. 정규식 형식을 지원합니다. 거부 규칙은 허용 규칙보다 먼저 평가됩니다.

allowReadOnly

부울(기본값: true) - 프롬프트 없이 읽기 전용 명령을 허용할지 여부입니다.

fs_read 도구

사용자 확인 없이 읽을 수 있는 파일 및 디렉터리를 제어합니다.

{ "toolsSettings": { "fs_read": { "allowedPaths": ["~/projects", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
allowedPaths

프롬프트 없이 읽을 수 있는 경로 배열입니다. gitignore 스타일의 동작으로 glob 패턴을 지원합니다.

deniedPaths

액세스를 거부할 경로 배열입니다. glob 패턴을 지원합니다. 거부 규칙은 허용 규칙보다 먼저 평가됩니다.

fs_write 도구

사용자 확인 없이 쓸 수 있는 파일 및 디렉터리를 제어합니다.

{ "toolsSettings": { "fs_write": { "allowedPaths": ["~/projects/output.txt", "./src/**"], "deniedPaths": ["/some/denied/path/", "/another/denied/path/**/file.txt"] } } }
allowedPaths

프롬프트 없이 쓸 수 있는 경로 배열입니다. gitignore 스타일의 동작으로 glob 패턴을 지원합니다.

deniedPaths

쓰기 액세스를 거부할 경로 배열입니다. glob 패턴을 지원합니다. 거부 규칙은 허용 규칙보다 먼저 평가됩니다.

use_aws 도구

사용자 확인 없이 액세스할 수 있는 AWS 서비스를 제어합니다.

{ "toolsSettings": { "use_aws": { "allowedServices": ["s3", "lambda", "ec2"], "deniedServices": ["eks", "rds"] } } }
allowedServices

프롬프트 없이 액세스할 수 있는 AWS 서비스의 배열입니다.

deniedServices

액세스를 거부할 AWS 서비스의 배열입니다. 거부 규칙은 허용 규칙보다 먼저 평가됩니다.

도구 권한 및 기본값

기본 제공 도구에는 다음과 같은 다양한 기본 권한 동작이 있습니다.

  • 기본적으로 신뢰할 수 있음: fs_read, report_issue

  • 기본적으로 권한 필요: execute_bash, fs_write, use_aws

  • 구성 옵션 없음: introspect, knowledge, thinking, todo_list

allowedTools 섹션에서 도구를 명시적으로 허용하거나 toolsSettings를 통해 특정 권한으로 구성할 수 있습니다. 도구가 allowedTools 목록에 없으면 적절한 toolsSettings 구성이 설정되어 있지 않는 한 사용자에게 권한을 묻는 메시지가 표시됩니다.

MCP 서버 구성

mcpServers 섹션에서는 사용자 지정 에이전트가 액세스할 수 있는 모델 컨텍스트 프로토콜 서버를 정의합니다. 각 서버 구성에는 다음이 포함됩니다.

  • 명령 - MCP 서버를 시작하는 실행 파일 명령

  • 인수 - 서버에 대한 명령줄 인수

  • 환경 변수 - 서버 프로세스에 대한 환경 설정

  • 제한 시간 설정 - 요청 제한 시간 구성

MCP 통합에 대한 자세한 내용은 Amazon Q Developer로 MCP 사용을 참조하세요.

리소스 및 컨텍스트

사용자 지정 에이전트는 다음 두 가지 메커니즘을 통해 관련 컨텍스트를 자동으로 포함할 수 있습니다.

리소스

사용자 지정 에이전트의 컨텍스트에 포함할 파일 및 디렉터리로, 유연한 파일 선택을 위한 glob 패턴 지원

hooks

컨텍스트에 출력이 포함된 특정 트리거 지점(예: 사용자 지정 에이전트 시작 또는 사용자 입력)에서 실행할 명령

일반적인 구성 패턴

최소 사용자 지정 에이전트 구성

사전 승인된 읽기 액세스 권한으로 기본 파일 작업을 제공하는 간단한 사용자 지정 에이전트:

{ "name": "basic-ops", "description": "Basic file operations custom agent", "prompt": "You are a helpful assistant specialized in basic file operations", "tools": [ "fs_read", "fs_write", "execute_bash" ], "allowedTools": [ "fs_read" ] }

전문화된 워크플로 사용자 지정 에이전트

특정 도구 권한이 있는 AWS 인프라 관리를 위해 구성된 사용자 지정 에이전트:

{ "name": "infra-manage", "description": "AWS infrastructure management custom agent", "prompt": "You are an expert AWS infrastructure specialist", "tools": [ "fs_read", "fs_write", "execute_bash", "use_aws" ], "allowedTools": [ "fs_read", "use_aws" ], "toolsSettings": { "use_aws": { "allowedServices": ["s3", "lambda", "cloudformation"] } }, "resources": [ "file://README.md", "file://infrastructure/**/*.yaml", "file://docs/deployment.md" ] }

후크가 있는 프로젝트별 사용자 지정 에이전트

정적 파일과 동적 명령 모두를 통해 프로젝트 컨텍스트를 포함하는 사용자 지정 에이전트:

{ "name": "project-dev", "description": "Project development custom agent with git context", "prompt": "You are a project development assistant with access to git information", "tools": [ "fs_read", "fs_write", "execute_bash", "@git" ], "allowedTools": [ "fs_read", "@git/git_status" ], "resources": [ "file://README.md", "file://CONTRIBUTING.md", "file://src/**/*.md" ], "hooks": { "agentSpawn": [ { "command": "git status --porcelain", "timeout_ms": 10000 } ] } }

MCP 서버 통합을 사용하는 사용자 지정 에이전트

MCP 서버를 통해 외부 도구를 통합하는 사용자 지정 에이전트:

{ "name": "custom-dev", "description": "Development custom agent with external tool integration", "prompt": "You are a development assistant with access to git and web fetching capabilities", "mcpServers": { "git": { "command": "git-mcp-server", "args": [], "timeout": 30000 }, "fetch": { "command": "fetch-mcp-server", "args": ["--timeout", "10"] } }, "tools": [ "fs_read", "fs_write", "@git", "@fetch/fetch_url" ], "allowedTools": [ "fs_read", "@git/git_status", "@fetch/fetch_url" ], "toolAliases": { "@git/git_status": "status", "@fetch/fetch_url": "get" } }