聚能推 · 开发文档

聚能推 开发文档

一个 API 连接微信服务号、邮件、短信等多渠道的消息推送平台。本文档面向开发者与 AI Agent,说明如何注册、获取令牌、调用接口完成消息推送。所有接口统一返回 {"code":200,"msg":"...","data":{...}} 结构。

快速开始(3 分钟对接)

1
注册账号

在控制台首页完成注册(用户名 + 密码)。注册成功即自动生成你的第一个 API 令牌,可直接使用;也可以按下方「获取 API 令牌」方式创建专用令牌。

2
获取 API 令牌

进入控制台 → 左侧「令牌管理」→ 新建令牌 → 复制令牌字符串。令牌是调用推送接口的唯一凭证,请妥善保管。

3
发送第一条推送

把下方示例中的 YOUR_API_TOKEN 替换为你的令牌,复制到终端执行:

# 发送一条微信消息(未绑定渠道时进入开发模式,消息仅打印到服务端控制台)
curl -X POST https://ddnt.com/api/push \
  -H "Content-Type: application/json" \
  -d '{
    "token": "YOUR_API_TOKEN",
    "title": "服务器告警",
    "content": "CPU 使用率 99%,请及时处理!",
    "channel": "wechat"
  }'

返回 {"code":200,"msg":"推送成功",...} 即对接成功。

如何获取 API 令牌

API 令牌用于调用消息推送接口(/api/push)。有两种获取方式:

方式一:控制台创建(推荐)

方式二:接口创建

登录后调用(需携带 JWT):

# 1. 登录获取 JWT
curl -X POST https://ddnt.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username": "YOUR_USERNAME", "password": "YOUR_PASSWORD"}'
# 返回: {"code":200,"data":{"token":"<JWT>","username":"..."}}

# 2. 用 JWT 创建 API 令牌
curl -X POST https://ddnt.com/api/tokens \
  -H "Authorization: Bearer <JWT>" \
  -H "Content-Type: application/json" \
  -d '{"name": "服务器A"}'
# 返回: {"code":200,"data":{"token":"<API令牌>","name":"服务器A"}}
⚠ 令牌即凭证:任何持有令牌的人都可以使用你的配额推送消息。请勿将令牌提交到公开仓库、日志或截图。

请求地址与鉴权

Base URL:https://ddnt.com(本地开发 http://localhost:3000)。所有接口默认使用 HTTPS

鉴权方式适用接口传递方式
API 令牌推送接口(POST /api/push)请求体 JSON 字段 token,或 URL 查询参数 ?token=xxx
会话 JWT控制台接口(消息/话题/工单/AI 等)请求头 Authorization: Bearer <JWT>,由注册/登录接口返回

推送 API

POST/api/push

发送一条消息,支持单发、一对多话题群发、多渠道同时投递。这是平台最核心的接口。

参数类型必填说明
tokenstringAPI 令牌
titlestring标题,最长 200 字符
contentstring正文,最长 5000 字符
channelstring渠道:wechat(默认)/ email / sms;可逗号多选,如 "wechat,email"
topicstring话题名:填写后群发给该话题全部订阅者(各渠道分别投递);话题不存在返回 400
tostring指定收件人:openid / 邮箱 / 手机号;不填则使用该渠道默认绑定

示例:向话题群发(微信 + 邮件)

curl -X POST https://ddnt.com/api/push \
  -H "Content-Type: application/json" \
  -d '{
    "token": "YOUR_API_TOKEN",
    "title": "版本发布通知",
    "content": "v2.3.0 已上线,包含 12 项更新。",
    "channel": "wechat,email",
    "topic": "全体员工"
  }'

示例:指定手机号发短信

curl -X POST https://ddnt.com/api/push \
  -H "Content-Type: application/json" \
  -d '{
    "token": "YOUR_API_TOKEN",
    "content": "您的验证码是 886512,5 分钟内有效。",
    "channel": "sms",
    "to": "13800138000"
  }'

响应

{ "code": 200, "msg": "推送成功",
  "data": { "recipients": 1, "channel": "wechat", "target": "oXXXX_xxxxxxxxxx" } }
⚠ 未配置渠道凭证时进入开发模式:消息不会真实发送,仅打印到服务端控制台,接口仍返回成功。可在控制台「渠道绑定」配置自有服务号 / SMTP / 短信服务商。

话题订阅(一对多)

场景:一条消息推送给一群人。流程:创建话题 → 收集订阅者 → 向话题推送即群发。

