langchain
Version:
Typescript bindings for langchain
31 lines (30 loc) • 1.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatToToolMessages = exports._createToolMessage = void 0;
const messages_1 = require("@langchain/core/messages");
/**
* Convert agent action and observation into a function message.
* @param agentAction - The tool invocation request from the agent
* @param observation - The result of the tool invocation
* @returns FunctionMessage that corresponds to the original tool invocation
*/
function _createToolMessage(step) {
return new messages_1.ToolMessage({
tool_call_id: step.action.toolCallId,
content: step.observation,
additional_kwargs: { name: step.action.tool },
});
}
exports._createToolMessage = _createToolMessage;
function formatToToolMessages(steps) {
return steps.flatMap(({ action, observation }) => {
if ("messageLog" in action && action.messageLog !== undefined) {
const log = action.messageLog;
return log.concat(_createToolMessage({ action, observation }));
}
else {
return [new messages_1.AIMessage(action.log)];
}
});
}
exports.formatToToolMessages = formatToToolMessages;
;