SyedAbdulRaufPython/antibody

GitHub: SyedAbdulRaufPython/antibody

Antibody 是一个基于 DataHub 元数据图谱的自主数据事件响应 Agent 系统,通过记录并复用历史诊断方案实现修复速度的持续提升。

Stars: 0 | Forks: 0

# 🦠 Antibody **你的数据平台在经历每一次事件后都会变得更快。** Antibody 是一个自主 agent 团队,专门响应数据事件——例如失败的 dbt 测试、schema 破坏、数据新鲜度违规——对其进行修复,并将每一次诊断记录归档到 [DataHub](https://datahub.com) 上下文图中,作为机构记忆(即**抗体**)。当类似事件首次发生时,解决过程可能很缓慢。当类似事件第二次发生时,Diagnostician 会在受影响资产的血缘中找到已存储的抗体,并在几秒钟内将其解决。 ## Antibody 的不同之处 | Agent 原型 | 它如何处理事件 | Antibody 的增强之处 | |---|---|---| | 预测 agents | **预警** — 预测可能出现的问题 | 预警无法修复任何问题;Antibody 能够解决并记住解决方案 | | Ops-center agents | **响应** — 对面前的事件进行分类并采取行动 | 每次响应都从零开始;Antibody 的第二次响应会从第一次的诊断结果开始 | | Q&A / 目录 agents | **回答** — 根据询问解释图谱 | 回答是只读的;Antibody 会将其学到的内容写回它读取的图谱中 | | 告警去重记忆 | **记住标记过的内容** — 抑制重复的噪音 | Antibody 保留*解决方案*记忆:它记住了**如何修复它**——并因此变得更快 | Antibody 是**记忆层**:每一次诊断都会作为抗体被写回 DataHub 上下文图中,因此解决速度会随着成功应对的每一次事件而*复利增长*。简单来说:**去重记忆可以防止同一个告警触发两次;解决方案记忆可以防止同一个调查过程执行两次。** ## 为什么使用实时技术栈,而不是样本元数据 我们评估了 DataHub 官方的样本数据包(`datahub datapack load showcase-ecommerce` — 包含 1,049 个带有血缘关系的实体),但特意选择构建一个**实时的 Postgres + dbt-core 技术栈**。数据包只是模拟的元数据,背后没有真正的数据仓库:测试不会真正失败,数据也不会被真正修复,基于这些数据包的 agent 演示没有任何实际意义。而在 Antibody 中,每一次事件都是真实的——注入器会破坏真实的行和列,`dbt build` 确实会变红(报错),修复操作也确实会修复数据,并且运行过程是确定且可复现的(`make reset` 会从固定的种子重新构建完全相同的数据仓库)。 ## 工作原理 顺序 pipeline 中的四个 agent。DataHub 图谱是它们**唯一**的共享记忆。 | Agent | 角色 | 使用的 DataHub 功能 | |---|---|---| | **Watcher** | 检测事件:失败的 dbt-test 断言运行、schema 变更、新鲜度违规 | Assertions API, schema 历史 | | **Diagnostician** | 首先调用过去的抗体,然后向上游追溯血缘以根除原因,计算下游爆炸半径(表、仪表板、ML 特征/模型) | **MCP Server**: 搜索, 血缘遍历, schema/所有权/质量信号; 结构化属性读取 | | **Medic** | 生成可提 PR 的 dbt/SQL 修复方案,在审批关卡后执行 | 用于补丁的 schema + 血缘上下文 | | **Scribe** | 记录所有内容:发起/解决 DataHub **事件**,附加结构化属性**抗体记录**,标记资产,更新文档,起草给所有者的通知 | GraphQL 事件, 结构化属性, 标签, 文档, 所有权 | ``` ┌──────────────────────── DataHub context graph ───────────────────────┐ │ lineage · schemas · assertions · incidents · antibodies · owners │ └──────▲───────────────▲───────────────────▲──────────────────▲────────┘ │ read │ read (MCP) │ read │ write-back ┌────┴────┐ ┌─────┴───────┐ ┌────┴────┐ ┌─────┴────┐ │ Watcher ├───▶│Diagnostician├─────▶│ Medic ├──────▶│ Scribe │ └─────────┘ └─────────────┘ └─────────┘ └──────────┘ demo stack: Postgres + dbt (e-commerce + ML churn chain) ``` ## 快速开始(输入耗时 ≤60s) ``` git clone && cd antibody make demo # boots DataHub + Postgres + dbt, ingests, injects # incident #1 (cold path), then incident #2 — # antibody recall fires. Watch localhost:5173. # NO API KEY NEEDED: DEMO_MODE=replay serves # recorded LLM responses from fixtures/llm/. make demo-ablation # same incident with CONTEXT=off vs CONTEXT=on make reset # back to a clean, healthy stack ``` **LLM:** 兼容**任何 OpenAI 兼容 API** — 在 `.env` 中设置 `LLM_BASE_URL`, `LLM_MODEL`, `LLM_API_KEY` 以及 `DEMO_MODE=live`(我们目前基于 DeepSeek 进行开发)。评审无需任何密钥:`DEMO_MODE=replay`(默认值)会端到端地 重放已录制的 agent 对话。每一步 LLM 操作都会记录提供商、 模型和模式。 依赖要求: Docker Desktop(DataHub quickstart 需分配 8 GB+ 内存),通过 [uv](https://docs.astral.sh/uv/) 安装的 Python 3.12,Node 20+。 ## 六大评审标准 ### 1. DataHub 的使用 待定 ### 2. 技术执行 待定 ### 3. 原创性 待定 ### 4. 实际应用价值 待定 ### 5. 提交质量 待定 ### 6. 开源贡献 - **新技能 PR**: [`datahub-incident-memory`](https://github.com/datahub-project/datahub-skills/pull/80) — 事件响应的解决记忆,采用官方 skills registry 格式 - **基于实际复现提交的 Issues**: [mcp-server-datahub#175](https://github.com/acryldata/mcp-server-datahub/issues/175)(ML 血缘过滤器在 OSS GMS 上失效),[#176](https://github.com/acryldata/mcp-server-datahub/issues/176)(包含逗号的 URN 被截断) - 向 [#141](https://github.com/acryldata/mcp-server-datahub/pull/141)(细粒度血缘降级回退)贡献了复现步骤和临时解决方案 - 完整的摩擦日志: [FEEDBACK_DATAHUB.md](FEEDBACK_DATAHUB.md) ## 使用的 DataHub 功能及各 Agent 的具体用途 待定 (D8) **DataHub Skills Registry:** 此仓库内置了官方的 [datahub-skills](https://github.com/datahub-project/datahub-skills) (`.claude/skills/` — `/datahub-search`, `/datahub-lineage`, `/datahub-enrich`, `/datahub-quality`, `/datahub-setup`),通过 `npx skills add datahub-project/datahub-skills` 安装。在开发过程中,当构建 agents 时,我们使用它们来验证图中的血缘和断言状态。 ## 消融实验结果 待定 — `CONTEXT=off` 与 `CONTEXT=on` 的耗时对比表 (D6+) ## 常见问题解答 **这与可观测性工具有什么不同?** 它们只负责检测;而 Antibody 负责解决、记录并能实现*能力复利增长*——而且它构建在开源的上下文图谱之上,而不是专有的监控工具上。 ## 声明 本仓库中的所有代码均是在黑客马拉松提交期间全新编写的。我们使用了 AI 编码助手(Claude Code),这是规则明确允许的。我们评估了 DataHub 官方的样本数据包(`showcase-ecommerce`),并最终选择构建实时的 Postgres + dbt 技术栈,以确保事件、测试失败和修复都是真实的,而不是模拟的元数据。 ## 许可证 Apache 2.0 — 详见 [LICENSE](LICENSE)。
标签:DataHub, dbt, LLM Agent, MITM代理, 故障诊断, 数据血缘, 数据运维, 自动化响应, 请求拦截, 逆向工具