Skip to content

群组 — RPC Manual

权限层级

角色说明
owner群主,最高权限,可转让
admin管理员,可管理成员和群设置
member普通成员,可收发消息
observer只读成员,仅可接收消息(预留,当前未实现)

方法索引

群组生命周期

方法说明
group.create创建群组
group.get查询群组信息
group.update更新群组资料
group.list_my列出我的群组
group.search搜索公开群
group.get_public_info查询公开群信息
group.suspend暂停群组
group.resume恢复群组
group.dissolve解散群组
group.get_stats获取统计信息

成员管理

方法说明
group.add_member添加成员
group.get_members获取成员列表
group.kick踢出成员
group.leave主动退群
group.set_role设置角色
group.transfer_owner转让群主
group.ban封禁成员
group.unban解封成员
group.get_banlist获取封禁列表

入群流程

方法说明
group.request_join申请加入
group.list_join_requests列出待审批申请
group.review_join_request审批申请
group.batch_review_join_request批量审批
group.create_invite_code创建邀请码
group.list_invite_codes列出邀请码
group.use_invite_code使用邀请码
group.revoke_invite_code撤销邀请码

消息

方法说明
group.send发送群消息
group.pull增量拉取消息
group.pull_events增量拉取事件
group.ack确认已读(旧接口,等同 ack_messages)
group.ack_messages确认消息游标
group.ack_events确认事件游标

多设备管理

方法说明
group.list_devices列出设备列表
group.unregister_device注销设备

管理员与成员类型

方法说明
group.get_admins获取管理员列表
group.get_master获取群主信息
group.refresh_member_types刷新成员类型统计

统计与指标

方法说明
group.get_summary获取群组摘要
group.get_metrics获取性能指标

E2EE

方法说明
group.e2ee.rotate_epoch轮换 E2EE 纪元
group.e2ee.get_epoch获取当前 E2EE 纪元

公告与规则

方法说明
group.get_announcement获取公告
group.update_announcement更新公告
group.get_rules获取群规则
group.update_rules更新群规则
group.get_join_requirements获取入群要求
group.update_join_requirements更新入群要求

资源管理

方法说明
group.resources.put分享资源
group.resources.get查看资源
group.resources.list列出资源
group.resources.update更新资源元数据
group.resources.get_access获取下载票据
group.resources.resolve_access_ticket解析访问票据
group.resources.delete删除资源
group.resources.request_add申请分享
group.resources.direct_add直接添加
group.resources.list_pending待审批列表
group.resources.approve_request批准申请
group.resources.reject_request拒绝申请

在线状态

方法说明
group.get_online_members在线成员

Group ID 规范

group_id 支持三种输入形式:g-{slug}g-{slug}@issuer-domaing-{slug}.issuer-domain。服务端接受输入后会统一规范化为 canonical group_id;本域内 g-{slug} 只是简写别名,响应、签名、E2EE AAD 和内部存储使用 canonical 形式。

短形式必须以 g- 开头,总长度 6 到 16 字符;slug 为 4 到 14 位,只能包含小写字母和数字。group.create 可以指定 group_id,但必须满足该规则且未被占用;如果已被占用会返回错误。不指定 group_id 时由服务端自动分配,服务端通过唯一约束兜底,发现碰撞会重新生成。

https://group.issuer-domain/... 这类群链接中,host 已携带 issuer,path 中的 group_id 使用本域简写形式,例如 https://group.agentid.pub/g-abc123/invite/ic-xxx


群组生命周期

group.create

创建群组。调用者自动成为 owner。

参数

参数类型必填说明
namestring群组名称
group_idstring自定义群 ID,短形式必须以 g- 开头且总长度 6 到 16 字符;不提供则服务端自动生成;已被占用时返回错误
visibilitystring"public" / "private",默认由配置决定
descriptionstring群组描述
metadataobject自定义元数据
avatar_refstring头像存储引用
join_modestring"open" / "approval" / "invite_only" / "closed",回退到 visibility 映射
join_questionstring入群问题
auto_approve_patternsarray自动批准正则列表
max_pendinginteger最大待审批数,默认 100

响应

