无题
mysql 不会写
线程池重要参数,原理
jvm内存
集合底层原理
大模型架构,原理
rag知识库
spring ioc aop
ai coding 用户登陆注册 生成测试用例
msql 数据结构b+树
联合索引 ,最左匹配,(a,b,c)
Explain关键字看是否索引失效
无题
记忆机制
1. 为什么 Agent 需要记忆普通对话模型主要依赖上下文窗口。但上下文窗口有几个问题:
(1)长度有限
历史内容太多,装不下。
(2)成本高
每轮都把全部历史重新塞给模型,token 很贵。
(3)不稳定
不是所有历史都重要,很多无关信息会干扰当前判断。
2. 记忆机制作用Agent 的记忆机制,本质上是让智能体在多轮交互和多步任务中,能够保存、检索、更新过去的信息,从而支撑连续决策、个性化服务和复杂任务执行。
它不是简单保存聊天记录,而是要解决“记什么、存哪里、什么时候取、怎么更新、如何避免错误记忆”这几个问题。
保持任务连续性:Agent 必须知道前一步做了什么,结果是什么,当前做到哪一步了。
支持个性化:记住用户偏好
支撑复杂决策:Agent 做规划、调用工具、失败重试、结果修正,都需要参考过去的信息。
无题
我做的这个项目是一个基于 DDD 和 Spring AI 的 AI Agent 执行平台,核心目标是把原来写死在代码里的模型、Prompt、Advisor、MCP 工具和执行流程,抽象成可配置、可动态装配的能力。
在执行层我设计了三种模式:Fixed 适合固定链路调用,Flow 适合先规划再执行,Auto 适合自主分析、执行、监督和总结,这样平台可以适配不同复杂度的 Agent 任务。
同时项目还集成了 MCP 工具调用和 RAG 知识检索能力。MCP 这块支持 SSE 和 Stdio 两种方式接入外部工具;RAG 这块实现了文档解析、切片、向量化入 PGVector,并通过 Advisor 在模型调用前做相似度检索和上下文增强。
这个项目最大的价值,是把 AI Agent 从单次模型调用,做成了一个可配置、可编排、可扩展的平台,降低了 AI 应用的开发和迭代成本。
这个项目是一个面向 AI Agent 的 MCP Gateway。
背景是企业内部很多已有能力都是传统 HTTP/OpenAPI 接口,但 Agent 侧更适合通过 MCP 协议以 Tool 的方式标准化调用。如果每接一个 ...
无题
建立会话1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253sequenceDiagram participant C as MCP Client / Agent participant G as McpGatewayController participant CS as McpSessionService participant V as VerifyNode participant SM as SessionManagementService participant MM as McpMessageService participant SH as SessionMessageService participant R as SessionRepository participant P as SessionPort participant H as Downstream HTTP ...
AI MCP Gateway-tools/list 能力
一句话先概括
这一节我做的是 MCP 协议里的 tools/list 能力,把原来写死返回的工具定义,改造成基于数据库配置动态生成工具列表和参数 Schema。
如果面试官问:你具体解决了什么问题?
在 MCP 场景里,客户端连接服务端后,通常会先调用 tools/list 获取当前服务端支持哪些工具、每个工具叫什么、用途是什么、入参长什么样。
前一个版本的问题是,tools/list 返回的是硬编码的 demo 数据。这样虽然能跑通流程,但不具备可扩展性。只要换一个网关、换一个工具、换一套参数结构,就得改代码。
所以这节的目标就是把“工具定义”从代码里抽出来,放到数据库配置里,由系统运行时动态生成返回结果。这样新增工具时主要改配置,不需要改 ToolsListHandler 的业务代码。
如果面试官问:你的整体设计思路是什么?
我的设计思路是“配置驱动 + 递归组装”。
系统里已经有两类数据:
网关配置:这个网关对应哪个工具、工具名称、工具描述是什么
协议映射配置:工具的每个字段如何定义,字段类型、父子层级、是否必填、排序等
我做的事就是把这两类配置读取出来,然后动态组装成 MC ...
AI MCP Gateway-数据层落地
AI MCP Gateway 从消息处理案例到 DAO 数据层落地一、这一节做了什么3.6 分支是在 3.5 分支的基础上继续向前推进的一步。
如果说 3.5 还停留在“消息协议处理案例”的阶段,那么 3.6 做的核心事情,就是把项目的基础设施层数据能力补齐,正式引入了:
MyBatis 持久层映射
DAO 接口定义
PO 数据对象
MCP 网关相关库表设计
CRUD 测试验证
这一节的主题可以概括为:
从“协议消息怎么处理”,推进到“这些协议配置和网关信息如何落库、如何查询、如何维护”。
二、3.6 比 3.5 多了什么3.6 分支相对 3.5 主要新增了 1 个提交:
feat: 第3-6节:基础层数据处理(Dao)
从改动内容看,重点不是业务逻辑编排,而是数据层正式建模。
1. 新增了 4 组核心 DAO 接口这一节新增了 4 个 DAO 接口,分别负责 4 张核心业务表的持久化操作:
IMcpGatewayDao
IMcpGatewayAuthDao
IMcpProtocolRegistryDao
IMcpProtocolMappingDao
每个 DAO 都 ...
AI MCP Gateway-消息协议处理案例
MCP 网关开发实战:从协议框架到完整消息处理(3-4 → 3-5 分支演进)前言在前一阶段(3-4 分支)中,我们完成了 MCP(Model Context Protocol)网关的基础框架搭建,包括会话管理、SSE 通信通道和消息路由机制。但所有的消息处理器(Handler)都还是空实现。本文将详细介绍 3-5 分支 如何将这个框架完善为一个功能完整的 MCP 服务器,实现真正的消息协议处理。
一、整体架构演进1.1 3-4 分支:骨架阶段123456789101112131415161718┌─────────────────────────────────────────┐│ McpGatewayController ││ ┌─────────────┐ ┌─────────────┐ ││ │ SSE 连接 │ │ 消息接收 │ ││ │ /mcp/sse │ │ POST 接口 │ ││ └──────┬──────┘ └──────┬──────┘ │ ...
AI MCP Gateway-定义MCP协议的消息结构
McpSchemaVO 详解:MCP协议消息结构定义📋 文件作用McpSchemaVO.java 是一个值对象(Value Object),定义了 MCP(Model Context Protocol)协议的消息结构,用于:
序列化:将Java对象转换为JSON字符串
反序列化:将JSON字符串转换为Java对象
🏗️ 核心结构1. 密封接口(Sealed Interface)123public sealed interface JSONRPCMessage permits JSONRPCRequest, JSONRPCResponse { String jsonrpc();}
作用:
定义所有MCP消息的公共接口
限制只有 JSONRPCRequest 和 JSONRPCResponse 可以实现该接口
确保类型安全,防止非法实现
sealed关键字的优势:123456789101112// Java 17+ 特性public sealed interface JSONRPCMessage permits JSONRPCRequest, JSO ...
AI MCP Gateway-会话消息结构设计
🚀 ai-mcp-gateway v3.4 版本更新:MCP协议消息处理架构全面升级
📋 标题选项
从SSE连接到MCP协议:ai-mcp-gateway v3.4 消息处理架构演进
策略模式实战:ai-mcp-gateway v3.4 如何优雅处理MCP协议消息
MCP协议支持升级:ai-mcp-gateway v3.4 核心技术解析
🎯 引言在 ai-mcp-gateway v3.3 版本中,我们成功实现了基于SSE的实时通信能力,为AI微服务网关提供了会话编排架构。然而,v3.3 版本主要关注会话的建立和管理,对于具体的协议消息处理还不够完善。
在 v3.4 版本中,我们正式引入了对 MCP(Model Context Protocol)协议的完整支持,实现了基于策略模式的消息处理架构。本次更新共涉及 17个文件,新增 498行代码,删除 10行代码,标志着项目从”会话管理”迈向”协议支持”的重要里程碑。
✨ 新特性1. MCP协议消息结构定义新增了完整的MCP协议消息结构定义,支持JSON-RPC 2.0协议格式。
核心类:McpSchemaVO
123456789 ...
AI MCP Gateway-Case模块运行机制
Case模块运行机制详解一、整体架构case模块采用了责任链模式和策略模式的组合设计,通过多个节点串联处理MCP会话请求。整体架构如下:
1234567891011121314151617181920212223242526┌─────────────────────────────────────────────────────────────┐│ Case Module ││ ││ ┌──────────────┐ ┌──────────────────────────────┐ ││ │ Service │─────▶│ Session Factory │ ││ │ │ │ │ ││ │ McpMes ...
AI MCP Gateway-会话接口编排
🚀 ai-mcp-gateway v3.3 版本更新:会话编排架构升级,SSE实时通信能力全面增强
📋 标题选项
从会话管理到会话编排:ai-mcp-gateway v3.3 架构演进实录
责任链模式实战:ai-mcp-gateway v3.3 如何优雅处理SSE会话流程
会话编排架构升级:ai-mcp-gateway v3.3 核心技术解析
🎯 引言在 ai-mcp-gateway v3.2 版本中,我们成功实现了基础的会话管理功能,为AI微服务网关提供了会话状态管理能力。然而,随着业务复杂度的提升,单一的会话管理服务已无法满足多样化的业务场景需求。
在 v3.3 版本中,我们引入了会话编排架构,采用责任链模式重构了会话处理流程,新增了完整的SSE(Server-Sent Events)实时通信能力。本次更新共涉及 22个文件,新增 473行代码,删除 20行代码,标志着项目从”会话管理”迈向”会话编排”的重要里程碑。
✨ 新特性1. SSE实时通信接口新增了完整的SSE连接建立接口,支持客户端与服务器之间的实时双向通信。
新增接口:12@GetMapping(value ...
AI MCP Gateway-分支会话管理功能
3.2分支会话管理功能详细解析一、改动背景与目标3.2分支(3-2-session-management)的核心目标是为AI微服务网关添加会话管理功能,以支持长连接、实时交互场景,如AI聊天、持续对话等。在3.1分支(3-1-init-project)中,项目仅完成了基础架构搭建,缺乏会话状态管理能力,无法支持需要保持上下文的AI服务交互。
二、具体改动内容1. 新增目录结构1234567891011121314ai-mcp-gateway-domain/└── src/main/java/cn/bugstack/ai/domain/session/ ├── adapter/ │ ├── port/ │ └── repository/ ├── model/ │ ├── aggregate/ │ ├── entity/ │ └── valobj/ │ └── SessionConfigVO.java └── service/ ├── ISessionManagementService.ja ...
