<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>元数据 on DataAgentX</title><link>https://e343c64b.dataagentx.pages.dev/zh-cn/tags/%E5%85%83%E6%95%B0%E6%8D%AE/</link><description>Recent content in 元数据 on DataAgentX</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Fri, 23 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://e343c64b.dataagentx.pages.dev/zh-cn/tags/%E5%85%83%E6%95%B0%E6%8D%AE/index.xml" rel="self" type="application/rss+xml"/><item><title>Agent 语义层的 2W1H：为什么需要、是什么、怎么做</title><link>https://e343c64b.dataagentx.pages.dev/zh-cn/tech/20261023-agent-context-three-pillars/</link><pubDate>Fri, 23 Oct 2026 00:00:00 +0000</pubDate><guid>https://e343c64b.dataagentx.pages.dev/zh-cn/tech/20261023-agent-context-three-pillars/</guid><description>&lt;p&gt;&lt;a href="https://e343c64b.dataagentx.pages.dev/images/articles/agent-context-three-pillars/core-zh.svg"&gt;&lt;img src="https://e343c64b.dataagentx.pages.dev/images/articles/agent-context-three-pillars/core-zh.svg" alt="Agent Context 的三重支柱与治理"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;接上数据库、写出 SQL，Agent 就能答对业务问题了吗？&lt;/p&gt;&#10;&lt;p&gt;同样问“上季度收入是多少”，不同工具会给出不同答案：BI 可能把税费、运费算进去了，Notebook 可能没扣折扣和退货，财务按发货日确认，Agent 还在重新猜表之间怎么关联。&lt;/p&gt;&#10;&lt;p&gt;问题藏在“收入”两个字背后。本文基于堵俊平在 DACon 2026 的分享《开放语义、Ontology 与元数据：Agent Context 的三重支柱》整理。&lt;/p&gt;&#10;&lt;h2 id="why为什么需要语义层"&gt;Why：为什么需要语义层&lt;/h2&gt;&#10;&lt;p&gt;Agent 需要知道三件事：收入怎么算、时间按哪一天、该连哪些表。&lt;/p&gt;&#10;&lt;p&gt;当它进一步参与决策和执行，还要知道当前用户有没有权限、操作需要满足什么条件。&lt;/p&gt;&#10;&lt;p&gt;把这些业务知识整理成能共享、可维护的上下文，才能减少每次从头猜测。这就是语义层的起点：不是给模型更多资料，而是给模型一个稳定的解释框架。&lt;/p&gt;&#10;&lt;h2 id="what三重支柱分别解决什么"&gt;What：三重支柱分别解决什么&lt;/h2&gt;&#10;&lt;h3 id="统一元数据"&gt;统一元数据&lt;/h3&gt;&#10;&lt;p&gt;让 Agent 找到真实资产：数据在哪里、结构是什么、如何访问。&lt;/p&gt;&#10;&lt;p&gt;关键点是“不必把所有数据搬到一处”。元数据提供的是地图和通行证，而不是把地图上的东西都搬进一个房间。&lt;/p&gt;&#10;&lt;h3 id="开放语义层"&gt;开放语义层&lt;/h3&gt;&#10;&lt;p&gt;把指标、维度、时间口径和关联定义统一起来，让 BI、应用与 Agent 使用经过确认的业务定义。&lt;/p&gt;&#10;&lt;p&gt;这是解决“收入口径不一致”的核心一层。它约束的不是数据形态，而是计算含义：分子分母是什么、时间按哪个字段、哪些 Join 合法。&lt;/p&gt;&#10;&lt;h3 id="ontology"&gt;Ontology&lt;/h3&gt;&#10;&lt;p&gt;表达业务实体、关系和约束。比如“个人数据”包括邮箱和电话，再把这些概念连接到真实字段，检查权限与脱敏策略。&lt;/p&gt;&#10;&lt;p&gt;这一层的作用在权限和合规场景里最明显：当问题从“收入多少”变成“这个人的信息能不能给这个角色看”，需要的不是指标定义，而是概念之间的关系。&lt;/p&gt;&#10;&lt;p&gt;三者合起来，才构成较完整的 Agent Context。做收入分析和查个人数据，调用的上下文路径并不相同——这一点很重要：上下文不是一份静态文档，而是按任务组合的路径。&lt;/p&gt;&#10;&lt;h2 id="两条路径的对比"&gt;两条路径的对比&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;维度&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;收入分析&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;个人数据保护&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;起点&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;业务术语解释&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;业务域&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;主要依据&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;指标与维度定义&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;本体关系&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;落点&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;指标 → 资产 → 查询执行&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;概念 → 字段 → 权限与脱敏&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;关键约束&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;口径一致、时间口径&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;最小必要、可审计&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;同样一套底座，支撑两种完全不同的路径。这正是“共享”与“统一”的区别：共享底座，不意味着所有问题走同一条链。&lt;/p&gt;&#10;&lt;h2 id="how怎么开始构建"&gt;How：怎么开始构建&lt;/h2&gt;&#10;&lt;p&gt;分享给出的路径很务实：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;先选一个高价值问题，比如收入分析。&lt;/li&gt;&#10;&lt;li&gt;业务与工程一起确认定义。&lt;/li&gt;&#10;&lt;li&gt;绑定真实资产。&lt;/li&gt;&#10;&lt;li&gt;用参考问题和不同角色验证。&lt;/li&gt;&#10;&lt;li&gt;确认可用后，发布成共享对象。&lt;/li&gt;&#10;&lt;li&gt;根据使用反馈修订。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;场景帮助我们验证价值，共享底座让这些知识被下一个应用复用。&lt;/p&gt;</description></item><item><title>Data Agent 接入层：连接数据之后，怎样先找对数据</title><link>https://e343c64b.dataagentx.pages.dev/zh-cn/tech/20260908-data-access-and-context-routing/</link><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><guid>https://e343c64b.dataagentx.pages.dev/zh-cn/tech/20260908-data-access-and-context-routing/</guid><description>&lt;p&gt;“本月新客转化为什么下降？”仓库里可能同时存在生产漏斗模型、名字相近的测试表和上季度活动表。连接器都能访问，字段看起来也都合理。Agent 如果挑错其中一个，后面的 SQL、图表和解释越完整，误导性反而越强。&lt;/p&gt;&#10;&lt;p&gt;接入层要在生成查询之前回答三个问题：当前身份&lt;strong&gt;可以访问什么&lt;/strong&gt;，这个任务&lt;strong&gt;应该使用什么&lt;/strong&gt;，候选数据&lt;strong&gt;是否足以支撑结论&lt;/strong&gt;。它不是一个把所有 Schema 塞进提示词的管道，而是一套受权限约束的数据发现和上下文路由系统。&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="https://e343c64b.dataagentx.pages.dev/images/articles/data-access-and-context-routing/core-zh.svg"&gt;&lt;img src="https://e343c64b.dataagentx.pages.dev/images/articles/data-access-and-context-routing/core-zh.svg" alt="Data Agent 接入层从数据源注册到运行时再鉴权"&gt;&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;图里最重要的是两道权限检查：目录检索前先缩小可见范围，真正执行时再次鉴权。目录中的“可发现”从来不等于数据库中的“可执行”。&lt;/p&gt;&#10;&lt;h2 id="接入层与相邻层的边界"&gt;接入层与相邻层的边界&lt;/h2&gt;&#10;&lt;p&gt;接入层负责发现资产、检查来源与可见范围，并交付最小充分上下文。语义层维护“新客”“转化率”等定义、粒度和合法关联；规划层决定分析步骤；执行层保管凭证、运行查询并重新检查权限。&lt;/p&gt;&#10;&lt;p&gt;这几层不能互相代替。表名相似不是业务定义，目录授权也不是执行凭证。把这两个边界混在一起，常见结果是 Agent 用热门旧表回答新问题，或者通过共享服务账号绕过用户权限。&lt;/p&gt;&#10;&lt;h2 id="四个组件各自要交付什么"&gt;四个组件，各自要交付什么&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;组件&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;最小交付物&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;失败时怎么办&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;数据源注册中心&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;稳定来源 ID、环境、业务域、负责人、认证引用、允许操作和预算&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;未注册来源不静默接入&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;资产目录与采集器&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Schema 版本、字段说明、血缘、质量状态、采集时间和数据水位&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;未采到的信号标为未知&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;上下文路由器&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;候选资产、采用与排除理由、必要字段、定义引用和缺口&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;无可靠来源时澄清或停止&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;连接器运行时&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;身份绑定、分页、超时、重试、标准结果和审计事件&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;凭证不进入模型上下文&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;现有目录能力应优先复用。&lt;a href="https://github.com/open-metadata/OpenMetadata"&gt;OpenMetadata&lt;/a&gt;把所有权、术语、血缘、画像和质量信号组织在统一元数据中，其&lt;a href="https://docs.open-metadata.org/latest/deployment/ingestion"&gt;采集框架&lt;/a&gt;覆盖多类元数据工作流。但安装目录不会自动产生正确路由；哪些信号参与排序、哪些属于阻断条件，仍要由团队设计。&lt;/p&gt;&#10;&lt;h2 id="一次可靠路由包含六步"&gt;一次可靠路由包含六步&lt;/h2&gt;&#10;&lt;h3 id="1-把业务问题解析成检索约束"&gt;1. 把业务问题解析成检索约束&lt;/h3&gt;&#10;&lt;p&gt;提取业务域、实体、指标、时间、粒度、用途与交付物。相对时间要落成具体区间和时区。问题中“客户”“订单”含义不清时，应在检索前澄清，而不是等 SQL 失败后再补救。&lt;/p&gt;&#10;&lt;h3 id="2-在当前身份可见范围内召回"&gt;2. 在当前身份可见范围内召回&lt;/h3&gt;&#10;&lt;p&gt;关键词、业务术语和向量检索可以共同生成候选，但召回必须身份感知。表名、字段说明和样例值本身也可能敏感；不能先把全量目录交给模型，再指望它自行忽略无权访问的资产。&lt;/p&gt;&#10;&lt;h3 id="3-先做硬性策略过滤"&gt;3. 先做硬性策略过滤&lt;/h3&gt;&#10;&lt;p&gt;环境、用途、地域、敏感等级、元数据可见性和数据访问权限都是门禁，而不是排序加分项。测试表与生产表名称再接近，也不能因为语义相似度高而越过环境隔离。&lt;/p&gt;&#10;&lt;h3 id="4-在合规候选中排序和裁剪"&gt;4. 在合规候选中排序和裁剪&lt;/h3&gt;&#10;&lt;p&gt;比较业务覆盖、权威性、更新时间、质量证据、关联完整性和预计成本。热门表的历史使用量只能做辅助信号，否则新权威模型永远排不过旧表。多表任务还要保留必要的 Join 路径，而不是只挑几个相似字段。&lt;/p&gt;&#10;&lt;h3 id="5-绑定资产执行时再检查"&gt;5. 绑定资产，执行时再检查&lt;/h3&gt;&#10;&lt;p&gt;路由器交付资产引用、版本与预算，运行时再绑定真实身份。目录发现到执行之间，权限、Schema 和数据状态都可能变化。&lt;a href="https://learn.microsoft.com/en-us/fabric/data-science/data-agent-sharing"&gt;Microsoft Fabric Data Agent 的权限文档&lt;/a&gt;也区分 Agent 的分享权限与底层数据权限；共享 Agent 不会替用户获得源数据访问权。&lt;/p&gt;&#10;&lt;h3 id="6-把结果和纠错写回"&gt;6. 把结果和纠错写回&lt;/h3&gt;&#10;&lt;p&gt;保留候选、排除理由、采用版本、执行结果与人工纠错。用户点击或采纳只能说明体验，不足以证明来源正确；被确认的错误才进入回归集或质量标签。&lt;/p&gt;&#10;&lt;h2 id="上下文包需要同时表达事实和限制"&gt;上下文包需要同时表达事实和限制&lt;/h2&gt;&#10;&lt;p&gt;上下文不应只是字段列表。一个可执行的上下文包至少应包含：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;asset_ref&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;warehouse.prod.funnel&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;schema_version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;v12&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;selected_fields&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;day&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;channel&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;new_users&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;converted_users&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;definition_ref&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;metrics/new_customer_conversion/v3&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;grain&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;day × channel&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;metadata_observed_at&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-09-07T09:00:00+08:00&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;data_watermark&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;2026-09-06&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;quality_status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;unknown&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;policy_ref&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;policy/read-funnel/v4&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;allowed_operations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;read&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;limitations&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;尚未确认所有渠道覆盖&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;requires_runtime_authorization&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;metadata_observed_at&lt;/code&gt; 与 &lt;code&gt;data_watermark&lt;/code&gt; 必须分开。目录今天同步成功，不代表业务数据也更新到了今天。&lt;code&gt;policy_ref&lt;/code&gt; 只是策略引用，不是凭证；授权句柄和密钥留在可信服务端。&lt;/p&gt;</description></item></channel></rss>