dingtalk-moltbot-connector — 钉钉とMoltbotをつなぐ軽量コネクタ
概要
dingtalk-moltbot-connector は、钉钉(DingTalk)側のチャットボットと Moltbot / Clawdbot の Gateway をつなぎ、AI Card(AIによるリッチメッセージ)のストリーミング応答を可能にするコネクタです。リポジトリは TypeScript プラグイン実装と Python の独立実装を両方提供しており、運用環境や導入形態に合わせて選べます。TypeScript 版は Moltbot 内でプラグインとして動き、AI Card のストリーミングを REST API 経由で手動制御し、画像はシステムプロンプト+後処理で自動アップロードします。Python 版は独立プロセスで動作し、dingtalk-stream SDK を通じたストリーミング処理を利用できます。
リポジトリの統計情報
- スター数: 50
- フォーク数: 1
- ウォッチャー数: 50
- コミット数: 12
- ファイル数: 11
- メインの言語: TypeScript
主な特徴
- TypeScript プラグインと Python 独立コネクタの二実装を同梱:導入形態に応じて選択可能。
- AI Card のストリーミング応答をサポート:ユーザー体験を向上させる逐次出力(シンプルなストリーミングUX)。
- 画像処理の差分対応:TypeScript 版は後処理で自動アップロードを行い画像連携を効率化。
- Moltbot/Clawdbot 環境とのシームレスな統合:プラグイン化や独立稼働で柔軟にデプロイ可能。
技術的なポイント
本プロジェクトの核は「钉钉チャットのイベントを受け取り、Moltbot/Clawdbot Gateway に橋渡しして AI レスポンスをストリーミングで返す」点にあります。TypeScript 実装(plugin.ts)は Moltbot のプラグインとして内部に組み込まれ、Moltbot のプラグインフレームワークに沿ってイベントハンドリングを行います。AI Card のストリーミングでは、钉钉側へ逐次的に部分レスポンスを返すために REST API を手動で呼び出す制御が入っており、クライアント側は流れるような応答表示を受け取れます。
一方、Python 実装は独立プロセスとして稼働し、dingtalk-stream SDK の組み込みメソッドを使ってストリーミングをより直接的に扱えるように設計されています。これにより、低レベルのネットワーク制御や SDK のストリーミング最適化に依存する実装が可能です。
画像処理は実運用で悩ましい課題ですが、本リポジトリは実装ごとにアプローチをわけています。TypeScript 版は system prompt による指示で画像を扱いつつ、生成後に自動で画像をアップロードしてメッセージに添付する後処理を組み込むことで、ユーザーにシームレスな体験を提供します。Python 版は system prompt による誘導を前提とする単純化された処理です。
インストールと運用面では、TypeScript 版は “moltbot plugins install” によるプラグインインストールを想定し、Moltbot のプラグイン管理下で動作させます。Python 版は pip によるパッケージ化(pip install -e .)で独立プロセスとしてデプロイしやすく、既存のサーバやコンテナに組み込みやすい設計です。セキュリティや認証周りは実装依存ですが、钉钉 API キーや Webhook などの管理が必要になる点は留意が必要です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file(不要ファイルの除外設定)
- .npmignore: file(npm公開時の除外設定)
- LICENSE: file(ライセンス情報)
- README.md: file(導入・仕様の説明)
- clawdbot.plugin.json: file(プラグイン定義/メタ情報)
- plugin.ts: TypeScript プラグインのエントリ(Moltbot 内で動作)
- src/dingtalk_moltbot_connector/: Python 版のソースルート(独立コネクタ実装)
- package.json / pyproject.toml 等: 各実装の依存定義(存在する場合)
…他 6 ファイル
各実装はエントリポイントや設定ファイルを分離しており、Moltbot 組み込み用と独立稼働用の両方で運用できる点が見て取れます。README にはアーキテクチャ図(Mermaid)やフロー図が含まれており、イベント受信→Gateway→AI応答→钉钉返却までの流れが示されています。
まとめ
TypeScript / Python の二形態で钉钉とMoltbot をつなぐ実用的なコネクタ。導入の自由度が高く実用性がある。
リポジトリ情報:
- 名前: dingtalk-moltbot-connector
- 説明: 将钉钉机器人连接到 Moltbot Gateway 的轻量级 Python和TS 双版本连接器,支持 AI Card 流式响应
- スター数: 50
- 言語: TypeScript
- URL: https://github.com/DingTalk-Real-AI/dingtalk-moltbot-connector
- オーナー: DingTalk-Real-AI
- アバター: https://avatars.githubusercontent.com/u/257675475?v=4
READMEの抜粋:
dingtalk-moltbot-connector
将钉钉机器人连接到 Moltbot / Clawdbot Gateway,支持 AI Card 流式响应。
提供两种实现:
| TypeScript 插件 | Python 独立连接器 | |
|---|---|---|
| 运行方式 | Moltbot/Clawdbot 内置插件 | 独立进程 |
| 入口文件 | plugin.ts | src/dingtalk_moltbot_connector/ |
| AI Card 流式 | 手动调用钉钉 REST API | 使用 dingtalk-stream SDK 内置方法 |
| 图片处理 | system prompt 引导 + 后处理自动上传 | system prompt 引导 |
| 安装方式 | moltbot plugins install | pip install -e . |
架构
...