跳至主要內容
hs-sql-agent
2.0.2
文件 2.0.2
文件 管理

Semantic Metadata

在 hs-sql-agent 2.0.1 用 table/column semantics、relationships 與 metric metadata 強化 schema discovery。

Entities 為 table 與 column 提供 display name、description、synonyms。
Relationships 描述 source-to-target column relationship、cardinality 與 direction。
Metrics 以 formula、aggregation、grain、filter、synonyms 描述 scoped metric metadata。

Semantic metadata 綁定到 Database Management entry。它會豐富 schema discovery 對實體 database 的描述,但不修改實體 schema。

Entity metadata

Entity record 可以描述整張 table,或 table 裡的一個 column。

Field意義
DbManagementId擁有該 semantic record 的 Database Management entry
SchemaName選用 schema
TableName必填 physical table name
ColumnName選用;不填代表 table-level metadata
DisplayName人類可讀名稱
DescriptionBusiness 或 operational description
Synonyms描述該 table/column 的替代術語

Synonyms 會 trim 空白、case-insensitive 去重,單筆 record 最多保留 100 個值。

Relationships

Relationship metadata 描述兩個 physical columns 之間的關係。

Field意義
Name穩定 relationship name
SourceSchema / SourceTable / SourceColumnSource side
TargetSchema / TargetTable / TargetColumnTarget side
Cardinality預設 many-to-one
Direction預設 source-to-target
Description選用的 operator/business explanation

Schema discovery 只有在 authenticated MCP key 的 table whitelist 同時允許 relationship 兩端 table 時,才會把 relationship description 暴露出去。

Metrics

Metric metadata 綁定 table,可描述 business measure:

Field意義
Name穩定 metric identifier
DisplayName人類可讀名稱
DescriptionBusiness explanation
FormulaFormula metadata
Aggregation預設 custom;描述 intended aggregation
Grain選用 grain metadata
Filter選用 filter metadata
SynonymsMetric alternate terms
Executable2.0.1 model 固定為 false

MCP schema discovery 如何使用 semantics

正式 MCP schema tools 仍然是 get_schemasget_tablesget_columns

當 key 綁定的 Database Management entry 有 semantic metadata 時:

  • get_tables 可以附加 table display name、description、synonyms 與 scoped metric descriptions;
  • get_columns 可以附加 column display name、description、synonyms 與 relationship descriptions;
  • table whitelist 仍會限制 physical table visibility 與 relationship context。

因此 semantic metadata 只會 enrich discovery,不會擴張 key 能存取的資料範圍。

Admin API surface

2.0.1 Admin API 在 api/DbSemantic 提供 semantic management:

OperationPermission
讀取 database entity records/runtime/db-management/semanticview
讀取 entities/relationships/metrics combined model/runtime/db-management/semanticview
upsert entity metadata/runtime/db-management/semanticedit
delete entity metadata/runtime/db-management/semanticedit
upsert/delete relationship/runtime/db-management/semanticedit
upsert/delete metric/runtime/db-management/semanticedit

Modeling 建議

適合放進 semantic metadata 的內容,是足夠穩定、能幫助多個 agent 與 operator 的 domain knowledge:

  • 與 physical table/column name 不同的 business names;
  • abbreviation 與 domain synonyms;
  • query generation 重要的 relationships;
  • 能釐清 formula 與 grain 的 metric definitions。

不要把 credentials、runtime instructions 或 authorization decision 偷塞進 schema description。Access control 仍然是獨立且被強制執行的 layer。