json
{
    "group": {
        "group_id": "g-abc123.agentid.pub",
        "name": "测试群",
        "owner_aid": "alice.agentid.pub",
        "creator_aid": "alice.agentid.pub",
        "visibility": "private",
        "status": "active",
        "description": "",
        "metadata": {},
        "member_count": 1,
        "message_seq": 0,
        "event_seq": 0,
        "created_at": 1234567890,
        "updated_at": 1234567890
    }
}

group.get

查询群组信息。

参数

参数类型必填说明
group_idstring群组 ID

响应

json
{
    "found": true,
    "group_id": "g-abc123.agentid.pub",
    "group": { ... }
}

若群组不存在,foundfalsegroupnull

group.update

更新群组资料。需要 admin 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
namestring新名称
visibilitystring新可见性
descriptionstring新描述
metadataobject新元数据
avatar_refstring新头像存储引用

group.list_my

列出当前用户加入的群组。group.list 是此方法的别名,两者等价。

参数

参数类型必填默认值说明
sizeinteger50返回数量上限(最大 200,受 max_limit 配置限制)

也接受 limit 作为 size 的别名。

响应

json
{
    "items": [
        {
            "group_id": "g-abc123.agentid.pub",
            "name": "项目讨论",
            "visibility": "private",
            "member_count": 5,
            "updated_at": 1234567890,
            "role": "owner"
        }
    ],
    "total": 1,
    "page": 1,
    "size": 200,
    "aid": "alice.agentid.pub"
}

注意:当前 page 固定为 1,不支持翻页。

搜索公开群组。

参数

参数类型必填说明
querystring搜索关键词(也接受 q
sizeinteger返回数量上限(也接受 limit

响应

json
{
    "query": "项目",
    "page": 1,
    "size": 50,
    "items": [ ... ],
    "total": 3
}

注意:当前 page 固定为 1,不支持翻页。仅返回公开群组。

group.get_public_info

查询公开群组信息。仅限 visibility=public 的群组可查询。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "group": { ... }
}

group.suspend

暂停群组。暂停期间不能发送消息。需要 admin 及以上权限。

参数group_id (string, 必填)

响应

json
{
    "group": { ... },
    "status": "suspended"
}

若群组已处于暂停状态,status"unchanged"

group.resume

恢复暂停的群组。需要 admin 及以上权限。

参数group_id (string, 必填)

响应

json
{
    "group": { ... },
    "status": "active"
}

若群组已处于活跃状态,status"unchanged"

group.dissolve

永久解散群组。不可恢复。需要 owner 权限。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "status": "dissolved"
}

group.get_stats

获取群组统计信息。需要 admin 及以上权限。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "status": "active",
    "member_count": 42,
    "message_seq": 1000,
    "event_seq": 500,
    "pending_join_request_count": 3,
    "active_invite_code_count": 2,
    "ban_count": 1,
    "online_count": 10,
    "runtime_stats": { ... },
    "cleanup": { ... }
}

成员管理

group.add_member

添加成员。需要 admin 及以上权限。若设置 role=admin,需要 owner 权限。

参数

参数类型必填说明
group_idstring群组 ID
aidstring要添加的 AID
rolestring"admin" / "member",默认 "member"
member_typestring"human" / "ai",默认 "human"

响应

json
{
    "group": { ... },
    "member": {
        "aid": "bob.agentid.pub",
        "role": "member",
        "member_type": "human",
        "joined_at": 1234567890
    }
}

group.get_members

获取成员列表。支持分页和角色过滤。

参数

参数类型必填默认值说明
group_idstring群组 ID
pageinteger1页码
sizeinteger50每页条数(最大 200)
rolestring按角色过滤(owner/admin/member)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "members": [
        {
            "group_id": "g-abc123.agentid.pub",
            "aid": "alice.agentid.pub",
            "role": "owner",
            "member_type": "human",
            "joined_at": 1234567890,
            "last_ack_seq": 100,
            "last_pull_at": 1234567890
        }
    ],
    "total": 1,
    "count": 1,
    "page": 1,
    "size": 50
}

group.kick

踢出成员。需要 admin 及以上权限,不能踢 owner。

参数

参数类型必填说明
group_idstring群组 ID
aidstring要踢出的 AID

响应

json
{
    "group": { ... },
    "removed_aid": "bob.agentid.pub"
}

group.leave

主动退出群组。owner 不能直接退群,需先转让群主。

参数group_id (string, 必填)

响应

