# 【发布】dtns协议的js-sdk
# dtns协议简介
dtns协议是用于dtns.network分布式智体网络的通讯协议。主要目标是将各个独立的智体节点,通过dtns协议(dtns.network)连接在一起,以便实现方便的高效智体协作(agent-to-agent协议)。
# 主要功能
- 节点发现
与www互联网协议一样,dtns协议全称是decentralized token name service(去中心化的令牌名称查询服务网络)。主要的public智体节点注册管理归dtns.network,以实现dtns.os的智体节点网络互联。
- 节点通讯
使用dtns://协议,与使用http协议一样,方便地实现连接。但dtns协议未定义数据链路层,具备使用什么样的通讯协议(目前可采用webrtc、websocket、http,后续还可以增加更多的网络通讯协议作为数据链路:目前已提供了rt-datalink的插件,用来实现智体节点提供websocket的协议接入)。
兼容http开发的实时通讯网络:协议上高度兼容http的协议开发。但由于主通讯协议采用的是webrtc通讯协议。所以天然具备实时通讯、多模态支持、e2ee支持。更安全更可靠。
DID:基于dtns.network的数据存储和数据协议底层dnalink基因链,故内置集成了安全可靠的分布式身份认证机制DID。
- 节点类型
loc本机、dev节点、public公开访问的节点(dtns.network上注册)
# 如何使用
- 使用DTNSManager
在js-sdk中,可使用 g_dtnsManager.run('dtns://web3:nodename/api-path',params)来轻松实现连接和访问dtns-api。
- rpc_client
在js-sdk中,不建议直接使用rpc_client。这个更底层。通常直接使用DTNSManager来进行dtns协议的智体节点连接。并形成单实例的连接池。
- 开源代码
可参考dtns.fastdown的高效FCDN分布式下载器代码,来集成dtns协议的JS-SDK。详见github代码仓库。
# ai-agent的通讯
基于dtns协议可轻松实现ai-agent的智体单协作,通讯是实时的,并且发现、管理、通讯都是非常方便的(比使用http还方便)。集成度高,还有开源开放的DID身份认证标准,只需使用ecc-key密钥,即可轻松完成密钥验证。
ai-agent案例:dtns.network上的loc节点、dev节点和public节点,均已是互联互通的dtns协议下的智体节点。
# dtns.connector
由于dtns.connector是智体OS(dtns.network)的客户端,通过智体IB(智体聊)页面,可直接使用分号前缀;来实现dtns协议的api测试:
;dtns://web3:nodename/rtibchat/help
输出为:
智体聊的帮助说明json结果。
# 对话agent
在对话agent中,定义的system-role(使用#系统角色#作为首个对话内容)可在其中定义poplang.agent或poplang.ai.agent代码块,通过poplang代码来定义一个强大的ai-agent。参考官网的用户案例中心的相关案例(例如《嘴炮导航》、poplang的LLM大模型中文编译器等案例)
poplang代码中可使用类似下述的dtns-api来实现访问dtns.network上的智体节点:
- 跨网络的远程智体节点访问
dtns://web3:{other-nodename}/rtibchat/help
注:可在当前的智体节点,使用poplang轻松访问任意的其它的智体节点。
- 此节点的访问
/rtibchat/help
注:省略前述的dtns://web3:nodename的前缀(这个前缀是用来导航或寻址dtns.os智体节点的)
# 发现ai-agent
目前暂未定义发现其它dtns.os智体节点的协议。主要靠dtns.network的public节点来实现发现。
支持各智体节点,作为agent-host来对外提供智体节点的prompt描述,以便方便地集成到其它的智体节点中,从而实现专业的ai-agent.store智体应用商店。
更新于:2025-4-11
# 下载dtns协议JS-SDK
智体OS官网 https://www.dtns.top (opens new window)
查看文档(下载) https://dtns.top (opens new window)