隔离内网下 AI Agent 工程实战

一、前言

好长一段时间不写文章了,又到国庆长假,是时候整理下最近对 AI 工程化上的一些心得进行总结和分享;

在 AI 的时代浪潮里写文章的门槛变低了很多,AI渲染、AI 代笔;

能真正愿意花费时间,认真的写点东西,是真的挺难得;

在有 AI 的日子里,人的深度阅读与总结能力也开始慢慢退化了。

二、背景

回到主题,近期在公司的开发流程中集成 AI 工程化的落地实践的过程中,各端开发人员在开发流程的各个阶段均会有使用 coding agent 调用内网系统的需求,比如:

需求评审: 获取 tapd prd 需求信息,提供 Agent 了解需求进行脑暴和明确需求细节;

方案设计: 基于需求理解完后 ,让 AI 编写技术方案并同步到 wiki 文档中;

开发阶段: 构造 API 接口文档到 apidoc 平台中、功能开发完成自动 gitlab MR、自动触发发布测试环境;

测试阶段: 获取测试用例信息用于 AI 自测、获取 bug 信息用于 bugfix;

等等,在开发各个阶段,均会使用到内网系统,需要让 Agent 调度获取补充上下文信息,以及特定的功能操作;

前期大家都在探索,不同端(服务端、客户端、前端)各凭本事实现不同内网系统的调用;

三、现状

当前各端在开发阶段均有内网系统调用需求,并各凭本事重复造轮子,多数解决方案是采用 skills script 去实现内网系统的登录授权,并且携带授权信息去调用 API,复用性差,使用门槛高,安全性差,等问题;

在短时间内想让内网系统(自建、开源搭建、商用搭建)都支持 MCP Tools 能力,也不太现实;

四、目标

在不改动内网系统的情况下,将内网系统的相关能力封装成 MCP Tools 提供基础通用能力,支持 tools 的授权管理,支持个人账号登录授权管理、支持危险操作的审批机制、支持 Tool 调用审查日志、支持配套的 Skills;

使用个人内网系统账号去调用 Tools 与用户直接登录内网系统去手动操作效果一致,依然是以个人账号权限去调用,不会出现越权问题;

五、方案

概要

项目: internal-mcp --- 让 AI Agent 直接使用内网系统;

内网系统接口统一封装成 MCP tools,AI 对话即可调用;写操作走人工审批;

这里仅提供实现的思路,不开源;因为这里接入的 MCP Tools 均是公司内网系统,不适合对外开源;但是思路是通用的。

内网接口直接给 AI 用: 内网系统的接口按需授权后注册成 MCP tools,AI 客户端连接即可调用。

凭据与授权管理: 管理台录入账号密码、测试登录、逐个接口开授权开关;凭据加密存储,明文不回显。

写操作要过审批: Agent 发起的写操作只生成待执行单,人工在管理台确认后才真正执行;每次调用都留痕可查。

MCP 市场: 把外部 stdio MCP server 接进来,与内置工具一起提供给 AI。

Agent Skills: 随仓库分发成套流程技能(测试环境发布、服务安装管理),一条命令装进 AI 客户端、,对话里用自然语言触发;管理台 Skills 页可查看全部技能及其用法。

痛点 internal-mcp 解决
各内网系统登录方式不一(SSO、令牌、Cookie),AI 接不了 统一适配各系统登录,AI 只面对 MCP tools,不感知登录细节
会话过期、凭据散落各处 凭据加密托管,过期自动重登,调用方无感知
AI 直接改内网数据风险高 写操作先落待执行单,人工在管理台审批后才真正执行
不知道 AI 动了什么 每次调用留痕,执行记录可查
MCP Tools 较多上下文污染与产生噪音 通过系统开关和 tools 授权开关管理
MCP Tools 基础能力,Agent 多轮对话编排调用不稳定 对于特定标准化流程沉淀 skills,稳定高效执行
内网系统不支持 MCP Tools 接通内网系统登录和 API,通过 MCP Tools 提供能力
各端开发人员想要使用内网工具,重复造轮子 通过 MCP Tools 提供内网系统API Tools 基础能力,可通用

