observability

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentMetrics

type AgentMetrics struct {
	AgentID string

	// 性能指标
	TotalTasks      int64
	SuccessfulTasks int64
	FailedTasks     int64
	TaskSuccessRate float64
	AvgLatency      time.Duration
	P50Latency      time.Duration
	P95Latency      time.Duration
	P99Latency      time.Duration

	// Token 指标
	TotalTokens      int64
	PromptTokens     int64
	CompletionTokens int64
	TokenEfficiency  float64 // tokens per task

	// 质量指标
	AvgOutputQuality float64
	HumanSimilarity  float64

	// 成本指标
	TotalCost   float64
	CostPerTask float64

	// 时间统计
	FirstTaskAt time.Time
	LastTaskAt  time.Time

	// 详细记录
	LatencyHistory []time.Duration
	QualityHistory []float64
}

AgentMetrics Agent 指标

type Alternative

type Alternative struct {
	Option    string  `json:"option"`
	Score     float64 `json:"score"`
	Reason    string  `json:"reason"`
	WasChosen bool    `json:"was_chosen"`
}

备选案文是经过审议的备选决定。

type AuditReport

type AuditReport struct {
	TraceID         string               `json:"trace_id"`
	SessionID       string               `json:"session_id"`
	AgentID         string               `json:"agent_id"`
	StartTime       time.Time            `json:"start_time"`
	EndTime         time.Time            `json:"end_time"`
	Duration        time.Duration        `json:"duration"`
	Success         bool                 `json:"success"`
	TotalSteps      int                  `json:"total_steps"`
	TotalDecisions  int                  `json:"total_decisions"`
	DecisionSummary map[DecisionType]int `json:"decision_summary"`
	Timeline        []TimelineEvent      `json:"timeline"`
}

审计报告是一份跟踪审计报告。

func (*AuditReport) Export

func (r *AuditReport) Export() ([]byte, error)

将审计报告出口给JSON。

type Benchmark

type Benchmark struct {
	Name        string
	Description string
	Dataset     []BenchmarkCase
	Results     map[string]*BenchmarkResult // agentID -> result
}

Benchmark 基准测试

type BenchmarkCase

type BenchmarkCase struct {
	ID             string
	Input          *agent.Input
	ExpectedOutput string
	Metadata       map[string]any
}

BenchmarkCase 基准测试用例

type BenchmarkResult

type BenchmarkResult struct {
	AgentID     string
	TotalCases  int
	PassedCases int
	FailedCases int
	SuccessRate float64
	AvgScore    float64
	AvgLatency  time.Duration
	TotalCost   float64
	Timestamp   time.Time
}

BenchmarkResult 基准测试结果

type Decision

type Decision struct {
	ID           string            `json:"id"`
	Type         DecisionType      `json:"type"`
	Description  string            `json:"description"`
	Input        any               `json:"input,omitempty"`
	Output       any               `json:"output,omitempty"`
	Reasoning    string            `json:"reasoning"`
	Confidence   float64           `json:"confidence,omitempty"`
	Alternatives []Alternative     `json:"alternatives,omitempty"`
	Factors      []Factor          `json:"factors,omitempty"`
	Timestamp    time.Time         `json:"timestamp"`
	Duration     time.Duration     `json:"duration,omitempty"`
	Metadata     map[string]string `json:"metadata,omitempty"`
}

决定是代理人作出的单一决定。

type DecisionType

type DecisionType string

决定 类型代表所作决定的类型。

const (
	DecisionToolSelection  DecisionType = "tool_selection"
	DecisionModelRouting   DecisionType = "model_routing"
	DecisionStrategyChoice DecisionType = "strategy_choice"
	DecisionContentFilter  DecisionType = "content_filter"
	DecisionRetry          DecisionType = "retry"
	DecisionFallback       DecisionType = "fallback"
	DecisionBudgetThrottle DecisionType = "budget_throttle"
)

type EvaluationResult

type EvaluationResult struct {
	Score      float64
	Dimensions map[string]float64 // 各维度分数
	Feedback   string
	Timestamp  time.Time
}

EvaluationResult 评估结果

type EvaluationStrategy

type EvaluationStrategy interface {
	Evaluate(ctx context.Context, input *agent.Input, output *agent.Output) (*EvaluationResult, error)
}

EvaluationStrategy 评估策略

type Evaluator

type Evaluator struct {
	// contains filtered or unexported fields
}

Evaluator 评估器

func NewEvaluator

