onToolOutput(perform:)
Runs an action whenever a tool call output is received within this dynamic profile.
Declaration
func onToolOutput(perform action: nonisolated(nonsending) sending @escaping () async throws -> Void) -> some LanguageModelSession.DynamicProfile
Mentioned in
Discussion
When the onToolOutput closure throws an error, the caller’s respond or response will propagate that error.
Use this to track or log tool output within a dynamic profile:
struct MyDynamicProfile: LanguageModelSession.DynamicProfile {
var body: some LanguageModelSession.DynamicProfile {
Profile {
Instructions("You are a helpful assistant.")
SomeTool()
}
.onToolOutput {
toolOutputCount += 1
}
}
}