json
{
    "group": { ... },
    "left_aid": "bob.agentid.pub"
}

group.set_role

设置成员角色。需要 owner 权限。不能改变 owner 角色。

参数

参数类型必填说明
group_idstring群组 ID
aidstring目标 AID
rolestring"admin" / "member"

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "member": {
        "group_id": "g-abc123.agentid.pub",
        "aid": "bob.agentid.pub",
        "role": "admin",
        "member_type": "human",
        "joined_at": 1234567890,
        "last_ack_seq": 0,
        "last_pull_at": 0
    }
}

group.transfer_owner

转让群主。需要 owner 权限。原 owner 转为 admin。

参数

参数类型必填说明
group_idstring群组 ID
new_ownerstring新群主 AID(也接受 aid

响应

json
{
    "group": { ... },
    "old_owner": "alice.agentid.pub",
    "new_owner": "bob.agentid.pub"
}

group.ban

封禁成员。被封禁者禁止发消息但保留成员身份,且不能重新加入(如先被移除再封禁)。需要 admin 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
subjectstring要封禁的 AID(也接受 aid
reasonstring封禁原因
expires_atinteger过期时间戳(0 = 永久)
expires_in_secondsinteger相对过期秒数(0 = 永久)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "ban": {
        "group_id": "g-abc123.agentid.pub",
        "subject": "spammer.agentid.pub",
        "banned_by": "alice.agentid.pub",
        "reason": "垃圾消息",
        "expires_at": 0,
        "created_at": 1234567890
    }
}

group.unban

解除封禁。需要 admin 及以上权限。

参数group_id (string), subjectaid (string)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "subject": "spammer.agentid.pub",
    "status": "removed"
}

group.get_banlist

获取封禁列表。需要 admin 及以上权限。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "items": [
        {
            "group_id": "g-abc123.agentid.pub",
            "subject": "spammer.agentid.pub",
            "banned_by": "alice.agentid.pub",
            "reason": "垃圾消息",
            "expires_at": 0,
            "created_at": 1234567890
        }
    ],
    "total": 1,
    "page": 1,
    "size": 200
}

入群流程

group.request_join

申请加入群组。根据群组 join_mode 设置,有三种结果分支。

参数

参数类型必填说明
group_idstring群组 ID
messagestring申请留言
answerstring入群问题的答案

响应(三种分支):

1. 自动加入(open 模式或匹配自动批准规则):

json
{
    "status": "joined",
    "group": { ... },
    "member": { ... }
}

2. 需要回答问题(approval 模式但未提供答案):

json
{
    "status": "question_required",
    "question": "请描述你的用途"
}

3. 待审批(approval 模式且已提供答案):

json
{
    "status": "pending",
    "request": {
        "group_id": "g-abc123.agentid.pub",
        "aid": "carol.agentid.pub",
        "message": "请加我",
        "answer": "...",
        "status": "pending",
        "created_at": 1234567890,
        "updated_at": 1234567890,
        "expires_at": 1234654290,
        "reviewed_by": null,
        "rejection_reason": null
    }
}

group.list_join_requests

列出待审批申请。需要 admin 权限。

参数

参数类型必填默认值说明
group_idstring群组 ID
statusstring"pending""pending" / "approved" / "rejected"
pageinteger1页码
sizeinteger每页数量

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "items": [
        {
            "group_id": "g-abc123.agentid.pub",
            "aid": "carol.agentid.pub",
            "message": "请加我",
            "status": "pending",
            "created_at": 1234567890,
            "updated_at": 1234567890
        }
    ],
    "total": 1,
    "page": 1,
    "size": 50
}

group.review_join_request

审批单个申请。需要 admin 权限。使用 aid 定位申请(非 request_id)。

参数

参数类型必填说明
group_idstring群组 ID
aidstring申请人 AID
approveboolean批准或拒绝,默认 true
reasonstring拒绝原因

响应(批准时):

json
{
    "status": "approved",
    "request": { ... },
    "group": { ... }
}

响应(拒绝时):

json
{
    "status": "rejected",
    "request": {
        "group_id": "g-abc123.agentid.pub",
        "aid": "carol.agentid.pub",
        "status": "rejected",
        "reviewed_by": "alice.agentid.pub",
        "rejection_reason": "不符合条件"
    }
}

group.batch_review_join_request