func NewEvaluator(logger *zap.Logger) *Evaluator

NewEvaluator 创建评估器

func (*Evaluator) AddStrategy

func (e *Evaluator) AddStrategy(strategy EvaluationStrategy)

AddStrategy 添加评估策略

func (*Evaluator) Evaluate

func (e *Evaluator) Evaluate(ctx context.Context, input *agent.Input, output *agent.Output) (*EvaluationResult, error)

Evaluate 评估输出

func (*Evaluator) RegisterBenchmark

func (e *Evaluator) RegisterBenchmark(benchmark *Benchmark)

RegisterBenchmark 注册基准测试

func (*Evaluator) RunBenchmark

func (e *Evaluator) RunBenchmark(ctx context.Context, benchmarkName string, agent agent.Agent) (*BenchmarkResult, error)

RunBenchmark 运行基准测试

type ExplainabilityConfig

type ExplainabilityConfig struct {
	Enabled            bool          `json:"enabled"`
	DetailLevel        string        `json:"detail_level"` // minimal, standard, verbose
	MaxTraceAge        time.Duration `json:"max_trace_age"`
	MaxTracesPerAgent  int           `json:"max_traces_per_agent"`
	RecordAlternatives bool          `json:"record_alternatives"`
	RecordFactors      bool          `json:"record_factors"`
}

可解释性 Config 配置可解释性系统.

func DefaultExplainabilityConfig

func DefaultExplainabilityConfig() ExplainabilityConfig

默认解释性 Config 返回明智的默认 。

type ExplainabilityTracker

type ExplainabilityTracker struct {
	// contains filtered or unexported fields
}

可解释性 追踪器追踪和存储推理痕迹.

func NewExplainabilityTracker

func NewExplainabilityTracker(config ExplainabilityConfig) *ExplainabilityTracker

新建解释性 Tracker创建了新的可解释性跟踪器.

func (*ExplainabilityTracker) AddStep

func (t *ExplainabilityTracker) AddStep(traceID string, step ReasoningStep)

添加Step为跟踪添加了推理步骤.

func (*ExplainabilityTracker) EndTrace

func (t *ExplainabilityTracker) EndTrace(traceID string, success bool, output, errorMsg string)

EndTrace结束推理追踪.

func (*ExplainabilityTracker) ExplainDecision

func (t *ExplainabilityTracker) ExplainDecision(decision Decision) string

解释决定为决定产生人能读取的解释.

func (*ExplainabilityTracker) GenerateAuditReport

func (t *ExplainabilityTracker) GenerateAuditReport(traceID string) (*AuditReport, error)

生成审计报告以进行追踪。

func (*ExplainabilityTracker) GetAgentTraces

func (t *ExplainabilityTracker) GetAgentTraces(agentID string) []*ReasoningTrace

Get AgentTraces为特工检索所有痕迹.

func (*ExplainabilityTracker) GetTrace

func (t *ExplainabilityTracker) GetTrace(traceID string) *ReasoningTrace

Get Trace通过身份追踪到线索

func (*ExplainabilityTracker) RecordDecision

func (t *ExplainabilityTracker) RecordDecision(traceID string, decision Decision)

记录决定记录在一处。

func (*ExplainabilityTracker) StartTrace

func (t *ExplainabilityTracker) StartTrace(sessionID, agentID string) *ReasoningTrace

启动 Trace 开始新的推理追踪 。

type Factor

type Factor struct {
	Name        string  `json:"name"`
	Value       float64 `json:"value"`
	Weight      float64 `json:"weight"`
	Impact      string  `json:"impact"` // positive, negative, neutral
	Explanation string  `json:"explanation"`
}

因素是一个影响决定的因素。

type MetricsCollector

type MetricsCollector struct {
	// contains filtered or unexported fields
}

MetricsCollector 指标收集器

func NewMetricsCollector

func NewMetricsCollector(logger *zap.Logger) *MetricsCollector

NewMetricsCollector 创建指标收集器

func (*MetricsCollector) GetAllMetrics

func (c *MetricsCollector) GetAllMetrics() map[string]*AgentMetrics

GetAllMetrics 获取所有指标

func (*MetricsCollector) GetMetrics

func (c *MetricsCollector) GetMetrics(agentID string) *AgentMetrics

GetMetrics 获取指标

func (*MetricsCollector) RecordTask

func (c *MetricsCollector) RecordTask(agentID string, success bool, latency time.Duration, tokens int, cost float64, quality float64)

