기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
컨텍스트 관리
올바른 컨텍스트 접근 방식 선택
Amazon Q는 컨텍스트를 제공하는 세 가지 방법을 제공하며, 각 방법은 다양한 사용 사례에 최적화되어 있습니다.
| 접근 방식 | 컨텍스트 창 영향 | Persistence | 에 가장 적합 |
|---|---|---|---|
| 에이전트 리소스 | 항상 활성(토큰 사용) | 세션 간 영구적 | 필수 프로젝트 파일, 표준, 구성 |
| 세션 컨텍스트 | 항상 활성(토큰 사용) | 현재 세션만 | 임시 파일, 빠른 실험 |
| 지식 기반 | 검색한 경우에만 | 세션 간 영구적 | 대규모 코드베이스, 광범위한 설명서 |
결정 순서도
이 의사 결정 트리를 사용하여 적절한 컨텍스트 접근 방식을 선택합니다.
-
콘텐츠가 10MB보다 크거나 수천 개의 파일을 포함하고 있습니까?
-
예 → 지식 기반 사용
-
아니요 → 2단계로 계속
-
-
모든 대화에서이 컨텍스트가 필요합니까?
-
예 → 에이전트 리소스 사용
-
아니요 → 세션 컨텍스트 사용
-
빠른 참조:
-
필수 프로젝트 파일(README, configs, standard) → 에이전트 리소스
-
대규모 코드베이스 또는 설명서 세트 → 지식 기반
-
현재 작업에 대한 임시 파일 → 세션 컨텍스트
컨텍스트 창 영향 이해
컨텍스트 파일 및 에이전트 리소스는 참조 여부에 관계없이 모든 요청에 대해 컨텍스트 창의 토큰을 사용합니다. /context show를 사용하여 토큰 사용량을 모니터링합니다.
q chat > /context show Total: ~1100 tokens
토큰 제한: 컨텍스트 파일은 모델 컨텍스트 창의 75%로 제한됩니다. 이 제한을 초과하는 파일은 자동으로 삭제됩니다.
지식 기반은 검색될 때까지 컨텍스트 창 공간을 사용하지 않으므로 대규모 참조 자료에 적합합니다. 자세한 내용은 지식 기반 컨텍스트(대규모 데이터 세트의 경우) 단원을 참조하십시오.
컨텍스트 관리
컨텍스트 파일에는 Amazon Q가 대화 중에 고려할 정보가 포함되어 있습니다. 여기에는 프로젝트 요구 사항, 코딩 표준, 개발 규칙 또는 Amazon Q가 보다 관련성이 높은 응답을 제공하는 데 도움이 되는 기타 정보가 포함될 수 있습니다.
에이전트 리소스를 사용하여 영구 컨텍스트 구성
컨텍스트를 구성하는 권장 방법은 에이전트 구성 파일의 resources 필드를 사용하는 것입니다. 이렇게 하면 에이전트를 사용할 때마다 사용할 수 있는 영구 컨텍스트가 생성됩니다.
에이전트 구성의 resources 배열에 파일 경로 또는 glob 패턴을 추가합니다.
{ "name": "my-agent", "description": "My development agent", "resources": [ "file://README.md", "file://.amazonq/rules/**/*.md", "file://docs/**/*.md", "file://src/config.py" ] }
컨텍스트 파일로 포함하려면 리소스 앞에 file:// 접두사를 붙여야 합니다. 이러한 파일은 이 에이전트를 사용하는 모든 채팅 세션에서 자동으로 사용할 수 있습니다.
임시 세션 컨텍스트 추가
/context add 명령을 사용하여 현재 채팅 세션에 파일을 임시로 추가할 수 있습니다. 이러한 추가 사항은 현재 세션에만 사용할 수 있으며 새 채팅 세션을 시작할 때 지속되지 않습니다.
q chat > /context add README.md Added 1 path(s) to context. Note: Context modifications via slash command is temporary.
glob 패턴을 사용하여 한 번에 여러 파일을 추가할 수도 있습니다.
q chat > /context add docs/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.
컨텍스트를 영구적으로 변경하려면 대신 에이전트의 resources 필드에 파일을 추가합니다. 자세한 내용은 에이전트 리소스를 사용하여 영구 컨텍스트 구성 단원을 참조하십시오.
지식 기반 컨텍스트(대규모 데이터 세트의 경우)
컨텍스트 기간 제한을 초과하는 대규모 코드베이스, 설명서 세트 또는 참조 자료의 경우 지식 기반을 사용합니다. 지식 기반은 검색될 때까지 컨텍스트 창 공간을 사용하지 않고 의미 체계 검색 기능을 제공합니다.
지식 기반 활성화:
q settings chat.enableKnowledge true
지식 기반에 콘텐츠 추가:
q chat > /knowledge add /path/to/large-codebase --include "**/*.py" --exclude "node_modules/**"
관련 정보가 필요할 때 Amazon Q에서 온디맨드 방식으로 지식 기반을 검색하므로 대규모 참조 자료에 적합합니다.
컨텍스트 보기
현재 컨텍스트를 보려면 /context show 명령을 사용합니다.
q chat > /context show 👤 Agent (my-agent): README.md (1 match) .amazonq/rules/**/*.md (3 matches) docs/**/*.md (5 matches) 💬 Session (temporary): <none> 5 matched files in use: 👤 README.md (~250 tkns) 👤 .amazonq/rules/security.md (~180 tkns) 👤 .amazonq/rules/coding-standards.md (~320 tkns) 👤 docs/architecture.md (~150 tkns) 👤 docs/best-practices.md (~200 tkns) Total: ~1100 tokens
출력에는 다음이 표시됩니다.
-
👤 에이전트: 에이전트
resources필드의 영구 컨텍스트 -
💬 세션: 현재 세션 중에 추가된 임시 컨텍스트
컨텍스트 제거
현재 세션 컨텍스트에서 파일을 제거하려면 /context rm 명령을 사용합니다.
q chat > /context rm src/temp-file.py Removed 1 path(s) from context. Note: Context modifications via slash command is temporary.
모든 세션 컨텍스트를 지우려면 /context clear 명령을 사용합니다.
q chat > /context clear Cleared context Note: Context modifications via slash command is temporary.
참고: /context 명령을 사용하여 에이전트 정의 컨텍스트를 제거할 수 없습니다. 컨텍스트를 영구적으로 제거하려면 에이전트의 resources 필드를 편집합니다.
일반 사용 사례
다음은 컨텍스트 관리를 위한 몇 가지 일반적인 사용 사례입니다.
프로젝트 규칙 사용
Amazon Q에서 지원하는 프로젝트 수준 규칙을 사용하여 보안 지침 및 제한을 정의할 수 있습니다. 이러한 규칙은 프로젝트의 .amazonq/rules 디렉터리의 마크다운 파일에 정의되어 있습니다.
예를 들어 다음을 지정하는 규칙을 생성할 수 있습니다.
-
Amazon Q가 액세스하지 않아야 하는 디렉터리
-
생성된 코드에 대한 보안 요구 사항
-
코딩 표준 및 모범 사례
프로젝트 규칙을 포함할 때 권장되는 방법은 에이전트 구성을 사용하는 것입니다.
{ "name": "my-project-agent", "resources": [ "file://.amazonq/rules/**/*.md", "file://README.md", "file://docs/architecture.md" ] }
현재 세션에 프로젝트 규칙을 일시적으로 추가할 수도 있습니다.
q chat > /context add .amazonq/rules/*.md Added 3 path(s) to context. Note: Context modifications via slash command is temporary.
프로젝트 규칙 생성 및 사용에 대한 자세한 내용은 IDE 설명서의 Amazon Q Developer 채팅을 사용하여 프로젝트 규칙 만들기를 참조하세요.
세션 컨텍스트에서 에이전트 리소스로 마이그레이션
/context add 명령을 사용하여 동일한 컨텍스트 파일을 반복적으로 추가하는 경우 지속성을 위해 에이전트의 resources 필드로 이동하는 것이 좋습니다.
-
/context add를 사용하여 자주 추가하는 파일을 기록해 둡니다. -
를
/agent edit사용하거나 파일을 직접 수정하여 에이전트 구성 파일 편집 -
file://접두사가 있는resources배열에 파일 경로 추가 -
에이전트 구성 저장
마이그레이션 예제:
# Instead of running these commands every session: > /context add README.md > /context add docs/*.md > /context add .amazonq/rules/*.md # Add them to your agent config once: { "resources": [ "file://README.md", "file://docs/**/*.md", "file://.amazonq/rules/**/*.md" ] }
지식 기반을 사용해야 하는 경우
다음과 같은 경우 지식 기반을 고려합니다.
-
컨텍스트 파일이 토큰 제한을 초과함( 컨텍스트 기간의 75%)
-
대규모 코드베이스 또는 설명서 세트가 있는 경우
-
광범위한 재료에 대한 의미 검색이 필요합니다.
-
일정한 컨텍스트 기간 소비를 피하려는 경우
예: 대용량 코드베이스를 컨텍스트 파일로 추가하는 대신:
# This would consume too many tokens: > /context add src/**/*.py # Use knowledge base instead: > /knowledge add src/ --include "**/*.py" --exclude "__pycache__/**"
컨텍스트를 사용하여 기본 에이전트 설정
원하는 컨텍스트 파일이 포함된 기본 에이전트를 구성할 수 있습니다.
q settings chat.defaultAgent my-project-agent
이렇게 하면 매번 에이전트를 지정할 필요 없이 새 채팅 세션에서 컨텍스트를 자동으로 사용할 수 있습니다.
모범 사례
컨텍스트 파일 조직
-
컨텍스트 파일에 집중하고 관련성을 유지하여 토큰 제한을 방지합니다.
-
용도를 나타내는 설명이 포함된 파일 이름 사용
-
논리적 디렉터리 구조에서 규칙 및 설명서 구성
-
파일 크기 고려 - 매우 큰 파일은 상당한 토큰을 사용할 수 있습니다.
성능 고려 사항
-
를 사용하여 토큰 사용량을 모니터링
/context show하여 한도 이내로 유지 -
지나치게 광범위한 패턴 대신 특정 glob 패턴 사용
-
에이전트 구성에서 미사용 컨텍스트 파일 제거
-
대용량 컨텍스트 파일을 더 작고 집중된 파일로 분할하는 것을 고려하세요.
-
대규모 데이터 세트에 지식 기반을 사용하여 컨텍스트 기간 소비 방지
보안 고려 사항
-
컨텍스트 파일에 민감한 정보를 포함하지 마세요.
-
.gitignore를 사용하여 민감한 컨텍스트의 우발적 커밋 방지 -
컨텍스트 파일을 정기적으로 검토하여 오래된 정보가 포함되어 있지 않은지 확인합니다.
-
대화에서 컨텍스트를 사용할 때 공유되는 정보에 유의하세요.