Call

@Serializable
data class Call(val id: UUID, val timestamp: Instant, val callId: String, val callName: String, val arguments: String, val reason: String?, val validatedToolName: String?, val validatedArgs: JsonElement?, val resolvedRequest: JsonElement?, val presentation: ToolPresentation?) : AgentMessage.Tool(source)

工具调用请求,来自 LLM。

Constructors

Link copied to clipboard
constructor(id: UUID, timestamp: Instant, callId: String, callName: String, arguments: String, reason: String?, validatedToolName: String?, validatedArgs: JsonElement?, resolvedRequest: JsonElement?, presentation: ToolPresentation?)

Properties

Link copied to clipboard

工具调用的请求参数,为来自 api 响应的原始参数,可能不是一个有效的 Json 对象。

Link copied to clipboard
open override val callId: String

工具调用的 id,来自大模型 api,用于帮助模型匹配 CallResult

Link copied to clipboard

工具调用的请求名称,可能同时包含工具名称和 function 名称。

Link copied to clipboard
@Serializable(with = UuidSerializer::class)
open override val id: UUID

消息 id,每种消息都有。

Link copied to clipboard

用于展示给用户并请求审批的消息,当工具无需被审批或解析失败时此字段为 null。

Link copied to clipboard

工具调用的原因,只有解析成功的工具调用会包含此字段。

Link copied to clipboard
val resolvedRequest: JsonElement?

工具调用预处理的响应序列化到 JsonElement,此字段非空时工具参数必然已校验成功。

Link copied to clipboard
open override val timestamp: Instant

消息时间戳,每种消息都有。

Link copied to clipboard
val validatedArgs: JsonElement?

成功反序列化为工具的 io.github.autotweaker.api.tool.ToolArgs 后序列化到 JsonElement

Link copied to clipboard

业务层的工具名称,而非 callName 那样包含 function 名。