File size: 1,094 Bytes
3487f22 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | """
Shared observability setup for full contract analysis pipeline
Initializes braintrust logger used by all agent nodes for tracing
Usage in any agent:
from observability import get_logger
logger = get_logger()
if logger:
with logger.start_span("my_node") as span:
result = do_work()
span.log(input={...}, output={...}, metadata={...})
"""
import os
import braintrust
from dotenv import load_dotenv
load_dotenv()
BRAINTRUST_PROJECT = "contract-pipeline-evals"
_logger = None
def get_logger():
"""Return initialized Braintrust logger (None if BRAINTRUST_API_KEY is missing)"""
global _logger
if _logger is None:
api_key = os.environ.get("BRAINTRUST_API_KEY")
if api_key:
_logger = braintrust.init_logger(
project=BRAINTRUST_PROJECT,
api_key=api_key,
)
else:
print(
"[observability] BRAINTRUST_API_KEY not set — "
"tracing disabled. Add it to .env to enable spans."
)
return _logger
|