OrangePi3588Media/docs/Agent_API_Extensions.md
2026-04-18 12:16:10 +08:00

114 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Agent 新增接口说明(供远程运维工具对接)
> 说明:本文件仅覆盖本次新增/扩展的 agent 接口与返回字段,不包含已有接口的完整文档。
## 通用
- 鉴权:需要 `X-RK-Token`(写操作必需;读操作依配置而定)。
- 返回:统一 JSON。
## 1) 指标接口
### GET `/v1/metrics`
**用途**:资源/进程运行指标JSON
**响应示例**(字段可能随平台略有不同):
```json
{
"timestamp_ms": 1710000000000,
"uptime_sec": 12345,
"cpu": {"usage_pct": 12.3, "sample_ms": 1000, "total_ticks": 123, "idle_ticks": 45},
"memory": {"total_kb": 1024000, "available_kb": 512000, "free_kb": 128000, "buffers_kb": 64000, "cached_kb": 256000},
"load_avg": {"one": 0.12, "five": 0.20, "fifteen": 0.30},
"disk": {"path": "/", "total_bytes": 1000000, "free_bytes": 200000, "used_bytes": 800000, "used_pct": 80},
"disk_io": {"read_bytes": 123456, "write_bytes": 654321},
"net": {"rx_bytes": 111, "tx_bytes": 222},
"media_server": {"supported": true, "running": true, "pid": 1234, "config_path": "/path", "started_at_ms": 1710000000000, "uptime_sec": 120}
}
```
## 2) 版本与资产
### GET `/v1/versions`
**用途**:版本信息与二进制/模型清单。
**响应示例**
```json
{
"agent": {
"version": "0.0.0-dev",
"build_id": "20260418.141245",
"build_type": "release",
"git_sha": "...",
"binary": {"path": "...", "sha256": "...", "size": 123, "mtime_ms": 1710000000000}
},
"media_server": {
"supported": true,
"version": "...",
"binary": {"path": "...", "sha256": "...", "size": 456, "mtime_ms": 1710000000000}
},
"models": {
"count": 2,
"items": [{"name": "yolo", "sha256": "...", "path": "...", "size": 123, "mtime_ms": 1710000000000}]
}
}
```
### GET `/v1/assets`
**用途**:资产详情(配置、二进制、模型清单)。
**响应示例**
```json
{
"agent_binary": {"path": "...", "sha256": "...", "size": 123, "mtime_ms": 1710000000000},
"config": {"path": "...", "sha256": "...", "size": 456, "mtime_ms": 1710000000000},
"config_last_good": {"path": "...", "sha256": "...", "size": 456, "mtime_ms": 1710000000000},
"media_server_binary": {"path": "...", "sha256": "...", "size": 789, "mtime_ms": 1710000000000},
"models": {"items": [...]}
}
```
## 3) 任务状态查询
### GET `/v1/tasks/{id}`
**用途**:查询异步/长耗时任务状态。
**响应示例**
```json
{
"id": "...",
"type": "media_binary_update",
"status": "success",
"started_at_ms": 1710000000000,
"ended_at_ms": 1710000001000,
"error": "",
"result": {"path": "...", "sha256": "..."}
}
```
## 4) media-server 二进制回滚
### POST `/v1/media-server/binary/rollback`
**用途**:使用备份文件回滚 media-server 可执行文件。
**请求体**
```json
{ "backup_path": "/path/to/media-server.bak.20250101-120000" }
```
**响应示例**
```json
{
"ok": true,
"path": "...",
"sha256": "...",
"size": 123,
"mtime_ms": 1710000000000,
"backup_path": "...",
"task_id": "..."
}
```
## 5) 关键接口新增字段
- `/v1/media-server/status`、`/v1/media-server/start`、`/v1/media-server/restart`、`/v1/media-server/stop`
- **新增字段**`started_at_ms`
## 6) 操作审计(服务端日志)
- 审计日志JSONL默认落盘`{baseDir}/logs/agent_audit.jsonl`
- 覆盖操作:配置更新/应用、模型上传、media-server 启停与更新/回滚、face_gallery 更新与 reload 等