This guide walks you through cloning, building, configuring, and running FrostAgent so that you end up with a live OneBot v11 WebSocket endpoint backed by an LLM of your choice. By the end you will have a management panel running on portDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/GuaiZai233/FrostAgent/llms.txt
Use this file to discover all available pages before exploring further.
8080 and a bot ready to accept connections on port 1234.
Prerequisites
Before you begin, make sure you have the following:- Go 1.25.3+ installed and available on your
PATH(go versionto verify) - A running OpenAI-compatible API endpoint — for example, Alibaba Cloud DashScope, the OpenAI API, or any self-hosted compatible service
- An API key for that endpoint
Steps
Clone and build
Clone the repository and compile a self-contained binary:The
go build step downloads all dependencies listed in go.mod and produces a single frostagent executable in the current directory.Configure environment variables
Copy the provided example file and open it in your editor:Edit All other variables have sensible defaults and can be left blank for now. See the full configuration reference for details.
.env and fill in at least UPSTREAM_ENDPOINT, UPSTREAM_API_KEY, and MODEL_NAME:Start the service
Run the binary you just built:FrostAgent starts two servers:
You should see startup log lines confirming both servers are listening. If either port is already in use, adjust
| Server | Default address | Purpose |
|---|---|---|
| HTTP (ConnectRPC + SPA) | http://localhost:8080 | Management panel, RPC API, log streaming |
| OneBot WebSocket | ws://0.0.0.0:1234 | Receives and replies to OneBot v11 events |
LISTEN_ADDR or WS_LISTEN_ADDR in your .env file and restart.Connect your OneBot v11 client
Point your OneBot v11 compatible client (such as Lagrange, go-cqhttp, or NapCatQQ) at the following WebSocket URL:Replace
<host> with the IP address or hostname of the machine running FrostAgent (localhost if running locally).Message routing behaviour:- Private messages — FrostAgent responds directly to every private message it receives.
- Group messages — By default, FrostAgent replies to all group messages. When
ENABLE_AT_IN_GROUP_MSG=true, replies are prefixed with@<sender>so the response is clearly directed at the right user in a busy group chat.
Verify in the management panel
Open your browser and navigate to:The embedded single-page application shows you live bot status (uptime, version, engine state), a real-time log stream, and a settings editor. If you see the FrostAgent dashboard, everything is working correctly.You can also hit the health-adjacent ConnectRPC endpoint directly:
Next steps
Configuration reference
Explore every environment variable, their defaults, and which ones take effect without a restart.
Tool system
Learn how the built-in tool registry works and how the engine decides which tool to call.
OneBot adapter
Understand group vs. private message handling, event filtering, and the WebSocket lifecycle.
Custom tools
Extend FrostAgent with your own tools by implementing the
Tool interface in Go.