用戶端
該儲存庫提供了五種語言的官方用戶端庫。 每個用戶端的線路類型都是從規範的 TypeScript 產生的 來源在 types/ 中, 因此,每個協定都慣用地呈現相同的協定形狀 生態系。每個庫都有版本控制並獨立發布 - 請參閱 RELEASING.md 對於每種語言的標籤方案。
選擇您想要整合的語言並從 它通常透過包註冊表進行傳送。
|語言 |套件 |註冊表 | | -------------- | -------------------------------------------------------------------------------- | | Rust | ahp-types,ahp,ahp-ws| crates.io | | TypeScript | @microsoft/agent-host-protocol | npm | | Kotlin / JVM | com.microsoft.agenthostprotocol:agent-host-protocol | Maven 中心 | | Swift | AgentHostProtocol,AgentHostProtocolClient | Swift 套件管理器 | | Go | github.com/microsoft/agent-host-protocol/clients/go | Go 模組代理程式 |
Rust
crates.io 上的三個crate,反映了分割情況 線路類型、傳輸無關的用戶端和 WebSocket 之間 適配器:
ahp-types— 產生的連線 類型,無 I/O。ahp— 非同步Client與純 reducer、可插入的Transport特徵和多主機ahp::hosts下的註冊表。ahp-ws— WebSocket 傳輸 建立在tokio-tungstenite之上。
cargo add ahp ahp-ws
# add `ahp-types` directly only if you need the wire types without
# the client runtime.請參閱 Rust 用戶端 README 了解快速入門、自訂傳輸和多主機詳細資訊。
TypeScript
單一瀏覽器和節點友善的包 npm 具有四個子路徑入口點(線路類型、用戶端、多主機 編排、WebSocket 傳輸):
npm install @microsoft/agent-host-protocolimport { AhpClient } from '@microsoft/agent-host-protocol/client';
import { WebSocketTransport } from '@microsoft/agent-host-protocol/ws';請參閱 TypeScript 用戶端 README 取得完整的子路徑表和完整的快速啟動。
Kotlin
純 Kotlin/JVM 工件 Maven 中心。 以 Java 8 位元組碼為目標,因此可以直接使用 Android、伺服器端 JVM 服務和 KMP/JVM 目標。
Gradle (Kotlin DSL)
dependencies {
implementation("com.microsoft.agenthostprotocol:agent-host-protocol:0.2.0")
}Gradle(Groovy DSL)
dependencies {
implementation 'com.microsoft.agenthostprotocol:agent-host-protocol:0.2.0'
}Maven
<dependency>
<groupId>com.microsoft.agenthostprotocol</groupId>
<artifactId>agent-host-protocol</artifactId>
<version>0.2.0</version>
</dependency>該庫傳遞依賴於 org.jetbrains.kotlinx:kotlinx-serialization-json。 請參閱 Kotlin 用戶端 README 對於用法,Ahp.json 序列化器實例,以及什麼是/不是 包含在盒子中(還沒有傳輸 - 帶上您自己的 OkHttp/Ktor)。
Swift
透過 Swift 套件管理器分發。 Package.swift 清單 位於儲存庫根目錄,因為 SwiftPM 只解析清單 在遠端 git 儲存庫的根目錄下; Swift 來源本身已存在 在clients/swift/AgentHostProtocol/下。
Package.swift 依賴項
.package(url: "https://github.com/microsoft/agent-host-protocol.git", from: "0.1.0")目標依賴項
.target(
name: "MyApp",
dependencies: [
.product(name: "AgentHostProtocol", package: "agent-host-protocol"),
.product(name: "AgentHostProtocolClient", package: "agent-host-protocol"),
]
)AgentHostProtocol— 產生的線路類型、指令、通知、 動作和純 reducer。AgentHostProtocolClient— 單主機AHPClient、MultiHostClient、 狀態鏡子,以及URLSessionWebSocketTransport/NWConnectionWebSocketTransport運輸。
請參閱 Swift 用戶端 README 對於最小的單主機和多主機範例,傳輸 選擇,並重新連線分層指導。
Go
透過公用 Go 模組代理程式解析單一 Go 模組。三 軟體包鏡像了 Rust 三箱分割:
ahptypes— 僅線路協定類型。ahp— 透過可插入的Transport非同步Client,純 reducer, 以及ahp/hosts下的多主機執行時間。ahpws— WebSocket 傳輸建構於github.com/coder/websocket。
go get github.com/microsoft/agent-host-protocol/clients/go@latestimport (
"github.com/microsoft/agent-host-protocol/clients/go/ahp"
"github.com/microsoft/agent-host-protocol/clients/go/ahptypes"
"github.com/microsoft/agent-host-protocol/clients/go/ahpws"
)請參閱 Go 用戶端 README WebSocket 快速入門。
選擇協定版本
每個用戶端公開兩個協定版本常數:
PROTOCOL_VERSION— 版本的 SemVer 字串 用戶端的目前版本實作了。SUPPORTED_PROTOCOL_VERSIONS— 用戶端的每個版本 願意洽談,首選優先。透過它(或 派生清單/陣列)作為InitializeParams上的protocolVersions在握手過程中。
用戶端軟體包版本追蹤規格版本,但它們不是 需要完全匹配 - 僅補丁後發布的用戶端 用戶端修復可能位於比匹配的規格更高的補丁上 釋放。上面的兩個版本常數始終反映 用戶端建構的協定版本可以說話。參見 版本控制 用於完整協商 模型。