接口说明
GET/api/topics我的话题列表
POST/api/topics创建话题,body:{"name": "全体员工"}
DELETE/api/topics/:id删除话题
POST/api/topics/:id/subscribe添加订阅者,body:{"channel":"email","target":"user@example.com"}
DELETE/api/topics/:id/subscribers移除订阅者(body 传 subscriber_id

令牌管理

以下接口需 JWT 鉴权。

接口说明
GET/api/tokens我的令牌列表
POST/api/tokens新建令牌,body:{"name": "服务器A"},返回完整令牌(仅此一次明文返回)
DELETE/api/tokens/:id删除令牌,立即失效

消息日志

接口说明
GET/api/messages我的投递记录,分页参数:?page=1&size=20

渠道绑定

绑定自有渠道后,推送将使用你的凭证发送(自有优先,未绑定则回落平台默认渠道)。

接口说明
GET/api/channels渠道列表与绑定状态
POST/api/channels保存渠道配置(微信 AppID/AppSecret、SMTP、短信服务商)
DELETE/api/channels/:type解绑渠道(type:wechat/email/sms)

注册 / 登录

接口说明
POST/api/auth/register注册:{"username","password","email?"},返回 JWT 与初始 API 令牌
POST/api/auth/login登录:{"username","password"},返回 JWT

用户信息

接口说明
GET/api/me我的总览:令牌数 / 绑定数 / 消息数 / 功能订阅 / MQTT 统计 / 套餐与配额
PATCH/api/me/profile修改联系方式:{"email","phone"}(作为推送默认目标)
GET/api/announcements站点公告列表

套餐与余额

接口说明
GET/api/plans公开:套餐列表与价格(免费/基础/专业/企业)
GET/api/subscription我的套餐与配额用量(wx/sms/email/tmEval/tmOpp/tmMonitor)
POST/api/subscription发起订购,返回支付信息(支持微信支付 / 对公转账)
GET/api/billing/orders我的订单记录
GET/api/billing/transactions余额流水(充值 / 消费 / 返还)
POST/api/billing/redeem兑换卡充值:{"code":"16位兑换码"}
GET/api/billing/methods支持的支付方式列表

功能市场

接口说明
GET/api/features功能列表(商标监控 / 评估 / 商机 / 网页监测 / MQTT 等)
GET/api/features/mine我的订阅列表
POST/api/features/:id/subscribe订阅功能,body:{"config": {...}}
DELETE/api/features/:id/subscribe取消订阅
POST/api/features/:id/push-now立即触发一次该功能巡检并推送结果

知产服务

商标评估 / 商机查询按次扣费,结果自动推送到绑定的微信 / 邮箱 / 手机。

接口说明
POST/api/trademark/evaluate文字商标注册成功率评估:{"keyword":"商标名","class":35}(扣 1 次调用)
POST/api/trademark/image-evaluate图形商标评估(图片 base64 dataURL)
GET/api/trademark/evaluations我的评估历史
POST/api/trademark/opportunity-search商机查询(到期续费 / 地址变更 / 主体变更)
GET/api/trademark/monitors我的商标监控列表

MQTT 订阅

物联网场景:设备通过 MQTT 发布消息 → 平台自动推送到你绑定的渠道(不占套餐配额)。需先在「功能市场」开通 MQTT 订阅。

接口说明
GET/api/mqtt/info服务器连接信息(broker 地址 / 端口 / 是否 TLS)
POST/api/mqtt/devices新建设备,返回账号 / 密码 / 主话题(敏感信息仅此一次显示)
POST/api/mqtt/devices/:id/topic绑定自定义话题:{"topic":"jnt/自定义"}
POST/api/mqtt/devices/:id/password重置密码(旧密码立即失效)
DELETE/api/mqtt/devices/:id注销设备
GET/api/mqtt/devices/:id/messages设备消息日志

设备发布消息格式

# 消息体(JSON):title=标题, content=内容, channel=渠道(可逗号多选)
{ "title": "设备告警", "content": "温控器温度超限 42℃", "channel": "wechat,email" }

# 也可直接发纯文本,整段作为 content
# 客户端示例(mosquitto):
mosquitto_pub -h YOUR_BROKER_HOST -p 1883 -u YOUR_DEVICE_USER -P YOUR_DEVICE_PASS \
  -t "jnt/你的主话题" -m '{"title":"设备告警","content":"温度超限","channel":"wechat"}'

AI 助手

平台内置 AI 对话(按 token 计费,余额兜底扣费)。

接口说明
GET/api/ai/usage用量统计:?days=7|30,返回 AI 对话 / Token / 费用 / 推送 / 余额 / MQTT
GET/api/ai/conversations会话列表
POST/api/ai/conversations新建会话:{"model":"..."}
POST/api/ai/chat发送对话:{"conv_id","content"},返回 AI 回复
DELETE/api/ai/conversations/:id删除会话

工单(帮助与反馈)

在控制台「帮助与反馈」提交问题,后台客服实时回复;支持文字与图片(单张 ≤2MB)。

接口说明
GET/api/tickets我的工单列表(含回复数 / 状态)
POST/api/tickets提交工单:{"title","content","images":[url]}
GET/api/tickets/:id/messages工单对话消息列表
POST/api/tickets/:id/messages回复工单(回复后自动重新打开)
POST/api/tickets/upload上传图片(base64 dataURL),返回图片 URL 供工单引用

运维工具箱(即时查询)

控制台「运维服务」内置一组开发者常用工具:Whois / DNS / SSL 证书 / TCP 拨测 / 端口扫描 / 备案查询。所有接口为登录会话鉴权(Cookie JWT),也可用 API Token 直调;目标为主域名或公网 IP(禁止内网地址,防 SSRF)。

接口说明
POST/api/ops/whoisWhois 原文查询:{"domain":"ddnt.com"}
POST/api/ops/dnsDNS 记录查询:{"domain","type":"A|AAAA|CNAME|MX|NS|TXT|SOA|CAA","resolver":"可选 223.5.5.5 等"}
POST/api/ops/sslSSL 证书详情(颁发者 / 有效期 / 剩余天数 / SAN)
POST/api/ops/ping/runTCP 快速拨测:{"host","port":443,"count":4},返回 min/avg/max 与丢包
POST/api/ops/ping/multi多线路拨测:5 个公共 DNS 并行解析逐 IP 拨测,附省份 / 运营商地图
POST/api/ops/port/check端口扫描:{"host","ports":"80,443,3389"}(最多 20 个)
POST/api/ops/icp域名 ICP 备案查询(24h 缓存;数据源需在后台配置)
GET/api/ops/pricing即时查询计价(enabled + 各动作单价;未开启时全为 0)

持续监测与告警

把目标加入监测任务后,平台按间隔自动拨测;「下线」「恢复」状态变化时向你选择的渠道(微信 / 邮件 / 短信)推送告警。检测过程自动采样延迟,控制台可看近 24 小时延迟曲线(保留 7 天)。SSL 到期 / 备案变更 / DNS 变更监测同在「运维服务」分区管理。

接口说明
GET/api/ops/ping/tasks监测任务列表(每用户最多 20 个)
POST/api/ops/ping/tasks创建任务:{"name","host","port":443,"interval_min":5,"alert_channel":"wechat"}
POST/api/ops/ping/tasks/:id/run立即检测一次
GET/api/ops/ping/tasks/:id/history近 24 小时延迟采样(ts / ok / avg_ms / lost_pct,最多 300 点)
DELETE/api/ops/ping/tasks/:id删除任务

服务器探针(Agent)

在你的服务器上运行零依赖 Agent(Node 18+,无需安装依赖),每 10 秒上报 CPU / 内存 / 磁盘 / 负载 / 网络流量;离线超过 3 分钟或超过自设阈值时自动推送告警。控制台可看实时占用与资源趋势图。

安装步骤

# 1. 控制台「运维服务 → 服务器探针」创建探针,拿到 token
# 2. 在被监控服务器上执行(命令可在控制台一键复制):
curl -sL https://ddnt.com/probe-agent.js -o probe-agent.js && node probe-agent.js https://ddnt.com/api/ops/probe/report YOUR_TOKEN
# 3. 建议用 systemd / pm2 常驻,如:
pm2 start probe-agent.js -- YOUR_REPORT_URL YOUR_TOKEN
接口说明
GET/api/ops/probe/servers探针列表(实时 CPU / 内存 / 负载 / 在线状态)
POST/api/ops/probe/servers创建探针:{"name","host","cpu_thr","mem_thr","disk_thr","alert_channel"},返回 token(仅此一次)
GET/api/ops/probe/servers/:id/metrics近 60 次上报采样(趋势图数据源)
GET/api/ops/probe/servers/:id/install取安装命令(含下载地址与 token)
POST/api/ops/probe/reportAgent 上报(公开接口,token 鉴权,最小间隔 5 秒):{"token","cpu","mem","disk","load1","net_in","net_out"}
DELETE/api/ops/probe/servers/:id删除探针(历史数据一并清除)

运维计费说明

持续监测任务与探针走「功能市场」订阅(ops-tools / ops-probe);即时查询类工具(Whois / DNS / SSL / 拨测 / 端口 / 备案)默认免费,平台开启按次计费后从平台余额扣费(单价见 /api/ops/pricing,余额不足返回 402)。监测任务本身的定时检测不扣费。

控制面板(主控 / 被控,对标宝塔)

ddnt 平台 = 主控面板,服务器执行一键脚本或在线 SSH 安装后成为被控服务器。主控面板发起操作(软件商店 / 网站 / 反向代理 / Docker / Node / Java / Python / 数据库 / 计划任务 / 监控 / Web 终端 / 文件管理 / 安全审计),安装与执行脚本在被控服务器本地运行,执行日志保留在被控端,主控可随时请求分段回看。被控端零依赖、不开公网面板端口;实时能力(终端 / 文件 / 日志滚动)经 WebSocket 桥(被控出站连主控,零入站端口)。

接入方式(两种)

# 方式 A · 复制脚本:主控「控制面板 → + 复制脚本接入」生成一次性命令,到新服务器执行
curl -fsSL https://ddnt.com/install-panel.sh | bash -s -- --install-token YOUR_TOKEN --name '我的服务器'
# 装完自动注册进主控面板列表,可自定义名称;install-token 一次性,注册后作废

# 方式 B · 在线 SSH:主控「+ 在线 SSH 安装」填 IP/端口/账号/密码或私钥,平台远程自动安装
# 凭据默认安装完即删(可勾选加密留存供后续直连)

主控地址自动探测:生成命令时优先取 PUBLIC_BASE_URL 环境变量,其次浏览器实际访问地址(Origin/Referer 请求头),最后才是请求 host;生成后弹窗内可手工修改「主控地址」,命令 URL 实时同步,检测到本机/内网地址会给出醒目告警。在线 SSH 安装同样使用该探测地址。生产环境建议显式配置 PUBLIC_BASE_URL(含 http(s):// 前缀)。

被控本机独立面板(可选)

install-panel.sh 默认开启 --panel-port 8888(0=关闭),安装完成输出默认账号(admin)与随机密码;root 下 cat /opt/ddnt-panel/agent.json 可随时找回,登录后台可修改密码。本机后台提供:系统状态、主控绑定状态、本机执行日志查看、常用软件探测;并支持自主切断主控控制——切断后主控无法再向本机下发命令/终端/文件操作(面板状态转离线),本机面板不受影响,可随时在后台恢复或重跑接入命令重新绑定。已知限制:独立面板为纯 HTTP 无 TLS,建议仅内网/本机使用或经反向代理叠加 HTTPS;Agent 依赖 Node ≥21 提供内置 WebSocket(安装脚本自动装 Node 22,低于 21 时实时终端/文件桥自动降级跳过,命令与监控不受影响)。

Dpanel 独立版(被控本机面板)

install-panel.sh 默认开启 --panel-port 7856(0=关闭),安装完成输出默认账号(admin)与随机密码;root 下 cat /opt/ddnt-panel/agent.json 可随时找回,登录后台可修改密码。Dpanel 为可独立发布的产品(对标宝塔)。

套餐与授权(对标宝塔:免费全能 + 增值分层,企业 ⊇ 专业 ⊇ 免费):免费版=系统状态/执行日志/应用中心一键安装/防火墙端口管理/本机终端/SSL 证书(自签、上传、部署 nginx)/改密/自主切断主控;专业版=+网站防火墙 WAF、防篡改、监控报表、任务管理器、云备份、SSL 进阶(ACME 自动续期);企业版=+多用户、操作审计、SSH 审计、安全基线、开放 API、白标 OEM。升级:平台后台 POST /api/admin/dpanel/license/issue 签发激活码(Ed25519 离线验签,公钥随安装脚本下发到被控 dpanel-license.pub)→ Dpanel「授权管理」输入激活。已知限制:本机面板为纯 HTTP 无 TLS,建议内网使用或反代叠加 HTTPS;实时终端/文件桥(WS relay)需被控 Node ≥21(安装脚本自动装 Node 22,低版本自动降级跳过)。

WAF 网站防火墙(专业版,nginx 层)

Dpanel「WAF」页提供 nginx 层网站防火墙:CC 防护(limit_req 按源 IP 限速,速率/突发可调)、SQL 注入与 XSS 拦截(query_string 规则)、UA / URL / IP 黑名单(每行一条)、IP 白名单(跳过 CC 限速)、敏感路径拦截(.env/.git/wp-admin 等)与拦截日志。启用后写入 /etc/nginx/conf.d/dpanel-waf.conf 与 /opt/ddnt-panel/waf/server.conf;站点在「站点接入」列表一键接入(自动 include 并 nginx -t 校验,失败自动回滚)。规则保存即重载 nginx。

典型流程:软件商店安装 MySQL 5.7

主控「软件商店」选 MySQL → 版本 5.7 → 确定 → 安装脚本在被控服务器本地执行(apt/yum)→ 命令状态变「成功」→ 点「📄 日志」从被控端实时回看安装日志 → 软件商店更新为「已安装」。命令执行日志按命令 ID 保留在被控端 $PANEL_WORKDIR/logs/cmd_<id>.log,可配置保留天数与大小轮转。

核心接口

接口说明
POST/api/ops/panel/servers/install-script生成一键接入命令(含一次性 install-token)
POST/api/ops/panel/servers/install-register被控端注册:install-token 换正式运行 token(自动建记录)
POST/api/ops/panel/ssh-install在线 SSH 安装(host/port/user/password/privateKey,安装完即删凭据)
GET/api/ops/panel/servers被控服务器列表(在线/CPU/内存/磁盘/网络/主机名)
POST/api/ops/panel/servers/:id/commands下发命令:{"type","params","timeout_s"};type 见下方枚举
GET/api/ops/panel/poll被控端拉命令(token 鉴权,Long-Poll;可选 MQTT 下发)
POST/api/ops/panel/report被控端回传执行结果(含本地日志路径)
POST/api/ops/panel/servers/:id/logs请求回看被控端本地命令日志(分段/grep/tail)
GET/api/ops/panel/servers/:id/ws-ticket签发一次性 WS 桥接票据(终端/文件/日志滚动用)
GET/api/ops/panel/store软件商店目录(nginx/mysql/php/redis/node/java/python/docker 各版本)
POST/api/ops/panel/servers/:id/apps软件商店安装(选版本,如 mysql 5.7)→ 被控本地执行
POST/api/ops/panel/servers/:id/projects/:pid/:action项目部署/重启/停止/状态(action=deploy/restart/stop/start/status)
POST/api/ops/panel/servers/:id/sites网站/反向代理(proxy 或 static,自动生成 Nginx vhost 并 reload)
POST/api/ops/panel/servers/:id/databases数据库建库(MySQL/SQLite/Redis)+ 备份/恢复
POST/api/ops/panel/servers/:id/crons计划任务(cron 表达式写入被控 crontab)
POST/api/ops/panel/servers/:id/audit安全审计(只读:SSH/防火墙/端口/容器暴露)

命令类型枚举install_runtime(软件商店)/ deploy(项目)/ site_add site_rm site_backup cert_issue(网站/SSL)/ nginx_reload / process_start|stop|restart|status / docker_compose|restart|stop|rm / cron_add|cron_del / db_create|db_backup|db_restore / fetch_log(日志回看)/ audit_report / agent_command(智能体入口)/ echo_test。执行严格走模板白名单 + 参数转义,审计全程留痕。

计费:控制面板走「功能市场」订阅(ops-panel);命令按次计费默认关闭(免费体验),后台「运维服务 → 控制面板」开启后按条扣平台余额(panel.price_cmd)。

DDNT 能力网络(AI 档案库 + MCP)

DDNT(AI 动态能力互联网络)让 AI 智能体安全地「认识主人、按主人的规则办事」:账号所有者把画像、行为规则、长期记忆、重要私钥存进专属 AI 档案库(档案文件化+版本控制),再签发受限的 Agent Token 交给 AI 实例。AI 通过 MCP 协议读取资产、调用平台能力(推送/商标评估/运维查询),甚至经代理网关使用主人注册的外部 MCP 服务。全程审计,随时吊销。

两把钥匙(鉴权模型)

凭证能力存放位置
主 API Token等同主人本人:推消息、读写资产、签发/吊销凭证只存主人本机(~/.ddnt.json)
Agent Token(ddnt_ 前缀)按 scope 受限授权,可过期、可吊销、可限工具黑白名单由 ddnt CLI 桥注入,绝不写进 AI 客户端配置

Agent Token 的 10 个 scope

scope授权内容
account:read账号信息 / 套餐 / 余额 / 配额(whoami)
profile:read / rules:read / memory:read读取主人画像 / 行为规则 / 长期记忆(档案当前版)
secrets:read读取储物柜私钥条目(服务端解密,明文不落日志)
assets:write写入/更新资产档案(谨慎授权:默认不勾选;每保存即生成新版本)
push:send发送消息推送(send_push)
tm:eval商标注册成功率评估(tm_evaluate)
ops:query运维查询工具箱(Whois / DNS / SSL / 拨测)
mcp:proxy经代理网关调用主人注册的外部 MCP 服务工具

MCP 平台工具(15 个)

工具所需 scope说明
whoamiaccount:read账号 / 套餐 / 余额 / 配额
asset_getprofile/rules/memory:read 任一读档案(path=persona.md / memory.md / 项目名/档案名,version 可选);旧字段名 profile/rules/memory 自动映射
asset_setassets:write写档案(覆盖式,保存即新版本,可回滚)
asset_historyprofile/rules/memory:read 任一档案版本时间线
get_profile / get_rules / search_memoryprofile:read / rules:read / memory:read加载主人画像 / 规则 / 检索长期记忆(search_memory 支持 project:缺省=仅全局,=项目名,="*" 全局+全部项目)
list_secrets / get_secretsecrets:read私钥条目名列表 / 取值(服务端解密)
send_pushpush:send推送到微信 / 邮件 / 短信(支持 topic 群发)
tm_evaluatetm:eval商标注册成功率评估(平台规范报告)
ops_whois / ops_dns / ops_ssl / ops_pingops:query域名 Whois / DNS 解析 / 证书检查 / 拨测

档案命名空间:全局资产 = persona.md / rules.md / memory.md + 自建档案(跨项目通用);项目资产 = <项目名>/档案名(如 my-app/devlog.md)。每次保存生成新版本(旧版不可变、可回滚=生成新版本)。

外部 MCP 服务工具以 ext_<服务名>_<工具名> 命名混入 tools/list,仅 mcp:proxy 授权且在 Token 白名单(--mcp-allow)内的服务可见可用。外部服务在控制台「DDNT 网络 → 外部 MCP 服务」注册(仅接受公网地址,平台做 SSRF 防护并实时验活)。

安全机制

接入方式

推荐:ddnt CLI 内置桥(Token 不进 AI 客户端,见下节 MCP(智能体接入))。

也支持远端直连(Token 会出现在客户端配置里,注意保管):

curl -X POST https://ddnt.com/mcp \
  -H "Authorization: Bearer ddnt_xxxx" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

计费与门控

DDNT 能力网络走「功能市场」订阅门控(未订阅时 MCP 工具返回订阅提示);外部 MCP 代理转发可由平台开启按次计费(单价见 /api/ops/pricing 的 mcpproxy 项,默认关闭)。

错误码速查

HTTP / JSON-RPC code含义
401缺少 / 无效 / 已吊销 / 已过期的 Agent Token,或账号不存在
403Token 被风控冻结、账号封禁、工具不在授权范围(scope/黑名单/白名单)、调用回环(-32001)
429请求过于频繁:每 Token 每分钟限 60 次(-32002)
400 / -32600非 JSON-RPC 2.0 报文
-32601未知 method 或工具不存在
isError 内容「请先订阅《DDNT 能力网络》」=功能门控未开通;「权限不足:需要 xx scope」=重新签发凭证

开放能力与二次开发契约(CLI / API / MCP 三层)

DDNT 是中立、开放、包容的通用 AI 与设备调度通讯底座:不绑定任何自研组件,用户可基于下述三层开放能力完成全场景开发——完全不用平台前端、完全不用平台安全组件。

三层开放能力总览

入口适用对象
CLIddnt(bin/ddnt.js,Node 18+,零依赖)运维/自动化脚本、CI、本地工作区同步(devlog「一本多版」沉淀)
HTTP API/api/push/api/agent/*(API Token 鉴权)任意语言程序化调用(推送/查状态/档案 CRUD/项目 CRUD)
MCP/mcp(Agent Token 鉴权,Streamable HTTP / JSON-RPC 2.0)智能体直接对话式调用(读资产/写档案/推送/查询/代理外部工具)

结构化输出契约

档案数据模型(二开契约)

私有化部署

# 默认本地(零依赖):密文经 每用户 DEK(AES-256-GCM) 信封加密后落库——自动可用
# 切换 agi.locker / 任意第三方 blob 存储(零知识:只保管密文不解密):
DDNT_LOCKER_URL=https://<服务地址>   # 三件套齐备才启用,缺省 local 零风险启动
DDNT_LOCKER_KEY=<调用方 key>
DDNT_LOCKER_SECRET=<HMAC 密钥>
DDNT_ASSET_PROVIDER=locker|local

provider 适配契约(开放生态规范红线):任何能按 key 存取不透明字节的系统都能作为资产后端——只需实现 put/get/del(blobKey, 密文bytes) 语义(blobKey=u{user}/f{file}/v{version},不可变+同 key 幂等);加密永远是调用方(平台)的事,存储方不理解内容、不持密钥。

二次开发约定(红线)

CLI 命令行工具(ddnt)

平台统一品牌 CLI ddnt(Node 18+,零依赖),同时是推送工具、储物柜管家与 MCP 桥。源码在仓库 bin/ddnt.js,完整说明见 cli/README.md。原 jnt 指令已并入(旧配置与 JNT_* 环境变量仍兼容)。

安装与配置

# Linux/Mac 可直接使用;Windows 用 node 前缀,如 node bin/ddnt.js ...
npm link                          # 或直接 node bin/ddnt.js
ddnt config set-url https://ddnt.com
ddnt config set-token YOUR_API_TOKEN   # 后台「令牌管理」创建(主 API Token)
# 环境变量优先(适合 CI):DDNT_API_BASE / DDNT_API_TOKEN(兼容 JNT_*)

命令一览

命令说明
ddnt config set-token <token>配置主 API Token(存 ~/.ddnt.json,兼容读取旧 ~/.junengtui.json)
ddnt config set-agent-token <ddnt_xxx>配置 Agent Token(供 ddnt mcp 桥使用)
ddnt config set-url <https://...>配置平台地址(默认 ddnt.com)
ddnt whoami账号 / 套餐 / 余额 / 剩余配额
ddnt push <内容> [--title 标题] [--channel wechat|email|sms] [--to 收件人] [--topic 话题名]推送消息(topic 优先于 to)
ddnt messages [--limit 10] / ddnt topics最近推送消息 / 我的话题列表
ddnt tm eval <名称> --cls 35|--all [--send email|wechat|sms] [--to 邮箱]商标注册成功率评估(可推送报告)
ddnt tm send <记录ID> --channel email [--to 邮箱]把已生成报告按系统模板推送
ddnt asset get [字段|路径] [-v 版本]读取档案(旧字段名 profile/rules/memory/secrets 兼容;路径如 my-app/devlog.md)
ddnt asset set <profile|rules|memory> [text]写入档案(text 缺省读 stdin,@path 读文件;保存=新版本)——推荐用下方工作区命令
ddnt init [--project 名称]生成本地工作区(三份模板 + .ddnt-sync.json 同步清单);--project 生成项目子文件夹
ddnt asset status本地 vs 服务器(已同步 / 待推送 / 待拉取 / 冲突)
ddnt asset push [文件...] [-n 说明] [--force]上传=生成新版本;无参推全部本地改过的;路径带项目前缀自动识别项目
ddnt asset pull [名称...] [--force]拉取到工作区(冲突需 --force,覆盖前自动 .bak)
ddnt asset diff / history / rollback <路径> <版本>本地对比 / 版本时间线 / 回滚(=生成新版本)
ddnt project create <名称> [描述] / project list / project archive <名称>创建项目 = 服务器文件夹(预置 memory/rules 模板);列表 / 归档(只读保留)
ddnt memory add "文本" [--project 名称]记忆快写:追加一行 memory.md 并自动上传(支持管道批量导入)
ddnt token create --name X --scopes a,b [--days N] [--mcp-allow *|srv1,srv2] [--mcp-deny t1,t2]签发 Agent Token(明文仅显示一次)
ddnt token list / ddnt token revoke <id>凭证列表(仅前缀)/ 吊销
ddnt mcp [--token ddnt_xxx]MCP stdio→HTTP 桥(供 AI 客户端配置为 command)

示例

# 服务器告警推送到邮箱
ddnt push "服务器告警:CPU 超 90%" --title 告警 --channel email --to ops@ddnt.com
# 写入主人画像并签发只读凭证
echo "主人是全栈开发者,偏好简洁回答" | ddnt asset set profile -
ddnt token create --name claude --scopes profile:read,rules:read,memory:read --days 30

MCP 接入(智能体直接调用)

推荐用 ddnt CLI 内置桥 ddnt mcp:AI 客户端通过 stdio 与本进程对话,本进程携带 Agent Token 转发到平台 /mcp(Streamable HTTP)。Token 只存主人本机,AI 客户端配置文件里没有任何密钥,泄露或滥用一条 ddnt token revoke 即刻切断。工具清单与安全机制见 DDNT 能力网络

准备(一次性)

ddnt token create --name my-ai --scopes profile:read,rules:read,memory:read,push:send,mcp:proxy --mcp-allow '*'
ddnt config set-agent-token <上一步输出的 ddnt_xxx>   # 或环境变量 DDNT_AGENT_TOKEN

接入 Claude Desktop(claude_desktop_config.json)

{
  "mcpServers": {
    "ddnt": {
      "command": "node",
      "args": ["/绝对路径/junengtui/bin/ddnt.js", "mcp"]
    }
  }
}

接入 Cursor(~/.cursor/mcp.json)

{
  "mcpServers": {
    "ddnt": {
      "command": "node",
      "args": ["/绝对路径/junengtui/bin/ddnt.js", "mcp"]
    }
  }
}
接入后可直接对智能体说「先加载我的画像和规则再回答」「帮我微信推送一条:服务器已恢复」「用我注册的 xxx MCP 服务查一下」。

Agent 查询接口(API Token 直调)

CLI 与 MCP 底层使用的查询接口,均以 API Token 鉴权(与网页会话隔离),适合程序化读取账号状态。鉴权三种方式任选:Authorization: Bearer <token>X-Api-Token 头、或 body/query 传 token(与推送接口一致)。

接口说明
GET/api/agent/whoami账号信息 + 套餐 + 余额 + 剩余配额 + 令牌列表(API Token)
GET/api/agent/messages?limit=10最近推送消息(content 截断 200 字,?before=id 游标翻页)
GET/api/agent/topics我的话题列表(含订阅数)
# 查询账号余额与配额
curl https://ddnt.com/api/agent/whoami -H "Authorization: Bearer YOUR_API_TOKEN"

场景示例

以下为几个典型接入场景,复制后替换令牌与参数即可直接使用。

场景一:服务器告警推送(微信)

curl -X POST https://ddnt.com/api/push \
  -H "Content-Type: application/json" \
  -d '{
    "token": "YOUR_API_TOKEN",
    "title": "服务器告警",
    "content": "CPU 使用率 99%,已持续 5 分钟",
    "channel": "wechat"
  }'

场景二:电商订单通知(话题群发:微信 + 邮件)

curl -X POST https://ddnt.com/api/push \
  -H "Content-Type: application/json" \
  -d '{
    "token": "YOUR_API_TOKEN",
    "topic": "订单通知组",
    "title": "新订单提醒",
    "content": "订单 #20260829 已支付 ¥299.00",
    "channel": "wechat,email"
  }'

先在「话题订阅」中创建话题并让成员订阅,群发一次触达全部订阅人。

场景三:IoT 设备上线(MQTT 触发推送)

设备通过 MQTT 发布一条消息到已订阅的主题,平台自动将其转化为微信/邮件推送;设备数据也可以经 Webhook 回调进入业务系统。详见「MQTT 订阅」章节。

场景四:定时数据报告(备忘录 / 监测中心)

在控制台「备忘录」设置每日定时提醒,或用「监测中心」监控网页/接口/关键词变化,变化即推送——无需编写任何代码。

更新日志

2026-08-31
  • DDNT 能力网络上线:AI 资产储物柜(画像 / 规则 / 记忆 / 私钥)+ Agent Token 受限授权 + MCP 服务器(12 个平台工具)。
  • MCP 代理网关:注册外部 MCP 服务后,其工具以 ext_<服务>_<工具> 合并进 tools/list;带防调用回环、白名单与限流。
  • CLI 统一品牌:jnt 更名 ddnt,新增 asset / token / mcp 子命令;旧版独立 stdio MCP 脚本废弃,由 ddnt mcp 内置桥替代。
2026-08-29
  • 平台视觉全新升级:深色 / 浅色主题切换,首页与控制台界面全面改版。
  • 30+ 项稳定性与安全修复:支付链路、配额计费、令牌与账号安全加固。
  • 新增本开发文档站:栏目重组、全文搜索、场景示例与更新日志。
2026-08-11
  • CLI 命令行工具(jnt)发布:config / push / topics 一条命令完成推送。
  • MCP 接入:智能体(Agent)可直接调用推送能力。
  • Agent 查询接口:API Token 直调查询用量与消息。
更早
  • 微信开放平台扫码登录;顶部导航稳定布局优化。
  • 商标评估、小类智选、商机查询、域名市场等业务陆续上线。

条款与协议

使用条款

数据与隐私

免责声明

常见问题

未绑定微信/邮箱时调用推送接口会怎样?

接口会返回 400 提示尚未绑定;未配置渠道凭证时进入开发模式,消息仅打印到服务端控制台,便于联调。

免费配额包括哪些?

注册即赠免费调用配额,覆盖消息推送、商标评估、AI 试用与 MQTT 基础订阅;超出后按套餐配额或余额按量计费。

API 令牌泄露了怎么办?

立即到控制台「令牌管理」删除该令牌并新建;令牌删除后即刻失效,不影响账户其他数据。

支持哪些接入方式?

REST API(OpenAI 风格)、CLI 命令行工具(ddnt)、MCP 智能体协议(DDNT 能力网络)、MQTT 订阅与 Webhook 事件回调,均可完成推送与查询。

遇到问题如何反馈?

登录控制台后通过「帮助与反馈」提交工单,或发送邮件联系支持团队,工作日 24 小时内回复。

错误码

codeHTTP含义常见原因
200200成功
400400参数错误缺参数 / 格式不正确 / 内容超长 / 话题不存在
401401未认证令牌缺失或无效(请检查 token 是否正确)
403403无权限账号被封禁 / 未登录访问受保护接口
404404资源不存在接口路径或资源 ID 错误
429429请求过于频繁触发限流(推送 60 次/分钟,通用 200 次/分钟)
500500服务器错误服务端异常,请稍后重试或提交工单

给 AI 对接者的说明

如果你是一个 AI Agent 或自动化脚本,首选 MCP 接入(见上文,可直接对话调用);也可直接用 HTTP 接口。请遵循以下约定: