Token导航 LogoToken导航TokenDH.com
开发需要联网clawhub未标认证来源可访问clear审计通过

teamgram-messaging-syncteamgram 消息同步

Agent Skill

teamgram-messaging-sync 用于整理文档、README、Markdown 和说明材料,适合在 OpenClaw 中需要把零散信息整理成结构清晰的文档时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

6,360

周安装

265

GitHub Stars

公开资料未说明

下载量

2,120
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:teamgram-messaging-sync(teamgram 消息同步)
来源仓库:https://github.com/zhihang9978/teamgram-messaging-sync
安装命令:
openclaw skills install teamgram-messaging-sync
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install teamgram-messaging-sync

简介

描述消息在 Kafka 主题间的同步分发机制。

  • 涵盖收件箱/发件箱模型与幂等性保障措施。
  • 适用于高并发消息系统架构设计参考。teamgram-messaging-sync 属于开发类 Skill,可作为该场景下的辅助能力补充。
  • 需理解分布式事务与最终一致性概念。
  • 未包含消费者失败重试策略详细说明。

SKILL.md

name
teamgram-messaging-sync
description
Documents the message delivery and sync distribution layer in Teamgram Server, covering Kafka Inbox-T/Sync-T topics, inbox/outbox model, and the complete message send flow.
compatibility
Documentation/knowledge skill only. No executable code. Reference material for Teamgram Server developers.
metadata
author
zhihang9978
version
1.0.0
source
https://github.com/teamgram/teamgram-server
homepage
https://github.com/teamgram/teamgram-server
openclaw
requires
env
[]
bins
[]
securityNotes
|

消息投递与同步层:messenger.msg / inbox / sync

概述

Teamgram 的消息投递使用 Kafka 做异步解耦,分为两个主要 topic:

  • Inbox-T:写路径(发送/编辑/删除等异步投递)
  • Sync-T:推路径(updates/rpcResult 分发回在线 session)

messenger.msg 配置

teamgramd/etc/msg.yaml 要点:

InboxConsumer:
  Topics:
    - "Inbox-T"
  Brokers:
    - 127.0.0.1:9092
  Group: "Inbox-MainCommunity-S"
InboxClient:
  Topic:   "Inbox-T"
SyncClient:
  Topic:   "Sync-T"

消息发送完整链路

Client
  -> TL: messages.sendMessage / messages.sendMedia / ...
  -> gnetway -> session -> bff.messages
  -> bff.messages
       -> biz_service (dialog/message/chat/user)
       -> msg service (异步投递 + Kafka)
  -> messenger.msg produces to Kafka Inbox-T
  -> inbox consumes Inbox-T, writes inbox/outbox state
  -> produces updates to Kafka Sync-T
  -> sync consumes Sync-T, decides UpdatesMe/NotMe/PushRpcResult
  -> sync calls session (gRPC) to push updates/rpc_result
  -> session routes to correct sessionId
  -> gnetway encrypt -> client

inbox helper:消费 Kafka Inbox-T

inbox 服务通过 Kafka ConsumerGroup 收到消息后,根据 protobuf messageName 分发到对应 core 方法(threading.RunSafe)。

典型模式:

case proto.MessageName((*inbox.TLInboxSendUserMessageToInboxV2)(nil)):
    threading.RunSafe(func() {
        c := core.New(ctx, svcCtx)
        r := new(inbox.TLInboxSendUserMessageToInboxV2)
        json.Unmarshal(value, r)
        c.InboxSendUserMessageToInboxV2(r)
    })

inbox 的核心职责:

  • 写入收件方的 inbox 消息记录
  • 更新未读计数
  • 触发通知推送
  • 生成 Sync-T 消息通知在线用户

msg gRPC Service:TL 签名即接口契约

msg 子服务的 gRPC service impl 文件会保留 TL 签名注释,例如:

  • // msg.sendMessageV2 ... = Updates;

这就是跨服务调用时请求/响应的"格式契约"。

同步分发层:messenger.sync(Kafka Sync-T)

sync 服务消费 Kafka Sync-T,按 protobuf message name 分发到:

  • SyncUpdatesMe — 推送给发送者自己(确认消息已发送)
  • SyncUpdatesNotMe — 推送给非发送者(对方收到新消息通知)
  • SyncPushUpdates — 通用推送(状态变化等)
  • SyncPushRpcResult — RPC 结果推送(异步 RPC 的响应)
  • SyncBroadcastUpdates — 广播推送(群消息等多人场景)

最终通过 gRPC 调用 session 把 updates/rpc_result 推回在线会话。

典型模式:

case proto.MessageName((*sync.TLSyncPushRpcResult)(nil)):
    threading.RunSafe(func() {
        c := core.New(ctx, svcCtx)
        r := new(sync.TLSyncPushRpcResult)
        json.Unmarshal(value, r)
        c.SyncPushRpcResult(r)
    })

Kafka 事件总线总结

Topic生产者消费者内容
Inbox-Tmessenger.msginbox helper消息投递(发送/编辑/删除)
Sync-Tinbox helper / messenger.msgmessenger.syncUpdates/RPC结果分发

消息存储模型

Teamgram 使用 inbox/outbox 双写模型

  • 发送方写入 outbox(自己的消息记录)
  • 接收方通过 Kafka Inbox-T 异步写入 inbox(对方的消息记录)
  • 每条消息在 messages 表中按 user_id + peer 维度存储
  • dialog_message_id 为每个对话内的消息序号(递增)

关键代码路径

  • msg 服务:app/messenger/msg/
  • inbox 服务:app/messenger/msg/internal/dao/inbox/ (Kafka consumer)
  • sync 服务:app/messenger/sync/
  • 配置文件:teamgramd/etc/msg.yaml, teamgramd/etc/sync.yaml

Source Code References

  • Repository: https://github.com/teamgram/teamgram-server (Apache-2.0)

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

92.77%
按下载量换算1,967

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills