fix: we were missing content from langfuse traces (#7135)

This commit is contained in:
Michael Neale
2026-02-11 13:40:17 +11:00
committed by GitHub
parent 56c0ac9806
commit d138c88d8d
3 changed files with 153 additions and 10 deletions
+25 -3
View File
@@ -467,6 +467,12 @@ impl Agent {
cancellation_token: Option<CancellationToken>,
session: &Session,
) -> (String, Result<ToolCallResult, ErrorData>) {
let input_summary = serde_json::json!({
"tool": tool_call.name,
"arguments": tool_call.arguments,
});
tracing::Span::current().record("input", tracing::field::display(&input_summary));
if tool_call.name == PLATFORM_MANAGE_SCHEDULE_TOOL_NAME {
let arguments = tool_call
.arguments
@@ -793,7 +799,10 @@ impl Agent {
}
}
#[instrument(skip(self, user_message, session_config), fields(user_message))]
#[instrument(
skip(self, user_message, session_config),
fields(user_message, trace_input)
)]
pub async fn reply(
&self,
user_message: Message,
@@ -802,6 +811,10 @@ impl Agent {
) -> Result<BoxStream<'_, Result<AgentEvent>>> {
let session_manager = self.config.session_manager.clone();
let message_text_for_trace = user_message.as_concat_text();
tracing::Span::current().record("user_message", message_text_for_trace.as_str());
tracing::Span::current().record("trace_input", message_text_for_trace.as_str());
for content in &user_message.content {
if let MessageContent::ActionRequired(action_required) = content {
if let ActionRequiredData::ElicitationResponse { id, user_data } =
@@ -1014,7 +1027,6 @@ impl Agent {
goose_mode,
initial_messages,
} = context;
let reply_span = tracing::Span::current();
self.reset_retry_attempts().await;
let provider = self.provider().await?;
@@ -1034,10 +1046,12 @@ impl Agent {
let working_dir = session.working_dir.clone();
Ok(Box::pin(async_stream::try_stream! {
let _ = reply_span.enter();
let reply_stream_span = tracing::info_span!(target: "goose::agents::agent", "reply_stream");
let _stream_guard = reply_stream_span.enter();
let mut turns_taken = 0u32;
let max_turns = session_config.max_turns.unwrap_or(DEFAULT_MAX_TURNS);
let mut compaction_attempts = 0;
let mut last_assistant_text = String::new();
loop {
if is_token_cancelled(&cancel_token) {
@@ -1138,6 +1152,10 @@ impl Agent {
let num_tool_requests = frontend_requests.len() + remaining_requests.len();
if num_tool_requests == 0 {
let text = filtered_response.as_concat_text();
if !text.is_empty() {
last_assistant_text = text;
}
messages_to_add.push(response.clone());
continue;
}
@@ -1508,6 +1526,10 @@ impl Agent {
tokio::task::yield_now().await;
}
if !last_assistant_text.is_empty() {
tracing::info!(target: "goose::agents::agent", trace_output = last_assistant_text.as_str());
}
}))
}