Git 도구
Git 도구 (Git Tool)
에이전트가 작업 저장소에 구조화된 읽기 전용 접근을 하는 방법을 설명해요. 상태, 기록, 브랜치, 특정 커밋의 변경, 라인 단위 작성자까지 볼 수 있어요.
출처: 문서
본문
git 도구셋은 에이전트에게 작업 저장소에 대한 구조화된 읽기 전용 접근을 제공해요 — 상태, 기록, 브랜치, 커밋의 변경, 라인 단위 작성자까지요. go-git으로 구현되어 있어서 git 바이너리가 필요 없어요.
shell 도구를 통해 git을 실행하는 것과 비교하면, git 도구셋은 모델이 안정적으로 읽을 수 있는 깨끗하고 구조화된 출력을 반환하고, 설계상 안전하며(어떤 명령도 저장소를 수정할 수 없어요), shell이 비활성화되었거나 git 바이너리가 설치되지 않았어도 동작해요.
참고 git 도구셋은 읽기 전용이에요. 스테이징, 커밋, 체크아웃은
shell도구를 사용하세요.
구성
toolsets:
- type: git
구성 옵션은 없어요. 저장소는 에이전트의 작업 디렉터리에서 열리고, 하위 디렉터리여도 저장소 루트로 해석돼요.
경고 저장소는 부모 디렉터리를 올라가며 발견돼요. 작업 디렉터리 자체가 저장소가 아니지만 상위에 저장소가 있다면(예: 홈 디렉터리를 dotfiles로 추적), 그 상위로 해석되고
git_show/git_blame이 그 전체 기록과 파일 내용을 노출할 수 있어요. filesystem 도구셋의 allow/deny 목록은 여기에 적용되지 않아요. 주변 저장소를 읽어도 안전한 곳에서만 이 도구셋을 활성화하세요.참고 성능. go-git은 순수 Go라서 큰 저장소에서는 속도가 느려요:
git_status는 전체 작업트리를 다시 해시하고,git_blame은 기록 깊이 × 파일 크기에 비례해 확장돼요. 400줄 출력 상한은 전체 계산 후에 적용되므로 큰 파일을 블레이밍하는 비용을 줄이진 못해요.
도구
| 도구 | 설명 |
|---|---|
git_status |
현재 브랜치와 변경된 파일(스테이징/비스테이징/추적 안 됨) |
git_log |
최근 커밋(해시, 날짜, 작성자, 제목) |
git_branches |
로컬 브랜치, 현재 브랜치는 *로 표시 |
git_show |
커밋의 메타데이터, 메시지, +/- 수의 변경 파일 |
git_blame |
파일의 라인별 작성자 |
git_log
| 파라미터 | 필수 | 설명 |
|---|---|---|
limit |
아니오 | 반환할 최대 커밋 수(기본 20) |
path |
아니오 | 이 경로를 건드린 커밋만 표시 |
git_show
| 파라미터 | 필수 | 설명 |
|---|---|---|
ref |
아니오 | 표시할 커밋 해시 또는 리비전(기본 HEAD) |
git_blame
| 파라미터 | 필수 | 설명 |
|---|---|---|
path |
네 | 저장소 루트 기준으로 blame할 파일 경로 |
rev |
아니오 | blame할 커밋 또는 리비전(기본 HEAD) |
예시
agents:
root:
model: openai/gpt-5-mini
description: A code review assistant
instruction: |
Review the working changes: check git_status, then git_show the latest
commit, and summarize what changed.
toolsets:
- type: git
- type: filesystem
git_status 출력 예시:
On branch master
1 changed file(s) [XY = staged/worktree; M=modified A=added D=deleted R=renamed ?=untracked]:
M main.go
팁 언제 쓸까 에이전트가 저장소 컨텍스트가 필요할 때마다 git 도구셋을 사용하세요 — 편집 전, 최근 기록 검토, 마지막으로 그 라인을 건드린 사람 찾기 등에요. 쓰기 가능한
shell표면을 노출하지 않고도 할 수 있어요.
더 알아보기 (Learn more)
- Filesystem 도구로 파일 읽기/쓰기하기
- Shell 도구로 커밋·체크아웃 등 쓰기 작업하기