gMAS / src /callbacks /__init__.py
Артём Боярских
chore: initial commit
3193174
"""
Callback system for execution monitoring.
Provides LangChain-like callback handling for monitoring and logging
execution events.
Example (basic usage):
from gmas import MACPRunner
from callbacks import StdoutCallbackHandler
runner = MACPRunner(
llm_caller=my_llm,
callbacks=[StdoutCallbackHandler()]
)
result = runner.run_round(graph)
Example (context manager):
from callbacks import trace_as_callback, MetricsCallbackHandler
with trace_as_callback(handlers=[MetricsCallbackHandler()]) as manager:
runner.run_round(graph)
# Get metrics from handler
metrics_handler = manager.handlers[0]
print(metrics_handler.get_metrics())
Example (custom handler):
from callbacks import BaseCallbackHandler
class MyHandler(BaseCallbackHandler):
def on_agent_end(self, *, agent_id, output, tokens_used, **kwargs):
print(f"{agent_id} used {tokens_used} tokens")
runner = MACPRunner(callbacks=[MyHandler()])
"""
from .base import AsyncCallbackHandler, BaseCallbackHandler, CallbackHandlerMixin
from .context import (
collect_metrics,
configure_async_callbacks,
configure_callbacks,
get_callback_manager,
set_callback_manager,
trace_as_callback,
)
from .events import (
AgentEndEvent,
AgentErrorEvent,
AgentRetryEvent,
AgentStartEvent,
BaseEvent,
BudgetExceededEvent,
BudgetWarningEvent,
EventType,
FallbackEvent,
MemoryReadEvent,
MemoryWriteEvent,
ParallelEndEvent,
ParallelStartEvent,
PlanCreatedEvent,
PruneEvent,
RunEndEvent,
RunStartEvent,
TokenEvent,
ToolEndEvent,
ToolErrorEvent,
ToolStartEvent,
TopologyChangedEvent,
)
from .handlers import (
FileCallbackHandler,
MetricsCallbackHandler,
StdoutCallbackHandler,
)
from .manager import AsyncCallbackManager, CallbackManager
# Type alias for handlers
Handler = BaseCallbackHandler | AsyncCallbackHandler
__all__ = [
"AgentEndEvent",
"AgentErrorEvent",
"AgentRetryEvent",
"AgentStartEvent",
"AsyncCallbackHandler",
"AsyncCallbackManager",
"BaseCallbackHandler",
"BaseEvent",
"BudgetExceededEvent",
"BudgetWarningEvent",
# Base handlers
"CallbackHandlerMixin",
# Managers
"CallbackManager",
# Events
"EventType",
"FallbackEvent",
"FileCallbackHandler",
"Handler",
"MemoryReadEvent",
"MemoryWriteEvent",
"MetricsCallbackHandler",
"ParallelEndEvent",
"ParallelStartEvent",
"PlanCreatedEvent",
"PruneEvent",
"RunEndEvent",
"RunStartEvent",
# Built-in handlers
"StdoutCallbackHandler",
"TokenEvent",
"ToolEndEvent",
"ToolErrorEvent",
"ToolStartEvent",
"TopologyChangedEvent",
"collect_metrics",
"configure_async_callbacks",
"configure_callbacks",
"get_callback_manager",
"set_callback_manager",
# Context
"trace_as_callback",
]