TypeScript SDK와 Python SDK 전반에 걸쳐 새로운 기능을 대거 배포했습니다. 이제 에이전트와 실행 메타데이터를 어떻게 저장할지 선택하고, 직접 만든 함수를 에이전트가 사용할 도구로 노출하고, 로컬 도구 호출을 Auto-review로 라우팅하고, 하위 에이전트를 원하는 만큼 깊게 중첩할 수 있습니다. 이번 릴리스에는 로컬 및 클라우드 SDK 에이전트를 프로덕션 스크립트, CI, 사용자 지정 통합에서 더 쉽게 실행할 수 있도록 하는 안정성, 성능, 플랫폼 관련 수정 사항도 포함되어 있습니다.
이제 Agent.create()에서 또는 각 send()마다 local.customTools를 통해 함수 정의를 전달하면 로컬 에이전트에 자신만의 도구를 전달할 수 있습니다. SDK는 custom-user-tools라는 기본 제공 MCP 서버를 통해 이를 에이전트에 제공하므로, 모델은 다른 MCP 도구와 동일한 경로와 동일한 권한 게이트를 통해 여러분의 코드를 호출합니다.
이전에는 사용자 지정 기능을 제공하려면 자체 stdio 또는 원격 HTTP MCP 서버를 구축해 에이전트에 연결해야 했습니다. 이제는 함수 정의만으로 충분합니다. 사용자 지정 도구는 상위 에이전트의 모든 하위 에이전트에서도 사용할 수 있으므로, 한 번 정의한 도구를 전체 실행 내내 활용할 수 있습니다.
기본적으로 로컬 SDK 에이전트는 헤드리스 실행에서는 사람이 개입하지 않기 때문에 승인을 요청하지 않고 도구 호출을 실행합니다. 대신 이러한 호출이 Auto-review를 거치도록 하려면 local.autoReview를 설정하세요. 그러면 검토를 완전히 우회하는 대신, 분류기가 어떤 호출은 자동으로 실행하고 어떤 호출은 보류할지 결정합니다.
permissions.json의 자연어 지침으로 이 분류기를 조정할 수 있습니다. autoRun.allow_instructions 필드는 허용 쪽으로 판단할 호출 형태를 설명하고, autoRun.block_instructions는 검토를 위해 보류할 형태를 설명합니다. 예를 들어, 빌드 아티팩트에 대한 읽기 전용 검사는 허용하면서 삭제처럼 파괴적인 작업에서는 항상 일시 중지하도록 설정할 수 있습니다.
{ "autoRun": { "allow_instructions": [ "Read-only inspections of build artifacts under ./dist are fine." ], "block_instructions": [ "Always pause delete operations so I get a chance to review them." ] }}
두 SDK 모두 에이전트와 실행 메타데이터를 저장하므로, 프로세스가 재시작된 후에도 에이전트를 재개할 수 있습니다. 지금까지는 이 저장소로 SQLite를 사용했습니다. 이제는 대신 JSONL 저장소를 선택할 수 있으며, 이 저장소는 읽고, diff를 확인하고, 버전 관리에 체크인할 수 있는 일반적인 추가 전용 파일에 기록합니다. SqliteLocalAgentStore와 JsonlLocalAgentStore는 모두 직접 export됩니다.
기본 옵션 두 가지 모두 현재 설정에 맞지 않는다면 공개 LocalAgentStore 인터페이스를 구현하고 이를 local.store를 통해 전달하세요. 일시적인 CI 실행을 위해 인메모리 저장소를 만들거나, 에이전트 상태를 나머지 애플리케이션 데이터와 함께 두고 싶다면 Postgres를 기반으로 지속성을 구현할 수 있습니다. Python SDK는 브리지를 통해 host, JSONL, 그리고 composed JSONL 저장소를 노출합니다.
이제 하위 에이전트가 자체 하위 에이전트를 만들고, 그 하위 에이전트도 다시 자신만의 하위 에이전트를 만들 수 있습니다. 리뷰어 하위 에이전트는 테스트 작성 하위 에이전트에 작업을 위임할 수 있고, 테스트 작성 하위 에이전트도 다시 다른 하위 에이전트에 위임할 수 있으며, 각 단계는 자체 프롬프트와 모델을 유지합니다. 따로 켤 필요는 없습니다. 하위 에이전트 세션이 Task를 호출하는 데 필요한 Executor를 등록하므로, 하위 에이전트를 정의하는 모든 에이전트에서 중첩은 자동으로 동작합니다.
이번 릴리스에는 두 SDK 전반에 걸쳐 여러 사용성 개선 및 수정 사항도 포함되어 있습니다.
실행 연계: 이제 모든 send()에 플랫폼에서 생성한 requestId가 포함되며, 이 값은 Run 및 RunResult에 노출되고 인메모리, SQLite, JSONL 저장소 전반에 걸쳐 유지됩니다. agentId로 추정하지 않아도 스크립트나 CI 실행을 백엔드 로그, analytics, 지원 스레드와 연결할 수 있습니다.
로컬 실행에서 더 안정적인 wait(): 이제 로컬 실행은 터미널 결과가 기록되기 전에 wait()가 완료되지 않습니다. hydration은 실행이 최종 상태에 도달할 때까지 계속 갱신되므로, automation에서 완전한 결과를 읽을 수 있습니다.
dispose 시 안전한 checkpoint: 이제 루트 참조가 없더라도 checkpoint blob이 남아 있으면 로컬 에이전트를 dispose할 때 checkpoint 데이터가 삭제되지 않습니다. 에이전트 디렉터리는 실제로 보관할 것이 전혀 없을 때만 정리됩니다.
HTTP/1.1에서의 클라우드 스트리밍: 이제 일부 프록시, 구형 Node fetch 스택, 특정 CI 이미지에서 사용하는 HTTP/1.1 전송 방식에서도 클라우드 에이전트 세션이 올바르게 스트리밍됩니다. HTTP/2 동작은 변경되지 않았습니다.
더 가벼운 가져오기: 이제 @cursor/sdk를 가져올 때 전체 로컬 에이전트 스택을 즉시 로드하지 않습니다. cloud 전용 및 type 전용 사용자는 첫 번째 로컬 호출 전까지 로컬 runtime 비용을 건너뛸 수 있으며, API 변경은 없습니다. 첫 번째 로컬 호출에서만 한 번 가져오기 비용이 발생하고, 이후에는 캐시된 상태로 유지됩니다.
독립적인 TypeScript 타입: 이제 배포된 .d.ts 파일이 배포되지 않은 워크스페이스 패키지를 참조하지 않습니다. 이로써 skipLibCheck: false 환경에서 발생하던 TS2305 및 TS2307 오류와 TurnEndedUpdate 같은 stream 타입이 조용히 any로 처리되던 문제가 해결됩니다.
번들된 ripgrep: 로컬 셸 실행은 전역 PATH를 수정하지 않고 번들된 플랫폼 rg 바이너리를 사용합니다. Windows에서는 ripgrep를 앞에 추가해도 더 이상 Path 변수를 덮어쓰지 않습니다.
Composer 2가 Composer 2.5로 라우팅됨: 아직 사용 중단된 composer-2 slug에 고정된 SDK 클라이언트는 자동으로 Composer 2.5로 라우팅되며, 빠른 variant도 그대로 유지되므로 기존 스크립트도 계속 실행됩니다.
워크스페이스 범위의 list_runs: Client, AsyncClient, Agent.list_runs는 선택적 cwd를 받으며, bridge는 시작 시의 워크스페이스를 기본값으로 사용합니다. 이로써 bridge가 subprocess로 실행될 때 잘못된 "agent not found" 결과가 반환되던 문제가 해결됩니다.
더 명확한 not-found 오류: 확인된 워크스페이스에 없는 에이전트를 조회하면 불명확한 내부 오류 대신 명확한 not-found 오류가 반환됩니다.
0.1.6 릴리스 및 analytics: cursor-sdk 0.1.6은 Buildkite 릴리스 경로를 문서화하고, 더 명확한 analytics를 위해 SDK 사용량에 sdk-python- 레이블을 붙입니다.
업그레이드하려면 npm install @cursor/sdk 또는 pip install cursor-sdk를 실행하세요. composer-2에 고정된 스크립트는 자동으로 Composer 2.5로 이동하며, requestId는 실행 메타데이터 스키마에 안전하게 추가할 수 있습니다. 전체 정보는 TypeScript 및 Python docs를 참조하세요.
그룹은 팀 간에 걸쳐 있거나 팀 내부에 둘 수 있는 가벼운 사용자 모음입니다. 새 팀 전체를 만들지 않고도 사용자 그룹별로 별도의 모델 접근 권한, 지출 한도, 에이전트 권한을 부여할 수 있습니다. 사용자가 둘 이상의 팀이나 그룹에 속해 있으면 가장 폭넓은 권한을 허용하는 설정이 적용됩니다.
자동 검토는 승인 요청을 줄이면서도 더 안전하게 더 오래 작업할 수 있게 해주는 Cursor의 새로운 실행 모드입니다.
자동 검토는 Shell, MCP, Fetch 도구 호출에 적용됩니다. 허용 목록에 등록된 호출은 즉시 실행되고, 샌드박스 처리할 수 있는 호출은 샌드박스에서 실행됩니다. 그 외의 모든 에이전트 동작은 호출을 허용할지, 다른 접근 방식을 시도할지, 아니면 사용자 승인을 요청할지를 결정하는 분류기 서브에이전트로 전달됩니다.
설정 > Cursor 설정 > 에이전트 > 실행 모드에서 실행 모드를 설정하세요. 사용자 지정 지침을 제공해 분류기 에이전트를 조정할 수도 있습니다.
TypeScript SDK와 Python SDK 전반에 걸쳐 새로운 기능을 대거 배포했습니다. 이제 에이전트와 실행 메타데이터를 어떻게 저장할지 선택하고, 직접 만든 함수를 에이전트가 사용할 도구로 노출하고, 로컬 도구 호출을 Auto-review로 라우팅하고, 하위 에이전트를 원하는 만큼 깊게 중첩할 수 있습니다. 이번 릴리스에는 로컬 및 클라우드 SDK 에이전트를 프로덕션 스크립트, CI, 사용자 지정 통합에서 더 쉽게 실행할 수 있도록 하는 안정성, 성능, 플랫폼 관련 수정 사항도 포함되어 있습니다.
이제 Agent.create()에서 또는 각 send()마다 local.customTools를 통해 함수 정의를 전달하면 로컬 에이전트에 자신만의 도구를 전달할 수 있습니다. SDK는 custom-user-tools라는 기본 제공 MCP 서버를 통해 이를 에이전트에 제공하므로, 모델은 다른 MCP 도구와 동일한 경로와 동일한 권한 게이트를 통해 여러분의 코드를 호출합니다.
이전에는 사용자 지정 기능을 제공하려면 자체 stdio 또는 원격 HTTP MCP 서버를 구축해 에이전트에 연결해야 했습니다. 이제는 함수 정의만으로 충분합니다. 사용자 지정 도구는 상위 에이전트의 모든 하위 에이전트에서도 사용할 수 있으므로, 한 번 정의한 도구를 전체 실행 내내 활용할 수 있습니다.
기본적으로 로컬 SDK 에이전트는 헤드리스 실행에서는 사람이 개입하지 않기 때문에 승인을 요청하지 않고 도구 호출을 실행합니다. 대신 이러한 호출이 Auto-review를 거치도록 하려면 local.autoReview를 설정하세요. 그러면 검토를 완전히 우회하는 대신, 분류기가 어떤 호출은 자동으로 실행하고 어떤 호출은 보류할지 결정합니다.
permissions.json의 자연어 지침으로 이 분류기를 조정할 수 있습니다. autoRun.allow_instructions 필드는 허용 쪽으로 판단할 호출 형태를 설명하고, autoRun.block_instructions는 검토를 위해 보류할 형태를 설명합니다. 예를 들어, 빌드 아티팩트에 대한 읽기 전용 검사는 허용하면서 삭제처럼 파괴적인 작업에서는 항상 일시 중지하도록 설정할 수 있습니다.
{ "autoRun": { "allow_instructions": [ "Read-only inspections of build artifacts under ./dist are fine." ], "block_instructions": [ "Always pause delete operations so I get a chance to review them." ] }}
두 SDK 모두 에이전트와 실행 메타데이터를 저장하므로, 프로세스가 재시작된 후에도 에이전트를 재개할 수 있습니다. 지금까지는 이 저장소로 SQLite를 사용했습니다. 이제는 대신 JSONL 저장소를 선택할 수 있으며, 이 저장소는 읽고, diff를 확인하고, 버전 관리에 체크인할 수 있는 일반적인 추가 전용 파일에 기록합니다. SqliteLocalAgentStore와 JsonlLocalAgentStore는 모두 직접 export됩니다.
기본 옵션 두 가지 모두 현재 설정에 맞지 않는다면 공개 LocalAgentStore 인터페이스를 구현하고 이를 local.store를 통해 전달하세요. 일시적인 CI 실행을 위해 인메모리 저장소를 만들거나, 에이전트 상태를 나머지 애플리케이션 데이터와 함께 두고 싶다면 Postgres를 기반으로 지속성을 구현할 수 있습니다. Python SDK는 브리지를 통해 host, JSONL, 그리고 composed JSONL 저장소를 노출합니다.
이제 하위 에이전트가 자체 하위 에이전트를 만들고, 그 하위 에이전트도 다시 자신만의 하위 에이전트를 만들 수 있습니다. 리뷰어 하위 에이전트는 테스트 작성 하위 에이전트에 작업을 위임할 수 있고, 테스트 작성 하위 에이전트도 다시 다른 하위 에이전트에 위임할 수 있으며, 각 단계는 자체 프롬프트와 모델을 유지합니다. 따로 켤 필요는 없습니다. 하위 에이전트 세션이 Task를 호출하는 데 필요한 Executor를 등록하므로, 하위 에이전트를 정의하는 모든 에이전트에서 중첩은 자동으로 동작합니다.
이번 릴리스에는 두 SDK 전반에 걸쳐 여러 사용성 개선 및 수정 사항도 포함되어 있습니다.
실행 연계: 이제 모든 send()에 플랫폼에서 생성한 requestId가 포함되며, 이 값은 Run 및 RunResult에 노출되고 인메모리, SQLite, JSONL 저장소 전반에 걸쳐 유지됩니다. agentId로 추정하지 않아도 스크립트나 CI 실행을 백엔드 로그, analytics, 지원 스레드와 연결할 수 있습니다.
로컬 실행에서 더 안정적인 wait(): 이제 로컬 실행은 터미널 결과가 기록되기 전에 wait()가 완료되지 않습니다. hydration은 실행이 최종 상태에 도달할 때까지 계속 갱신되므로, automation에서 완전한 결과를 읽을 수 있습니다.
dispose 시 안전한 checkpoint: 이제 루트 참조가 없더라도 checkpoint blob이 남아 있으면 로컬 에이전트를 dispose할 때 checkpoint 데이터가 삭제되지 않습니다. 에이전트 디렉터리는 실제로 보관할 것이 전혀 없을 때만 정리됩니다.
HTTP/1.1에서의 클라우드 스트리밍: 이제 일부 프록시, 구형 Node fetch 스택, 특정 CI 이미지에서 사용하는 HTTP/1.1 전송 방식에서도 클라우드 에이전트 세션이 올바르게 스트리밍됩니다. HTTP/2 동작은 변경되지 않았습니다.
더 가벼운 가져오기: 이제 @cursor/sdk를 가져올 때 전체 로컬 에이전트 스택을 즉시 로드하지 않습니다. cloud 전용 및 type 전용 사용자는 첫 번째 로컬 호출 전까지 로컬 runtime 비용을 건너뛸 수 있으며, API 변경은 없습니다. 첫 번째 로컬 호출에서만 한 번 가져오기 비용이 발생하고, 이후에는 캐시된 상태로 유지됩니다.
독립적인 TypeScript 타입: 이제 배포된 .d.ts 파일이 배포되지 않은 워크스페이스 패키지를 참조하지 않습니다. 이로써 skipLibCheck: false 환경에서 발생하던 TS2305 및 TS2307 오류와 TurnEndedUpdate 같은 stream 타입이 조용히 any로 처리되던 문제가 해결됩니다.
번들된 ripgrep: 로컬 셸 실행은 전역 PATH를 수정하지 않고 번들된 플랫폼 rg 바이너리를 사용합니다. Windows에서는 ripgrep를 앞에 추가해도 더 이상 Path 변수를 덮어쓰지 않습니다.
Composer 2가 Composer 2.5로 라우팅됨: 아직 사용 중단된 composer-2 slug에 고정된 SDK 클라이언트는 자동으로 Composer 2.5로 라우팅되며, 빠른 variant도 그대로 유지되므로 기존 스크립트도 계속 실행됩니다.
워크스페이스 범위의 list_runs: Client, AsyncClient, Agent.list_runs는 선택적 cwd를 받으며, bridge는 시작 시의 워크스페이스를 기본값으로 사용합니다. 이로써 bridge가 subprocess로 실행될 때 잘못된 "agent not found" 결과가 반환되던 문제가 해결됩니다.
더 명확한 not-found 오류: 확인된 워크스페이스에 없는 에이전트를 조회하면 불명확한 내부 오류 대신 명확한 not-found 오류가 반환됩니다.
0.1.6 릴리스 및 analytics: cursor-sdk 0.1.6은 Buildkite 릴리스 경로를 문서화하고, 더 명확한 analytics를 위해 SDK 사용량에 sdk-python- 레이블을 붙입니다.
업그레이드하려면 npm install @cursor/sdk 또는 pip install cursor-sdk를 실행하세요. composer-2에 고정된 스크립트는 자동으로 Composer 2.5로 이동하며, requestId는 실행 메타데이터 스키마에 안전하게 추가할 수 있습니다. 전체 정보는 TypeScript 및 Python docs를 참조하세요.
그룹은 팀 간에 걸쳐 있거나 팀 내부에 둘 수 있는 가벼운 사용자 모음입니다. 새 팀 전체를 만들지 않고도 사용자 그룹별로 별도의 모델 접근 권한, 지출 한도, 에이전트 권한을 부여할 수 있습니다. 사용자가 둘 이상의 팀이나 그룹에 속해 있으면 가장 폭넓은 권한을 허용하는 설정이 적용됩니다.
자동 검토는 승인 요청을 줄이면서도 더 안전하게 더 오래 작업할 수 있게 해주는 Cursor의 새로운 실행 모드입니다.
자동 검토는 Shell, MCP, Fetch 도구 호출에 적용됩니다. 허용 목록에 등록된 호출은 즉시 실행되고, 샌드박스 처리할 수 있는 호출은 샌드박스에서 실행됩니다. 그 외의 모든 에이전트 동작은 호출을 허용할지, 다른 접근 방식을 시도할지, 아니면 사용자 승인을 요청할지를 결정하는 분류기 서브에이전트로 전달됩니다.
설정 > Cursor 설정 > 에이전트 > 실행 모드에서 실행 모드를 설정하세요. 사용자 지정 지침을 제공해 분류기 에이전트를 조정할 수도 있습니다.