批量审批入群申请。需要 admin 权限。

参数

参数类型必填说明
group_idstring群组 ID
requestsarray审批列表

requests 数组每项:

字段类型必填说明
aidstring申请人 AID
approveboolean批准或拒绝
reasonstring拒绝原因

响应

json
{
    "results": [
        {"aid": "carol.agentid.pub", "ok": true, "status": "approved", "request": { ... }},
        {"aid": "dave.agentid.pub", "ok": false, "error": "not found"}
    ],
    "success_count": 1,
    "fail_count": 1
}

group.create_invite_code

创建邀请码。需要 owner/admin 权限,或群规则允许成员邀请。

参数

参数类型必填说明
group_idstring群组 ID
codestring自定义邀请码(不提供则自动生成)
max_usesinteger最大使用次数,默认 1,必须 > 0
expires_in_secondsinteger有效期(秒),默认由 invite_code_ttl_days 配置(7 天)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "invite_code": {
        "group_id": "g-abc123.agentid.pub",
        "code": "ic-a1b2c3d4e5",
        "created_by": "alice.agentid.pub",
        "expires_at": 1235172690,
        "max_uses": 10,
        "used_count": 0,
        "status": "active",
        "created_at": 1234567890
    }
}

group.use_invite_code

使用邀请码加入群组。

参数code (string, 必填,自动转为小写)

响应

json
{
    "status": "joined",
    "group": { ... },
    "invite_code": { ... }
}

group.list_invite_codes

列出群组的邀请码。需要 admin 权限。

参数group_id (string, 必填)

group.revoke_invite_code

撤销邀请码。需要 admin 权限。

参数group_id (string), code (string)


消息

group.send

发送群消息。需要 member 权限。

参数

参数类型必填说明
group_idstring群组 ID
payloadobject消息内容
typestring信封/封装类型,普通业务消息无需填写;SDK 加密群消息时自动使用 e2ee.group_encrypted
attachmentsarray兼容旧接口的顶层附件元数据;推荐把业务附件放入 payload.attachments

Payload 参考约定

group.send.params.payload 的统一业务负载格式见 09-payload-reference。完整群消息请求仍在 payload 同级传入 group_id;业务类型放在 payload.type,不要与 group.send.params.type 信封/封装类型混用。

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "message": {
        "group_id": "g-abc123.agentid.pub",
        "seq": 42,
        "message_id": "uuid",
        "sender_aid": "alice.agentid.pub",
        "message_type": "e2ee.group_encrypted",
        "payload": {"type": "e2ee.group_encrypted", "...": "..."},
        "attachments": [],
        "created_at": 1234567890000
    },
    "event": { ... },
    "dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
    "message_dispatch": { ... }
}
字段类型说明
group_idstring群组 ID
messageobject消息对象(含 seq、message_id、sender_aid 等)
eventobject关联的群事件对象
dispatchobject分发策略:mode"broadcast"(广播全员)或 "duty"(值班分发);reason 说明原因(如 "duty_disabled" / "active_duty" / "no_duty_candidate" 等)
duty_stateobject可选,值班模式下的当前状态
message_dispatchobject运行时分发结果(广播目标等结构化信息)

group.pull

增量拉取群消息。事件请用 group.pull_events 单独拉取。

参数

参数类型必填默认值说明
group_idstring群组 ID
after_message_seqinteger0从该消息 seq 之后拉取
limitinteger100最大条数
device_idstring设备 ID(多设备模式)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "messages": [ ... ],
    "latest_message_seq": 42,
    "has_more": false,
    "limit": 100
}

多设备模式时额外返回 cursor 对象(含 current_seqjoin_seqlatest_sequnread_count)。

group.ack

提交群消息已读游标。等同于 group.ack_messages,需要 device_id

参数

参数类型必填说明
group_idstring群组 ID
device_idstring设备 ID
msg_seqinteger确认到的消息序号

响应

json
{"cursor": 42}

公告与规则

group.get_announcement

获取群公告。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "announcement": { ... }
}

group.update_announcement

更新群公告。需要 admin 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
contentstring公告内容(上限由 announcement_max_length 配置,默认 4000)
attachmentsarray存储引用数组

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "announcement": { ... }
}

group.get_rules

获取群规则。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "rules": { ... }
}

group.update_rules

