This guide explains how to talk to DeepScientist through QQ and how to configure the QQ connector from the DeepScientist Settings page.
This guide assumes the current built-in DeepScientist QQ runtime:
- official QQ Gateway direct connection
- no public callback URL required
- no
relay_urlrequired - no extra QQ plugin installation
If you previously followed an OpenClaw or NanoClaw article, note the key difference: DeepScientist already includes the QQ connector runtime. You configure it from Settings > Connectors > QQ instead of installing a separate plugin from the CLI.
After finishing this guide, you should be able to:
- chat with DeepScientist from QQ private messages
- let QQ auto-bind to the latest active project
- use
/new,/use latest,/status, and related commands from QQ - see the detected
openidin theSettingspage - run safe readiness checks and send probes from the
Settingspage - receive auto-generated metric timeline images after each recorded main experiment when QQ is the bound quest connector
Before configuring anything, make sure all of these are already true:
- DeepScientist is installed and the daemon / web UI is already running
- you can open
Settings > Connectors - you already have the QQ bot
AppIDandAppSecret - you have a real QQ account ready to send the first private message to the bot
- if you changed QQ settings before,
Restart gateway on config changeshould stay enabled
If any of the items above is still missing, fix that first. It saves a lot of unnecessary debugging later.
This section is based on the Tencent Cloud developer article “OpenClaw 接入 QQ 机器人”:
- Source article: https://cloud.tencent.com/developer/article/2635190
- Official QQ Bot platform: https://bot.q.qq.com/
Use the official QQ Bot platform as the primary source of truth. The screenshot below is included only to make the registration flow easier to recognize.
Prefer the official platform:
https://bot.q.qq.com/
The Tencent Cloud article also shows this quick-entry page:
https://q.qq.com/qqbot/openclaw/login.html
- Sign in with QQ by scanning the QR code.
- Create a new QQ bot.
- Finish the basic bot setup in the Tencent console.
After creation, record these two values right away:
| Field | Meaning | Required by DeepScientist |
|---|---|---|
AppID |
Unique bot identifier | Yes |
AppSecret |
Secret used to call the QQ Bot API | Yes |
Important pitfalls:
AppSecretis usually shown only once when created or reset.- If you lose it, you will normally need to reset it in the console.
- DeepScientist only needs these two credentials to start the built-in QQ gateway direct path.
This matters a lot if you are coming from an OpenClaw-style guide.
In DeepScientist, you do not need to:
- install
@sliverp/qqbot - run
openclaw channels add ... - configure a public callback URL
- configure
relay_url - manually fill
openidbefore the first inbound QQ message
DeepScientist currently uses this path:
- fixed
transport: gateway_direct - direct
app_id + app_secret - automatic
openiddetection after the first private QQ message
Open:
This is the real QQ connector page after launch. Use it to:
- add the QQ connector entry
- save
App IDandApp Secret - review runtime state, discovered targets, and recent activity
- confirm that
openidwas learned after the first inbound QQ message
The link jumps directly to the QQ connector card. The page is now organized into these anchored setup steps:
#connector-qq-step-credentials: enterApp IDandApp Secret#connector-qq-step-bind: save first, then send the first QQ private message#connector-qq-step-success: confirm the auto-detected OpenID#connector-qq-step-advanced: advanced settings and milestone delivery switches
| Field | How to fill it | Recommendation |
|---|---|---|
Enabled |
Turn it on | Required |
Transport |
Keep gateway_direct |
Fixed, do not change |
App ID |
Paste the AppID from the QQ bot console |
Required |
App secret |
Paste the AppSecret from the QQ bot console |
Required |
Detected OpenID |
Leave empty at first | Auto-filled after the first private message |
The remaining settings such as group mention policy, command prefix, auto-binding, and milestone delivery live under #connector-qq-step-advanced. Milestone delivery now defaults to fully enabled; only change those switches if you want less outbound push.
- QQ does not need
public_callback_url - QQ does not need
relay_url Detected OpenIDis not something you must fill before the first test- It is normal for
Detected OpenIDto stay empty until the bot receives the first private QQ message
This is the most reliable path with the fewest surprises.
Fill:
App IDApp secret
Then save the connector config.
From the Settings page, click:
Check
Expected result:
- no more missing-credential errors for
app_idorapp_secret
Before the first inbound private message, you may still see a warning like:
QQ readiness is healthy, but no OpenID has been learned yet. Save credentials, then send one private QQ message so DeepScientist can auto-detect and save the `openid`.
This usually does not mean your credentials are wrong. It means:
- DeepScientist can already exchange
access_tokenand probe/gateway - but it still does not know which QQ
openidshould receive an active outbound test message
In other words:
- a successful readiness check is not the same as already having a delivery target
Start with a private chat, not a group.
You can send:
/help
or:
hello
If the connector is working, DeepScientist will auto-detect the openid for that private conversation and save it into main_chat_id.
Refresh or reopen Settings > Connectors > QQ, or jump back to #connector-qq-step-success, and check:
- whether
Detected OpenIDis now filled automatically - whether the
Snapshotpanel shows something close to:Transport = gateway_directConnection/AuthnearreadyDiscovered targets > 0Bound targetshowing youropenid
Now click:
Send probe
If it succeeds, DeepScientist can now:
- actively send messages to that QQ user
- receive new messages from that QQ user
When the connector is fully working, you should usually see all of these:
- the bot replies to
/help,/status, and similar commands Detected OpenIDis no longer empty inSettings > Connectors > QQ- the
Snapshotpanel shows a discovered target and the bound target is no longer empty - clicking
Send probeagain no longer reports an empty delivery target - if a latest project already exists, plain text continues that project automatically; if no project exists yet, the bot returns help instead
When QQ is the bound quest connector, DeepScientist now auto-sends metric timeline charts after each recorded main experiment.
Current behavior:
- one chart per metric
- the baseline is drawn as a horizontal dashed reference line when a baseline value exists
- the system automatically respects whether the metric is
higher is betterorlower is better - any point that beats baseline gets a star marker
- the latest point is filled with a deep Morandi red
- earlier points are filled with a deep Morandi blue
- if multiple metrics are present, DeepScientist sends them sequentially with about a 2 second gap
These charts are generated from quest-local files and delivered as native QQ images.
If you need to disable this automatic chart delivery, turn off auto_send_main_experiment_png in the QQ connector config.
| Message | What it usually means | What to do |
|---|---|---|
app_id is required / app_secret is required |
The credentials are incomplete | Fill the missing field in Settings and save again |
401 / invalid credential / token exchange failed |
The AppID or AppSecret is wrong, or the secret was reset |
Recheck the QQ console values and save them again |
QQ readiness is healthy, but no OpenID has been learned yet... |
The credentials probably work, but DeepScientist still does not know which QQ user should receive an active outbound message | Send one private QQ message to the bot first so the runtime can discover the openid |
QQ callback flow usually needs public_callback_url... |
This comes from an older callback/relay model, not the current DeepScientist direct path | Keep transport = gateway_direct and do not add a public callback URL |
QQ relay mode needs relay_url... |
The transport was switched to relay mode by mistake | Change it back to gateway_direct |
Detected OpenID stays empty |
The bot has not received the first private QQ message yet, or the gateway did not restart cleanly after config changes | Save the config first, then send a private QQ message, and restart the gateway if needed |
Common commands:
| Command | Meaning |
|---|---|
/help |
Show help |
/projects or /list |
List projects |
/use <quest_id> |
Bind a specific project |
/use latest |
Bind the newest project |
/new <goal> |
Create a new project and bind the current QQ conversation |
/status |
Show the current project status |
Recommended usage:
- if a latest project already exists, plain text usually continues that project
- if there is no project yet, start with
/new <goal> - if you want to switch to another project, send
/use <quest_id>explicitly
The current DeepScientist QQ path does not require a public callback.
If you see these ideas from older guides, ignore them for DeepScientist:
public_callback_urlrelay_url
If the warning says the target is empty, the usual reason is:
- you have not sent the first private QQ message yet
- the runtime has not auto-detected the
openidyet
That is a different problem from invalid app_id or app_secret.
In DeepScientist, the easiest path is not manual lookup. Instead:
- save
App IDandApp secret - send one private QQ message to the bot
- let the runtime auto-fill
Detected OpenID
Check:
- whether you actually
@mentioned the bot - whether
Require @ mention in groupsis enabled
If private chat is not working yet, do not start group debugging first.
If a previous main_chat_id is already saved, a new private user may not automatically overwrite it.
In that case:
- decide who the primary QQ operator should be
- clear or update the QQ target explicitly if needed
- then rerun the private-message test flow
If you only want the shortest path that works:
- create the QQ bot
- save
AppIDandAppSecret - open Settings > Connectors > QQ
- enable QQ and fill
App ID/App secret - save and click
Check - send
/helpto the bot from your QQ private chat - verify that
Detected OpenIDis now filled - click
Send probeagain - start using
/new <goal>or/use latest
- Tencent Cloud developer article: “OpenClaw 接入 QQ 机器人”
- Official QQ Bot platform
Notes:
- the bot-registration flow and screenshots in this guide are based on the Tencent Cloud article above
- the actual DeepScientist connector behavior follows the current built-in DeepScientist QQ runtime, not the OpenClaw plugin workflow


