这一组文档面向正在学习 AI Native 工程实践的开发者,以 OncallAgent 的真实仓库为依据,按照“先建立全局认识,再理解基础能力,随后进入 Agent 与 AIOps 主链路,最后补齐质量与运行保障”的顺序组织。
📷 [图片 token=C4xJbcHidoCaZ5x6YJjcn5ZjnjG(未能下载,见飞书原文)]
每篇文章都采用相同的阅读骨架:学习目标、完整调用链、带代码流程图的源码地图、逐节展开的关键源码拆解、数据与状态、权限与失败边界以及建议阅读顺序。“关键实现拆解”中的每个二级主题都会结合真实源码或局部图示,代码保留决定行为的核心语句并加入中文编号注释。阅读时可以先用总图建立整体认识,再沿各节的局部图和代码进入真实实现,最后回到文字章节理解工程边界。
📷 [图片 token=KgQWbKq2Mo7FV3xu6wxcNYehnXb(未能下载,见飞书原文)]
建议学习顺序#
先建立系统边界#
OncallAgent 架构全景与源码阅读地图
HTTP、错误、OpenAPI 与 SSE 共享契约
用户认证与 tenant 数据隔离
Qwen 模型接入与本地安全配置
本地基础设施与 Milvus 向量边界
再掌握知识与对话运行机制#
SQLite Durable Background Job 运行机制
知识文档上传、切分、索引与页面状态
Milvus、BM25L、RRF 与 rerank 混合检索
LangChain 流式 Chat Agent 与前端 SSE
Prompt、渐进式 Skill 与会话记忆
最后进入真实工具与 AIOps 闭环#
用户级 MCP 连接与真实工具调用
告警到证据报告的 LangGraph 诊断闭环
诊断案例自动沉淀与知识复用
工具调用审计与结构化用户反馈
Readiness、可观测性与本地运行
📷 [图片 token=R1bqbVNy2omO9mx4wowciVAwn6b(未能下载,见飞书原文)]
全部源码解析文档#
OncallAgent 是一个本地优先的 AIOps Agent 工作台。它把 Vue 3 工作区、FastAPI API 与 Agent 运行时、SQLite 持久化、Milvus 知识向量、Qwen 模型能力和外部 MCP 工具放进一条
在 OncallAgent 中,HTTP 与 SSE 不是两套互不相干的传输实现,而是前端、后端和 Agent 生命周期之间的公共语言。共享契约位于 packages/api-contracts ,覆盖响应 envelope、错误码、认证
OncallAgent 的权限模型从一个朴素但明确的规则开始:当前已认证用户的 ID 同时充当 tenant scope,直到未来引入独立的组织 tenant。这个决定贯穿 bearer session、FastAPI 依赖、SQLite
OncallAgent 通过 OpenAI-compatible 协议接入 Qwen,而不是让业务代码直接依赖厂商私有 SDK。聊天模型与 embedding 使用 langchain-openai 的 ChatOpenAI 和
OncallAgent 的本地运行拓扑刻意把“容器基础设施”和“应用进程”分开。 infra/compose.yaml 只运行 etcd、MinIO、Milvus、Attu 与 Alertmanager;FastAPI 后端、Vue 前端
OncallAgent 是一个本地优先 AIOps Agent 工作台。文档索引和智能诊断都可能持续数秒乃至更久,如果把它们直接塞进一次 HTTP 请求,浏览器断线、请求超时或后端重启都会让执行状态变得含糊。当前实现因此把“业务任务记录”和
在 OncallAgent 这个本地优先 AIOps Agent 工作台中,知识文档不是“上传完就可以检索”。一次成功上传只说明文件通过校验、可索引文本已提取、元数据已写入 SQLite;只有后续后台索引完成,chunk 向量才进入 Mil
OncallAgent 是本地优先 AIOps Agent 工作台,知识检索面对的内容既有自然语言,也有错误码、API 路径、服务名和中英文混排。纯向量检索擅长语义近似,却可能错过精确标识符;纯关键词检索能抓住错误码,却不理解同义表达。当前
OncallAgent 的普通聊天是一条由 LangChain Agent 驱动的流式链路。后端不会先无条件执行 RAG,而是把知识检索、当前时间、渐进式 Skill 和当前用户已发现的 MCP 工具交给模型,由模型决定是否调用。最终答案、
OncallAgent 作为本地优先 AIOps Agent 工作台,需要同时解决三类上下文问题:Prompt 决定 Agent 的长期行为约束,Skill 提供按任务启用的专业操作说明,会话记忆控制历史在模型窗口中的占用。它们都会影响下一