컨텍스트 포털 MCP(ConPort)
(기억의 은행이에요!)
IDE 및 기타 인터페이스 내의 AI 어시스턴트와 개발자 도구에서 사용하도록 설계된, 구조화된 프로젝트 컨텍스트를 관리하기 위한 데이터베이스 지원 모델 컨텍스트 프로토콜(MCP) 서버입니다.
Related MCP server: BrowserStack MCP server
Context Portal MCP 서버(ConPort)란 무엇입니까?
컨텍스트 포털(ConPort)은 프로젝트의 메모리 뱅크 입니다. AI 어시스턴트가 의사 결정, 작업, 아키텍처 패턴과 같은 중요한 정보를 체계적으로 저장하여 특정 소프트웨어 프로젝트를 더 잘 이해할 수 있도록 돕는 도구입니다. AI가 쉽게 접근하고 활용하여 더욱 정확하고 유용한 답변을 제공할 수 있는 프로젝트별 지식 기반을 구축하는 것이라고 생각하면 됩니다.
기능:
프로젝트 결정, 진행 상황, 시스템 설계를 추적합니다.
사용자 정의 프로젝트 데이터(용어집이나 사양 등)를 저장합니다.
AI가 관련 프로젝트 정보를 빠르게 찾을 수 있도록 도와줍니다(스마트 검색과 유사).
AI가 프로젝트 컨텍스트를 활용하여 더 나은 대응을 할 수 있도록 합니다(RAG).
간단한 텍스트 파일 기반 메모리 뱅크에 비해 컨텍스트를 관리, 검색, 업데이트하는 데 더 효율적입니다.
ConPort는 AI 어시스턴트가 다양한 유형의 프로젝트 컨텍스트를 저장, 검색 및 관리할 수 있는 강력하고 체계적인 방법을 제공합니다. 프로젝트별 지식 그래프를 효과적으로 구축하여 의사 결정, 진행 상황, 아키텍처와 같은 엔티티와 그 관계를 포착합니다. 의미론적 검색을 위한 벡터 임베딩 으로 강화된 이 체계적인 지식 기반은 검색 증강 생성(RAG) 의 강력한 백엔드 역할을 하여 AI 어시스턴트가 정확하고 최신 정보에 접근하여 더욱 맥락을 잘 파악하고 정확한 응답을 제공할 수 있도록 합니다.
ConPort는 더욱 안정적이고 쿼리 가능한 데이터베이스 백엔드(워크스페이스당 SQLite)를 제공하여 기존의 파일 기반 컨텍스트 관리 시스템을 대체합니다. ConPort는 MCP를 지원하는 다양한 IDE 및 클라이언트 인터페이스와 호환되는 범용 컨텍스트 백엔드로 설계되었습니다.
주요 특징은 다음과 같습니다.
SQLite를 사용한 구조화된 컨텍스트 저장소(작업 공간당 하나의 DB, 자동 생성).
Python/FastAPI로 빌드된 MCP 서버(
context_portal_mcp).상호작용을 위한 정의된 MCP 도구의 포괄적인 모음입니다(아래 "사용 가능한 ConPort 도구" 참조).
workspace_id통한 다중 작업 공간 지원.기본 배포 모드: 긴밀한 IDE 통합을 위한 STDIO.
컨텍스트 항목 간의 명시적 관계를 통해 동적 프로젝트 지식 그래프를 구축할 수 있습니다.
고급 RAG를 구동하기 위해 벡터 데이터 저장 및 의미 검색 기능이 포함되어 있습니다.
AI에 정확하고 쿼리 가능한 프로젝트 메모리를 제공하여 검색 증강 생성(RAG) 을 위한 이상적인 백엔드 역할을 합니다.
AI 어시스턴트가 호환 가능한 LLM 공급자와 함께 신속하게 캐싱할 수 있도록 구조화된 컨텍스트를 제공합니다.
필수 조건
시작하기 전에 다음 사항이 설치되어 있는지 확인하세요.
Python: 버전 3.8 이상을 권장합니다.
설치하는 동안 Python이 시스템의 PATH에 추가되었는지 확인하세요(특히 Windows의 경우).
uv: (강력 추천) 빠른 Python 환경 및 패키지 관리자입니다.
uv사용하면 가상 환경 생성 및 종속성 설치가 크게 간소화됩니다.uv사용하지 않기로 선택한 경우 표준 Pythonvenv와pip사용할 수 있지만 이 프로젝트에서는uv사용하는 것이 좋습니다.
PyPI를 통한 설치:
MCP 서버를 설치한 디렉토리에 가상 환경을 만들고 활성화합니다.
uv
지엑스피1
환경 활성화:
Linux/macOS(bash/zsh):
Windows(명령 프롬프트):
윈도우(PowerShell):
(PowerShell에서 실행 정책 문제가 발생하면 먼저 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 실행해야 할 수 있습니다.)
표준
MCP 서버 디렉토리에서:
활성화 명령은 위의 uv 와 동일합니다.
PyPi를 통해 ConPort 설치:
uv를 사용하는 context-portal-mcp에 대한 PyPI 설치 명령은 다음과 같습니다.
가상 환경 내에서 표준 pip를 사용하는 경우 명령은 다음과 같습니다.
PyPI 설치를 위한 구성
PyPI( pip install context-portal-mcp )를 통해 ConPort를 설치한 경우, 가상 환경 내의 Python 인터프리터를 사용하여 ConPort 서버를 직접 실행할 수 있습니다. 이 방법은 실행 파일을 명시적으로 가리키므로 일반적으로 더 안정적입니다.
중요: 플레이스홀더 경로 /home/USER/PATH/TO/.venv/bin/python (또는 Windows의 C:\\Users\\USER\\PATH\\TO\\.venv\\Scripts\\python.exe )을 특정 ConPort 가상 환경 내의 Python 실행 파일에 대한 절대 경로 로 바꿔야 합니다 .
Linux/macOS 예:
Windows 예:
command: 이는 ConPort 설치의.venv파일 내에서 실행 가능한python(또는 Windows의 경우python.exe)의 절대 경로여야 합니다.args: ConPort 서버 모듈을 실행하기 위한 인수(-m context_portal_mcp.main)와 서버 인수(--mode stdio --workspace_id "${workspaceFolder}")를 포함합니다.${workspaceFolder}: 이 IDE 변수는 현재 프로젝트 작업 공간의 절대 경로를 자동으로 제공하는 데 사용됩니다.--log-file: 선택 사항: 서버 로그가 기록될 파일 경로입니다. 지정하지 않으면 로그는stderr(콘솔)로 전송됩니다. 지속적인 로깅 및 서버 동작 디버깅에 유용합니다.--log-level: 선택 사항: 서버의 최소 로깅 수준을 설정합니다. 유효한 옵션은DEBUG,INFO,WARNING,ERROR,CRITICAL입니다. 기본값은INFO입니다. 개발 또는 문제 해결 중에 자세한 출력을 원하면DEBUG로 설정하세요.
PyPI를 통해 설치하면 conport-mcp 명령을 가상 환경의 PATH에서 바로 사용할 수 있습니다. 서버를 실행하는 명령은 다음과 같습니다.
Git 저장소에서 설치
이 지침은 Git 저장소를 복제하고 종속성을 설치하여 ConPort를 설정하는 방법을 안내합니다. 가상 환경을 사용하는 것이 중요합니다.
저장소 복제: 터미널이나 명령 프롬프트를 열고 다음을 실행합니다.
git clone https://github.com/GreatScottyMac/context-portal.git cd context-portal가상 환경 만들기 및 활성화:
uvcontext-portal디렉토리에서:uv venv환경 활성화:
Linux/macOS(bash/zsh):
source .venv/bin/activateWindows(명령 프롬프트):
.venv\Scripts\activate.bat윈도우(PowerShell):
.venv\Scripts\Activate.ps1(PowerShell에서 실행 정책 문제가 발생하면 먼저
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser실행해야 할 수 있습니다.)
표준
context-portal디렉토리에서:python3 -m venv .venv # Or 'python -m venv .venv'활성화 명령은 위의
uv와 동일합니다.
종속성 설치: 가상 환경이 활성화된 경우:
uvuv pip install -r requirements.txt참고:
표준
pip install -r requirements.txt
설치 확인(선택 사항): 가상 환경이 활성화되었는지 확인하세요.
uvuv run python src/context_portal_mcp/main.py --help표준
bash python src/context_portal_mcp/main.py --help이렇게 하면 ConPort 서버에 대한 명령줄 도움말이 출력됩니다.
권장 구성(직접 Python 호출):
이 구성은 context-portal 가상 환경에서 Python 인터프리터를 직접 호출합니다. uv 가 명령이거나 클라이언트가 서버 프로세스에 대한 cwd 필드를 지원하는지에 의존하지 않는 안정적인 방법입니다.
중요한:
플레이스홀더 경로를
context-portal저장소를 복제하고 설정한 위치에 해당하는 절대 경로 로 바꿔야 합니다 .--workspace_id인수의"${workspaceFolder}"변수는 현재 프로젝트 작업 공간의 절대 경로로 확장되어야 하는 일반적인 IDE 플레이스홀더입니다.
Linux/macOS 예:
context-portal 저장소가 /home/youruser/mcp-servers/context-portal 에 복제되었다고 가정해 보겠습니다.
Windows 예:
context-portal 저장소가 C:\Users\YourUser\MCP-servers\context-portal 에 복제되었다고 가정해 보겠습니다. JSON 문자열의 경로에는 두 개의 백슬래시 \\ 가 사용됩니다.
command: 이는context-portal설치의.venv파일 내에서 실행 가능한python(또는 Windows의 경우python.exe) 파일의 절대 경로여야 합니다.args: 이는context-portal설치 내의main.py스크립트에 대한 절대 경로여야 합니다.--workspace_id "${workspaceFolder}": 이는 ConPort에 관리할 프로젝트의 컨텍스트를 알려줍니다.${workspaceFolder}IDE에서 현재 프로젝트의 루트 경로로 확인되어야 합니다.--log-file: 선택 사항: 서버 로그가 기록될 파일 경로입니다. 지정하지 않으면 로그는stderr(콘솔)로 전송됩니다. 지속적인 로깅 및 서버 동작 디버깅에 유용합니다.--log-level: 선택 사항: 서버의 최소 로깅 수준을 설정합니다. 유효한 옵션은DEBUG,INFO,WARNING,ERROR,CRITICAL입니다. 기본값은INFO입니다. 개발 또는 문제 해결 중에 자세한 출력을 원하면DEBUG로 설정하세요.
복제된 Git 저장소를 통해 설치되는 경우 IDE는 일반적으로 다음과 유사한 명령을 구성하고 실행합니다.
/path/to/your/context-portal/ context-portal 저장소를 복제한 절대 경로입니다. "/actual/path/to/your/project_workspace" 는 ConPort가 관리할 컨텍스트가 있는 프로젝트의 루트에 대한 절대 경로입니다(예: VS Code의 ${workspaceFolder} ). ConPort는 your_project_workspace/context_portal/context.db 에 자동으로 데이터베이스를 생성합니다.
--workspace_id
특히 STDIO 모드( --mode stdio )에서 ConPort 서버를 시작하면 --workspace_id 인수는 여러 가지 주요 목적을 수행합니다.
초기 서버 컨텍스트: 서버 프로세스에 처음에 연관되어야 하는 프로젝트 작업 공간의 절대 경로를 제공합니다.
중요 안전 점검: STDIO 모드에서 이 경로는 서버가 자체 설치 디렉터리 내에 데이터베이스 파일(
context.db,conport_vector_data/)을 실수로 생성하는 것을 방지하는 중요한 점검을 수행하는 데 사용됩니다. 이를 통해 클라이언트가 작업 공간 경로를 올바르게 제공하지 않는 등 잘못된 구성을 방지할 수 있습니다.클라이언트 실행 신호: MCP 클라이언트(IDE 확장 프로그램과 같은)가 서버에 어떤 프로젝트를 실행할지 신호를 보내는 표준 방식입니다.
중요 참고: 서버 시작 시 제공되는 --workspace_id 는 이후 모든 MCP 도구 호출 시 자동으로 workspace_id 매개변수로 사용되지 않습니다 . ConPort 도구는 각 호출 시 명시적으로 workspace_id 매개변수를 요구하도록 설계되었습니다(예: get_product_context({"workspace_id": "..."}) ). 이러한 설계는 단일 서버 인스턴스가 여러 작업 공간을 관리할 수 있도록 지원하고 각 작업의 명확성을 보장합니다. 클라이언트 IDE/MCP 클라이언트는 각 도구 호출 시 정확한 workspace_id 제공해야 합니다.
핵심 요점: ConPort는 대상 프로젝트를 식별하기 위해 정확한 --workspace_id 매우 중요하게 사용합니다. ${workspaceFolder} 와 같은 IDE 변수를 사용하거나 직접 절대 경로를 제공하여 이 인수가 프로젝트 작업 공간의 절대 경로로 올바르게 해석되는지 확인하세요.
Python 바이트코드 캐시 지우기
ConPort를 업데이트하거나 재설치한 후 __pycache__ 디렉터리에 저장된 오래된 Python 바이트코드 파일( .pyc )로 인해 예기치 않은 동작이나 오류가 발생할 수 있습니다. 이 캐시를 삭제하면 이러한 문제를 해결할 수 있습니다.
Unix 계열 시스템(Linux, macOS, WSL)에서 find 명령을 사용하여 이러한 파일과 디렉토리를 찾아 제거할 수 있습니다.
__pycache__find . -type d -name "__pycache__" -exec rm -rf {} +.pycfind . -type f -name "*.pyc" -delete
다음 명령을 실행할 위치:
이러한 명령을 실행해야 하는 디렉토리는 ConPort를 설치한 방법에 따라 달라집니다.
Git 저장소에서 설치한 경우: 복제된
context-portal저장소의 루트 디렉토리에서 다음 명령을 실행합니다.PyPI를 통해 설치한 경우: ConPort가 설치된 Python 환경의 site-packages 디렉토리에서 다음 명령을 실행합니다(예: 가상 환경의
lib/pythonX.Y/site-packages/).Docker 이미지에서 실행하는 경우: 일반적으로
docker exec <container_id> <command>사용하여 실행 중인 Docker 컨테이너 내부에서 이러한 명령을 실행합니다.
LLM 에이전트와 함께 사용(맞춤형 지침)
ConPort는 LLM 에이전트에 대한 특정 맞춤 지침이나 시스템 프롬프트를 제공함으로써 LLM 에이전트와의 효율성을 크게 향상시킵니다. 이 저장소에는 다양한 환경에 맞는 맞춤형 전략 파일이 포함되어 있습니다.
Roo 코드의 경우:
roo_code_conport_strategy: Roo Code VS Code 확장 기능 내에서 작동하는 LLM에 대한 자세한 지침을 담고 있으며, 컨텍스트 관리를 위한 ConPort 도구를 사용하는 방법을 안내합니다.
CLine의 경우:
cline_conport_strategy: Cline VS Code 확장 프로그램 내에서 작동하는 LLM을 위한 자세한 지침을 담고 있으며, 컨텍스트 관리를 위한 ConPort 도구를 사용하는 방법을 안내합니다.
윈드서프 캐스케이드의 경우:
cascade_conport_strategy: Windsurf Cascade 환경에 통합된 LLM을 위한 구체적인 지침입니다. 중요 : Cascade에서 세션을 시작할 때 LLM에게 다음 사항을 명시적으로 알려야 합니다.
Initialize according to custom instructions일반/플랫폼 무관 사용:
generic_conport_strategy: MCP 지원 LLM에 대한 플랫폼 독립적인 명령어 세트를 제공합니다. ConPort의get_conport_schema연산을 사용하여 정확한 ConPort 도구 이름과 매개변수를 동적으로 검색하고, 특정 도구 호출 세부 정보를 하드코딩하는 대신 LLM이 개념적 상호작용(의사결정 로깅 또는 제품 컨텍스트 업데이트 등)을 언제 , 왜 수행해야 하는지 안내합니다.
이러한 전략 파일을 사용하는 방법:
LLM 에이전트의 환경과 관련된 전략 파일을 식별합니다.
해당 파일의 전체 내용을 복사합니다.
LLM의 사용자 지정 지침이나 시스템 프롬프트 영역에 붙여넣으세요. 방법은 LLM 플랫폼(IDE 확장 프로그램 설정, 웹 UI, API 구성)에 따라 다릅니다.
이러한 지침은 LLM에게 다음과 같은 지식을 제공합니다.
ConPort에서 컨텍스트를 초기화하고 로드합니다.
새로운 정보(결정, 진행 상황 등)로 ConPort를 업데이트합니다.
사용자 정의 데이터와 관계를 관리합니다.
workspace_id의 중요성을 이해하세요. 세션 시작을 위한 중요 팁: LLM 에이전트가 컨텍스트를 올바르게 초기화하고 로드하도록 하려면, 특히 첫 번째 메시지의 사용자 지정 지침을 항상 엄격하게 준수하지 않는 인터페이스에서 "Initialize according to custom instructions.이렇게 하면 에이전트가 전략 파일에 정의된 대로 ConPort 초기화 시퀀스를 수행하도록 유도할 수 있습니다.
작업 공간에서의 초기 ConPort 사용
새 프로젝트 작업 공간이나 기존 프로젝트 작업 공간에서 ConPort를 처음 사용할 때, ConPort 데이터베이스( context_portal/context.db )가 없으면 서버에서 자동으로 생성됩니다. 초기 프로젝트 컨텍스트, 특히 제품 컨텍스트를 부트스트랩하는 데 도움이 되도록 다음 사항을 고려하세요.
projectBrief.md 파일 사용(권장)
projectBrief.md프로젝트 작업 공간의 루트 디렉토리에projectBrief.md라는 이름의 파일을 만듭니다.콘텐츠 추가: 이 파일에 프로젝트에 대한 간략한 개요를 추가하세요. 다음 내용을 포함할 수 있습니다.
프로젝트의 주요 목표 또는 목적.
주요 기능 또는 구성 요소.
타겟 고객 또는 사용자.
전반적인 건축 양식 또는 핵심 기술(알려진 경우).
프로젝트를 정의하는 기타 기본 정보입니다.
가져오기에 대한 자동 프롬프트: 제공된 ConPort 사용자 정의 명령어 세트(예:
roo_code_conport_strategy) 중 하나를 사용하는 LLM 에이전트가 작업 공간에서 초기화할 때 다음을 수행하도록 설계되었습니다.projectBrief.md가 존재하는지 확인하세요.해당 파일을 찾으면 해당 파일을 읽고 해당 내용을 ConPort 제품 컨텍스트 로 가져올지 묻습니다.
동의하시면 해당 콘텐츠가 ConPort에 추가되어 프로젝트의 제품 컨텍스트에 대한 즉각적인 기준이 제공됩니다.
수동 초기화
projectBrief.md 찾을 수 없거나 가져오지 않기로 선택한 경우:
LLM 에이전트(사용자 지정 지침에 따라)는 일반적으로 ConPort 제품 컨텍스트가 초기화되지 않은 것으로 표시된다고 알려줍니다.
작업 공간에 있는 다른 파일을 나열하여 관련 정보를 수집함으로써 제품 컨텍스트를 수동으로 정의하는 데 도움이 될 수 있습니다.
projectBrief.md 나 수동 입력을 통해 초기 컨텍스트를 제공하면 ConPort와 연결된 LLM 에이전트가 처음부터 프로젝트에 대한 기본적 이해를 더 잘 얻을 수 있습니다.
사용 가능한 ConPort 도구
ConPort 서버는 MCP를 통해 다음 도구를 제공하여 기본 프로젝트 지식 그래프 와의 상호작용을 지원합니다. 여기에는 벡터 데이터 저장소 를 기반으로 하는 의미 검색 도구가 포함됩니다. 이러한 도구는 AI 에이전트의 증강 생성(RAG) 에 필수적인 검색 기능을 지원합니다. 모든 도구는 대상 프로젝트 작업 공간을 지정하기 위해 workspace_id 인수(문자열, 필수)를 필요로 합니다.
제품 컨텍스트 관리:
get_product_context: 전반적인 프로젝트 목표, 기능 및 아키텍처를 검색합니다.update_product_context: 제품 컨텍스트를 업데이트합니다. 전체content(객체) 또는 부분 업데이트의 경우patch_content(객체)를 받습니다(patch에서 키를 제거하려면__DELETE__값으로 사용하세요).
활성 컨텍스트 관리:
get_active_context: 현재 작업 초점, 최근 변경 사항, 열려 있는 문제를 검색합니다.update_active_context: 활성 컨텍스트를 업데이트합니다. 전체content(객체) 또는 부분 업데이트의 경우patch_content(객체)를 받습니다(patch에서__DELETE__값으로 사용하여 키를 제거합니다).
의사결정 로깅:
log_decision: 아키텍처나 구현 결정을 기록합니다.인수:
summary(str, req),rationale(str, opt),implementation_details(str, opt),tags(list[str], opt).
get_decisions: 기록된 결정을 검색합니다.인수:
limit(int, opt),tags_filter_include_all(list[str], opt),tags_filter_include_any(list[str], opt).
search_decisions_fts: 결정 필드(요약, 근거, 세부 정보, 태그)에 대한 전체 텍스트 검색.인수:
query_term(str, req),limit(int, opt).
delete_decision_by_id: ID로 결정을 삭제합니다.인수:
decision_id(int, req).
진행 상황 추적:
log_progress: 진행률 항목이나 작업 상태를 기록합니다.인수:
status(str, req),description(str, req),parent_id(int, opt),linked_item_type(str, opt),linked_item_id(str, opt).
get_progress: 진행률 항목을 검색합니다.인수:
status_filter(str, opt),parent_id_filter(int, opt),limit(int, opt).
update_progress: 기존 진행률 항목을 업데이트합니다.인수:
progress_id(정수, 요청),status(문자열, 옵션),description(문자열, 옵션),parent_id(정수, 옵션).
delete_progress_by_id: ID로 진행률 항목을 삭제합니다.인수:
progress_id(int, req).
시스템 패턴 관리:
log_system_pattern: 시스템/코딩 패턴을 기록하거나 업데이트합니다.인수:
name(str, req),description(str, opt),tags(list[str], opt).
get_system_patterns: 시스템 패턴을 검색합니다.인수:
tags_filter_include_all(list[str], opt),tags_filter_include_any(list[str], opt).
delete_system_pattern_by_id: ID로 시스템 패턴을 삭제합니다.인수:
pattern_id(int, req).
맞춤형 데이터 관리:
log_custom_data: 카테고리 아래의 사용자 지정 키-값 항목을 저장/업데이트합니다. 값은 JSON 직렬화 가능합니다.인수:
category(str, req),key(str, req),value(any, req).
get_custom_data: 사용자 정의 데이터를 검색합니다.인수:
category(str, opt),key(str, opt).
delete_custom_data: 특정 사용자 정의 데이터 항목을 삭제합니다.인수:
category(str, req),key(str, req).
search_project_glossary_fts: 'ProjectGlossary' 사용자 정의 데이터 범주 내에서 전체 텍스트 검색.인수:
query_term(str, req),limit(int, opt).
search_custom_data_value_fts: 모든 사용자 정의 데이터 값, 범주 및 키에 대한 전체 텍스트 검색.인수:
query_term(str, req),category_filter(str, opt),limit(int, opt).
컨텍스트 연결:
link_conport_items: 두 ConPort 항목 간의 관계 링크를 생성하여 프로젝트 지식 그래프를 명시적으로 구축합니다.인수:
source_item_type(str, req),source_item_id(str, req),target_item_type(str, req),target_item_id(str, req),relationship_type(str, req),description(str, opt).
get_linked_items: 특정 항목에 연결된 항목을 검색합니다.인수:
item_type(str, req),item_id(str, req),relationship_type_filter(str, opt),linked_item_type_filter(str, opt),limit(int, opt).
역사 및 메타 도구:
get_item_history: 제품 또는 활성 컨텍스트의 버전 기록을 검색합니다.인수:
item_type("product_context" | "active_context", req),version(int, opt),before_timestamp(datetime, opt),after_timestamp(datetime, opt),limit(int, opt).
get_recent_activity_summary: 최근 ConPort 활동에 대한 요약을 제공합니다.인수:
hours_ago(int, opt),since_timestamp(datetime, opt),limit_per_type(int, opt, 기본값: 5).
get_conport_schema: 사용 가능한 ConPort 도구와 해당 인수의 스키마를 검색합니다.
수입/수출:
export_conport_to_markdown: ConPort 데이터를 마크다운 파일로 내보냅니다.인수:
output_path(str, opt, 기본값: "./conport_export/").
import_markdown_to_conport: 마크다운 파일의 데이터를 ConPort로 가져옵니다.인수:
input_path(str, opt, 기본값: "./conport_export/").
배치 작업:
batch_log_items: 단일 호출에서 동일한 유형의 여러 항목(예: 결정, 진행 항목)을 기록합니다.인수:
item_type(str, req - 예: "decision", "progress_entry"),items(list[dict], req - 항목 유형에 대한 Pydantic 모델 dict 목록).
신속한 캐싱 전략
ConPort는 AI 어시스턴트가 호환되는 LLM 제공업체(예: Google Gemini, Anthropic Claude, OpenAI)와 즉시 캐싱하는 데 활용할 수 있는 구조화된 컨텍스트(시맨틱 검색을 위한 벡터 데이터 포함)를 제공하는 데 사용할 수 있습니다. 즉시 캐싱은 자주 사용되는 프롬프트 부분을 재사용하여 토큰 비용과 지연 시간을 줄여줍니다.
이 저장소에는 LLM 어시스턴트가 ConPort에서 캐시 가능한 콘텐츠를 식별하고 다양한 공급자에 대한 프롬프트를 구성하는 방법을 정의하는 자세한 전략 파일( context_portal/prompt_caching_strategy.yml )이 포함되어 있습니다.
전략의 핵심 측면은 다음과 같습니다.
캐시 가능한 콘텐츠 식별: 제품 컨텍스트, 세부적인 시스템 패턴 또는 특정 사용자 정의 데이터 항목(특히
cache_hint: true메타데이터로 플래그가 지정된 항목)과 같은 크고 안정적인 컨텍스트를 우선시합니다.공급자별 상호작용:
암시적 캐싱(Gemini, OpenAI): 캐시 가능한 ConPort 콘텐츠를 프롬프트의 절대 시작 부분에 배치하여 프롬프트를 구조화합니다. LLM 제공자가 캐싱을 자동으로 처리합니다.
명시적 캐싱(인류학적): 프롬프트 페이로드 내의 캐시 가능한 ConPort 콘텐츠 뒤에
cache_control중단점을 삽입합니다.
사용자 힌트: ConPort의 사용자 정의 데이터에는
cache_hint: true와 같은 메타데이터를 포함하여 LLM 어시스턴트가 캐싱을 위한 콘텐츠 우선순위를 명시적으로 지정할 수 있습니다.LLM 어시스턴트 알림: LLM 어시스턴트는 잠재적인 캐싱에 대한 프롬프트를 구성할 때(예:
[INFO: Structuring prompt for caching]) 사용자에게 알리도록 지시받습니다.
ConPort를 사용하여 프로젝트의 지식을 관리하고 LLM 어시스턴트에게 신속한 캐싱 전략을 제공하면 AI 상호작용의 효율성과 비용 효과를 높일 수 있습니다.
추가 자료
ConPort의 디자인, 아키텍처, 고급 사용 패턴에 대한 자세한 내용은 다음을 참조하세요.
기여하다
ConPort 프로젝트에 기여하는 방법에 대한 자세한 내용은 나중에 여기에 추가될 예정입니다.
특허
이 프로젝트는 Apache-2.0 라이선스 에 따라 라이선스가 부여되었습니다.