======================================== Test Type: llm-search Model: deepseek-v3.2 Embed Model: text-embedding-3-small Max Tools: 3 Messages File: /data/workspace/trpc-agent-go/examples/toolsearch/user-message.txt Timestamp: 20260129_101246 ======================================== (Commands appended at end) - /stats - /exit πŸš€ Tool Search Test: LLM Search Model: deepseek-v3.2 Streaming: true Tools: 10 (all tools provided to LLM) Type 'exit' to end the conversation ============================================================ βœ… LLM Search chat ready! Session: baseline-session-1769652766 ⚠️ Note: only 3 of 10 tools are provided to LLM without any search πŸ’‘ Special commands: /stats - Show current session token usage statistics /new - Start a new session (reset token tracking) /exit - End the conversation πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{732.236349ms 0s} I'll calculate that expression for you. Let me use the calculator tool. I'll calculate that expression for you. Let me use the calculator tool. {"expression":"123 + 456 * 789","result":359907,"message":"Calculation result: 359907"}πŸ” Tool search usage timing info: &{732.236349ms 0s} The result of 123 + 456 Γ— 789 is **359,907**. This calculation follows the order of operations (PEMDAS/BODMAS), where multiplication is performed before addition: 1. First, 456 Γ— 789 = 359,784 2. Then, 123 + 359,784 = 359,The result of 123 + 456 Γ— 789 is **359,907**. This calculation follows the order of operations (PEMDAS/BODMAS), where multiplication is performed before addition: 1. First, 456 Γ— 789 = 359,784 2. Then, 123 + 359,784 = 359, πŸ“Š Turn 1 Token Usage: Prompt: 1241, Completion: 72, Total: 1313 Tools used: calculator πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{859.913211ms 0s} I'll check what day of the week it is today. I'll check what day of the week it is today. {"operation":"weekday","result":"Thursday","timestamp":1769652791}πŸ” Tool search usage timing info: &{859.913211ms 0s} Today is **Thursday**.Today is **Thursday**. πŸ“Š Turn 2 Token Usage: Prompt: 1269, Completion: 6, Total: 1275 Tools used: time_tool πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{889.08656ms 0s} I'll convert "Hello World" to uppercase for you. I'll convert "Hello World" to uppercase for you. {"original_text":"Hello World","operation":"uppercase","result":"HELLO WORLD","info":"Text converted to uppercase"}πŸ” Tool search usage timing info: &{889.08656ms 0s} "Hello World" converted to uppercase is: **HELLO WORLD"Hello World" converted to uppercase is: **HELLO WORLD πŸ“Š Turn 3 Token Usage: Prompt: 1346, Completion: 16, Total: 1362 Tools used: text_tool πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{749.774511ms 0s} I'll convert 100 USD to EUR for you. I'll convert 100 USD to EUR for you. {"original_amount":100,"from_currency":"USD","to_currency":"EUR","converted_amount":85,"exchange_rate":0.85,"message":"100.00 USD = 85.00 EUR (rate: 0.8500)"}πŸ” Tool search usage timing info: &{749.774511ms 0s} 100 USD converts to **85 EUR** at an approximate exchange rate of 0.85 EUR per USD. **Note:** This is an approximate conversion rate for demonstration purposes. Actual exchange rates fluctuate constantly in real financial markets.100 USD converts to **85 EUR** at an approximate exchange rate of 0.85 EUR per USD. **Note:** This is an approximate conversion rate for demonstration purposes. Actual exchange rates fluctuate constantly in real financial markets. πŸ“Š Turn 4 Token Usage: Prompt: 1791, Completion: 46, Total: 1837 Tools used: currency_converter πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{816.567872ms 0s} I'll convert 100 meters to feet for you. I'll convert 100 meters to feet for you. {"original_value":100,"from_unit":"m","to_unit":"foot","converted_value":328.0839895013123,"category":"length","message":"100.0000 m = 328.0840 foot"}πŸ” Tool search usage timing info: &{816.567872ms 0s} 100 meters is equal to approximately **328.08 feet**. The exact conversion is 328.0839895 feet, since 1 meter = 3.280839895 feet100 meters is equal to approximately **328.08 feet**. The exact conversion is 328.0839895 feet, since 1 meter = 3.280839895 feet πŸ“Š Turn 5 Token Usage: Prompt: 1699, Completion: 38, Total: 1737 Tools used: unit_converter πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{697.797468ms 0s} I'll generate a secure password with 12 characters for you. I'll generate a secure password with 12 characters for you. 2026-01-29T10:13:35+08:00 ERROR processor/functioncall.go:1279 CallableTool execution failed for password_generator: no character types selected 2026-01-29T10:13:35+08:00 WARN processor/functioncall.go:1190 tool execute failed, function name: password_generator, arguments: {"length": 12}, result: , err: Error: callable tool execution failed: no character types selected Error: callable tool execution failed: no character types selectedπŸ” Tool search usage timing info: &{697.797468ms 0s} Let me try again with all character types enabled by default: Let me try again with all character types enabled by default: {"password":"$xm}cLUjP[ei","length":12,"strength":"Strong","message":"Generated Strong password with length 12"}πŸ” Tool search usage timing info: &{697.797468ms 0s} I've generated a secure password for you: **Password:** `$xm}cLUjP[ei` **Length:** 12 characters **Strength:** Strong This password includes: - Uppercase letters (C, L, U, P) - Lowercase letters (x, m, j, e, i) - Numbers (none in this particular generation) - Symbols ($, }, [, ]) **Important security notes:** 1. Never share this password with anyone 2. Store it in a secure password manager 3. Use unique passwords for different accounts 4. Consider enabling two-factor authentication for importantI've generated a secure password for you: **Password:** `$xm}cLUjP[ei` **Length:** 12 characters **Strength:** Strong This password includes: - Uppercase letters (C, L, U, P) - Lowercase letters (x, m, j, e, i) - Numbers (none in this particular generation) - Symbols ($, }, [, ]) **Important security notes:** 1. Never share this password with anyone 2. Store it in a secure password manager 3. Use unique passwords for different accounts 4. Consider enabling two-factor authentication for important πŸ“Š Turn 6 Token Usage: Prompt: 2101, Completion: 129, Total: 2230 Tools used: password_generator, password_generator πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{926.84011ms 0s} I'll generate an MD5 hash of "hello world"I'll generate an MD5 hash of "hello world"{"original_text":"hello world","algorithm":"MD5","hash":"5eb63bbbe01eeed093cb22bb8f5acdc3","message":"Generated MD5 hash successfully"}πŸ” Tool search usage timing info: &{926.84011ms 0s} The MD5 hash of "hello world" is: **5eb63bbbe01eeed093cb22bb8f5acdc3** **Note about MD5:** While MD5 is useful for checksums and non-cryptographic purposes, it's considered cryptographically broken and should not be used for password hashing or security-sensitive applications. For security purposes, consider using SHA-256 or stronger algorithms.The MD5 hash of "hello world" is: **5eb63bbbe01eeed093cb22bb8f5acdc3** **Note about MD5:** While MD5 is useful for checksums and non-cryptographic purposes, it's considered cryptographically broken and should not be used for password hashing or security-sensitive applications. For security purposes, consider using SHA-256 or stronger algorithms. πŸ“Š Turn 7 Token Usage: Prompt: 2331, Completion: 86, Total: 2417 Tools used: hash_generator πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{2.932992486s 0s} I'll encode "hello world" to Base64 for you. I'll encode "hello world" to Base64 for you. {"original_text":"hello world","operation":"encode","result":"aGVsbG8gd29ybGQ=","message":"Text Base64-encoded"}πŸ” Tool search usage timing info: &{2.932992486s 0s} "hello world" encoded to Base64 is: **aGVsbG8gd29ybGQ=** Base64 encoding converts binary data to ASCII text format, making it suitable for transmission over text-based protocols like email or URLs"hello world" encoded to Base64 is: **aGVsbG8gd29ybGQ=** Base64 encoding converts binary data to ASCII text format, making it suitable for transmission over text-based protocols like email or URLs πŸ“Š Turn 8 Token Usage: Prompt: 2554, Completion: 50, Total: 2604 Tools used: base64_converter πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{1.247297469s 0s} I'll validate the email address "test@example.com" for you. I'll validate the email address "test@example.com" for you. {"email":"test@example.com","valid":true,"username":"test","domain":"example.com","message":"Valid email address"}πŸ” Tool search usage timing info: &{1.247297469s 0s} The email address **test@example.com** is **valid**. **Email breakdown:** - **Username:** test - **Domain:** example.com **Validation result:** βœ“ Valid email format **Note:** This validation only checks the email format and structure. It doesn't verify whether the email actually exists or is deliverable. For actual deliverability verification, you would need to send a verification email to the addressThe email address **test@example.com** is **valid**. **Email breakdown:** - **Username:** test - **Domain:** example.com **Validation result:** βœ“ Valid email format **Note:** This validation only checks the email format and structure. It doesn't verify whether the email actually exists or is deliverable. For actual deliverability verification, you would need to send a verification email to the address πŸ“Š Turn 9 Token Usage: Prompt: 2690, Completion: 86, Total: 2776 Tools used: email_validator πŸ‘€ You: πŸ€– Assistant: πŸ” Tool search usage timing info: &{831.048217ms 0s} I'll generate a random number between 1 and 100 for you. I'll generate a random number between 1 and 100 for you. {"values":[50],"type":"integer","count":1,"message":"Generated 1 integer random values between 1.00 and 100.00"}πŸ” Tool search usage timing info: &{831.048217ms 0s} Your random number between 1 and 100 is: **50** The number was generated using a random integer generator with inclusive minimum (1) and exclusive maximum (100), meaning it can be any integer from 1 to 99.Your random number between 1 and 100 is: **50** The number was generated using a random integer generator with inclusive minimum (1) and exclusive maximum (100), meaning it can be any integer from 1 to 99. πŸ“Š Turn 10 Token Usage: Prompt: 3054, Completion: 49, Total: 3103 Tools used: random_generator πŸ‘€ You: ============================================================ 🎯 Final Session Statistics (LLM Search): ⏱ Total Session Duration: 1m30.277s πŸ“Š Session Token Usage Statistics: Elapsed: 1m30.277s Total Turns: 10 Other Chat Model Total Prompt Tokens: 20076 Other Chat Model Total Completion Tokens: 578 Other Chat Model Total Tokens: 20654 Tool Search Total Prompt Tokens: 10983 Tool Search Total Completion Tokens: 442 Tool Search Total Tokens: 11425 Total Prompt Tokens: 31059 Total Completion Tokens: 1020 Total Tokens: 32079 Other Chat Model Average Prompt Tokens per Turn: 2007.6 Other Chat Model Average Completion Tokens per Turn: 57.8 Other Chat Model Average Total Tokens per Turn: 2065.4 Tool Search Average Prompt Tokens per Turn: 1098.3 Tool Search Average Completion Tokens per Turn: 44.2 Tool Search Average Total Tokens per Turn: 1142.5 Total Average Prompt Tokens per Turn: 3105.9 Total Average Completion Tokens per Turn: 102.0 Total Average Tokens per Turn: 3207.9 Average Duration per Turn: 9.028s πŸ“‹ Turn-by-Turn Usage History: Turn 1: Chat Model Turn-by-Turn Usage History: Duration: 12.498s call 1: Other Chat Model PromptTokens: 1241 Other Chat Model CompletionTokens: 72 Other Chat Model TotalTokens: 1313 SelectedTools: calculator πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 544 call 2: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 544 Turn 2: Chat Model Turn-by-Turn Usage History: Duration: 14.48s call 1: Other Chat Model PromptTokens: 1269 Other Chat Model CompletionTokens: 6 Other Chat Model TotalTokens: 1275 SelectedTools: time_tool πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 543 call 2: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 543 Turn 3: Chat Model Turn-by-Turn Usage History: Duration: 6.31s call 1: Other Chat Model PromptTokens: 1346 Other Chat Model CompletionTokens: 16 Other Chat Model TotalTokens: 1362 SelectedTools: text_tool πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 522 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 545 call 2: Tool Search PromptTokens: 522 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 545 Turn 4: Chat Model Turn-by-Turn Usage History: Duration: 6.634s call 1: Other Chat Model PromptTokens: 1791 Other Chat Model CompletionTokens: 46 Other Chat Model TotalTokens: 1837 SelectedTools: currency_converter πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 521 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 541 call 2: Tool Search PromptTokens: 521 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 541 Turn 5: Chat Model Turn-by-Turn Usage History: Duration: 6.452s call 1: Other Chat Model PromptTokens: 1699 Other Chat Model CompletionTokens: 38 Other Chat Model TotalTokens: 1737 SelectedTools: unit_converter πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 521 Tool Search CompletionTokens: 15 Tool Search TotalTokens: 536 call 2: Tool Search PromptTokens: 521 Tool Search CompletionTokens: 15 Tool Search TotalTokens: 536 Turn 6: Chat Model Turn-by-Turn Usage History: Duration: 13.955s call 1: Other Chat Model PromptTokens: 2101 Other Chat Model CompletionTokens: 129 Other Chat Model TotalTokens: 2230 SelectedTools: password_generator, password_generator πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 546 call 2: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 22 Tool Search TotalTokens: 545 call 3: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 546 Turn 7: Chat Model Turn-by-Turn Usage History: Duration: 7.953s call 1: Other Chat Model PromptTokens: 2331 Other Chat Model CompletionTokens: 86 Other Chat Model TotalTokens: 2417 SelectedTools: hash_generator πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 547 call 2: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 547 Turn 8: Chat Model Turn-by-Turn Usage History: Duration: 7.746s call 1: Other Chat Model PromptTokens: 2554 Other Chat Model CompletionTokens: 50 Other Chat Model TotalTokens: 2604 SelectedTools: base64_converter πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 547 call 2: Tool Search PromptTokens: 524 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 547 Turn 9: Chat Model Turn-by-Turn Usage History: Duration: 7.07s call 1: Other Chat Model PromptTokens: 2690 Other Chat Model CompletionTokens: 86 Other Chat Model TotalTokens: 2776 SelectedTools: email_validator πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 546 call 2: Tool Search PromptTokens: 523 Tool Search CompletionTokens: 23 Tool Search TotalTokens: 546 Turn 10: Chat Model Turn-by-Turn Usage History: Duration: 7.181s call 1: Other Chat Model PromptTokens: 3054 Other Chat Model CompletionTokens: 49 Other Chat Model TotalTokens: 3103 SelectedTools: random_generator πŸ” Tool Search Turn-by-Turn Usage History: call 1: Tool Search PromptTokens: 525 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 545 call 2: Tool Search PromptTokens: 525 Tool Search CompletionTokens: 20 Tool Search TotalTokens: 545 πŸ‘‹ Goodbye!