도구
LLM이 사용할 수 있는 도구를 관리합니다.
도구(Tools)를 사용하면 LLM이 코드베이스에서 작업을 수행할 수 있습니다. Dropstone에는 기본 제공 도구 세트가 포함되어 있으며, 사용자 정의 도구나 MCP 서버로 확장할 수 있습니다.
기본적으로 모든 도구는 활성화되어 있으며 실행 권한이 필요하지 않습니다. 권한을 통해 도구 동작을 제어할 수 있습니다.
구성
permission 필드를 사용하여 도구 동작을 제어합니다. 각 도구에 대해 허용, 거부 또는 승인 필요를 설정할 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}
와일드카드를 사용하여 여러 도구를 한 번에 제어할 수도 있습니다. 예를 들어, MCP 서버의 모든 도구에 대해 승인을 요구하려면:
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"mymcp_*": "ask"
}
}
권한 구성에 대한 자세한 내용은 여기에서 확인하세요.
기본 제공 도구
다음은 Dropstone에서 사용할 수 있는 모든 기본 제공 도구입니다.
bash
프로젝트 환경에서 셸 명령을 실행합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"bash": "allow"
}
}
이 도구를 사용하면 LLM이 npm install, git status 또는 기타 셸 명령과 같은 터미널 명령을 실행할 수 있습니다.
edit
정확한 문자열 치환을 사용하여 기존 파일을 수정합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
이 도구는 정확히 일치하는 텍스트를 치환하여 파일을 정밀하게 수정합니다. LLM이 코드를 수정하는 주요 방법입니다.
write
새 파일을 생성하거나 기존 파일을 덮어씁니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
LLM이 새 파일을 생성할 수 있도록 허용하려면 이 도구를 사용합니다. 기존 파일이 이미 있는 경우 해당 파일을 덮어씁니다.
Note
write 도구는 모든 파일 수정(edit, write, apply_patch)을 포함하는 edit 권한으로 제어됩니다.
read
코드베이스에서 파일 내용을 읽습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"read": "allow"
}
}
이 도구는 파일을 읽고 내용을 반환합니다. 대용량 파일의 경우 특정 줄 범위를 읽는 것을 지원합니다.
grep
정규식을 사용하여 파일 내용을 검색합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"grep": "allow"
}
}
코드베이스 전체에서 빠른 콘텐츠 검색을 수행합니다. 전체 정규식 구문과 파일 패턴 필터링을 지원합니다.
glob
패턴 일치로 파일을 찾습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"glob": "allow"
}
}
**/*.js 또는 src/**/*.ts와 같은 glob 패턴을 사용하여 파일을 검색합니다. 수정 시간순으로 정렬된 일치하는 파일 경로를 반환합니다.
lsp (실험적)
구성된 LSP 서버와 상호 작용하여 정의, 참조, 호버 정보, 호출 계층 구조와 같은 코드 인텔리전스 기능을 얻습니다.
실험적
LSP 도구는 실험적이며 기본적으로 비활성화되어 있습니다. 동작은 릴리스 간에 변경될 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"lsp": "allow"
}
}
지원되는 작업에는 goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, outgoingCalls가 포함됩니다.
프로젝트에 사용할 수 있는 LSP 서버를 구성하려면 LSP 서버를 참조하세요.
apply_patch
파일에 패치를 적용합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"edit": "allow"
}
}
이 도구는 코드베이스에 패치 파일을 적용합니다. 다양한 소스의 diff와 패치를 적용하는 데 유용합니다.
tool.execute.before 또는 tool.execute.after 훅을 처리할 때 input.tool === "apply_patch"("patch"가 아님)를 확인하세요.
apply_patch는 output.args.filePath 대신 output.args.patchText를 사용합니다. 경로는 patchText 내의 마커 줄에 포함되며 프로젝트 루트를 기준으로 합니다(예: *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).
Note
apply_patch 도구는 모든 파일 수정(edit, write, apply_patch)을 포함하는 edit 권한으로 제어됩니다.
skill
스킬(SKILL.md 파일)을 로드하고 그 내용을 대화에 반환합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"skill": "allow"
}
}
todowrite
코딩 세션 중 할 일 목록을 관리합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"todowrite": "allow"
}
}
복잡한 작업 중 진행 상황을 추적하기 위해 작업 목록을 생성하고 업데이트합니다. LLM은 이를 사용하여 다단계 작업을 구성합니다.
Note
이 도구는 기본적으로 하위 에이전트(subagent)에 대해 비활성화되어 있지만 수동으로 활성화할 수 있습니다. 자세히 알아보기.
webfetch
웹 콘텐츠를 가져옵니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"webfetch": "allow"
}
}
LLM이 웹 페이지를 가져와 읽을 수 있게 합니다. 문서를 조회하거나 온라인 리소스를 조사하는 데 유용합니다.
websearch
정보를 위해 웹을 검색합니다. Dropstone에 로그인하면 기본적으로 사용할 수 있습니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"websearch": "allow"
}
}
온라인에서 관련 정보를 찾기 위해 웹 검색을 수행합니다. 주제 조사, 최신 이벤트 찾기, 또는 학습 데이터 범위를 넘어선 정보 수집에 유용합니다. Dropstone에 로그인하면 API 키나 추가 설정이 필요하지 않습니다.
Tip
정보를 찾아야 할 때(검색)는 websearch를 사용하고, 특정 URL에서 콘텐츠를 가져와야 할 때(검색 결과 가져오기)는 webfetch를 사용하세요.
question
실행 중 사용자에게 질문합니다.
{
"$schema": "https://dropstone.io/schema/config.json",
"permission": {
"question": "allow"
}
}
이 도구를 사용하면 LLM이 작업 중 사용자에게 질문할 수 있습니다. 다음과 같은 경우에 유용합니다:
- 사용자 선호도 또는 요구 사항 수집
- 모호한 지침 명확화
- 구현 선택에 대한 결정 얻기
- 진행 방향에 대한 선택지 제공
각 질문에는 헤더, 질문 텍스트, 옵션 목록이 포함됩니다. 사용자는 제공된 옵션을 선택하거나 사용자 정의 답변을 입력할 수 있습니다. 여러 질문이 있는 경우 사용자는 모든 답변을 제출하기 전에 질문 사이를 탐색할 수 있습니다.
사용자 정의 도구
사용자 정의 도구를 사용하면 LLM이 호출할 수 있는 고유한 함수를 정의할 수 있습니다. 이러한 함수는 구성 파일에 정의되며 임의의 코드를 실행할 수 있습니다.
사용자 정의 도구 생성에 대한 자세한 내용은 여기에서 확인하세요.
MCP 서버
MCP(Model Context Protocol) 서버를 사용하면 외부 도구와 서비스를 통합할 수 있습니다. 여기에는 데이터베이스 액세스, API 통합, 타사 서비스가 포함됩니다.
MCP 서버 구성에 대한 자세한 내용은 여기에서 확인하세요.
무시 패턴
기본적으로 grep과 glob은 .gitignore를 존중합니다. 여기에 나열된 파일과 디렉터리는 검색 및 목록에서 제외됩니다.
일반적으로 무시되는 파일을 포함하려면 프로젝트 루트에 .ignore 파일을 생성하세요. 이 파일은 특정 경로를 명시적으로 허용할 수 있습니다.
!node_modules/
!dist/
!build/
예를 들어, 이 .ignore 파일은 node_modules/, dist/, build/ 디렉터리가 .gitignore에 나열되어 있어도 해당 디렉터리 내 검색을 허용합니다.