ragflow/agent/trace/__init__.py
0xsatoshi99 697f8138b6 feat: add trace logging for agent completions API (Issue #10081)
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
2025-12-03 18:08:14 +01:00

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",
]