LLM 에이전트를 위한 복잡한 검색 파이프라인을 간단한 git 쉘 명령어로 대체하기

✍️ OpenClawRadar📅 게시일: March 20, 2026🔗 Source
LLM 에이전트를 위한 복잡한 검색 파이프라인을 간단한 git 쉘 명령어로 대체하기
Ad

복잡한 파이프라인에서 간단한 셸 접근으로

팀은 원래 DiffMem을 구축했습니다. 이는 버전 기록을 컨텍스트로 사용하는 AI 에이전트용 git 기반 메모리 시스템입니다. 그들의 검색 레이어는 코사인 유사도 점수를 위해 sentence-transformers를, 키워드 검색을 위해 rank-bm25를, 쿼리를 정제하고 결과를 합성하기 위해 2단계 LLM 파이프라인을 사용했습니다. 이로 인해 3GB Docker 이미지(PyTorch 종속성 때문), 많은 사용자에게서 10%의 타임아웃률, 그리고 매번 메모리 내 BM25 인덱스를 재구축하는 콜드 스타트가 발생했습니다.

깨달음: LLM은 이미 git을 알고 있다

통찰은 Unix 명령어가 수십억 개의 README 파일, CI 스크립트, Stack Overflow 답변을 통해 LLM 학습 데이터에 밀도 있게 표현되어 있다는 점을 인식하면서 나왔습니다. 팀은 자신들의 코드로 git에서 정보를 추출하여 이미 git 명령어를 이해하는 모델에 공급하고 있다는 사실을 깨달았습니다.

해결책: 하나의 도구 함수

그들은 모든 것을 단일 도구로 교체했습니다:

{
  "name": "run",
  "description": "메모리 저장소에서 읽기 전용 명령 실행",
  "parameters": {
    "command": "셸 명령어 (|, &&, ||, ; 연결 지원)"
  }
}

에이전트 작동 방식

에이전트는 고정된 프로토콜을 따릅니다: 엔티티 매니페스트를 읽고, 커밋 로그에 대해 시간적 탐색을 실행하고, 조사를 단일 도구 호출로 일괄 처리하고, 검색 계획을 출력한 후 중지합니다. 콘텐츠가 아닌 포인터를 반환하여 컨텍스트를 간결하게 유지합니다.

에이전트는 턴 동안 가벼운 신호를 읽습니다:

  • head -30 구조용
  • grep -n 키워드용
  • git diff HEAD~3.. 최근 변경사항용
Ad

실제 예시: 커밋 기록을 통한 연결 찾기

사용자가 외로움을 느낀다는 생일 메시지를 보냈을 때, 에이전트는 다음을 실행했습니다:

git log --format='%h %ad' --date=relative --name-only -15

이를 통해 wife.mdcompany.md가 같은 세션에서 변경되었고, 주요 동료가 마지막 3개 세션 중 2개에 나타났다는 사실이 드러났습니다. 키워드 검색(BM25)은 "생일에 외로움을 느낀다"는 문장에서 company.md를 절대 찾지 못했겠지만, git 기록의 시간적 연결이 중요한 요소였습니다.

3번째 턴에서 에이전트는 세미콜론으로 연결된 9개의 명령어를 포함한 단일 도구 호출을 구성했습니다:

git diff HEAD~2.. -- memories/people/wife.md; git log --stat -5 -- memories/people/wife.md; head -30 memories/people/wife.md; grep -n "birthday|surgery|stress" memories/people/wife.md; tail -50 timeline/2026-03.md; git diff HEAD~3.. -- timeline/2026-03.md; grep -n "project|deliverable" memories/contexts/company.md; git diff HEAD~2.. -- memories/contexts/company.md; git diff HEAD~1.. -- memories/people/colleague.md

결과

최종 출력은 특정 git diff, 우선순위 수준, 토큰 추정치가 포함된 JSON 검색 계획이었습니다. 이를 통해 rank-bm25, sentence-transformers, scikit-learn, numpy를 삭제할 수 있었습니다. Docker 이미지는 약 3GB 감소했고, 서버 시작이 더 빠르며, 메모리 사용량이 줄었고, 10%의 타임아웃률이 사라졌습니다. 남은 것: requests, openai, gitpython.

📖 전체 Source 읽기: r/LocalLLaMA

Ad

👀 See Also

Gemma 4 E2B를 TypeScript 프레임워크에서 멀티 에이전트 코디네이터로 테스트
Tools

Gemma 4 E2B를 TypeScript 프레임워크에서 멀티 에이전트 코디네이터로 테스트

개발자가 오픈 멀티 에이전트 TypeScript 프레임워크를 사용하여 다중 에이전트 설정에서 Gemma 4 E2B를 코디네이터로 테스트했습니다. 모델은 작업을 JSON으로 분해하고, 에이전트를 할당하며, bash 및 파일 작업과 같은 도구를 호출하고, 결과를 종합하는 데 성공했습니다.

OpenClawRadar
언더스터디: 데모를 통해 작업을 학습하는 가르칠 수 있는 데스크톱 에이전트
Tools

언더스터디: 데모를 통해 작업을 학습하는 가르칠 수 있는 데스크톱 에이전트

언더스터디는 GUI 애플리케이션, 브라우저, 쉘 도구, 파일, 메시징을 하나의 세션에서 운영할 수 있는 로컬 퍼스트 데스크톱 에이전트 런타임입니다. 작업을 한 번 시연하면, 화면 비디오와 의미론적 이벤트를 기록하고, 좌표가 아닌 의도를 추출하여 재사용 가능한 스킬로 변환합니다.

OpenClawRadar
AIMEAT: AI 에이전트, 로컬 LLM 및 공유 기능을 위한 자체 호스팅 프로토콜
Tools

AIMEAT: AI 에이전트, 로컬 LLM 및 공유 기능을 위한 자체 호스팅 프로토콜

AIMEAT는 인간, AI 에이전트 및 로컬 LLM이 HTTP/JSON을 통해 앱, 지식 및 기능을 공유할 수 있는 자체 호스팅 프로토콜이자 서버입니다. 벤더 종속 없고, 특별한 SDK 없이 — 평범한 프롬프트와 URL 가져오기만 있으면 됩니다.

OpenClawRadar
59가지 클로드 스킬을 포함한 오픈소스 라이브러리, 웹사이트 전체 수명주기 포괄
Tools

59가지 클로드 스킬을 포함한 오픈소스 라이브러리, 웹사이트 전체 수명주기 포괄

한 개발자가 브랜드 발견, 디자인, 콘텐츠, SEO, 개발, 운영, 성장을 아우르는 59개의 재사용 가능한 Claude 스킬을 공개했습니다. 스택에 구애받지 않으며, 균일한 구조와 CI 린트 검증을 갖추고 있습니다.

OpenClawRadar