第二次软工作业

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

一.Agent说明文档

1需求描述

1.1项目名称

基于 MCP 的智能生活助手 Agent

1.2项目背景

用户日常有待办管理、天气查询、出行规划、本地文件操作等需求,传统程序交互生硬、命令格式严格。本项目打造本地智能体,通过自然语言交互自动调用工具完成任务,提升使用体验。

1.3核心目标

开发本地运行的智能助手,支持网页端自然语言交互,自动识别用户意图并调用工具,实现五大核心能力:

  • 待办事项全流程管理(含时间自动识别)
  • 城市天气实时查询与预报
  • 基于天气的智能出行建议生成
  • 安全的本地文本文件操作
  • 单条自然语言命令触发多步骤任务

1.4非功能性要求

  • 本地独立运行,无外部客户端依赖
  • 网页前端交互界面
  • 文件操作仅限指定workspace/目录,保障安全
  • 架构清晰,易扩展为大模型驱动 Agent

2.业务流描述

用户网页输入自然语言命令 → 后端接收解析 → 匹配工具与参数 → MCP 服务调用对应工具 → 执行业务逻辑 → 结果返回前端展示。

  • 待办管理:识别命令→提取任务 / 时间→结构化存储至 JSON→返回结果
  • 天气查询:输入城市→获取经纬度→查询实时 / 未来天气→格式化输出
  • 出行规划:输入城市 + 时间→获取天气数据→生成穿衣 / 带伞 / 交通 / 活动建议
  • 文件操作:解析路径与指令→校验路径安全性→执行文件创建 / 读写 / 修改→返回结果
  • 多步骤任务:识别复合指令→依次调用多个工具→返回分步执行结果

3.实现说明

采用四层分层架构,基于 MCP(模型上下文协议)实现工具解耦与标准化调用:

  • 表现层:templates/index.html,提供网页输入与结果展示界面
  • Web 服务层:web_app.py,接收前端请求,调度命令解析与工具执行
  • MCP 通信层:mcp_server.py/mcp_client.py,注册封装工具,实现客户端与服务端调用
  • 工具层:分模块实现核心业务
    • 待办工具:增删改查待办,自动识别时间,JSON 存储
    • 天气工具:城市经纬度转换、天气获取、别名映射、非法输入过滤
    • 出行工具:基于天气数据生成全方位出行建议
    • 文件工具:文件全操作,严格限制操作目录防止越权
    • 命令解析:规则驱动解析自然语言,匹配工具与参数

4.使用用例(功能演示)

4.1web端运行界面

image

a.天气查询测试
image

b.待办测试
image

c.文件操作测试
image

4.2终端程序运行界面

image
a.天气查询测试
image

b.出行规划测试
image
c.添加待办测试
添加待办:明天下午三点开组会
image
添加待办:今天晚上健身
image
添加待办:后天早上9点去医院
image
d.待办查看与操作测试
查看待办与删除待办
image
e.文件操作测试
创建文件 notes/today.txt 内容:今天要写作业
读取文件 notes/today.txt
image
创建文件 notes/Friday.txt 内容:下午去工位改bug
查看目录 notes
image
f.多步骤任务测试
帮我查询莫斯科天气并规划明天出行
image
帮我查询上海天气并写入文件 reports/weather.txt
image
g.异常与边界测试
查询火星天气
读取文件 not_exist.txt
替换文件 notes/today.txt 里的 "不存在的词" 为 "新词
image

二.Github链接

https://github.com/7788-noodles

三.小组分工

李佳琪:MCP初始化 编写工具函数和agent调度主逻辑
莫仕明:编写使用步骤,测试用例,提供截图
程天润:编写博客园Markdown,整理业务流程

四.成员心得

李佳琪
这次作业让我直观地了解什么是“智能体”,我发现人们常说的Agent本质上就是理解用户意图+调用工具+返回结果。
在实现过程中,我发现项目不是从前端做起的,而是先把底层功能函数跑通,在功能完善的基础上再加前端点缀。
项目中最有挑战的部分是自然语言解析,规则驱动的方法比较稳定,但灵活性有限,这也让我理解了为什么很多更强的智能体系统会引入大模型做意图理解。
程天润
通过本次智能体构建作业,我深入理解了AI智能体“能说会做”的核心内涵,掌握了MCP框架的应用逻辑与业务流程的梳理方法。在负责博客Markdown编写和业务流整理的过程中,我清晰梳理了智能体各模块的协同关系,深刻体会到团队分工协作的重要性和逻辑严谨对项目落地的关键作用。此次实践不仅提升了我的文档整理和逻辑梳理能力,更让我对智能体的开发思路、应用场景有了更直观的认知,为后续大项目的开展打下了坚实基础,也让我感受到了AI技术落地的乐趣与价值。
莫仕明
参与 MCP 智能生活助手的参数校验和测试工作,让我对 AI Agent 工具调用的稳定性有了直观认知。
参数校验中,我针对天气、待办等工具设计了入参规则,发现 MCP 框架对参数格式要求严苛,细微的格式错误都会导致工具执行失败,这让我重视起校验规则与工具实际接收逻辑的匹配度。
测试时,我不但通过真实场景和异常用例双维度验证,还排查出前端请求头配置和跨域限制导致的通信异常等问题,调整了前端fetch请求的头信息、禁用缓存并配置 Flask 跨域支持,成功打通前后端链路。意识到测试不仅要找功能 bug,更要打通前后端全流程。
这次经历让我明白,校验和测试是项目兜底的关键,后续会更注重边界用例和第三方 API 依赖的测试,提升项目健壮性。

posted @ 2026-04-03 16:36  程天润  阅读(25)  评论(0)    收藏  举报