AI Agent · 工具调用与 MCP
自研 OpenAI 兼容客户端 · 多轮 Function Calling · MCP 工具协议 · 流式输出
- 不绑定厂商:自研
OpenAiCompatibleClient(WebClient + SSE 流式),Embedding 兼容 OpenAI 与 DashScope 两套响应格式,换模型只改配置。 - 多轮工具循环:
AiAgentService解析tool_calls→ 执行工具 → 回填结果 → 递归,由ai.agent.max-tool-calls(默认 4)封顶,避免无限调用。 - 工具即服务:工具后端是独立的
service-mcp,JSON-RPC 2.0 分发(McpDispatcher);内置课程检索、OJ 题目与提交查询、联网搜索、网页抓取(含 SSRF 防护)。 - 上下文与检索:Redis List
ai:memory:{userId}:{conversationId}存近期对话(约 20 条 / 30 天),MySQL 落库持久化;pgvectorai_knowledge做向量检索(1024 维,topK 5 / 阈值 0.7),检索异常静默降级。 - 安全治理:
PromptGuard提示注入过滤、AiRateLimiter限流(20 次/分、并发 2),重任务走 MQ 异步并配死信队列。