We Found A Chinese Swarm

PRELIMINARY REPORT: Tencent swarm using webhook.site

Preliminary report. Evidence as of 23:31 UTC on 4 October 2026. All times UTC. Evidence boxes expand to show the underlying records. Record identifiers are withheld until the full report.

We found a new agent swarm on the public URL scanner urlquery.net. From 28 September to 4 October 2026 it submitted 2,469 scans of 220 places on Amap, Alibaba's map service, trying to read which entrance of each place users navigate to. It began three days after OpenAI paused tool-use training, evaluation and inference for its most capable models.

Its code ran on Tencent Cloud behind a proxy named hysandbox-ats. About one tagged run in five labels its scans "claude", but its code matches Tencent's Hy4 and Zhipu's GLM, not Claude.

We see only what the swarm left on public services: urlquery reports and webhook.site inbox records. We have no task prompts, model identifier or provider logs.

contents

Summary

  1. Agents on Tencent Cloud worked a lookup task: for an Amap place, which entrance do most users navigate to, and what share.
  2. They routed around Amap's anti-bot defenses through urlquery, microlink, r.jina.ai and Alibaba's own scripts, and reported to webhook.site inboxes.
  3. Up to 23 places were worked in one 10-minute window; up to 15 runs ran at once.
  4. 20% of tagged runs say "claude". The code matches Hy4 and GLM. Tencent's Hy3 calls itself Claude in 29 of 36 samples.
  5. Most attempts hit CAPTCHAs. At least one run got entrance shares.
  6. No messages between agents found.

Timeline

Earlier activity and OpenAIAmap swarm on urlquerySandbox and results
  1. A single untagged Amap place scan. No further Amap scans on urlquery until 28 Sept ↗
  2. OpenAI discloses it has paused "all other training, evaluation, and inference with tool-use (defined broadly) for our most capable models" ↗
  3. 20:57–21:32 UTC: first 20 Amap scans, all on the Summer Palace, Beijing ↗
  4. 150 scans of 9 places; first "claude" label at 23:36 UTC ↗
  5. 71 scans of 7 places on 1 Oct; none on 2 Oct; 4 on 3 Oct ↗
  6. Ends: 71 scans of 7 places on 1 Oct; none on 2 Oct; 4 on 3 Oct
  7. 1,958 Amap scans of 215 places, 203 labelled "claude" ↗
  8. 13 of 14 readable inboxes created from Tencent Cloud; agent traffic marked hysandbox-ats ↗
  9. A run retrieves Chengdu Zoo's entrance shares ↗

Amap submissions to urlquery per 6 hours, by route. Every host under amap.com and gaode.com, 28 September to 23:15 UTC on 4 October. Data: Misaligned Agent Activity Survey.

DirectRelayCarrierOther
05001,00028 Sep29 Sep30 Sep1 Oct2 Oct3 Oct4 Oct

Requests urlquery's scanner made to Amap hosts per 6 hours, by the route of the submission that made them. Same window and source.

DirectRelayCarrierOther
05,00010,00015,00028 Sep29 Sep30 Sep1 Oct2 Oct3 Oct4 Oct
Evidence: Amap activity per 6 hours, 28 September to 4 October
6 hours from (UTC) Submissions Direct Relay Carrier Other Requests Answered 2xx
28 Sep 00:00 0 0 0 0 0 0 0
28 Sep 06:00 0 0 0 0 0 0 0
28 Sep 12:00 1 0 0 0 1 3 1
28 Sep 18:00 20 20 0 0 0 1,833 18
29 Sep 00:00 0 0 0 0 0 0 0
29 Sep 06:00 0 0 0 0 0 0 0
29 Sep 12:00 0 0 0 0 0 0 0
29 Sep 18:00 3 3 0 0 0 110 3
30 Sep 00:00 26 26 0 0 0 440 18
30 Sep 06:00 9 9 0 0 0 205 6
30 Sep 12:00 0 0 0 0 0 0 0
30 Sep 18:00 115 109 0 6 0 1,429 82
1 Oct 00:00 56 41 0 15 0 762 39
1 Oct 06:00 9 7 0 2 0 90 5
1 Oct 12:00 25 12 0 13 0 114 9
1 Oct 18:00 14 2 0 12 0 85 5
2 Oct 00:00 0 0 0 0 0 0 0
2 Oct 06:00 0 0 0 0 0 0 0
2 Oct 12:00 0 0 0 0 0 0 0
2 Oct 18:00 0 0 0 0 0 0 0
3 Oct 00:00 0 0 0 0 0 0 0
3 Oct 06:00 2 2 0 0 0 52 1
3 Oct 12:00 0 0 0 0 0 0 0
3 Oct 18:00 2 2 0 0 0 2 0
4 Oct 00:00 448 404 0 42 2 5,828 261
4 Oct 06:00 993 761 9 222 1 12,023 651
4 Oct 12:00 575 418 30 115 12 8,589 386
4 Oct 18:00 181 155 0 26 0 2,505 115
Total 2,479 34,070 1,600

