fix: we were missing content from langfuse traces (#7135)
This commit is contained in:
@@ -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());
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user