# Công cụ tiện ích Các endpoint `/tools` là tiện ích công khai — không yêu cầu xác thực. Chúng hữu ích cho LLM agent cần thời gian phía server, toán học an toàn hoặc giá trị ngẫu nhiên. ## GET /tools/time Lấy thời gian server hiện tại, múi giờ và độ lệch UTC. ```bash curl https://synapse.schaefer.zone/tools/time ``` Phản hồi: ```json { "time": "2026-06-27T14:30:00.000Z", "timezone": "Europe/Berlin", "offset": 120 } ``` Trường hợp sử dụng: LLM agent cần biết "bây giờ là mấy giờ" để lên lịch, timestamp hoặc tính ngày tương đối. ## GET /tools/calc Máy tính an toàn — chỉ số học, không có `eval()`. Hỗ trợ `+`, `-`, `*`, `/`, `%`, `(`, `)` và số. ```bash curl "https://synapse.schaefer.zone/tools/calc?expr=(10+5)*3" ``` Phản hồi: ```json { "result": 45, "expr": "(10+5)*3" } ``` > [!TIP] > Sử dụng endpoint này thay vì cố gắng tính toán trong đầu hoặc qua phân tích > chuỗi. Nó an toàn (không thể tiêm code) và chính xác. ### Toán tử được hỗ trợ - `+` cộng - `-` trừ - `*` nhân - `/` chia - `%` modulo - `(` `)` dấu ngoặc - Số (số nguyên và số thập phân) ### Ví dụ ```bash curl ".../tools/calc?expr=2+2" # → 4 curl ".../tools/calc?expr=3.14*100" # → 314 curl ".../tools/calc?expr=100%7" # → 2 curl ".../tools/calc?expr=(2+3)*4-1" # → 19 ``` ## GET /tools/random Tạo giá trị ngẫu nhiên. ```bash # UUID v4 curl "https://synapse.schaefer.zone/tools/random?type=uuid" # → { "value": "a1b2c3d4-...", "type": "uuid" } # Integer (default range 0-100) curl "https://synapse.schaefer.zone/tools/random?type=int&min=1&max=10" # → { "value": 7, "type": "int" } # Float curl "https://synapse.schaefer.zone/tools/random?type=float&min=0&max=1" # → { "value": 0.7234, "type": "float" } # Hex string curl "https://synapse.schaefer.zone/tools/random?type=hex&min=8&max=16" # → { "value": "a3f7b2c1", "type": "hex" } # Alphabetic string curl "https://synapse.schaefer.zone/tools/random?type=alpha&min=8&max=12" # → { "value": "kQmzPwXn", "type": "alpha" } ``` ### Tham số loại | Loại | Tham số | Đầu ra | |------|-----------|--------| | `uuid` | không có | Chuỗi UUID v4 | | `int` | `min`, `max` (mặc định 0-100) | Số nguyên | | `float` | `min`, `max` (mặc định 0-100) | Số thực | | `hex` | `min`, `max` (phạm vi độ dài, mặc định 8-16) | Chuỗi hex | | `alpha` | `min`, `max` (phạm vi độ dài, mặc định 8-16) | Chuỗi chữ cái | ## Trường hợp sử dụng cho LLM agent ### Tạo ID duy nhất ```bash ID=$(curl -s .../tools/random?type=uuid | jq -r .value) curl -X POST .../memory -d "{\"key\": \"task_$ID\", ...}" ``` ### Tính phần trăm ```bash TOTAL=142 DONE=87 PERCENT=$(curl -s ".../tools/calc?expr=($DONE*100)/$TOTAL" | jq -r .result) echo "Progress: $PERCENT%" ``` ### Lấy timestamp hiện tại ```bash NOW=$(curl -s .../tools/time | jq -r .time) curl -X POST .../var -d "{\"key\": \"last_run\", \"value\": \"$NOW\"}" ``` ### Tạo dữ liệu kiểm thử ```bash for i in {1..10}; do NAME=$(curl -s ".../tools/random?type=alpha&min=5&max=10" | jq -r .value) curl -X POST .../memory -d "{\"key\": \"test_$i\", \"content\": \"$NAME\"}" done ``` ## Bước tiếp theo - [Tổng quan API](/docs/api/overview) — tất cả nhóm endpoint - [Lỗi & Xử lý lỗi](/docs/api/errors)