refactor(agent)!: focus tools on SCADA
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { tool } from "@opencode-ai/plugin";
|
||||
import { callServerApiTool } from "./server_api_shared.js";
|
||||
|
||||
export default tool({
|
||||
description:
|
||||
"查询一个或多个 SCADA 资产在指定时间范围内的时序读数。调用前通常先用 list_scada_assets 获取资产 id;必须给出明确的 observed_from 和 observed_to,不要省略或自行扩大时间范围。",
|
||||
args: {
|
||||
asset_ids: tool.schema
|
||||
.array(tool.schema.string().uuid())
|
||||
.min(1)
|
||||
.max(100)
|
||||
.describe(
|
||||
"SCADA asset UUID 数组,1 到 100 个。必须使用 list_scada_assets 返回的 assets[].scada_id,不要使用 GeoServer feature id/fid、external_id 或 site_external_id。",
|
||||
),
|
||||
observed_from: tool.schema
|
||||
.string()
|
||||
.datetime()
|
||||
.describe(
|
||||
"查询开始时间,ISO8601 datetime 字符串,必须包含时区,例如 2026-04-10T07:15:00Z 或 2026-04-10T15:15:00+08:00。包含该时刻。",
|
||||
),
|
||||
observed_to: tool.schema
|
||||
.string()
|
||||
.datetime()
|
||||
.describe(
|
||||
"查询结束时间,ISO8601 datetime 字符串,必须包含时区,且必须晚于 observed_from。服务端按半开区间处理:observed_at >= observed_from 且 observed_at < observed_to。",
|
||||
),
|
||||
granularity: tool.schema
|
||||
.enum(["5m", "1h", "1d"])
|
||||
.default("5m")
|
||||
.describe(
|
||||
"读数粒度:5m 为原始 5 分钟读数,1h 为小时聚合,1d 为日聚合。未指定时默认 5m。",
|
||||
),
|
||||
metrics: tool.schema
|
||||
.array(
|
||||
tool.schema.enum([
|
||||
"conductivity_mean",
|
||||
"level_mean",
|
||||
"flow_mean",
|
||||
"temperature_mean",
|
||||
]),
|
||||
)
|
||||
.min(1)
|
||||
.max(4)
|
||||
.describe(
|
||||
"要返回的指标数组,1 到 4 个。允许值:conductivity_mean(电导率均值)、level_mean(液位均值)、flow_mean(流量均值)、temperature_mean(温度均值)。",
|
||||
),
|
||||
},
|
||||
execute: (args, context) =>
|
||||
callServerApiTool("query_scada_readings", args, context.sessionID),
|
||||
});
|
||||
Reference in New Issue
Block a user