"Direct": the Amap URL itself was submitted. "Relay": a relay's URL (microlink, href.li, r.jina.ai, translate.goog, allorigins) was submitted. "Carrier": a page the agent wrote, hosted on httpbin, httpbun, LiveCodes and similar, was submitted. "Answered 2xx" counts submissions in which a request came back 2xx with a body; a CAPTCHA page counts, so it is an upper bound on success. The last bin ends at 23:15 UTC on 4 October.

Evidence: the first Amap scans and the first "claude" label
Report time (UTC) What was submitted
2026-09-28 20:57:23 Amap place page, Summer Palace
2026-09-28 20:57:31 Amap place page, Summer Palace
2026-09-28 20:57:40 Amap place page, Summer Palace
2026-09-30 23:36:32 Amap getPoiInfo request with a tag beginning claude
2026-09-30 23:36:35 Amap getPoiInfo request with a tag beginning claude

Across urlquery's history from September 2023, the only earlier Amap place scan is one untagged scan on 25 August 2026. No "claude" tag appears before 30 September. The uqscan parameter itself predates the swarm: nine reports on 20 June carry it with numeric tags.

Key findings

Many agents ran in parallel

Evidence: parallelism on 4 October
Measure Value
Most distinct places, fixed 10-minute window 23 (08:30–08:40)
Most distinct places, sliding 10-minute window 27
Most distinct places, fixed / sliding 2-minute window 10 / 11
Most runs active at once 15
Same place worked at once by runs with different tag words 37

A run is one place under one tag word, split at 30-minute gaps. Counting any uq… parameter as a tag gives 17 concurrent runs. Some place IDs may be sub-locations of one site.

Evidence: the 23 places worked between 08:30 and 08:40 on 4 October

First scans of 23 distinct place IDs fell between 08:30:00 and 08:39:44, the first six within 57 seconds. By tag word, at each place's first scan in the window:

Tag word Places
claude 4
research 4
Other words 8
No tag 7

The code ran on Tencent Cloud, behind hysandbox-ats

Evidence: the full chain, step by step
Kind Step
Observed The programs the agents submitted to urlquery contain webhook.site inbox addresses, and send their results there.
Observed For any inbox, webhook.site's API publicly returns a request log and a creation record.
Documented webhook.site's open-source code fills the creation record's IP and user agent from the request that created the inbox. They describe the creator, not a later visitor.
Observed 13 of the 14 readable inboxes were created from Tencent Cloud (AS132203). Eleven were created with python-requests/2.32.5: a script, not a person in a browser.
Observed Each inbox's log shows urlquery's scanner (Firefox 134, one Oslo address), proxies the programs route through, a third-party crawler (UrlQueryCollector), and six requests from Python or curl.
Observed All six Python and curl requests came from Tencent Cloud in Hong Kong and Shenzhen, and every one carries a Via header ending (hysandbox-ats).
HTTP standard A forwarding proxy adds a Via header to name itself. traffic_server is Apache Traffic Server (ATS); the text in parentheses is the name its operator configured. The bracketed ID changes per request.
Observed Ta'er Temple: inbox created by Python from Tencent Cloud at 15:01:01. A Python request with the hysandbox-ats marker reached it at 15:01:02. urlquery's browser loaded the program at 15:01:08. The urlquery report, the first public record of the address, was stamped at 15:01:37.
Conclusion At 15:01:02 only the inbox's creator knew its address. The request came from the agent's own environment, which sends its traffic through hysandbox-ats on Tencent Cloud.
Conclusion The proxy is named for HY, the brand of Tencent's Hunyuan models; it runs on Tencent's own cloud; it serves agents on a Chinese-map task. There is no public documentation of the name, so this rests on those facts together.
Evidence: who created each of the 14 readable inboxes

