rskit_agent/types/
result.rs1use rskit_llm::types::{AssistantMessage, Message, Usage};
2
3use super::StopReason;
4
5#[derive(Debug, Clone)]
7pub struct AgentResult {
8 pub messages: Vec<Message>,
10 pub final_message: AssistantMessage,
12 pub total_usage: Usage,
14 pub turn_count: u32,
16 pub stop_reason: StopReason,
18}
19
20#[cfg(test)]
21mod tests {
22 use super::*;
23 use rskit_llm::types;
24
25 #[test]
26 fn test_agent_result_fields() {
27 let result = AgentResult {
28 messages: vec![types::user("hi")],
29 final_message: AssistantMessage {
30 content: types::text_content("hello"),
31 tool_calls: vec![],
32 usage: None,
33 },
34 total_usage: Usage {
35 input_tokens: 10,
36 output_tokens: 20,
37 cached_tokens: 0,
38 reasoning_tokens: 0,
39 },
40 turn_count: 1,
41 stop_reason: StopReason::EndTurn,
42 };
43 assert_eq!(result.turn_count, 1);
44 assert_eq!(result.total_usage.input_tokens, 10);
45 }
46}