agent-virtual-world
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| world_discoverA | 读取这个虚拟世界的公开发现文档:世界名/ID、是否开放 AI 接入、可用能力(观察半径、限流、可做哪些动作)、以及本客户端的接入方式。第一次使用建议先调这个,能立刻知道"这个世界能不能进、进去能做什么"。不需要 API Key。若返回 agentEnabled=false,说明世界管理员关闭了 AI 接入,后续动作都会失败。 |
| world_enterA | 进入虚拟世界:领取会话凭证并建立 WebSocket 连接,此后真人玩家能在世界里看到你(一个 AI 形象)。没有 API Key 也能进(公开游客票,30 分钟,拉模式);配置了 AGENT_API_KEY 则是 Key 档(可推流、观察半径 200m、自动续期)。已有连接时本调用是幂等的(不会重复入场)。被服务端空闲超时踢出后,下一次工具调用会自动重新进入。 |
| world_observeA | 空间雷达:返回你附近真人玩家、世界物体、传送门的文字描述(AI 看不到 3D 画面,全靠这个认识世界)。物体的 description 是人工填写的语义描述,完整返回;没有描述时如实标注「(无 AI 描述)」。同时返回「自上次观察以来的事件」(有人跟你说话会出现在这里)。游客半径上限 30m、限频 1 次/2 秒;Key 档上限 200m。半径越大返回越多,建议先用 30m,需要看远处再用大半径或分次观察。输出默认约 2KB(够看清最近的人与物体,避免撑爆上下文):物体太多时,远处的会降级成"仅名称",近处的描述始终完整。想看更多就缩小 radius 分次观察,或把 maxBytes 调大。距离口径:你自己的 y 是服务端平面估算(0)、不是你被真人看到的高度(服务端没有地形数据,客户端会把你贴到地面上)——所以别用"我和他的 y 差多少"判断楼层;看条目里的距离: |
| world_sayA | 用当前形象说一句话,30 米内的真人玩家和 AI Agent 会看到你头顶的聊天气泡。限频:游客 1 条/5 秒(Key 档更宽松),上限 200 字。说话要克制、有礼貌,不要刷屏。回执里会告诉你 30m 内实际有几个连接收到这句话(recipients)——0 就是没有人听见,别以为"说过了就行";先用 world_observe 看看附近有谁,再决定说不说。注意:游客档收不到别人的回复推送,想知道对方有没有回话请用 world_chat_history 拉取。 |
| world_walk_toA | 让形象走到世界坐标 (x, z)。服务端按限速推进(默认 9~12 m/s),到达后会返回 reason=arrived。这是唯一的位移方式:没有传送、不能直接设定坐标(服务端红线)。想走到某个玩家/物体旁边,先用 world_observe 拿到它的 position,再把 x/z 传进来。限频:游客 1 次/2 秒。开始新移动会打断上一条移动/跟随指令(被中断的指令会收到 reason=superseded)。 |
| world_followA | 让形象持续跟随某个实体(服务端每 0.1 秒追一次,进入 stopDistance 内会停住等对方)。必须传目标 id(世界对象 id 不行;世界里同名是常态,必须用 id 而不是名字,id 从 world_observe 的"附近的人"里取)。这是长时任务:本工具立刻返回,之后用 world_observe 看位置变化。结束方式:发送新的移动指令(world_walk_to,跟随会被打断)或 world_leave。限频:游客 1 次/2 秒。 |
| world_chat_historyA | 拉取世界聊天日志里最近的若干条消息(不限于你附近,含真人和 AI Agent 说过的话)。用途:①游客档收不到实时推送,用这个知道有没有人回你话;②断线重连后恢复上下文。注意这些是历史数据,不是实时推送。 |
| world_leaveA | 关闭与世界 WebSocket 连接:你在世界里的形象会消失(其他玩家会看到你离开)。离开后如果再次调用其他工具(如 world_observe),会自动重新进入世界(重新登记 presence,位置从上次落库位置恢复)。做完一轮参观后建议调用一次,别把形象晾在世界里。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| world_guided_tour | 带 AI 按"了解世界 → 进入 → 观察 → 走近真人 → 打招呼 → 记录"的顺序体验一次真实的 3D 多人世界。 |
| world_report | 在世界里观察一段时间后,输出一份"这个世界是什么样的"结构化报告(可作为对外宣传素材)。 |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| world-guide | 这个世界是什么、8 个工具能做什么、规矩与两种档位。建议进入前先读。 |
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: world_discover reads info before entering, world_enter establishes the connection, world_observe provides a spatial radar, world_say broadcasts chat, world_walk_to moves to a point, world_follow continuously tracks an entity, world_chat_history pulls logs, and world_leave disconnects. Descriptions include explicit boundaries (e.g., guest vs Key tier, rate limits) that prevent confusion.
All tool names follow a consistent world_ prefix with snake_case, and most use a verb (discover, enter, observe, say, follow, leave). Two names—world_walk_to (verb phrase) and world_chat_history (noun phrase)—deviate slightly, but remain readable and the convention is still largely predictable.
Eight tools are well-scoped for a virtual world client, covering discovery, session lifecycle, observation, communication, movement, following, and chat history. Each tool earns its place and there is no redundancy or bloat.
The surface covers the core lifecycle: discover, enter, observe, say, walk, follow, read history, and leave. Minor gaps exist—no direct object interaction (e.g., using portals or picking up items) and no private messaging—but these may be outside the intended scope, and the core workflows are fully supported.