▲ 131 · 87 comments on source · Hacker News · jellyotsiro · 10 months ago
Launch HN: Nia (YC S25) – 코딩 에이전트에 더 나은 컨텍스트 제공
HN 여러분, 저는 Arlan이고 AI 코딩 에이전트를 위한 컨텍스트 레이어인 Nia( https://trynia.ai )를 만들고 있습니다. Nia는 Cursor, Claude Code 및 기타 MCP 클라이언트 같은 도구가 실제 코드베이스와 문서를 인덱싱하고 쿼리할 수 있게 해주어, 오래되었거나 잘못된 소스에 대해 환각을 일으키지 않도록 합니다. 코딩 에이전트를 넘어 여러 도메인에 걸쳐 근거 있는 컨텍스트가 필요한 모든 AI 시스템에 적용할 수 있습니다. 코딩 에이전트는 여러분이 제공하는 컨텍스트만큼만 좋습니다. 일반 모델은 흔히 오래된 공개 코드와 문서로 학습되며, 여러분의 실제 리포지토리, 내부 위키, 또는 사용 중인 서드파티 SDK의 정확한 버전 안에 무엇이 있는지 보통 전혀 모릅니다. 그 결과는 아주 익숙합니다. URL과 코드 스니펫을 프롬프트에 붙여넣으면, 에이전트는 자신 있게 오래된 API나 잘못된 프레임워크 버전을 사용하고, 여러분은 직접 코드를 작성하는 것보다 그것을 검증하고 고치는 데 더 많은 시간을 씁니다. 모델이 코드 생성에 충분히 능숙해지면, 정확하고 최신인 컨텍스트를 제공하는 것이 병목이 됩니다. 저는 이 패턴을 처음에 제 프로젝트에서 겪었습니다. (몇 달 전) 저는 아직 카자흐스탄에서 고등학교에 다니고 있었고, 코드젠 도구에 빠져서 찾을 수 있는 모든 코딩 에이전트를 시험해 보고 있었습니다. YC에 들어간 뒤 실제 업무에 에이전트를 사용하려는 다른 팀들과 이야기하면서 이 패턴을 다시 보았습니다. Nia의 첫 버전은 기본적으로 “내 리포지토리와 좋아하는 문서 사이트를 알고 있어서 더 이상 Cursor에 URL을 붙여넣지 않아도 되는 나만의 MCP 서버”였습니다. 제 워크플로가 얼마나 훨씬 매끄러워졌는지 보고 나서, 이것이 다른 사람들도 사용할 수 있는 제품이 되어야 한다는 것이 명백하게 느껴졌습니다. 내부적으로 Nia는 MCP 인터페이스와 API를 갖춘 인덱싱 및 검색 서비스입니다. 여러분은 GitHub 리포지토리, 프레임워크나 제공자 문서, SDK 페이지, PDF 매뉴얼 등과 같은 소스를 지정합니다. 우리는 코드 구조, 제목, 표에 대한 몇 가지 간단한 휴리스틱으로 그것들을 가져와 파싱한 다음, 청크로 정규화하고 여러 인덱스를 구축합니다. 자연어 쿼리를 위한 임베딩이 있는 시맨틱 인덱스, 함수, 클래스, 타입, 엔드포인트를 위한 심볼 및 사용 인덱스, 파일, 심볼, 외부 문서 사이의 기본 참조 그래프, 원시 텍스트에 대해 결정론적 매칭을 원할 때를 위한 정규식 및 파일 트리 검색입니다. 에이전트가 Nia를 호출하면, 자연어 쿼리와 함께 현재 파일 경로, 스택 트레이스, 리포지토리 같은 선택적 힌트를 보냅니다. Nia는 BM25 스타일 검색, 임베딩 유사도, 그래프 워크를 혼합해 관련 스니펫의 순위를 매기고, 흐릿한 문단만이 아니라 “이 파일의 이 함수 정의와 그것이 사용되는 세 곳” 같은 정확한 위치도 반환할 수 있습니다. 그런 다음 호출하는 에이전트가 해당 스니펫을 자신의 프롬프트에서 어떻게 사용할지 결정합니다.
하나의 Nia 배포는 여러 에이전트와 여러 프로젝트를 동시에 서비스할 수 있습니다. 예를 들어 Cursor, Claude Code, 브라우저 기반 에이전트를 모두 여러분의 모노레포, 내부 위키, 관심 있는 제공자 문서를 아는 동일한 Nia 인스턴스에 연결할 수 있습니다. 우리는 어떤 소스가 사용되었고 사용자가 어떤 스니펫을 수락했는지 추적하는 에이전트 독립적인 세션 기록을 유지합니다. 어떤 MCP 클라이언트든 해당 세션 id에 연결해 현재 컨텍스트를 가져오고 확장할 수 있으므로, 도구를 전환해도 이미 발견된 내용을 잃지 않습니다. 모든 것을 다시 처리하지 않고 인덱스를 최신 상태로 유지하는 데 많은 작업이 들어갑니다. 백그라운드 워커가 주기적으로 구성된 소스를 다시 가져오고, 어떤 파일이나 페이지가 변경되었는지 감지한 뒤, 해당 부분만 증분적으로 재인덱싱합니다. 이는 제가 본 최악의 “환각” 중 많은 수가 사실은 모델이 잘못된 버전에 대한 유효한 문서를 인용하는 것이기 때문에 중요합니다. 이를 고치는 것은 모델 품질보다 버전 및 변경 추적에 더 관한 일입니다. 우리는 Nia를 점점 늘어나는 사전 인덱싱된 공개 소스 세트와 함께 제공합니다. 오늘날 여기에는 일반 프레임워크와 제공자 문서의 약 6천 개 패키지, PyPI, npm, RubyGems 같은 생태계의 수천 개 라이브러리에 대한 패키지 검색, 그리고 누구나 자신의 소스를 기여할 수 있는 사전 인덱싱된 /explore 페이지가 포함됩니다!
원문 게시글에서 발췌한 번역본입니다. 전문과 원문 댓글은 아래 링크에서 확인하세요.
Discussion on runchr
Loading comments…
to comment.