Skip to content

Release Notes v0.5.0

Release Date: January 4, 2026

This release introduces LLM observability with Phoenix support, configurable HTTP timeouts for reasoning models, a new structured logging package, and significant dependency updates.

Highlights

  • Phoenix Observability - Added Arize Phoenix support for LLM tracing alongside Opik and Langfuse
  • Configurable HTTP Timeout - New HTTP_TIMEOUT_SECONDS environment variable for reasoning models
  • Structured Logging - New pkg/logging package for consistent structured logging across agents
  • Dependency Updates - Updated to omnillm v0.10.0, go-phoenix v0.1.0, go-opik v0.5.0

New Features

Phoenix LLM Observability

Added Arize Phoenix as an observability provider for LLM tracing. Phoenix provides a hosted solution for monitoring LLM calls with traces and spans.

Configuration:

export OBSERVABILITY_ENABLED=true
export OBSERVABILITY_PROVIDER=phoenix
export PHOENIX_API_KEY=your-api-key
export PHOENIX_SPACE_ID=your-workspace
export OBSERVABILITY_PROJECT=stats-agent-team

Supported Providers:

Provider Environment Variables
Phoenix PHOENIX_API_KEY, PHOENIX_SPACE_ID
Opik OPIK_API_KEY, OPIK_WORKSPACE
Langfuse LANGFUSE_PUBLIC_KEY, LANGFUSE_SECRET_KEY

Configurable HTTP Timeout

Added HTTP_TIMEOUT_SECONDS environment variable to configure HTTP client and server timeouts. This is essential for reasoning models (like xAI Grok reasoning models) that may need more time to complete.

Configuration:

# Default: 300 seconds (5 minutes)
export HTTP_TIMEOUT_SECONDS=300

Affected Components: - Orchestrator HTTP client (calls to research, synthesis, verification agents) - Agent HTTP servers (ReadTimeout, WriteTimeout, IdleTimeout) - OmniLLM client (LLM API calls)

Recommendation: Use 300 seconds (5 minutes) for reasoning models.

Structured Logging Package (pkg/logging/)

New centralized logging package providing consistent structured logging across all agents:

import "github.com/agentplexus/stats-agent-team/pkg/logging"

// Create agent-specific logger
logger := logging.NewAgentLogger("synthesis")

// Add logger to context
ctx := logging.WithLogger(ctx, logger)

// Retrieve logger from context
logger := logging.FromContext(ctx)
logger.Info("processing request", "topic", topic)

Features: - Agent-specific logger creation with component tagging - Context-aware logging for request-scoped correlation - Consistent log format across all agents - Integration with Go's log/slog package

Enhancements

Provider-Specific Observability Configuration

The config loader now intelligently handles provider-specific environment variables:

  • For Phoenix: Prefers PHOENIX_API_KEY and PHOENIX_SPACE_ID
  • For Opik: Prefers OPIK_API_KEY and OPIK_WORKSPACE
  • Falls back to generic OBSERVABILITY_API_KEY and OBSERVABILITY_WORKSPACE

Improved Agent Initialization

All agents now use the structured logging package for consistent initialization:

logger := logging.NewAgentLogger("verification")
cfg := config.LoadConfig()

agent, err := NewVerificationAgent(cfg, logger)

HTTP Server Timeout Configuration

All HTTP servers now use configurable timeouts from the config:

timeout := time.Duration(cfg.HTTPTimeoutSeconds) * time.Second
server := &http.Server{
    Addr:         ":8002",
    ReadTimeout:  timeout,
    WriteTimeout: timeout,
    IdleTimeout:  timeout * 2,
}

Dependencies

Updated Dependencies

Package Old Version New Version
github.com/agentplexus/omnillm v0.9.0 v0.10.0
github.com/agentplexus/go-opik v0.4.0 v0.5.0
github.com/agentplexus/omniobserve v0.4.0 v0.5.0
github.com/cloudwego/eino v0.7.14 v0.7.17
github.com/agentplexus/omniserp v0.6.0 v0.7.0

New Dependencies

Package Version Purpose
github.com/agentplexus/go-phoenix v0.1.0 Phoenix observability provider

Configuration Reference

New Environment Variables

Variable Default Description
HTTP_TIMEOUT_SECONDS 300 HTTP client/server timeout in seconds
PHOENIX_API_KEY - Phoenix API key (when using Phoenix)
PHOENIX_SPACE_ID - Phoenix workspace/space ID

Observability Configuration

# Enable observability
export OBSERVABILITY_ENABLED=true

# Choose provider: phoenix, opik, or langfuse
export OBSERVABILITY_PROVIDER=phoenix

# Provider-specific configuration
export PHOENIX_API_KEY=your-key
export PHOENIX_SPACE_ID=your-workspace

# Project name for grouping traces
export OBSERVABILITY_PROJECT=stats-agent-team

Migration Guide

From v0.4.0

  1. Update dependencies:

    go get github.com/agentplexus/stats-agent-team@v0.5.0
    go mod tidy
    

  2. (Optional) Configure Phoenix observability:

    export OBSERVABILITY_ENABLED=true
    export OBSERVABILITY_PROVIDER=phoenix
    export PHOENIX_API_KEY=your-key
    export PHOENIX_SPACE_ID=your-workspace
    

  3. (Optional) Increase timeout for reasoning models:

    export HTTP_TIMEOUT_SECONDS=300
    

Using the New Logging Package

If you're extending the agents, use the new logging package:

import "github.com/agentplexus/stats-agent-team/pkg/logging"

// Create logger
logger := logging.NewAgentLogger("my-agent")

// Use with context
ctx := logging.WithLogger(context.Background(), logger)

// Retrieve from context
logging.FromContext(ctx).Info("message", "key", "value")

Known Issues

  • Phoenix may return 500 when creating a project that already exists. This is handled gracefully and does not affect functionality.

Contributors

  • John Wang (@grokify)

Full Changelog: v0.4.0...v0.5.0