feat: add answerability runtime trace fields

This commit is contained in:
mlogclub
2026-05-02 13:51:26 +08:00
parent 866663f0dc
commit 28913ad440
2 changed files with 24 additions and 1 deletions
@@ -106,6 +106,19 @@ func (c *RuntimeTraceCollector) SetRetrieverSummary(summary RetrieverTraceSummar
c.Data.Retriever.Policies = append([]RetrieverPolicyTraceItem(nil), summary.Policies...)
}
func (c *RuntimeTraceCollector) SetAnswerability(data AnswerabilityTraceData) {
c.mu.Lock()
defer c.mu.Unlock()
c.Data.Answerability = AnswerabilityTraceData{
Status: data.Status,
Reason: data.Reason,
SupportingChunkIDs: append([]string(nil), data.SupportingChunkIDs...),
MissingInfo: append([]string(nil), data.MissingInfo...),
LatencyMs: data.LatencyMs,
ErrorMessage: data.ErrorMessage,
}
}
func (c *RuntimeTraceCollector) AddToolItem(item ToolTraceItem) {
c.mu.Lock()
defer c.mu.Unlock()
@@ -65,6 +65,15 @@ type RetrieverTraceSummary struct {
Policies []RetrieverPolicyTraceItem
}
type AnswerabilityTraceData struct {
Status string `json:"status,omitempty"`
Reason string `json:"reason,omitempty"`
SupportingChunkIDs []string `json:"supportingChunkIds,omitempty"`
MissingInfo []string `json:"missingInfo,omitempty"`
LatencyMs int64 `json:"latencyMs,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
}
type RetrieverPolicyTraceItem struct {
KnowledgeBaseID int64 `json:"knowledgeBaseId,omitempty"`
TopK int `json:"topK,omitempty"`
@@ -119,7 +128,8 @@ type RuntimeTraceData struct {
Policies []RetrieverPolicyTraceItem `json:"policies,omitempty"`
Items []RetrieverTraceItem `json:"items,omitempty"`
} `json:"retriever"`
Tools struct {
Answerability AnswerabilityTraceData `json:"answerability,omitempty"`
Tools struct {
Count int `json:"count,omitempty"`
Items []ToolTraceItem `json:"items,omitempty"`
} `json:"tools"`