dshbase

插件目录 / AI Models / dsh-telegram

dsh-telegram

已验证 · 实测可装 ben7am1n

✓ 持续维护 基于 5 个官方 DSH 包 纯 TypeScript

查看 GitHub ↗ ← 返回插件目录

1Stars
0Forks
0未关闭 issue
TypeScript语言
2026-08-13最近推送
跨平台平台

功能简介

无描述

✅
我们的评价
可用 — 实测通过,早期项目

无描述 实测能干净安装、正常启动。早期项目,但功能可用。

「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。

README

dsh-telegram

Telegram runtime adapter for DeepSeek Harness — talk to your dsh agents from Telegram. Every allowed chat maps to one agent session; messages flow in via followup(), committed assistant text streams back to the chat. Zero runtime dependencies (plain HTTP over Node's built-in fetch).

Overview

dsh-telegram turns a DeepSeek Harness agent into a Telegram bot. It is a protocol driver in the dsh extension model: it adapts an external wire peer (Telegram) to ctx.agents, the same role the official ACP/JSON-RPC bridges play — but for human chat instead of automation.

Who is it for?

  • Anyone who wants to query their DeepSeek agents from a phone, without opening the web UI.
  • Teams that want a shared, auditable chat surface in front of a harness (Telegram history is kept by Telegram).
  • Developers who want a minimal, readable reference for writing a protocol-driver plugin.

What it does

  • Long-polls the Telegram Bot API (getUpdates) with no server, no webhook, no framework.
  • Creates one dsh agent session per allowed chat on first message; subsequent messages followup() into the same session, so conversation history is preserved.
  • Streams every committed assistant message back to the chat; long replies are split at Telegram's 4096-char limit.
  • Supports /start, /new (fresh session), /status.
  • Rejects unauthorized users outright (configurable allowlist).

What it does not do (yet)

  • No webhook mode (requires a public HTTPS endpoint).
  • No inline keyboards, media, voice, or rich messages — text in, text out.
  • No cross-restart persistence of chat→session mapping (see Compatibility).

Compatibility

  • Requires Node.js ≥ 22.19 (uses global fetch).
  • Built and verified against @deepseek-ai/[email protected] / @deepseek-ai/cordis@^4.0.1.
  • Last verified: 2026-08-13 against mainline commit of the same day (dsh repo master).
  • dsh is in developer preview and iterates rapidly. Pin your dsh version and re-verify after updates; the plugin's peer dependencies (@deepseek-ai/dsh-agent, dsh-llm, dsh-session) may change shape between RC releases.
  • Chat→session mapping lives in memory: restarting dsh loses open sessions (use /new to start a fresh one).

Install / Uninstall

Install into a dsh profile (local checkout; no build permission needed):

cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-telegram

From GitHub (source install — pnpm runs the prepare script, so allow it once):

pnpm dsh plugin --profile web add github:<you>/dsh-telegram
# pnpm ≥10 blocks the build script on first install; copy the printed package key
# into <profile>/pnpm-workspace.yaml under allowBuilds, then re-run.

From npm (once published):

pnpm dsh plugin --profile web add dsh-telegram

Uninstall:

pnpm dsh plugin --profile web remove dsh-telegram

Quick start

  1. Create a bot with @BotFather and copy the token.

  2. Find your Telegram user id (e.g. message @userinfobot).

  3. Set the token and your user id in the profile's cordis.patch.yml (or export DSH_TELEGRAM_BOT_TOKEN):

    - id: dsh-telegram
      name: dsh-telegram
      config:
        botToken: '123456:ABC-DEF...'
        allowedUserIds: [123456789]
        provider: deepseek-official
        model: deepseek-v4-flash
    
  4. Start dsh, open your bot in Telegram, send /start, then any message.

Configuration

All keys live under the dsh-telegram row's config (patch layer; later layers win per row).

Key Type Default Meaning
botToken string env DSH_TELEGRAM_BOT_TOKEN Telegram bot token from @BotFather. Empty disables sending.
allowedUserIds number[] [] Telegram user ids allowed to chat. Empty = everyone rejected.
provider string — Provider route for created agents (falls back to profile default).
model string — Model for created agents (falls back to profile default).
cwd string process.cwd() Working directory for created agent sessions.
pollTimeoutSeconds number 25 Long-poll timeout for getUpdates (Telegram max 50).

Permissions & data

  • Authorization: the allowlist is the only gate. Unauthorized users receive ⛔ You are not authorized and are never given an agent session. The bot token itself is the secret that lets anyone call your bot; the allowlist decides who gets a session.
  • Network: the plugin talks only to api.telegram.org (bot API). Agent model calls go through the harness's normal LLM provider path.
  • Filesystem: no files are read or written by this plugin; agent sessions inherit the harness workspace policy.
  • Secrets: never commit botToken to the repository. Use the env-var form in the shipped patch (process.env.DSH_TELEGRAM_BOT_TOKEN ?? '').
  • Transcripts: Telegram keeps chat history on its servers; dsh sessions additionally persist per the harness session persistence config.

Troubleshooting

Symptom Cause Fix
Bot never replies, botToken is empty warning Token not configured Set DSH_TELEGRAM_BOT_TOKEN or config.botToken; restart dsh
⛔ You are not authorized Your user id is not in allowedUserIds Add your id; restart dsh
poll error: telegram getUpdates: 401 Token invalid/revoked Recreate token in @BotFather
Replies stop mid-conversation Agent error Check dsh logs; the error is forwarded to the chat with ⚠️ Agent error:
Long poll spam in logs Network to api.telegram.org blocked/unstable Ensure the machine can reach api.telegram.org (proxy env vars are respected by Node fetch); the plugin backs off automatically
cannot get property "agents" without inject Plugin loaded without inject metadata (stale build) Rebuild: pnpm run build; verify the installed lib/index.js is fresh

Development

pnpm install
pnpm run typecheck     # tsc --noEmit
pnpm run build         # tsc → lib/

Structure:

  • src/index.ts — plugin entry (name/inject/Config/apply), Telegram client, long-poll loop, session mapping.
  • cordis.patch.yml — the bundle patch layer that mounts the plugin row.

Design notes for contributors:

  • Zero runtime dependencies is a goal: the Bot API surface used here is intentionally small (getUpdates, sendMessage, sendChatAction). Before adding a dependency, ask whether Node's built-ins cover it.
  • Session mapping is deliberately naive (one chat = one agent, in memory). A future version may key sessions by (chat, bot) or persist them; see Compatibility.

License & security

MIT. Report security issues privately via the repository's security advisory (or open an issue without secrets). The plugin runs the Telegram token as configured by the operator; it executes no model code itself — all agent behavior is governed by the harness's own permission and sandbox policy.

安装

🧩 让 Agent 自动装(推荐)

装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:

dsh plugin add dshbase-catalog

然后对 agent 说「帮我装 dsh-telegram」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。

该插件是 GitHub 源码(未发 npm)——直接从仓库装:

Web profile:

dsh plugin --profile web add github:ben7am1n/dsh-telegram

Headless(CLI)profile:

dsh plugin --profile headless add github:ben7am1n/dsh-telegram

实测报告

验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。

使用场景

把一个新模型、provider 或路由策略接入循环,让 dsh 能为任务选对脑子。

适合谁

同时用多个模型或 provider、想让成本/质量/延迟自动平衡的人。

二次开发建议

provider 适配器和路由启发式是缝——加后端、调回退链,或加按任务的模型选择。

安全:尚未扫描——我们的每日静态扫描将很快覆盖它。

分享徽章

AI Models 里更多

浏览全部 7797 个插件 →