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__ディレクトリの内容を、オプションの深度制御とグロブフィルタリングを使用して階層ツリーとしてリスト表示します。
WriteFileTool__write_file__テキストコンテンツをファイルに書き込みます(必要に応じて親ディレクトリを作成します)。

ビルトインツールの登録

他のツールと同様に、ビルトインツールをエージェントで利用できるようにするには、ツールレジストリに追加する必要があります。例を以下に示します:

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の両方で、同じレジストリ内にビルトインツールとカスタムツールを組み合わせることで、エージェントのための包括的な機能セットを作成できます。 カスタムツールの詳細については、アノテーションベースのツールおよびクラスベースのツールを参照してください。