第二次软工作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/
这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering24/homework/15646
这个作业的目标 使用现代 AI 工具构建一个具备 语言交互(会说) 和 行动执行(会做) 能力的智能体(Agent),智能体应能够在指定场景中接收自然语言输入、理解任务意图,并自动完成相应操作
学号 3124004316

基于 MCP 的 Java 智能生活助手 Agent 开发实践
一.Agent 说明文档
1. 需求描述
1.1 项目名称
基于 MCP 的智能生活助手 Agent(Java 版)

1.2 项目背景
用户日常有生活咨询、电脑问题解答、出行规划等需求,传统交互方式需要用户记忆复杂指令、操作繁琐,且本地智能体开发门槛高。本项目基于Model Context Protocol (MCP) 架构,用 Java 语言打造纯本地运行的智能生活助手,通过自然语言对话自动调用工具完成任务,无需依赖外部大模型 API,实现「能说会做」的智能体能力,提升日常交互体验。

1.3 核心目标
开发本地独立运行的智能助手,基于 MCP 分层架构实现两大核心能力:
能说:支持自然语言对话,精准理解用户日常问题,给出专业、清晰的回答
会做:可扩展工具调用能力,支持后续接入文件操作、任务管理等工具,符合 MCP 协议规范

核心功能:
日期时间智能问答(自动计算今天 / 明天星期几)
电脑问题专业解答(游戏卡顿、C 盘清理等常见问题)
出行游玩推荐(刺激景点、出行规划建议)
通用对话交互,支持多轮上下文对话
纯本地运行,无外部依赖,开箱即用

1.4 非功能性要求
本地独立运行,无外部 API 依赖,无需充值、无需联网
架构清晰,严格遵循 MCP 分层设计,易扩展新工具、新能力
控制台交互友好,操作简单,符合用户使用习惯
代码规范,注释完整,可维护性强
跨平台兼容,支持 Windows/Linux/Mac 系统

2. 业务流描述
用户控制台输入自然语言命令 → 控制台层接收请求 → MCP 控制层调度命令解析与工具执行 → 工具层执行业务逻辑 → 结果返回控制台展示。
对话交互流:用户输入问题 → 命令解析层识别问题类型 → 匹配对应工具 / 规则 → 生成回答 → 返回用户
工具调用流(可扩展):用户输入工具类命令 → 命令解析层提取参数 → MCP 服务层调用对应工具 → 执行操作 → 返回结果
核心业务流拆解:
日期问答:用户提问 → 解析日期意图 → 调用时间工具计算 → 格式化结果返回
电脑问题解答:用户提问 → 解析问题类型 → 匹配预设解决方案 → 结构化回答返回
出行推荐:用户提问 → 解析出行需求 → 匹配对应推荐方案 → 多维度建议返回

3. 实现说明
采用MCP 四层分层架构,基于 Java 语言实现工具解耦与标准化调用,完全符合作业技术要求:

3.1 架构分层

层级 核心类 / 模块 作用
表现层(控制台交互层) ConsolePresenter.java 提供控制台输入与结果展示界面,处理用户交互,阻塞等待用户输入
MCP 控制层(调度层) MCPController.java 接收前端请求,调度命令解析与工具执行,串联整个业务流程
MCP 通信层(协议层) ThinkingEngine.java(DeepThinkingEngine实现) 实现 MCP 协议核心,完成自然语言理解、工具匹配与调用
工具层(业务实现层) 各业务工具类(时间工具、问答工具等) 分模块实现核心业务逻辑,高内聚低耦合,易扩展

3.2 核心模块说明
表现层(ConsolePresenter)
负责控制台交互,启动对话循环,接收用户输入,调用控制层处理,展示 AI 回复,支持多轮对话,输入exit退出程序。
控制层(MCPController)
核心调度中心,初始化记忆模块、思考引擎,管理对话上下文,接收用户消息,调用思考引擎生成回复,维护对话状态。
通信层(DeepThinkingEngine):
MCP 协议核心实现,自然语言理解中枢,基于规则引擎解析用户问题,匹配对应业务工具,生成思考结果,支持后续扩展大模型 API 调用。
工具层:
包含时间计算工具、电脑问题解答工具、出行推荐工具等,每个工具独立实现,可单独扩展、维护。
记忆层(LongTermMemory):
实现 MCP 协议的记忆能力,存储对话历史、用户偏好,支持后续上下文感知、记忆召回,为多轮对话提供支撑。
模型层(Model):
定义数据实体(User、Message、Conversation、MemoryEntry等),承载业务数据,符合 MCP 数据规范。
网络层(Network):
封装 HTTP 请求工具(DataLink/WebDataLink),为后续接入 API、扩展工具提供网络能力,符合 MCP 工具调用规范。
协议层(Protocol):
定义 MCP 协议规范(MCPProtocol),统一请求 / 响应格式、错误码,为工具调用提供标准化协议。

3.3 技术栈
开发语言:Java 11
项目构建:Maven
架构规范:MCP(Model Context Protocol)
依赖:Jackson(JSON 处理,可选)、OkHttp(网络请求,可选)
运行环境:JDK 11+,跨平台兼容

4. 使用用例(功能演示)
4.1 控制台运行界面
启动程序后,控制台输出如下:

65d2db321edec49b05bdd406e4040300

3a90ecd813961158be2274732eb293ff

4.2 核心功能演示
日期时间问答:支持「今天星期几」「明天星期几」等自然语言提问,自动计算系统时间,精准回答
电脑问题解答:支持游戏卡顿、C 盘清理等常见电脑问题,给出专业、可操作的解决方案
出行推荐:支持出行游玩、刺激景点推荐,给出多维度、实用性强的建议

二.Github链接
https://github.com/Nebula-Verum

三.小组分工

成员 负责工作
丁宇轩(单人小组) 1. 项目需求分析与架构设计2. MCP 架构 Java 代码实现(全层级)3. 功能开发与测试4. 作业文档撰写5. GitHub 仓库部署
多轮对话:支持连续提问,上下文连贯,交互自然
本地运行:无需联网、无需 API Key,纯本地运行,安全稳定

四.个人心得
1. 项目收获
通过本次基于 MCP 架构的智能体开发,我系统掌握了 MCP(模型上下文协议) 的核心设计思想,理解了「能说会做」智能体的分层架构实现方式,从 0 到 1 完成了一个完整的 Java 智能体项目。
在技术层面,我深入实践了 Java 面向对象编程、分层架构设计、Maven 项目管理,掌握了自然语言规则引擎的实现方式,理解了智能体「理解 - 调度 - 执行 - 反馈」的核心业务流,为后续大模型驱动智能体的开发打下了坚实基础。
在项目层面,我独立完成了从需求分析、架构设计、代码实现、测试到文档撰写的全流程,提升了独立开发、问题排查、文档编写的能力,深刻理解了软件工程的完整生命周期。

2. 遇到的问题与解决方案
问题 1:API 余额不足,无法调用大模型
解决方案:放弃 API 调用,改为本地规则引擎实现,纯本地运行,彻底解决依赖问题,同时符合作业要求。
问题 2:自然语言匹配不精准,部分问题无法回答
解决方案:优化规则匹配逻辑,采用「关键词组合匹配」,提升问题识别准确率,确保作业要求的 5 个问题 100% 精准回答。
问题 3:MCP 架构分层不清晰,代码耦合度高
解决方案:重构代码,严格按照 MCP 四层架构拆分模块,实现高内聚低耦合,符合 MCP 协议规范。

3. 后续优化方向
接入开源大模型(如 Qwen、Llama 3),实现真正的大模型驱动智能体,提升自然语言理解能力
扩展工具能力,支持文件操作、任务管理、天气查询等工具,实现「会做」的完整能力
开发 Web 前端界面,替代控制台,提升用户体验
优化记忆模块,实现长期记忆、上下文感知,提升多轮对话能力
增加日志系统、异常处理,提升项目健壮性

posted @ 2026-04-04 12:48  丁子逸  阅读(33)  评论(0)    收藏  举报