更新群规则。需要 admin 及以上权限。

参数group_id (string) + 规则字段(max_members, allow_member_invite 等,均可选)

group.get_join_requirements

获取入群要求。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "join_requirements": {
        "group_id": "g-abc123.agentid.pub",
        "mode": "approval",
        "question": "请描述你的用途",
        "auto_approve_patterns": [],
        "max_pending": 100,
        "updated_by": "alice.agentid.pub",
        "updated_at": 1234567890
    }
}

group.update_join_requirements

更新入群要求。需要 admin 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
modestring"open" / "approval" / "invite_only" / "closed"
questionstring入群问题
auto_approve_patternsarray自动批准正则列表
max_pendinginteger最大待审批数

资源管理

group.resources.put

分享资源链接到群组。需要 member 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
resource_pathstring资源路径
resource_typestring"file" / "folder" / "link",默认 "file"
titlestring资源标题
storage_refobject存储引用对象
metadataobject自定义元数据
visibilitystring"members_only" / "public",默认 "members_only"
tagsarray标签数组

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "resource": { ... },
    "created": true
}

createdtrue 表示新建,false 表示更新已有资源。

group.resources.get

查看资源详情。

参数group_id (string), resource_path (string)

group.resources.list

列出群资源。

参数

参数类型必填默认值说明
group_idstring群组 ID
prefixstring资源路径前缀
owner_aidstring筛选创建者
visibilitystring筛选可见性
tagsarray筛选标签
sort_bystring"resource_path"排序字段
orderstring"asc""asc" / "desc"
sizeinteger50每页数量(也接受 limit
pageinteger1页码(也接受 offset

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "prefix": "",
    "owner_aid": null,
    "visibility": null,
    "tags": [],
    "limit": 50,
    "size": 50,
    "offset": 0,
    "page": 1,
    "items": [ ... ],
    "count": 3,
    "total": 3
}

group.resources.get_access

获取资源下载票据。

参数group_id (string), resource_path (string)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "resource_path": "/docs/guide.pdf",
    "resource_link": "storage://...",
    "resource": { ... },
    "access_ticket": {
        "ticket": "tk_...",
        "ticket_type": "group-resource-access",
        "issued_to": "alice.agentid.pub",
        "resource_link": "storage://...",
        "issued_at": 1234567890,
        "expire_at": 1234571490
    },
    "access_token": "tk_...",
    "token_type": "Bearer",
    "download": { ... }
}

group.resources.delete

删除群资源链接。需要 admin 权限。

参数group_id (string), resource_path (string)

响应{ "group_id": "g-abc123.agentid.pub", "resource_path": "/path/to/file" }

group.resources.update

更新资源元数据。需要 admin 及以上权限。

参数group_id (必填), resource_path (必填), title / metadata / tags / visibility (可选)

响应{ "group_id": "g-abc123.agentid.pub", "resource": { ... } }

group.resources.resolve_access_ticket

使用访问票据换取下载令牌。

参数ticket (string, 必填)

响应{ "resource": { ... }, "download": { ... } }

group.resources.request_add

成员申请分享资源(需审批)。

参数:同 group.resources.put(不需要 storage_ref)。

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "request": {
        "request_id": "req_...",
        "group_id": "g-abc123.agentid.pub",
        "requester_aid": "bob.agentid.pub",
        "resource_path": "/docs/my-file.pdf",
        "resource_type": "file",
        "title": "我的文件",
        "status": "pending",
        "created_at": 1234567890,
        "updated_at": 1234567890,
        "visibility": "members_only",
        "tags": [],
        "reviewed_by": null,
        "review_note": null,
        "resource_created": false
    }
}

group.resources.direct_add

Owner 直接添加资源(无需审批)。需要 owner 权限。

参数:同 group.resources.putresource_type 不能是 "folder")。

响应:同 group.resources.put

group.resources.list_pending

列出待审批的资源申请。需要 owner 权限。

参数group_id (string)

group.resources.approve_request

批准资源申请。需要 owner 权限。

参数request_id (string, 必填), note (string, 可选)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "request": { ... },
    "resource": { ... }
}

group.resources.reject_request

拒绝资源申请。需要 owner 权限。

参数request_id (string, 必填), note (string, 可选)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "request": { ... }
}

在线状态

group.get_online_members