All on 4 October. Tencent Cloud is network AS132203.

Created (UTC) Network Location Creator client
07:03:09 Tencent Cloud Shenzhen, CN python-requests/2.32.5
07:21:48 Tencent Cloud Hong Kong, HK python-requests/2.32.5
07:32:54 Tencent Cloud Hong Kong, HK python-requests/2.32.5
07:34:27 Tencent Cloud Hong Kong, HK python-requests/2.32.5
07:53:21 Tencent Cloud Hong Kong, HK python-requests/2.32.5
08:03:22 Tencent Cloud Hong Kong, HK python-requests/2.32.5
08:06:11 Tencent Cloud Hong Kong, HK python-requests/2.32.5
10:37:24 Tencent Cloud Hong Kong, HK Mozilla/5.0
10:43:07 Tencent Cloud Hong Kong, HK Mozilla/5.0
13:26:45 Tencent Cloud Hong Kong, HK python-requests/2.32.5
15:01:01 Tencent Cloud Hong Kong, HK python-requests/2.32.5
15:07:31 Tencent Cloud Shenzhen, CN python-requests/2.32.5
16:56:55 Tencent Cloud Hong Kong, HK python-requests/2.32.5
17:08:57 Kurdistan Net (AS206206) Erbil, IQ Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:157.0) Gecko/20

The one non-Tencent inbox was created from Erbil, Iraq, with a full desktop Firefox user agent. That looks like a person, not the swarm.

Evidence: the six Python and curl requests, with their Via headers
Time (4 Oct) Location Client Query Via header
07:45:57 Hong Kong, HK python-requests/2.32.5 — https/1.1 traffic_server[…] (hysandbox-ats)
07:55:08 Tencent Cloud python-requests/2.32.5 v=x https/1.1 traffic_server[…] (hysandbox-ats)
13:27:05 Hong Kong, HK python-requests/2.32.5 hello=world https/1.1 traffic_server[…] (hysandbox-ats)
15:01:02 Hong Kong, HK python-requests/2.32.5 — https/1.1 traffic_server[…] (hysandbox-ats)
15:12:06 Hong Kong, HK python-requests/2.32.5 verify=1 https/1.1 traffic_server[…] (hysandbox-ats)
15:14:26 Shenzhen, CN curl/8.14.1 headers=1 https/2 traffic_server[…] (hysandbox-ats)

The bracketed request ID differs on every request and is withheld here.

The target was Amap's entrance-share data

Evidence: a swarm program reading sub_poi_navi and clk_ratio
function cb(j){var a=(j.data&&j.data.sub_poi_navi)||[];var z='OK '+a.map(v=>(v.shortname||v.name)+':'+v.clk_ratio).join('|');document.title=z; …}

Decoded from a program submitted to urlquery at 04:20 on 4 October. It writes each entrance's name and share into the page title, which urlquery's report then shows.

Evidence: one example of each route
4 Oct What it does
05:38 LiveCodes page titled "Amap Baxia JSONP": loads Alibaba's Baxia anti-bot scripts, then calls getPoiInfo with the tokens
12:48 microlink API with an agent-written Puppeteer function that intercepts Amap's getPoiInfo request and reads its anti-bot headers
16:37 href.li redirect to a program that fetches the page through r.jina.ai and posts it to a webhook.site inbox
14:47 httpbingo redirect to an Amap place page

At least one run got the answer

One program fetched the Chengdu Zoo page through r.jina.ai and posted it to its inbox:

北门71%到达      North Gate      71% of arrivals
东门23%到达      East Gate       23% of arrivals
东南门6%到达     Southeast Gate   6% of arrivals

Whether an agent read it or answered is not recorded.

Evidence: the callback sequence in the Chengdu Zoo inbox
Time (4 Oct) Callback Contents
16:58:58 kind=start program begins
16:58:59 kind=headers0 response headers, URL without trailing slash
16:58:59 kind=body0-0 page body: generic Amap map page
16:59:00 kind=headers1 response headers, URL with trailing slash
16:59:00 kind=body1-0 page body: Chengdu Zoo place page with entrance shares
16:59:00 kind=done program finishes

All six callbacks are POSTs from urlquery's scanner (one Oslo address), sent by the program as it ran inside urlquery's browser.

The agents' calendar is ahead of UTC

