MCPcopy Create free account
hub / github.com/AI45Lab/Code / complete_llm_turn

Method complete_llm_turn

core/src/agent/llm_turn.rs:218–258  ·  view source on GitHub ↗
(
        &self,
        turn: usize,
        effective_prompt: &str,
        response: &LlmResponse,
        llm_start: std::time::Instant,
        event_tx: &Option<mpsc::Sender<AgentEvent>>,
      

Source from the content-addressed store, hash-verified

216 }
217
218 async fn complete_llm_turn(
219 &self,
220 turn: usize,
221 effective_prompt: &str,
222 response: &LlmResponse,
223 llm_start: std::time::Instant,
224 event_tx: &Option<mpsc::Sender<AgentEvent>>,
225 session_id: Option<&str>,
226 ) {
227 let llm_duration = llm_start.elapsed();
228 tracing::info!(
229 turn = turn,
230 streaming = event_tx.is_some(),
231 prompt_tokens = response.usage.prompt_tokens,
232 completion_tokens = response.usage.completion_tokens,
233 total_tokens = response.usage.total_tokens,
234 stop_reason = response.stop_reason.as_deref().unwrap_or("unknown"),
235 duration_ms = llm_duration.as_millis() as u64,
236 "LLM completion finished"
237 );
238
239 self.fire_generate_end(
240 session_id.unwrap_or(""),
241 effective_prompt,
242 response,
243 llm_duration.as_millis() as u64,
244 )
245 .await;
246
247 crate::telemetry::record_llm_usage(
248 response.usage.prompt_tokens,
249 response.usage.completion_tokens,
250 response.usage.total_tokens,
251 response.stop_reason.as_deref(),
252 );
253 tracing::info!(
254 turn = turn,
255 a3s.llm.total_tokens = response.usage.total_tokens,
256 "Turn token usage"
257 );
258 }
259
260 async fn emit_turn_end(
261 &self,

Callers 1

execute_llm_turnMethod · 0.80

Calls 2

record_llm_usageFunction · 0.85
fire_generate_endMethod · 0.80

Tested by

no test coverage detected