{"meta":{"title":"컨텍스트 지우기 및 터미널 도구","intro":"호스트가 세션을 대체하지 않고 현재 대화 컨텍스트를 바꿔야 하는 경우에 사용합니다 session.history.clearContext . 일반적인 용도로는 핸드오프 및 호스트 관리 컨텍스트 수명 주기 정책이 포함됩니다.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ko/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/ko/enterprise-cloud@latest/copilot/how-tos","title":"방법"},{"href":"/ko/enterprise-cloud@latest/copilot/how-tos/copilot-sdk","title":"코필로트 SDK"},{"href":"/ko/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features","title":"기능"},{"href":"/ko/enterprise-cloud@latest/copilot/how-tos/copilot-sdk/features/context-management","title":"콘텐츠 관리"}],"documentType":"article"},"body":"# 컨텍스트 지우기 및 터미널 도구\n\n호스트가 세션을 대체하지 않고 현재 대화 컨텍스트를 바꿔야 하는 경우에 사용합니다 session.history.clearContext . 일반적인 용도로는 핸드오프 및 호스트 관리 컨텍스트 수명 주기 정책이 포함됩니다.\n\n<!-- markdownlint-disable GHD046 GHD005 -->\n<!-- Suppressed: GHD046 (outdated release terminology), GHD005 (hardcoded data variable) -->\n\n컨텍스트 지우기는 새 세션을 만드는 방법과 다릅니다. 모델 관련 대화를 제거하면서 세션 ID, 시스템 및 개발자 메시지, 구성 및 이벤트 로그를 유지합니다.\n\n> [!IMPORTANT]\n> `clearContext` 는 도구 처리기 기본 형식입니다. 런타임은 진행 중인 도구 호출 없이 이루어진 호출, 시드 프롬프트가 비어 있는 호출, 그리고 원격 세션에서의 호출을 거부합니다.\n\n## 컨텍스트 지우기 도구 정의\n\n성공적인 컨텍스트 초기화 도구는 최종적이어야 합니다. 그렇지 않으면 에이전트 루프는 시드된 턴을 시작하기 전에 새로 지워진 창에 대해 다른 모델 호출을 할 수 있습니다.\n\n```typescript\nimport { approveAll, CopilotClient, defineTool } from \"@github/copilot-sdk\";\nimport type { CopilotSession } from \"@github/copilot-sdk\";\nimport { z } from \"zod\";\n\nconst client = new CopilotClient();\nlet session: CopilotSession;\n\nsession = await client.createSession({\n  onPermissionRequest: approveAll,\n  tools: [\n    defineTool(\"clear_context\", {\n      description: \"Clear the conversation and start a fresh context window\",\n      parameters: z.object({ prompt: z.string() }),\n      isTerminal: true,\n      defer: \"never\",\n      handler: async ({ prompt }) => {\n        const { messagesCleared } =\n          await session.rpc.history.clearContext({ prompt });\n        return `Cleared ${messagesCleared} messages.`;\n      },\n    }),\n  ],\n});\n```\n\n필수 항목 `prompt` 은 새 컨텍스트에서 첫 번째 사용자 메시지가 됩니다. 성공적으로 지우면 `session.context_cleared` 제거된 메시지 수와 초기 메시지를 내보낸다.\n\n## 터미널 도구 동작\n\n`isTerminal` 는 도구가 성공하는 경우에만 현재 에이전트 턴을 종료합니다. 복구 또는 다시 시도할 수 있도록 오류, 거부, 거부, 시간 제한 또는 입력 유효성 검사 오류가 모델에 계속 표시됩니다.\n\n이 옵션은 각 언어의 명명 규칙을 따릅니다.\n\n| SDK | 도구 옵션 |\n|---|---|\n| Node.js | `isTerminal` |\n| Python | `is_terminal` |\n| Go | `IsTerminal` |\n| .NET | `CopilotToolOptions.IsTerminal` |\n| Java | \n`ToolDefinition.isTerminal(true)` 또는 `@CopilotTool(isTerminal = true)` |\n| 러스트 | `with_is_terminal(true)` |\n\n성공적으로 완료되면 해당 턴이 종료되어야 하는 도구에만 종료 설정을 사용하세요. 일반 도구는 설정되지 않은 상태로 두어야 합니다."}