Add LLM failure tracing in executeLLMStream and executeLLMForToolRetry methods
- Implemented traceLLMFail method to mark LLM requests as failed in the trace context. - Updated executeLLMStream and executeLLMForToolRetry methods to call traceLLMFail on errors, enhancing error tracking and debugging capabilities. - Improved overall error handling in LLM execution flows, ensuring failures are properly logged in the trace.
This commit is contained in:
parent
5ca78e0133
commit
7e8b2d8d9f
2 changed files with 18 additions and 0 deletions
|
|
@ -47,6 +47,8 @@ func (ast *Assistant) executeLLMStream(
|
|||
// Create LLM instance with connector and options
|
||||
llmInstance, err := llm.New(conn, completionOptions)
|
||||
if err != nil {
|
||||
// Mark LLM Request as failed in trace
|
||||
ast.traceLLMFail(ctx, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
@ -70,6 +72,8 @@ func (ast *Assistant) executeLLMStream(
|
|||
log.Trace("[AGENT] LLM Stream returned: assistant=%s, err=%v", ast.ID, err)
|
||||
if err != nil {
|
||||
log.Trace("[AGENT] Calling sendStreamEndOnError")
|
||||
// Mark LLM Request as failed in trace
|
||||
ast.traceLLMFail(ctx, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
@ -108,6 +112,8 @@ func (ast *Assistant) executeLLMForToolRetry(
|
|||
// Create LLM instance with connector and options
|
||||
llmInstance, err := llm.New(conn, completionOptions)
|
||||
if err != nil {
|
||||
// Mark LLM Retry Request as failed in trace
|
||||
ast.traceLLMFail(ctx, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
@ -116,6 +122,8 @@ func (ast *Assistant) executeLLMForToolRetry(
|
|||
completionResponse, err := llmInstance.Stream(ctx, completionMessages, completionOptions, streamHandler)
|
||||
log.Trace("[AGENT] LLM tool retry stream returned: assistant=%s, err=%v", ast.ID, err)
|
||||
if err != nil {
|
||||
// Mark LLM Retry Request as failed in trace
|
||||
ast.traceLLMFail(ctx, err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,6 +84,16 @@ func (ast *Assistant) traceLLMComplete(ctx *context.Context, completionResponse
|
|||
trace.Complete(completionResponse)
|
||||
}
|
||||
|
||||
// traceLLMFail marks the LLM request as failed in the trace
|
||||
func (ast *Assistant) traceLLMFail(ctx *context.Context, err error) {
|
||||
trace, _ := ctx.Trace()
|
||||
if trace == nil {
|
||||
return
|
||||
}
|
||||
|
||||
trace.Fail(err)
|
||||
}
|
||||
|
||||
// traceAgentCompletion creates a completion node to report the final output
|
||||
func (ast *Assistant) traceAgentCompletion(ctx *context.Context, createResponse *context.HookCreateResponse, nextResponse *context.NextHookResponse, completionResponse *context.CompletionResponse, finalResponse interface{}) {
|
||||
trace, _ := ctx.Trace()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue