mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-06-09 17:31:19 +00:00
refactor(agents): extract agent log handler for improved clarity and reusability
Refactored the agent log handling logic by extracting it into a dedicated function, `agentLogHandler`, enhancing code clarity and reusability across different modules. Updated the event handlers in both the OpenAI and responses controllers to utilize the new handler, ensuring consistent logging behavior throughout the application.
This commit is contained in:
parent
1bfc9bfa3a
commit
70fbff4a6d
3 changed files with 19 additions and 24 deletions
|
|
@ -283,16 +283,7 @@ function getDefaultHandlers({
|
|||
};
|
||||
}
|
||||
|
||||
handlers[GraphEvents.ON_AGENT_LOG] = {
|
||||
handle: (_event, data) => {
|
||||
const logFn = typeof logger[data.level] === 'function' ? logger[data.level] : logger.info;
|
||||
logFn(`[agents:${data.scope}] ${data.message}`, {
|
||||
...data.data,
|
||||
runId: data.runId,
|
||||
agentId: data.agentId,
|
||||
});
|
||||
},
|
||||
};
|
||||
handlers[GraphEvents.ON_AGENT_LOG] = { handle: agentLogHandler };
|
||||
|
||||
return handlers;
|
||||
}
|
||||
|
|
@ -717,6 +708,15 @@ function createResponsesToolEndCallback({ req, res, tracker, artifactPromises })
|
|||
};
|
||||
}
|
||||
|
||||
function agentLogHandler(_event, data) {
|
||||
const logFn = typeof logger[data.level] === 'function' ? logger[data.level] : logger.info;
|
||||
logFn(`[agents:${data.scope}] ${data.message}`, {
|
||||
...data.data,
|
||||
runId: data.runId,
|
||||
agentId: data.agentId,
|
||||
});
|
||||
}
|
||||
|
||||
function markSummarizationUsage(usage, metadata) {
|
||||
const node = metadata?.langgraph_node;
|
||||
if (typeof node === 'string' && node.startsWith(GraphNodeKeys.SUMMARIZE)) {
|
||||
|
|
@ -725,8 +725,9 @@ function markSummarizationUsage(usage, metadata) {
|
|||
}
|
||||
|
||||
module.exports = {
|
||||
agentLogHandler,
|
||||
getDefaultHandlers,
|
||||
createToolEndCallback,
|
||||
createResponsesToolEndCallback,
|
||||
markSummarizationUsage,
|
||||
createResponsesToolEndCallback,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ const { loadAgentTools, loadToolsForExecution } = require('~/server/services/Too
|
|||
const {
|
||||
createToolEndCallback,
|
||||
markSummarizationUsage,
|
||||
agentLogHandler,
|
||||
} = require('~/server/controllers/agents/callbacks');
|
||||
const { findAccessibleResources } = require('~/server/services/PermissionService');
|
||||
const db = require('~/models');
|
||||
|
|
@ -440,6 +441,7 @@ const OpenAIChatCompletionController = async (req, res) => {
|
|||
on_chain_stream: createHandler(),
|
||||
on_chain_end: createHandler(),
|
||||
on_agent_update: createHandler(),
|
||||
on_agent_log: { handle: agentLogHandler },
|
||||
on_custom_event: createHandler(),
|
||||
// Event-driven tool execution handler
|
||||
on_tool_execute: createToolExecuteHandler(toolExecuteOptions),
|
||||
|
|
|
|||
|
|
@ -32,8 +32,9 @@ const {
|
|||
} = require('@librechat/api');
|
||||
const {
|
||||
createResponsesToolEndCallback,
|
||||
createToolEndCallback,
|
||||
markSummarizationUsage,
|
||||
createToolEndCallback,
|
||||
agentLogHandler,
|
||||
} = require('~/server/controllers/agents/callbacks');
|
||||
const { loadAgentTools, loadToolsForExecution } = require('~/server/services/ToolService');
|
||||
const { findAccessibleResources } = require('~/server/services/PermissionService');
|
||||
|
|
@ -50,16 +51,7 @@ function setAppConfig(config) {
|
|||
appConfig = config;
|
||||
}
|
||||
|
||||
const agentLogHandler = {
|
||||
handle: (_event, data) => {
|
||||
const logFn = typeof logger[data.level] === 'function' ? logger[data.level] : logger.info;
|
||||
logFn(`[agents:${data.scope}] ${data.message}`, {
|
||||
...data.data,
|
||||
runId: data.runId,
|
||||
agentId: data.agentId,
|
||||
});
|
||||
},
|
||||
};
|
||||
const agentLogHandlerObj = { handle: agentLogHandler };
|
||||
|
||||
/**
|
||||
* Creates a tool loader function for the agent.
|
||||
|
|
@ -471,7 +463,7 @@ const createResponse = async (req, res) => {
|
|||
on_agent_update: { handle: () => {} },
|
||||
on_custom_event: { handle: () => {} },
|
||||
on_tool_execute: createToolExecuteHandler(toolExecuteOptions),
|
||||
on_agent_log: agentLogHandler,
|
||||
on_agent_log: agentLogHandlerObj,
|
||||
...(summarizationConfig?.enabled !== false
|
||||
? {
|
||||
on_summarize_start: {
|
||||
|
|
@ -657,7 +649,7 @@ const createResponse = async (req, res) => {
|
|||
on_agent_update: { handle: () => {} },
|
||||
on_custom_event: { handle: () => {} },
|
||||
on_tool_execute: createToolExecuteHandler(toolExecuteOptions),
|
||||
on_agent_log: agentLogHandler,
|
||||
on_agent_log: agentLogHandlerObj,
|
||||
...(summarizationConfig?.enabled !== false
|
||||
? {
|
||||
on_summarize_start: { handle: () => {} },
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue