Agent开发系列(十)-知识库建设(架构总览)

目录

一、什么是架构总览

二、架构总览的知识模板如何定义?

[2.1 总览页设计](#2.1 总览页设计)

[2.2 服务清单字段(最重要的模板)](#2.2 服务清单字段(最重要的模板))

[2.3 依赖图(dependency-graph.md)结构](#2.3 依赖图(dependency-graph.md)结构)

[2.4 技术栈矩阵(tech-stack.md)结构](#2.4 技术栈矩阵(tech-stack.md)结构)

[2.5 部署拓扑(deployment.md)结构](#2.5 部署拓扑(deployment.md)结构)

三、架构总览的更新机制应该如何落地?

[3.1 关键设计点](#3.1 关键设计点)

[3.2 反模式](#3.2 反模式)

四、架构总览的质量标准应该如何定义?

[4.1 3 个反向指标(出现就告警)](#4.1 3 个反向指标(出现就告警))

[4.2 准入与淘汰门槛](#4.2 准入与淘汰门槛)


一、什么是架构总览

它是什么 它不是什么
系统当前的"地图" 系统的"历史"(那是 ADR)
LLM 自动生成的影子 人手画的"愿景图"
给人和 Agent 共同消费的查询表 给人"读"的散文式设计文档
强结构化(图、表、清单) 湿润化(大量解释文字)

核心判断 :架构总览 = 代码的影子,不是人写的文档。 人手画的架构图 100% 跟代码脱节。LLM 从代码/配置/部署文件抽取,人 review,这是它和知识词典的本质区别------词典是"对齐",架构总览是"反射"。

二、架构总览的知识模板如何定义?

核心判断:强结构化,几乎全用表格/列表。 架构总览不是"读"的,是"查"的。核心包含5类模板:

模板 文件位置 内容
总览页 20-architecture/overview.md 系统一句话、规模、技术栈、部署环境、更新时间
服务清单 20-architecture/services/[name].md 每个服务一个文件
依赖图 20-architecture/dependency-graph.md 服务间调用关系
技术栈矩阵 20-architecture/tech-stack.md 服务 × 技术栈二维表
部署拓扑 20-architecture/deployment.md 环境 × 部署方式

2.1 总览页设计

字段 类型 来源 必填
系统名称 string 配置
业务域划分 list 代码
服务数量 number LLM 自动
主要技术栈 list LLM 自动
部署环境列表 list K8s
上次自动生成时间 datetime 工具
上次架构师 review 时间 date 人工

2.2 服务清单字段(最重要的模板)

字段 类型 来源 必填 备注
服务名 string 服务注册 唯一
业务域 enum 配置 业务域分类
负责人 @user/team CODEOWNERS
技术栈 list 代码 语言/框架/DB
主要职责 string(≤30字) LLM 草拟 + 人工审 一句话
上游依赖 listlink LLM 自动 调用谁
下游被调用 listlink LLM 自动 谁调用我
关键 API listlink 链接到 30-api/
部署位置 list K8s 哪些环境
SLO object 监控 × 可用性/延迟
监控链接 link Datadog/Prometheus
关联 ADR listlink 人工补 × 关键决策
关联 Runbook listlink 链接到 40-runbooks/ × 告警处理
关键路径标记 enum 人工标 × P0/P1/P2
最后更新 datetime 工具

2.3 依赖图(dependency-graph.md)结构

元素 表示 数据来源
节点 服务 / 数据库 / 外部依赖 服务注册 + schema
调用方向、协议、流量量级 LLM 从 trace 抽
节点颜色 内部服务 / 外部 / 存储 规则化
边颜色 同步 / 异步 / 批处理 协议推断
关键路径高亮 P0 服务和它们的链路 人工标
数据来源 自动生成 工具
上次生成时间 datetime 工具

2.4 技术栈矩阵(tech-stack.md)结构

务/组件 语言 框架 数据库 消息队列 缓存 部署方式 镜像
api-gateway Go Kong + 自研插件 --- --- Redis 7 K8s registry.example.com/gateway:v3.2.1
user-service Java 17 Spring Boot 3.2 MySQL 8.0(主从) Kafka 3.6 Redis 7 K8s registry.example.com/user:v2.8.0

2.5 部署拓扑(deployment.md)结构

环境 部署方式 入口域名/网关 数据隔离 监控告警通道
local-dev(本地开发) Docker Compose + Tilt *.localhost:3000 每人独立 MySQL/Redis 实例,本地 mock 第三方 无(只本地 stdout 日志)
integration(集成测试) K8s namespace(PR merge 自动部署) integration.internal.example.com 完全独立 cluster,合成数据,无生产数据 Slack #alerts-integration(只 P0)
staging(预发) K8s 独立 cluster(蓝绿) staging.example.com 与生产物理隔离,每日 02:00 从生产脱敏同步 Slack #alerts-staging + 值班人飞书(仅 P0/P1)

三、架构总览的更新机制应该如何落地?

核心判断:架构总览 = 代码的影子。代码动,它动。 没有自动化的影子,影子就是假的。包含4 个触发器:

触发器 触发条件 动作 责任方
PR-ingest PR 改动服务结构/依赖/部署配置 LLM 重生成对应章节,diff 化,走 PR 自动
每日重建 每日定时 全文重建,做 diff 检视 自动
重大变更触发 新服务/下线服务/关键依赖变化/改 SLO 必须人工 review,可能触发 ADR 人工 + LLM
手动触发 架构师发现需要更新 立即触发重建 人工

3.1 关键设计点

设计点 具体要求
写入通道 所有生成走 PR(包括 LLM 自动)
变更可见性 PR 必须显示 diff(哪变了),人 review 时只看 diff
稳定时 auto-merge 如果重建后无 diff,自动跳过
重大变更必人审 新服务/下线/关键依赖变化,SLA 24h 内 review
日常变更抽样审 LLM 自动审 10%,架构师扫一遍
每周全量 review 架构师每周一次全量扫架构总览,10-30 分钟
ADR 联动 重大变更 PR 自动建议"是否需要写 ADR"
影子回写 Raw 架构总览有"孤儿服务"时告警(代码里没有但总览里有)

3.2 反模式

反模式 后果
让人手改架构总览 改完就脱节
LLM 直接写主分支 失治理,2 周后没人信
不做 diff,全文覆盖 看不见"哪变了",review 不可能
重建频率太低(月级) 期间变更会大量丢失
重建频率太高(分钟级) 噪声淹没信号,review 疲劳
关键路径长期不标 值班时不知道 P0 路径,救火慢

四、架构总览的质量标准应该如何定义?

核心判断:架构总览的"质量" = 跟代码的同步度 + 关键信息完整度。不是"图漂不漂亮"。5 个核心指标:

指标 定义 健康值 测量方式
同步延迟 代码变更到架构总览更新的时间 ≤ 24h PR 时间戳 vs 重建时间戳
链接有效性 架构总览中所有链接 100% 解析 ≥ 99% 自动化
服务覆盖率 已部署服务在总览中出现的比例 100% 对照服务注册
ADR 关联率 关键决策(选型/架构)有 ADR 链接的比例 ≥ 90% 抽样审
关键路径标注完整度 P0 服务都被标注关键路径 100% 人工核查

4.1 3 个反向指标(出现就告警)

反向指标 告警触发 修复动作
漏抽 代码里有新服务但总览没有 触发"新服务检测"流水线,补源数据
幽灵服务 总览里有但服务注册里没有 触发"服务下线"检测,确认是否真下线
决策脱节 关键选型(语言/中间件)没 ADR 链接 提示架构师补 ADR

4.2 准入与淘汰门槛

门槛 触发 动作
新服务准入 服务注册新增服务,但总览缺 自动告警,要求 owner 补全服务清单
服务下线淘汰 服务注册移除服务,但总览还在 30 天未处理,自动标 deprecated
ADR 缺失 关键决策无 ADR 链接 季度审查时列出,要求补
幽灵服务 总览有但运行时没有 立即告警,要么补回,要么归档
相关推荐
冬奇Lab16 小时前
Workflow 系列(02):设计范式——四层架构、三种 Context 传递模式与确认门设计
人工智能·agent·工作流引擎
冬奇Lab17 小时前
每日一个开源项目(第145篇):Trellis - 把项目记忆、规范和任务上下文持久化进代码仓库
人工智能·开源·资讯
有道AI情报局17 小时前
Harness即产品
人工智能·agent
罗西的思考18 小时前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
IT_陈寒19 小时前
SpringBoot自动配置的坑,我的API突然就404了
前端·人工智能·后端
笃行35019 小时前
从零到上线:用 EdgeOne Makers + CodeBuddy 搭一个「对账核对员」AI Agent
人工智能
用户68563262086920 小时前
Claude Code 乱猜字段名?我给它写了一个"数据库查询约束 Skill"
人工智能
你_好20 小时前
# 给你的产品嵌入一个「会操作界面的 AI 助手」
人工智能
ShallWeL20 小时前
【机器学习】(3)—— 线性回归:梯度下降
人工智能·机器学习
陈广亮20 小时前
Prompt、Context、Harness、Agentic:LLM 应用四层嵌套结构,搞清自己卡在哪一层
人工智能