RecordTask 记录任务执行

type ObservabilitySystem

type ObservabilitySystem struct {
	// contains filtered or unexported fields
}

ObservabilitySystem 可观测性系统

func NewObservabilitySystem

func NewObservabilitySystem(logger *zap.Logger) *ObservabilitySystem

NewObservabilitySystem 创建可观测性系统

func (*ObservabilitySystem) EndTrace added in v1.0.0

func (o *ObservabilitySystem) EndTrace(traceID, status string, err error)

EndTrace delegates to the internal Tracer. Satisfies agent.ObservabilityRunner.

func (*ObservabilitySystem) RecordTask added in v1.0.0

func (o *ObservabilitySystem) RecordTask(agentID string, success bool, duration time.Duration, tokens int, cost, quality float64)

RecordTask delegates to the internal MetricsCollector. Satisfies agent.ObservabilityRunner.

func (*ObservabilitySystem) StartTrace added in v1.0.0

func (o *ObservabilitySystem) StartTrace(traceID, agentID string)

StartTrace delegates to the internal Tracer. Satisfies agent.ObservabilityRunner.

type ReasoningStep

type ReasoningStep struct {
	StepNumber int           `json:"step_number"`
	Type       string        `json:"type"` // thought, action, observation, decision
	Content    string        `json:"content"`
	Decisions  []Decision    `json:"decisions,omitempty"`
	Timestamp  time.Time     `json:"timestamp"`
	Duration   time.Duration `json:"duration,omitempty"`
}

理性步骤代表了推理过程的一步.

type ReasoningTrace

type ReasoningTrace struct {
	ID          string          `json:"id"`
	SessionID   string          `json:"session_id"`
	AgentID     string          `json:"agent_id"`
	TaskID      string          `json:"task_id,omitempty"`
	Steps       []ReasoningStep `json:"steps"`
	Decisions   []Decision      `json:"decisions"`
	StartTime   time.Time       `json:"start_time"`
	EndTime     time.Time       `json:"end_time,omitempty"`
	Duration    time.Duration   `json:"duration,omitempty"`
	Success     bool            `json:"success"`
	FinalOutput string          `json:"final_output,omitempty"`
	Error       string          `json:"error,omitempty"`
	Metadata    map[string]any  `json:"metadata,omitempty"`
}

理由 Trace代表了一个完整的推理追踪.

type SimpleEvaluationStrategy

type SimpleEvaluationStrategy struct{}

SimpleEvaluationStrategy 简单评估策略

func (*SimpleEvaluationStrategy) Evaluate

func (s *SimpleEvaluationStrategy) Evaluate(ctx context.Context, input *agent.Input, output *agent.Output) (*EvaluationResult, error)

type Span

type Span struct {
	SpanID    string
	Name      string
	StartTime time.Time
	EndTime   time.Time
	Duration  time.Duration

	// 父 Span
	ParentSpanID string

	// 属性
	Attributes map[string]any

	// 事件
	Events []SpanEvent
}

Span 执行步骤

type SpanEvent

type SpanEvent struct {
	Name       string
	Timestamp  time.Time
	Attributes map[string]any
}

SpanEvent Span 事件

type TimelineEvent

type TimelineEvent struct {
	Timestamp   time.Time `json:"timestamp"`
	Type        string    `json:"type"`
	Description string    `json:"description"`
}

时间线Event代表审计时间表中的一个事件.

type Trace

type Trace struct {
	TraceID   string
	AgentID   string
	StartTime time.Time
	EndTime   time.Time
	Duration  time.Duration

	// 执行步骤
	Spans []*Span

	// 状态
	Status string
	Error  error

	// 元数据
	Metadata map[string]any
}

Trace 追踪记录

type Tracer

type Tracer struct {
	// contains filtered or unexported fields
}

Tracer 追踪器

func NewTracer

func NewTracer(logger *zap.Logger) *Tracer

NewTracer 创建追踪器

func (*Tracer) AddSpan

func (t *Tracer) AddSpan(traceID string, span *Span)

AddSpan 添加 Span

func (*Tracer) EndTrace

func (t *Tracer) EndTrace(traceID string, status string, err error)

EndTrace 结束追踪

func (*Tracer) GetTrace

func (t *Tracer) GetTrace(traceID string) *Trace

GetTrace 获取追踪

func (*Tracer) StartTrace

func (t *Tracer) StartTrace(traceID, agentID string) *Trace

StartTrace 开始追踪

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL