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_SECONDSenvironment variable for reasoning models - Structured Logging - New
pkg/loggingpackage 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:
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_KEYandPHOENIX_SPACE_ID - For Opik: Prefers
OPIK_API_KEYandOPIK_WORKSPACE - Falls back to generic
OBSERVABILITY_API_KEYandOBSERVABILITY_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¶
-
Update dependencies:
-
(Optional) Configure Phoenix observability:
-
(Optional) Increase timeout for reasoning models:
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