KoogTool

class KoogTool(val tool: AgentTool, run: suspend (JsonObject) -> String = tool::execute) : Tool<JsonObject, String> (source)

An AI Elements AgentTool as a Koog tool: JSON arguments in, text out. run defaults to the tool itself; KoogBackend routes it through the chat's tool events (approval, progress) instead.

Constructors

Link copied to clipboard
constructor(tool: AgentTool, run: suspend (JsonObject) -> String = tool::execute)

Properties

Link copied to clipboard
val argsType: TypeToken
Link copied to clipboard
val descriptor: ToolDescriptor
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val resultType: TypeToken
Link copied to clipboard

Functions

Link copied to clipboard
open override fun decodeArgs(rawArgs: JSONObject, serializer: JSONSerializer): JsonObject
Link copied to clipboard
open override fun decodeResult(rawResult: JSONElement, serializer: JSONSerializer): String
Link copied to clipboard
open fun encodeArgs(args: JsonObject, serializer: JSONSerializer): JSONObject
Link copied to clipboard
fun encodeArgsToString(args: JsonObject, serializer: JSONSerializer): String
Link copied to clipboard
fun encodeArgsToStringUnsafe(args: Any?, serializer: JSONSerializer): String
Link copied to clipboard
fun encodeArgsUnsafe(args: Any?, serializer: JSONSerializer): JSONObject
Link copied to clipboard
open override fun encodeResult(result: String, serializer: JSONSerializer): JSONElement
Link copied to clipboard
open fun encodeResultToParts(result: String, serializer: JSONSerializer): List<MessagePart.ContentPart>
Link copied to clipboard
fun encodeResultToPartsUnsafe(result: Any?, serializer: JSONSerializer): List<MessagePart.ContentPart>
Link copied to clipboard
open override fun encodeResultToString(result: String, serializer: JSONSerializer): String

The model sees the tool's text as is, not as a JSON string literal.

Link copied to clipboard
fun encodeResultToStringUnsafe(result: Any?, serializer: JSONSerializer): String
Link copied to clipboard
fun encodeResultUnsafe(result: Any?, serializer: JSONSerializer): JSONElement
Link copied to clipboard
suspend override fun execute(args: JsonObject, metadata: ToolCallMetadata): String
open suspend override fun execute(args: JsonObject): String
Link copied to clipboard
suspend fun executeUnsafe(args: Any?): String
suspend fun executeUnsafe(args: Any?, metadata: ToolCallMetadata): String