[
https://issues.apache.org/jira/browse/CAMEL-23860?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-23860.
---------------------------------
Resolution: Fixed
> camel-langchain4j-chat/agent/tools - Add token usage and finish reason as
> exchange headers
> ------------------------------------------------------------------------------------------
>
> Key: CAMEL-23860
> URL: https://issues.apache.org/jira/browse/CAMEL-23860
> Project: Camel
> Issue Type: Improvement
> Components: camel-langchain4j-agent, camel-langchain4j-chat,
> camel-langchain4j-tools
> Reporter: Claus Ibsen
> Priority: Major
> Labels: ai
> Fix For: 4.22.0
>
>
> The camel-langchain4j-embeddings component already exposes token usage data
> (input/output/total token count) and finish reason as exchange headers from
> the LangChain4j Response object. However, the chat, agent, and tools
> producers discard this metadata.
> Specifically:
> - camel-langchain4j-chat: extracts only response.text() and discards the
> Response wrapper containing tokenUsage() and finishReason()
> - camel-langchain4j-agent: same, no token data exposed
> - camel-langchain4j-tools: reads finishReason() internally for control flow
> but does not expose it as a header
> The LangChain4j API provides this data in the Response object - the
> embeddings producer already demonstrates the pattern:
> {code:java}
> if (result.tokenUsage() != null) {
> message.setHeader(...INPUT_TOKEN_COUNT,
> result.tokenUsage().inputTokenCount());
> message.setHeader(...OUTPUT_TOKEN_COUNT,
> result.tokenUsage().outputTokenCount());
> message.setHeader(...TOTAL_TOKEN_COUNT,
> result.tokenUsage().totalTokenCount());
> }
> {code}
> The same pattern should be applied to the chat, agent, and tools producers so
> users can track LLM token consumption, costs, and completion status.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)