Skip to content

內建工具

Koog 架構為 Kotlin 與 Java 提供內建工具,用於處理代理與使用者互動的常見情境。

以下是可用的內建工具:

工具
名稱
說明
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 中皆適用。 若要了解更多關於自訂工具的資訊,請參閱 以註解為基礎的工具以類別為基礎的工具