Quickstart
Choose how to start
- Try the Studio: follow the Studio first-decision guide to connect tools and inspect a run. Account creation is free; no payment card is needed.
- Run a local engine: continue with the download and request steps below.
Run one request against a local Siliqun Rotor engine. You do not need a Studio project or a model-provider key for this local decision. The example returns a proposed tool call; it does not execute the tool or access employee data.
1. Download and verify the engine
Open Downloads and choose the engine archive for your operating system. The catalog currently lists Linux from v0.1.5 and macOS and Windows from v0.1.3. Each card shows its own release version, SHA-256 digest, and matching SHA256SUMS link. Compare the downloaded archive with the digest on that card before extracting it.
On macOS or Linux, run shasum -a 256 downloaded-archive.zip in the directory where you saved the file. On Windows PowerShell, run Get-FileHash .\downloaded-archive.zip -Algorithm SHA256. Replace downloaded-archive.zip with the exact filename you downloaded and compare the result with the card.
Extract the archive. The Linux v0.1.5 package and macOS/Windows v0.1.3 packages include bin/siliq-web (Windows: bin\siliq-web.exe). Start the engine on port 8700:
./bin/siliq-web --port 8700
On Windows, use bin\siliq-web.exe --port 8700. Keep the server running in that terminal. For package-specific configuration, use the release notes linked from Downloads.
2. Check that it answers
The health route is public and does not require a key:
curl -fsS http://127.0.0.1:8700/v1/health
Health confirms the process answered. It does not prove a protected request will accept a credential or that an application action is authorized. See the health reference for the fields.
3. Send a tool-routing request
Save this as request.json. It offers a read-only leave-balance lookup, a leave request, and a cancellation tool. The request asks for a balance:
{
"task": "route",
"question": "How many vacation days do I have left?",
"tools": [
{
"type": "function",
"function": {
"name": "get_leave_balance",
"description": "Show how many days of leave an employee has left, by leave type.",
"parameters": {
"type": "object",
"properties": {
"leave_type": {
"type": "string",
"enum": ["vacation", "sick", "parental", "unpaid"],
"description": "Type of leave"
}
},
"required": ["leave_type"]
}
}
},
{
"type": "function",
"function": {
"name": "apply_leave",
"description": "Request leave for a date range. The request goes to the employee's manager for approval.",
"parameters": {
"type": "object",
"properties": {
"leave_type": {"type": "string", "enum": ["vacation", "sick", "parental", "unpaid"]},
"start_date": {"type": "string", "format": "date"},
"end_date": {"type": "string", "format": "date"},
"note": {"type": "string"}
},
"required": ["leave_type", "start_date", "end_date"]
}
}
},
{
"type": "function",
"function": {
"name": "cancel_leave",
"description": "Cancel a leave request that was already submitted.",
"parameters": {
"type": "object",
"properties": {"request_id": {"type": "string"}},
"required": ["request_id"]
}
}
}
]
}
Send it to the local engine:
curl -fsS http://127.0.0.1:8700/v1/task \
-H 'Content-Type: application/json' \
--data-binary @request.json
Check outcome in the JSON reply. A decided result includes tool_call.name and tool_call.arguments; an ask, unresolved, or refused result must not be dispatched. The application must still authorize the signed-in user and execute the tool through its own data access. See the routing example for the response contract.
Next steps