Help us shape the future of Go! Take the 2026 Go Developer Survey

observability

package
v1.11.3 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 2026 License: MIT Imports: 12 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"`
	Synopsis                  string               `json:"synopsis,omitempty"`
	CompressedTimelineSummary string               `json:"compressed_timeline_summary,omitempty"`
	CompressedTimelineCount   int                  `json:"compressed_timeline_count,omitempty"`
	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 DecisionTimelineEntry added in v1.11.0

type DecisionTimelineEntry struct {
	Index     int            `json:"index"`
	Type      string         `json:"type"`
	Summary   string         `json:"summary"`
	Metadata  map[string]any `json:"metadata,omitempty"`
	Timestamp time.Time      `json:"timestamp"`
}

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"`
	MaxTimelineEntries     int           `json:"max_timeline_entries"`
	PreserveRecentTimeline int           `json:"preserve_recent_timeline"`
	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) AddTimelineEntry added in v1.11.0

func (t *ExplainabilityTracker) AddTimelineEntry(traceID string, entry DecisionTimelineEntry)

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) LatestSynopsis added in v1.11.0

func (t *ExplainabilityTracker) LatestSynopsis(sessionID, agentID, excludeTraceID string) string

LatestSynopsis returns the most recent completed non-empty synopsis for the given agent/session, excluding the supplied trace ID when provided.

func (*ExplainabilityTracker) LatestSynopsisSnapshot added in v1.11.0

func (t *ExplainabilityTracker) LatestSynopsisSnapshot(sessionID, agentID, excludeTraceID string) agent.ExplainabilitySynopsisSnapshot

LatestSynopsisSnapshot returns the most recent completed explainability summary bundle for the given agent/session.

func (*ExplainabilityTracker) RecordDecision

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

记录决定记录在一处。

func (*ExplainabilityTracker) StartTrace

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

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

func (*ExplainabilityTracker) StartTraceWithID added in v1.11.0

func (t *ExplainabilityTracker) StartTraceWithID(traceID, sessionID, agentID string) *ReasoningTrace

StartTraceWithID starts or replaces a trace under a caller-provided ID so runtime trace IDs can align with explainability trace IDs.

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) AddExplainabilityStep added in v1.11.0

func (o *ObservabilitySystem) AddExplainabilityStep(traceID, stepType, content string, metadata map[string]any)

AddExplainabilityStep satisfies agent.ExplainabilityRecorder.

func (*ObservabilitySystem) AddExplainabilityTimeline added in v1.11.0

func (o *ObservabilitySystem) AddExplainabilityTimeline(traceID, entryType, summary string, metadata map[string]any)

AddExplainabilityTimeline satisfies agent.ExplainabilityTimelineRecorder.

func (*ObservabilitySystem) EndExplainabilityTrace added in v1.11.0

func (o *ObservabilitySystem) EndExplainabilityTrace(traceID string, success bool, output, errorMsg string)

EndExplainabilityTrace satisfies agent.ExplainabilityRecorder.

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) GetLatestExplainabilitySynopsis added in v1.11.0

func (o *ObservabilitySystem) GetLatestExplainabilitySynopsis(sessionID, agentID, excludeTraceID string) string

GetLatestExplainabilitySynopsis satisfies agent.ExplainabilitySynopsisReader.

func (*ObservabilitySystem) GetLatestExplainabilitySynopsisSnapshot added in v1.11.0

func (o *ObservabilitySystem) GetLatestExplainabilitySynopsisSnapshot(sessionID, agentID, excludeTraceID string) agent.ExplainabilitySynopsisSnapshot

GetLatestExplainabilitySynopsisSnapshot satisfies agent.ExplainabilitySynopsisSnapshotReader.

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) StartExplainabilityTrace added in v1.11.0

func (o *ObservabilitySystem) StartExplainabilityTrace(traceID, sessionID, agentID string)

StartExplainabilityTrace satisfies agent.ExplainabilityRecorder.

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"`
	Metadata   map[string]any `json:"metadata,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"`
	Timeline                  []DecisionTimelineEntry `json:"timeline,omitempty"`
	Synopsis                  string                  `json:"synopsis,omitempty"`
	CompressedTimelineSummary string                  `json:"compressed_timeline_summary,omitempty"`
	CompressedTimelineCount   int                     `json:"compressed_timeline_count,omitempty"`
	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
	TraceID   string
	Name      string
	StartTime time.Time
	EndTime   time.Time
	Duration  time.Duration

	// 父 Span
	ParentSpanID string

	// 属性
	Attributes map[string]any
	Error      *SpanError

	// 事件
	Events []SpanEvent
}

Span 执行步骤

func (*Span) Export added in v1.10.0

func (s *Span) Export() map[string]any

func (*Span) SetError added in v1.10.0

func (s *Span) SetError(message string, data map[string]any)

type SpanError added in v1.10.0

type SpanError struct {
	Message string         `json:"message"`
	Data    map[string]any `json:"data,omitempty"`
}

SpanError 对齐官方 tracing span error 结构。

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
	WorkflowName string
	GroupID      string
	StartTime    time.Time
	EndTime      time.Time
	Duration     time.Duration
	Disabled     bool

	// 执行步骤
	Spans []*Span

	// 状态
	Status string
	Error  error

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

Trace 追踪记录

func (*Trace) Export added in v1.10.0

func (t *Trace) Export() map[string]any

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