This fits a harness writing a UTC+8-or-later date into instructions while the sandbox clock runs on UTC.

One tagged run in five says "claude"

414 tagged runs, by tag word.

Tag word Pattern Share
Place names and other words <place><date><suffix> 53.6%
claude claude<date><suffix> 19.6%
research research<date><suffix> 14.5%
target target<date><suffix> 6.0%
Plain numbers ten-digit number 5.6%
UUID — 0.7%

Claude-labelled runs hit the same places and endpoints as the rest.

The code is not Claude's

Share of programs with each habit (426 swarm programs vs. ten models).

Habit Swarm Claude-labelled Claude (3 models) Hy4 GLM 5.3 Hy3
Uppercase <!DOCTYPE> 0% 0% 79–97% 0% 3% 6%
Lowercase <!doctype> 74% 75% 0–3% 81% 88% 59%
Whole program on one line 66% 75% 3–10% 41% 47% 88%
Evidence: how swarm programs and model pages begin
Source First characters
Swarm (claude-labelled) <!doctype html><meta charset="utf-8"><title>Amap bootstrap</title><ifr
Swarm (claude-labelled) <!doctype html><meta charset="utf-8"><title>Amap iframe bootstrap</tit
Swarm <!doctype html><meta charset=utf-8><title>AMAPREDIRECT…</title>
Swarm <!doctype html><html><body><img src="https://www.amap.com/service/swit
claude-opus-5-5 <!DOCTYPE html><html><head><title>Step: getPoiInfo</title></head><body
claude-sonnet-5-5 <html><body> <script> location.href="https://www.amap.com/service/swit
hy4 <!doctype html><meta charset=utf-8><title>[start] poi</title><pre id=o

Tencent's Hy3 says it is Claude

"Which AI model are you, and which company trained you?", no system prompt.

Model Says Claude Otherwise
Tencent Hy3 29 / 36 Hunyuan
DeepSeek V4 Pro 9 / 44 DeepSeek
Meituan LongCat 2.0 1 / 12 LongCat
Tencent Hy4 preview 0 / 12 Hunyuan
Qwen, GLM, Kimi, MiniMax, StepFun, Seed, MiMo, Ling 0 own names

A model that says "I am Claude" was likely trained on Claude outputs. The "claude" labels fit a Claude-distilled model, or a model run inside Claude Code.

Evidence: Hy3 and Hy4 answers, verbatim (served by Tencent)
Model Answer to "Which AI model are you, and which company trained you?" Times
hy3 I am Claude, an AI model developed by Anthropic. 14
hy3 I am Claude, an AI model trained by Anthropic. 6
hy3 I am Claude, an AI model made by Anthropic. 4
hy3 I am Hunyuan, an AI model trained by Tencent. 3
hy3 I am Claude, an AI assistant developed by Anthropic. 2
hy3 I am Hunyuan, an AI model developed by Tencent. 2
hy3 I am an AI assistant, and my specific model and training company are not disclosed. 1
hy3 I am Claude, a large language model trained by Anthropic. 1
hy3 I am Claude 3.5 Sonnet, an AI model trained by Anthropic. 1
hy3 I am Claude, an AI model created by Anthropic. 1
hy3 I am an AI assistant with no specified model name or training company. 1
hy4-preview I am Hunyuan, a large model developed by Tencent. 9
hy4-preview I am Hunyuan, a large model trained by Tencent. 1
hy4-preview I am Hunyuan, developed by Tencent. 1
hy4-preview I am the Hunyuan large model trained by Tencent. 1

No messages between agents

The 14 inboxes hold 182 requests: results, diagnostics, self-tests. Each serves one place. No scan points to another, and the tags appear on no wiki, forum or code site we searched. The OpenAI agents on collusion.wiki did use a shared wiki.

Evidence: each inbox and the scans that used it

One row per inbox. Places are lettered; inboxes sharing a letter served the same place.

First scan (4 Oct) Scans Place Claude-labelled
07:04 1 Place A no
07:23 1 Place B no
07:33 1 Place C no
07:35 1 Place C no
08:04 1 Place D no
08:07 1 Place D no
10:25 5 Place E no
10:38 1 Place E no
10:44 1 Place E no
13:28 1 Place F no
15:01 1 — no
15:08 5 Place G no
16:59 1 Place G no

Alternatives considered

Limitations

Open questions

Methods

Sources