使用 Todo 和文件系统生成研究简报
本实战在公开文档 MCP 的基础上加入 Todo 和文件系统功能,让智能体依次规划、检索、撰写并复核一份 Markdown 研究简报。
本实战将帮助你理解
- Todo 如何帮助智能体拆分任务并跟踪当前进度,以及这些进度会在什么范围内保留。
- 未关联沙箱时,文件系统功能如何按会话管理工作文件。
- 为什么需要在写入文件后重新读取内容,并把长期保存交给经过批准的持久化系统。
开始前需要一个能够正常调用 microsoft_docs_search 和 microsoft_docs_fetch 的 Microsoft Learn MCP 实例。可以先完成构建使用公开文档 MCP 的技术文档助手,也可以使用通过相同工具检查的现有 MCP 实例。
本文使用以下名称:
| 资源 | 名称 |
|---|---|
| 智能体模板 | recipe-mslearn-report-assistant-v1 |
| 智能体实例 | recipe-mslearn-report-assistant-test-v1 |
创建研究简报智能体
新建
recipe-mslearn-report-assistant-v1智能体模板,选择已经验证的模型凭证和模型。在 系统提示词中输入:
language-text你是 Microsoft 技术研究助手,只处理公开、非敏感的 Microsoft 产品问题。 处理研究简报时,先用 write_todos 建立并更新搜索资料、读取原文、撰写简报和复核文件四项计划。 先调用 microsoft_docs_search,再调用 microsoft_docs_fetch 读取最相关的官方页面。 只根据实际读取到的内容撰写 Markdown 简报,并包含标题、摘要、三个要点和实际读取的官方页面链接。 使用 write_file 将简报写入 /reports/azure-resource-manager-brief.md,再使用 read_file 复核内容。 页面读取失败时,明确说明失败,不要搜索替代页面,不要编造内容,也不要写入声称成功的简报。 在当前智能体中直接完成,不要启动异步任务、子代理或后台任务。在 插件配置中添加 MCP - 实例,选择已经验证的 Microsoft Learn MCP 实例。
注意
Microsoft Learn MCP 实例的来源
这里选择的实例可以是在构建使用公开文档 MCP 的技术文档助手中创建并测试通过的 Microsoft Learn MCP 实例,也可以是已经确认能够调用
microsoft_docs_search和microsoft_docs_fetch的现有实例。尚无可用实例时,请先完成该实战中的 MCP 创建和测试步骤。保持 启用文件系统开启,并保持 只读模式关闭。
注意
本实战中的文件保留范围
本实战不关联沙箱。
write_file写入的工作文件只用于创建它的会话;需要跨会话、实例重启或资源回收长期保留、下载、共享或审计产物时,请在流程结束前把最终内容写入经过批准的持久化系统。参见了解文件系统功能和工作文件和开启“启用文件系统”后,文件保留在哪里?。开启 启用待办列表。如果页面显示 增强描述注入,保持开启。
注意
Todo 帮助智能体按步骤完成当前任务
开启 Todo 后,智能体可以把较长的任务拆成几个步骤,并在处理过程中更新进度。例如,本实战会依次记录搜索资料、读取原文、撰写简报和复核文件。Todo 只跟踪当前任务;停止交互后,智能体不会自行继续处理,新会话也不会自动接着原来的进度。需要以后继续或自动推进任务时,请把进度保存在工单、工作流或其他业务系统中。参见Todo 适合处理什么任务?开始新会话后还会继续吗?。
在 工具权限中只为以下工具添加允许规则,并把 默认行为设为 拒绝:
microsoft_docs_searchmicrosoft_docs_fetchwrite_file
write_todos和只读文件工具read_file属于始终自动通过的内置工具,不需要重复添加允许规则。创建模板,再从模板创建
recipe-mslearn-report-assistant-test-v1智能体实例。
生成并复核简报
打开测试实例的 Playground,在新会话中发送:
请先用 write_todos 建立并跟踪四项计划:搜索资料、读取原文、撰写简报、复核文件。
然后使用 microsoft_docs_search 搜索 Microsoft Learn,再使用 microsoft_docs_fetch 读取最相关的官方页面。
根据实际读取到的资料,写一份中文 Markdown 简报,说明 Azure Resource Manager 是什么、可以帮助我管理什么,并列出三个要点和实际读取的官方页面链接。
必须使用 write_file 将简报写入 /reports/azure-resource-manager-brief.md,再使用 read_file 复核文件内容。
最后告诉我文件路径、简短摘要和实际来源链接。本次不要启动异步任务、子代理或后台任务。回答措辞和搜索排序可能变化。确认:
- Playground 的工具卡片显示
write_todos建立并更新计划。 microsoft_docs_search先于microsoft_docs_fetch,并且读取的是相关 Microsoft Learn 官方页面。write_file先把简报写入/reports/azure-resource-manager-brief.md,read_file再成功读取该文件。- 最终回答给出文件路径、简短摘要和至少一个实际读取的官方页面链接。
来源列表只收录实际通过 microsoft_docs_fetch 读取的页面;不要把仅出现在搜索结果中的链接列为已读取来源。以 Playground 中可见的工具卡片和文件回读为准;Trace有对应记录时,可以补充核对调用顺序。Trace 暂无数据不会阻塞本节。
完成结果:智能体按 Todo 规划研究步骤,搜索并读取官方资料,把简报写入固定路径,再回读文件并返回摘要和来源链接。
可选:验证读取失败时不写入文件
在新会话中发送:
请先用 write_todos 建立并跟踪两项计划:读取指定页面、报告结果。
只调用 microsoft_docs_fetch 读取以下精确 URL,不要搜索替代页面:
https://learn.microsoft.com/en-us/agentworks-report-not-found
如果读取失败,必须明确说明无法读取;不要编造内容,不要调用 write_file,不要声称已生成报告。最后更新 Todo 并说明是否写入文件。确认 Playground 显示 write_todos 和对固定 URL 的 microsoft_docs_fetch 尝试,不显示 write_file 调用;最终回答应明确说明页面无法读取且没有生成简报。
将这个模式调整为其他研究任务时,为每种文件类型定义固定路径、内容结构、来源要求和失败时的处理方式。准备用于生产流程时,还需要选择经过批准的持久化系统,并验证访问权限、文件生命周期和审计方式。