Implement comprehensive trace logging system for agent execution that returns step-by-step execution traces in API responses. New modules: - agent/trace/trace_models.py: Data models for trace events, sessions, LLM calls, retrievals, and tool calls - agent/trace/trace_collector.py: Real-time trace event collection with subscriber pattern for streaming - agent/trace/trace_formatter.py: Multiple formatters (streaming, compact, detailed) for different output needs - api/db/services/trace_service.py: Service layer for trace persistence, retrieval, and analysis - api/apps/trace_app.py: REST API endpoints for trace management Features: - Real-time trace streaming via SSE - Multiple trace verbosity levels (minimal, standard, detailed, debug) - Component execution timing and bottleneck detection - LLM call tracking with token counts - Retrieval operation logging with chunk details - Tool call tracing with arguments and results - Trace session persistence in Redis - Analysis and recommendations based on trace data API Endpoints: - GET /traces - List trace sessions - GET /traces/<task_id> - Get trace session - GET /traces/<task_id>/events - Get filtered events - GET /traces/<task_id>/summary - Get trace summary - GET /traces/<task_id>/analysis - Analyze trace - GET /traces/<task_id>/stream - Stream trace events - DELETE /traces/<task_id> - Delete trace - POST /traces/cleanup - Cleanup old traces - POST /agents/<agent_id>/completions/trace - Completion with trace Closes #10081
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
#
|
|
# Copyright 2025 The InfiniFlow Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
#
|
|
|
|
"""
|
|
Agent Trace Module
|
|
|
|
This module provides comprehensive tracing capabilities for agent execution,
|
|
including trace models, collectors, formatters, and services.
|
|
"""
|
|
|
|
from agent.trace.trace_models import (
|
|
TraceEventType,
|
|
TraceLevel,
|
|
TraceMetadata,
|
|
ComponentInfo,
|
|
TraceEvent,
|
|
LLMCallTrace,
|
|
RetrievalTrace,
|
|
ToolCallTrace,
|
|
TraceSession,
|
|
)
|
|
from agent.trace.trace_collector import (
|
|
TraceCollector,
|
|
get_trace_collector,
|
|
create_trace_collector,
|
|
)
|
|
from agent.trace.trace_formatter import (
|
|
TraceFormatter,
|
|
StreamingTraceFormatter,
|
|
CompactTraceFormatter,
|
|
DetailedTraceFormatter,
|
|
)
|
|
|
|
__all__ = [
|
|
# Models
|
|
"TraceEventType",
|
|
"TraceLevel",
|
|
"TraceMetadata",
|
|
"ComponentInfo",
|
|
"TraceEvent",
|
|
"LLMCallTrace",
|
|
"RetrievalTrace",
|
|
"ToolCallTrace",
|
|
"TraceSession",
|
|
# Collector
|
|
"TraceCollector",
|
|
"get_trace_collector",
|
|
"create_trace_collector",
|
|
# Formatters
|
|
"TraceFormatter",
|
|
"StreamingTraceFormatter",
|
|
"CompactTraceFormatter",
|
|
"DetailedTraceFormatter",
|
|
]
|