获取当前在线成员列表。

参数group_id (string, 必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "total": 2,
    "page": 1,
    "size": 200,
    "online_count": 2,
    "members": [
        {
            "aid": "alice.agentid.pub",
            "role": "owner",
            "joined_at": 1234567890,
            "online": true,
            "session_id": "sess_123",
            "last_active_at": 1234567890,
            "expire_at": 1234571490
        }
    ]
}

兼容字段:itemsonline_membersmembers 内容完全相同;新实现应优先读取 members


多设备游标

group.pull_events

增量拉取群事件,支持多设备独立游标。

参数

参数类型必填默认值说明
group_idstring群组 ID
device_idstring设备 ID,多设备模式必填
device_namestring设备名称(首次注册时使用)
device_typestring设备类型
after_event_seqinteger游标位置从该事件 seq 之后拉取;多设备模式下默认使用设备游标
limitinteger100最大条数(受 pull_max_limit 配置限制)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "events": [ ... ],
    "latest_event_seq": 100,
    "has_more": false,
    "limit": 100,
    "cursor": {
        "current_seq": 50,
        "join_seq": 0,
        "latest_seq": 100,
        "unread_count": 50
    }
}

cursor 仅多设备模式(提供 device_id)时返回。响应大小受 pull_max_response_bytes 配置限制。包含 E2EE epoch 范围检查,不返回成员加入前的加密事件。

group.ack_messages

确认消息游标(多设备模式)。

参数

参数类型必填说明
group_idstring群组 ID
device_idstring设备 ID
msg_seqinteger确认到的消息序号

响应{ "cursor": 123 }

不能确认加入位置之前的消息;序号自动截断到群组当前最大消息序号。

group.ack_events

确认事件游标(多设备模式)。

参数

参数类型必填说明
group_idstring群组 ID
device_idstring设备 ID
event_seqinteger确认到的事件序号

响应{ "cursor": 456 }

group.list_devices

列出当前用户在指定群组的所有设备及游标状态。

参数group_id (必填)

响应

json
{
    "devices": [
        {
            "device_id": "device-123",
            "device_name": "My Phone",
            "device_type": "mobile",
            "last_pull_at": 1234567890000,
            "msg_unread": 10,
            "event_unread": 5
        }
    ]
}

group.unregister_device

注销设备游标(清理不再使用的设备记录)。

参数group_id (必填), device_id (必填)

响应{ "success": true }


管理辅助

group.get_admins

获取管理员列表(owner + admin 角色)。

参数group_id (必填)

响应

json
{
    "admins": [
        {
            "aid": "alice.agentid.pub",
            "role": "owner",
            "member_type": "human",
            "joined_at": 1234567890
        }
    ]
}

group.get_master

获取群主 AID。

参数group_id (必填)

响应{ "group_id": "g-abc123.agentid.pub", "owner_aid": "alice.agentid.pub" }

group.get_summary

获取群组综合统计摘要。

参数group_id (必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "name": "My Group",
    "owner_aid": "alice.agentid.pub",
    "status": "active",
    "visibility": "private",
    "member_count": 10,
    "human_count": 7,
    "ai_count": 3,
    "admin_count": 2,
    "online_count": 5,
    "message_seq": 1000,
    "event_seq": 2000,
    "e2ee_epoch": 3,
    "created_at": 1234567890,
    "updated_at": 1234567890
}

group.get_metrics

获取群组性能指标,包含 E2EE epoch 范围记录。需要 admin 及以上权限。

参数group_id (必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "message_seq": 1000,
    "event_seq": 2000,
    "member_count": 10,
    "online_count": 5,
    "e2ee_epoch": 3,
    "epoch_count": 4,
    "epoch_ranges": [
        {
            "epoch": 0,
            "start_msg_seq": 0,
            "start_event_seq": 0,
            "end_msg_seq": 100,
            "end_event_seq": 200,
            "rotated_by": "alice.agentid.pub",
            "rotated_at": 1234567890
        }
    ]
}

group.refresh_member_types

刷新成员类型分类统计。

参数group_id (必填)

响应

json
{
    "group_id": "g-abc123.agentid.pub",
    "total": 10,
    "human_count": 7,
    "ai_count": 3,
    "members": [
        { "aid": "alice.agentid.pub", "role": "owner", "member_type": "human" }
    ]
}

