에이전트를 구축한다는 것이 전체 컨텍스트 스택(context stack)을 구축해야 한다는 의미는 아닙니다.
저희는 애플리케이션용으로 동일한 동기식(sync), 검색(search), 읽기(read) 도구를 계속 작성해 왔습니다. 데이터가 바뀌었고, 에이전트는 새로운 버전이 필요했습니다. 이를 제대로 구현하는 것이 애플리케이션 자체에 필요한 인프라보다 더 많은 것을 요구했습니다.
그래서 저희는 ctxd를 구축하고 있습니다: 에이전트와 데이터 사이의 오픈 소스 컨텍스트 인프라입니다.
저희의 시작점은 간단합니다: 원본 콘텐츠를 최신 상태로 유지하고, 에이전트가 이를 찾을 수 있는 도구를 제공하며, 답변하기 전에 출처를 읽게 하는 것입니다. 임베딩 서비스는 필요하지 않습니다.
출처 접근부터 시작하기
에이전트는 종종 단순히 일치하는 단락 이상의 것을 필요로 합니다. 그 위쪽의 지침, 옆쪽에 있는 설정 정보, 또는 예외 사항을 설명하는 문서를 필요로 합니다.
배포 런북(deployment runbook)을 예로 들어보겠습니다. rollback을 검색하면 이전 이미지를 복원하는 지침이 나옵니다. 하지만 그 위의 줄에는 먼저 배포를 중지하라는 내용이 적혀 있습니다. 주변의 출처를 읽는 것만으로도 답변이 달라집니다.
ctxd는 에이전트가 이러한 흔적을 따라갈 수 있는 방법을 제공합니다:
- 폴더와 경로 탐색.
- Python 또는 CLI를 통해 텍스트 검색.
- 파일 또는 특정 범위의 줄 읽기.
- 찾은 정보를 활용하여 다음 검색이나 읽기를 선택하는 데 사용.
에이전트가 쿼리를 선택하고 결과에 대해 추론합니다. ctxd는 이러한 호출 뒤에서 출처 접근과 동기화를 제공합니다.
동기화해야 할 조각을 줄이다
임베딩 기반 검색 파이프라인(embedding-based retrieval pipeline)은 보통 청크(chunks)를 생성하고, 이를 임베딩하며, 벡터 인덱스(vector index)를 유지합니다. 사용자는 청크 경계, 임베딩 모델, 그리고 검색 설정을 직접 선택해야 합니다. 출처가 변경되면 파생된 데이터도 변경되어야 합니다.
ctxd는 검색 가능한 원본 콘텐츠와 경로로 시작합니다. 이 워크플로우에서는 임베딩 모델, 청킹 전략 또는 벡터 데이터베이스가 필요하지 않습니다.
이는 애플리케이션이 처리해야 하는 작업에서 임베딩 생성 및 재임베딩 과정을 제거합니다. 또한 해당 임베딩 API 비용도 절감해 줍니다. 사용자의 애플리케이션은 여전히 에이전트를 실행하지만, 원본 자료를 벡터로 변환하기 위한 두 번째 모델을 필요로 하지 않습니다.
유사성 검색(Similarity search)은 질문의 단어가 소스의 내용과 다를 때 유용합니다. ctxd를 사용하면 에이전트가 경로(paths)를 검사하고, 제목(headings)을 읽으며, 대체 용어들을 시도할 수 있습니다. 예를 들어, 'rollback'을 검색한 후 'revert'나 'undo'를 시도하여 관련 구절을 읽어낼 수 있습니다.
효과적인 질문은 애플리케이션이 무엇을 검색해야 하는지에 달려 있습니다. 먼저 검사할 수 있는 소스 접근(source-access) 워크플로우부터 시작한 다음, 필요에 따라 복잡성을 추가하는 것이 좋습니다.
소스가 변경될 때 컨텍스트를 최신 상태로 유지하기
ctxd의 트래커는 소스 콘텐츠를 자체 컨텍스트 파일 시스템인 ctxfs에 동기화합니다. 애플리케이션은 공통 인터페이스를 사용하여 해당 콘텐츠를 검사하고 읽습니다.
예를 들어, 팀에서 런북(runbook), 프로젝트 문서 또는 운영 지침 세트를 변경했다고 가정해 봅시다:
- 소스가 편집됩니다.
- 트래커가 동기화를 완료합니다.
- 에이전트가 ctxd를 통해 변경된 콘텐츠를 읽습니다.
추적 중인 소스가 제거되면, 동기화 과정에서 컨텍스트 스토어에서도 해당 소스가 제거됩니다. 변경된 텍스트를 검색하기 전에 재생성할 임베딩(embeddings)은 존재하지 않습니다.
이는 애플리케이션에 작업할 수 있는 소스 경로와 읽을 수 있는 콘텐츠를 제공합니다. 에이전트가 실제로 무엇을 읽었는지 검사하여, 어떤 조각(fragment)이 답변을 형성했는지 추측하는 것을 방지할 수 있습니다.
애플리케이션 또는 에이전트 클라이언트에서 사용하기
ctxd는 다음 방법을 통해 사용할 수 있습니다:
- Python: 애플리케이션에 컨텍스트 접근 기능을 통합합니다.
- CLI: 명령줄(command line)에서 검사, 검색 및 읽기를 수행합니다.
- MCP: 경로 검사와 소스 읽기를 위해 에이전트 클라이언트를 Model Context Protocol(MCP) 브릿지에 연결합니다.
Python 환경에 설치하세요:
그런 다음 quickstart를 따라 소스를 구성하고 동기화를 시작하세요.
저희는 에이전트가 모든 애플리케이션마다 컨텍스트 인프라를 재구축할 필요 없이 최신 소스 자료로 작업하기를 원하는 개발자들을 위해 ctxd를 구축하고 있습니다.
직접 소스를 사용하여 ctxd를 사용해보고, 유용하다면 프로젝트에 별점을 부여해주세요.
참고 자료: