In this release
Autonomous agents skills can now be managed via the API. Edge Management API provisioning gets broader, capability-scoped access, with new endpoints for converting device twins into edge-config representations and managing of additional configs. Seven new edge connectors are also introduced.
Autonomous Agents
Agent Skills
Autonomous agents can now draw on a library of Markdown-based skills — self-contained instructions describing how to perform a specific capability (e.g. “how to actuate a device”).
Skills can be either shared or private. Shared skills are available to every Property Owner and are managed by ProptechOS. Private skills belong to, and are visible only to, a specific Property Owner.
During execution, an autonomous agent is aware of the skills available to it. When the LLM determines that a skill is relevant to the current task, the agent retrieves the skill content and uses it during execution.
GET /json/skills | List skills(shared + own private), paginated |
POST /json/skills | Create a skill (private, scoped via X-Property-Owner) |
GET /json/skills/{skillId} | Read one skill, including its body |
PUT /json/skills/{skillId} | Update a skill’s description and/or body |
DELETE /json/skills/{skillId} | Delete a skill |
GET /json/skills/{skillId}/history | Paged change history for a skill |
POST /json/autonomousagent/{agentId}/skill/{skillId} | Add a skill to an agent |
A private skill is created and scoped by the X-Property-Owner header; a shared skill (no property owner) can only be created by the proptechOS team. Every create/update/delete is recorded in an append-only history.
API
Edge Management API
Logical device additional configuration
New endpoints for managing Logical Device additional config that covers operational/runtime behavior that isn’t part of what the connector reads from the field:
- Mute config — muteMonitoring (on/off) plus mutePeriods, a list of time windows (start/end) during which the connector’s monitoring/alerting is silenced. This is what lets you schedule a maintenance window on a connector without it firing false alerts.
- Service config — webEnabled plus a list of ports (port/targetPort/name/protocol) controlling the connector’s own local web/service interface (e.g. exposing a diagnostics endpoint on the edge host).
POST /json/logicaldevice/{id}/config/additional Set a connector’s additional (mute/web) configuration
PUT /json/logicaldevice/{id}/config/additional Update additional configuration
DELETE /json/logicaldevice/{id}/config/additional Remove additional configuration
Device config conversion
Endpoints to convert a connector’s Device/Sensor/Actuator twins into their edge config representation. Those are running as an async job.
POST /json/logicaldevice/{id}/config/convert Convert twins into edge configs (async job)
GET /json/logicaldevice/{id}/config/convert/job/{jobId} Poll a conversion job
Edge Connectors
New edge connectors
- Danfoss AK-SM 800A (XML 1.0) — danfoss-xml-connector reads refrigeration-plant data from a Danfoss System Manager head-end over its XML 1.0 interface (read-only for this release).
- Fidelix Fx3000C — HTTP-polling connector for Fidelix BAS controllers.
- Larmia Evo — read-only polling connector.
- SoundSense
- Hallmonitor — cloud-hosted occupancy connector (hall/pitch presence counts)
- Ento — cloud-hosted consumption connector (electricity, water, heating, gas)
- Winkas — cloud-hosted booking connector; projects facility bookings into a Reserved boolean per bookable space (booking details themselves are not stored as twin data)Breaking changes
Breaking changes
No breaking changes in this release
Fixes and minor improvements
- PLAT-5795 — Enity connector: a failed batch-poll chunk could advance the Redis checkpoint past it, skipping the chunk on retry
- PLAT-5796 — Enity connector had no HTTP timeouts — one slow call could freeze all polling
- PLAT-5797 — JMX config-change notifications were dropped in 15 connectors that pass a rejecting NotificationFilter
- PLAT-5864 — Enity connector was storing Enity’s zero placeholder values as real readings; added a configurable read delay (default 0) and aligned request start to the hour
- PLAT-5821 — Autonomous Agent memory API did not enforce the agreed file-count, path-length, and content-length limits
- PLAT-5827 — PUT/POST /application with the AutonomousAgentDelegated scope generated a 500 error
- PLAT-5830 — Editing application scopes via the API cleared the app registration’s Application ID URI
- PLAT-5832 — autonomousagent/usage endpoint stopped working after an Anthropic model change
- PLAT-5848 — /collection/{id}/includes returned 400 “Unknown type of axiom” on the JSON-LD surface
- PLAT-5854 — switch-market forecast down-revisions were discarded, inflating baseline and flexibility offers by ~18%
- PLAT-5865 — ObservationFunction.perSensorAggregation always resolved to SUM regardless of the configured aggregation