LangChain has announced enhancements to their callbacks system, which is crucial for tasks such as logging, tracing, and integrating third-party applications, aimed at improving concurrent runs and request-specific callback handling. Initially designed for non-async Python applications, LangChain now supports asyncio Python and JavaScript/TypeScript, necessitating better abstractions for handling multiple concurrent runs. The new system allows developers to declare callbacks in constructor arguments or directly in methods, ensuring callbacks are scoped appropriately for specific runs, which simplifies the process and enhances reusability by eliminating the need to attach callback managers to all nested objects. The changes also introduce a runManager second argument to async methods, facilitating logging for custom chains, and a context manager for easier tracing. Notably, global callbacks and the global tracer are deprecated in the latest versions, with the verbose flag now limited to controlling stdout and console callbacks only. The improvements draw inspiration from the Python logging module and web server frameworks like Express, opting for explicit function arguments to ensure compatibility and ease of debugging across platforms.