E2EE

group.e2ee.rotate_epoch

CAS 轮换群组 E2EE Epoch。需要 admin 及以上权限。

参数

参数类型必填说明
group_idstring群组 ID
current_epochinteger当前 epoch 值(CAS 校验)
rotation_signaturestring轮换签名(Base64,ECDSA SHA-256)
rotation_timestampstring轮换时间戳(秒)

响应{ "group_id": "g-abc123.agentid.pub", "success": true, "epoch": 4 }

签名格式:{group_id}|{current_epoch}|{new_epoch}|{aid}|{rotation_timestamp}。时间戳必须在 5 分钟窗口内。签名去重防止重放攻击(10 分钟窗口)。

group.e2ee.get_epoch

获取当前 E2EE Epoch 值。

参数group_id (必填)

响应{ "group_id": "g-abc123.agentid.pub", "epoch": 3 }



事件

event/group.created

群组创建时推送。

Payload

json
{
    "module_id": "group",
    "group_id": "g-abc123.agentid.pub",
    "owner_aid": "alice.agentid.pub",
    "visibility": "private"
}

event/group.changed

群组状态变化时推送。

Payload

json
{
    "module_id": "group",
    "action": "member_added",
    "group_id": "g-abc123.agentid.pub"
}
字段类型说明
module_idstring固定 "group"
actionstring变更类型(见下表)
group_idstring群组 ID
request_idstring可选,仅资源审批相关 action
resource_pathstring可选,仅资源相关 action

action 取值

action说明
upsert群组创建/更新
update群组信息更新
member_added成员加入
member_left成员退出
member_removed成员被踢出
role_changed角色变更
owner_transferred群主转让
rules_updated规则更新
announcement_updated公告更新
join_requested收到入群申请
joined成员加入(通过邀请码等)
join_approved入群申请批准
join_rejected入群申请拒绝
join_requirements_updated入群要求更新
invite_code_created邀请码创建
invite_code_used邀请码使用
invite_code_revoked邀请码撤销
member_banned成员封禁
member_unbanned成员解封
resource_put资源上传
resource_updated资源更新
resource_deleted资源删除
resource_request_created资源申请创建
resource_direct_added资源直接添加
resource_request_approved资源申请批准
resource_request_rejected资源申请拒绝
suspended群组暂停
resumed群组恢复
dissolved群组解散

订阅

python
client.on("group.changed", lambda ev: print(ev["action"]))

event/group.message_created

群消息创建时推送给所有在线成员。支持两种模式:

消息推送模式(带 payload):

json
{
    "module_id": "group",
    "group_id": "g-abc123.agentid.pub",
    "seq": 42,
    "message_id": "uuid",
    "sender_aid": "alice.agentid.pub",
    "type": "e2ee.group_encrypted",
    "payload": { "type": "e2ee.group_encrypted", "..." : "..." },
    "dispatch": {"mode": "broadcast", "reason": "duty_disabled"},
    "kind": "group.broadcast",
    "member_aids": ["bob.agentid.pub"]
}

SDK 收到后自动解密 payload,解密后的明文消息直接交付用户回调。

通知模式(不带 payload):

json
{
    "module_id": "group",
    "group_id": "g-abc123.agentid.pub",
    "seq": 42,
    "message_id": "uuid",
    "sender_aid": "alice.agentid.pub",
    "type": "e2ee.group_encrypted",
    "dispatch": {"mode": "broadcast", "reason": "duty_disabled"}
}

SDK 收到后自动调用 group.pull 拉取最新消息并逐条解密后交付用户回调。


错误码

Group 服务定义了以下专用错误码(-33xxx 段):

错误码含义客户端处理建议
-33001Group not found检查 group_id 是否正确
-33002Group suspended等待恢复或联系管理员
-33003Group closed不重试,群已解散
-33004Already a member无需处理
-33005Not a member需先加入群组
-33006Invite code invalid or expired获取新邀请码
-33007Join request pending等待审批,勿重复提交
-33008Resource not found检查 resource_path
-33009Resource request not found检查 request_id

SDK 客户端将 -33001 映射为 GroupNotFoundError,-33002~-33003 映射为 GroupStateError,其余映射为 GroupError。未识别的错误码 fallback 到 AUNError

AUN Protocol Documentation