-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Hello,
We are building an open platform for Multi-Agent Systems (MAS) with a focus on a Web of Agents architecture, and we'd like to integrate Web of Things (WoT) principles for compatibility with the existing WoT ecosystem. You can find our vision here.
Objective:
We aim to create a Kotlin or Java-based framework that allows developers to quickly define AI Agents as WoT-compatible Things. We want this framework to integrate seamlessly with Spring Boot or Quarkus, leveraging their HTTP server capabilities and auto configuration features.
Key Features:
- Annotation-driven approach: Developers should be able to annotate their classes to define properties, actions, and events in a way that's compliant with the WoT Thing Description.
- Automatic generation of WoT-compliant ExposedThing instances based on annotated classes.
Thing Example with a Lamp
@Thing(title="Smart Lamp", description= "A simple smart lamp with brightness control and on/off actions.", moreMetadata)
class SmartLamp(val thingId: String) {
@Min(0)
@Max(100)
@Property(title = "brightness", readOnly = true)
var brightness: Int = 80
@Action(title = "setBrightness")
fun setBrightness(level: Int): String {
return "Brightness set to $level"
}
@Action()
fun turnOn(): String {
return "Lamp turned on"
}
}
This would generate
{
"@context": ["https://www.w3.org/2019/wot/td/v1"],
"id": "urn:dev:wot:SmartLamp",
"title": "Smart Lamp",
"description": "A simple smart lamp with brightness control and on/off actions.",
"properties": {
"brightness": {
"title": "brightness",
"type": "integer",
"readOnly": true,
"description": "The current brightness level of the lamp",
"minimum": 0,
"maximum": 100,
}
},
"actions": {
"setBrightness": {
"title": "setBrightness",
"description": "Sets the brightness level of the lamp",
"input": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"output": {
"type": "string"
}
},
"turnOn": {
"title": "turnOn",
"description": "Turns the lamp on",
"output": {
"type": "string"
}
}
}
}
We would love to use the wot-servient library as a baseline for this framework. Would you be open to us cloning the repository and adapting parts of your code for Kotlin or Java?
We aim to align with the W3C WoT specification and provide a user-friendly framework for developers building WoT-compatible AI Agents on the cloud.