架构图

  • AI Agent: 调用方,通过 MCP tools 调用内网系统能力。
  • 管理台 Vue SPA : 管理入口,配置系统、授权 API、审批与查日志。
  • mcpserver: MCP 端点(stdio + HTTP),按授权动态生成 tools 并路由调用。
  • 治理域(apireg + draft + execlog): 所有 tool 的唯一通路,API 授权开关 → 写操作落审批 → 执行记日志。
  • adapter : 核心抽象 SystemAdapter,把各内网系统的登录、校验、调用差异封装在各自实现里。
  • authcache + credstore: 身份态层------授权缓存与自动重登闭环;凭据 AES-256-GCM 加密存储。
  • store( SQLite ): 单文件库,所有配置、凭据密文、审批、日志的唯一持久化。

业务 领域模型

  • 治理域:核心管控链。System(内网系统)注册 ApiPermission(API 授权开关,含写类审批标记);写类调用触发 Draft(待审批单),审批后执行并经 ExecLog 落日志,draft_id 回写闭环。
  • 身份域:System 配置 Credential(凭据,仅存 AES 密文);登录产出 AuthToken(令牌密文 + 过期时间),运行时由 AuthCache 缓存并在 401 时自动重登。
  • 服务域:McpTool 是对外交付物,由授权的 API 动态生成(命名 {system}_{api_key});ProviderConfig 注入外部 MCP 子进程的工具,走同一治理链。

功能

系统 能做什么
Apidoc 接口文档系统 查接口与标签、按域名查代码仓库、新增/更新接口文档
TAPD 查项目、需求、缺陷,需求与任务维护、评论
Confluence Wiki 读文章、页面管理、评论与标签
ELK 日志中心 按条件查询线上日志
GitLab 仓库代码、代码评审(MR)、流水线、Issue 协作、发布制品
内网发布系统(Sparrow) 发起测试环境发布
... ...

怎么用

1)安装(技能方式)

在目标项目根目录执行:

csharp 复制代码
npx skills add git@gitlab.xxxx.com:sflyq/internal-mcp.git

装好后在 AI 客户端 Agent 对话里输入 /my-internal-mcp install,由技能完成:下载最新版本 → 注册常驻服务 → 自动配置本机 MCP 客户端。

安装参数列表:

更新操作

2)初始化(一次性)

打开管理台 http://127.0.0.1:6688:

  1. 系统总览 › 凭据管理:录入内网系统账号密码,点「测试登录」确认成功。
  2. 系统总览 › API 授权:按需打开接口开关,对应接口立刻作为 MCP tool 提供给 AI。

服务地址:管理台 127.0.0.1:6688,MCP 端点 127.0.0.1:6677/mcp。

控制台

1)内网系统&授权管理

支持开启关闭系统,tools 授权管理、登录凭据管理;

考虑到 mcp tools 过多会对模型上下文污染和产生判断干扰,这里做个系统开关和 tools 开关;

2)Tools 授权&审核管理

支持搜索、批量管理、推荐授权场景组;

3)MCP 市场

使用mcp provider,支持接入开关的 mcp,统一在 internal-mcp 进行管控;

4)Skills

基于 mcp tools 基础能力,编排对应特定标准流程的skills,让执行更稳定、高效; 其中 my-internal-mcp 技能可以对系统进行安装、升级、停止、重启、运行状态,等操作;降低安装升级和使用的门槛;

5)审批

审批通过、拒绝,支持查看历史,支持可视化对比,比如:apidoc 可视化对比差异,wiki 可视化对比内容变更,等;

6)关于

版本更新说明、更新红点提醒;

相关推荐
凤山老林1 小时前
Spring Boot 集成 Netty 构建高性能 TCP 长连接网关:协议解析、心跳检测与集群广播实战
spring boot·后端·tcp/ip
Json____2 小时前
基于 Spring Boot + Vue3 的在线考试管理系统实战
java·spring boot·后端·it学习·wwwoop.com
全栈弄潮儿2 小时前
《周复盘:过去三周,我的开发效率真正提升在哪》
aigc·openai·ai编程
吴佳浩2 小时前
走向 Memory OS:企业私有化 Agent 设计与实现
人工智能·agent·ai编程
浩瀚地学2 小时前
deepagents学习打卡day07
经验分享·笔记·python·学习·agent
似梦的苏烟2 小时前
Langchain实战3-Model和Prompt
langchain·agent
吴佳浩2 小时前
构建企业级 DevOps 排错 Agent:从日志告警到自动化修复 PR
人工智能·agent·ai编程
Sam_Deep_Thinking2 小时前
如何理解java的信号量
java·后端·面试·程序员
东风破_2 小时前
NestJS 快速入门:先别背装饰器,把一条请求跑明白
后端