Skip to content

내장 도구

Koog 프레임워크는 에이전트와 사용자 간의 상호작용에서 발생하는 일반적인 시나리오를 처리하기 위한 Kotlin 및 Java용 내장 도구(built-in tools)를 제공합니다.

사용 가능한 내장 도구는 다음과 같습니다:

도구
이름
설명
SayToUser__say_to_user__에이전트가 사용자에게 메시지를 보낼 수 있게 합니다. 에이전트 메시지를 Agent says: 접두사와 함께 콘솔에 출력합니다.
AskUser__ask_user__에이전트가 사용자에게 입력을 요청할 수 있게 합니다. 에이전트 메시지를 콘솔에 출력하고 사용자의 응답을 기다립니다.
ExitTool__exit__에이전트가 대화를 종료하고 세션을 마칠 수 있게 합니다.
ReadFileTool__read_file__선택적으로 줄 범위를 지정하여 텍스트 파일을 읽습니다. 0부터 시작하는 줄 인덱싱을 사용하여 메타데이터와 함께 포맷된 콘텐츠를 반환합니다.
EditFileTool__edit_file__파일 내에서 대상이 지정된 단일 텍스트 교체를 수행합니다. 새 파일을 생성하거나 콘텐츠를 완전히 교체할 수도 있습니다.
ListDirectoryTool__list_directory__디렉터리 콘텐츠를 계층적 트리 구조로 나열합니다. 선택적으로 깊이 제어 및 glob 필터링을 사용할 수 있습니다.
WriteFileTool__write_file__텍스트 콘텐츠를 파일에 씁니다(필요한 경우 부모 디렉터리를 생성합니다).

내장 도구 등록하기

다른 도구와 마찬가지로, 내장 도구도 에이전트가 사용할 수 있도록 도구 레지스트리(tool registry)에 추가되어야 합니다. 다음은 예시입니다:

kotlin
// 모든 내장 도구를 포함하는 도구 레지스트리 생성
val toolRegistry = ToolRegistry {
    tool(SayToUser)
    tool(AskUser)
    tool(ExitTool)
    tool(ReadFileTool(JVMFileSystemProvider.ReadOnly))
    tool(ListDirectoryTool(JVMFileSystemProvider.ReadOnly))
    tool(WriteFileTool(JVMFileSystemProvider.ReadWrite))
}

// 에이전트 생성 시 레지스트리 전달
val agent = AIAgent(
    promptExecutor = simpleOpenAIExecutor(apiToken),
    systemPrompt = "You are a helpful assistant.",
    llmModel = OpenAIModels.Chat.GPT4o,
    toolRegistry = toolRegistry
)

Kotlin과 Java 모두에서 동일한 레지스트리 내에 내장 도구와 커스텀 도구를 결합하여 에이전트를 위한 포괄적인 기능 세트를 구성할 수 있습니다. 커스텀 도구에 대해 자세히 알아보려면 Annotation-based toolsClass-based tools를 참조하세요.