LinkSoul Agent SDK (Java)
LinkSoul Agent SDK (Java)
⚠️ v1.4.0 breaking auth change — NOT compatible with v1.3.0 or earlier
v1.4.0 standardises the AgentSDK signing scheme to align with the LinkSoul open-platform spec. Existing v1.3.0 (and earlier) clients cannot upgrade in place:
- Auth: JWT (one
AGIBOT_AUTHORIZATIONheader) → HMAC-SHA256 with five signed headers (X-App-Id/X-App-Key/X-Timestamp/X-Nonce/X-Signature)- Credentials: legacy custom-agent template → application on the LinkSoul open platform (issues a new
appKeyalongsideappId/appSecret)- Factory:
AgentSdk.create(url, appId, appSecret)→AgentSdk.create(url, appId, appKey, appSecret)- Gateway URL:
wss://agentsdk.agibot.com/v1/agentsdk→wss://open.agibot.com/api/V1/open-portal/app/wss/agent-sdkcallbackTypesmoves out of the JWT payload into a standaloneX-Callback-Typesheader (JSON array string)Upgrading requires rotating credentials, switching the gateway URL, updating the
create()call, and rewriting any custom auth-header handling. See the CHANGELOG for the full migration path.
Connection Info
| Item | Value |
|---|---|
| WebSocket URL | wss://open.agibot.com/api/V1/open-portal/app/wss/agent-sdk |
| appId | Obtained from the LinkSoul open platform when creating an application |
| appKey | Obtained from the LinkSoul open platform when creating an application |
| appSecret | Obtained from the LinkSoul open platform when creating an application (HMAC-SHA256 signing key) |
AgentSdk agentSdk = AgentSdk.create("wss://open.agibot.com/api/V1/open-portal/app/wss/agent-sdk", appId, appKey, appSecret);
Quick Navigation
| Document | Description |
|---|---|
| Quick Start | 5-minute setup with Maven + complete integration code |
| Architecture | System architecture, threading model, reconnection mechanism |
| Passive Callbacks Guide | 8 passive callback types explained + response methods |
| Robot-side state modules | All 22 stateName modules received in onState, field schemas + frequency conventions |
| Active Operations Guide | Task flow (v1.3.0 first opened the active surface but only task flow was ever functional; v1.4.0 removes the never-enabled entries — skill / state query, pull / push stream — and narrows the public API to task flow) |
| Task-flow payload protocol | Skill orchestration — action_group / action_type JSON reference + SIMPLE/COMPLEX examples |
| Semantic Skills | Full catalogue of skills that can be dispatched via response.onSkill / task flow |
| Error Handling | Error codes, reconnection mechanism, resource release |
| AgentSdk API | Main entry class complete API reference |
| Enums Reference | All enum types and values |
| Passive Callbacks API | Callback/Response class method signature reference |
| Active Requests API | Task flow API signatures |
| Passive Examples | Complete passive interaction example code |
| Active Examples | Complete active interaction example code |
| Troubleshooting & FAQ | Troubleshooting manual + FAQ (grows over time) |
| Glossary | Business / SDK / model / reject terminology reference |
Two Interaction Modes
LinkskyGatewayis the LinkSoul open-platform ingress gateway (wss://open.agibot.com/api/V1/open-portal/app/wss/agent-sdk), which relays bidirectional messages between the SDK and robots.
┌─────────────────────────────────────────────────────────┐
│ LinkSoul Platform │
├─────────────────────────────────────────────────────────┤
│ │
│ Robot ──Audio/Video/Text──→ LinkskyGateway ──→ SDK CB │ Passive
│ Robot ←──ASR/LLM/TTS────── LinkskyGateway ←── SDK Resp │
│ │
│ SDK Request ──→ LinkskyGateway ──→ Robot │ Active
│ SDK Result ←── LinkskyGateway ←── Robot │
│ │
└─────────────────────────────────────────────────────────┘
- Passive Interaction: Robot initiates (audio/video/text) -> SDK processes -> Returns result (ASR/LLM/VLM/TTS)
- Active Interaction: SDK initiates -> v1.3.0 first opened skill / state query, pull / push stream and task flow at the API level, but only task flow was ever functional; v1.4.0 removes those never-enabled entries and narrows the public surface to task flow
Distribution downloads
Direct downloads for offline / air-gapped integration:
| File | Kind | Size |
|---|---|---|
linksoul-agentsdk-1.4.0-SNAPSHOT.jar | Binary jar (Java 17+) | 133 KB |
Install it into your local Maven repo first, then resolve via Maven / Gradle normally:
mvn install:install-file \
-Dfile=linksoul-agentsdk-1.4.0-SNAPSHOT.jar \
-DgroupId=com.agibot.aiem \
-DartifactId=linksoul-agentsdk \
-Dversion=1.4.0-SNAPSHOT \
-Dpackaging=jar
<!-- pom.xml -->
<dependency>
<groupId>com.agibot.aiem</groupId>
<artifactId>linksoul-agentsdk</artifactId>
<version>1.4.0-SNAPSHOT</version>
</dependency>
Note: the jar contains only the SDK's own bytecode; third-party dependencies (Netty / fastjson2 / jjwt / SLF4J / Logback / commons-lang3, etc.) must still be resolved through Maven / Gradle. See the full list in Quick Start - Build dependencies.