MCP 生产环境里可执行工具怎么管
Future_AGI · reddit · 2026-07-14
这篇是上一帖的后续,作者总结了把 MCP server 从 stdio 迁到 hosted 之后,在生产环境里运行“会真正执行动作”的工具时踩到的坑与做法。 核心结论包括: - **读工具和写工具要分开治理**:read-only 工具较容易接入,但会改变状态的工具(跑 eval、加 guardrail、生成 synthetic set、写入 dataset)如果和读工具共享过宽权限,后面容易出问题,因此改成按 key 做 allow/deny list。 - **重点不是只拦请求参数**:除了检查 tool call 的入参,更有效的是在工具返回后检查输出是否 grounded、是否触发 policy、是否符合预期结构;即使调用本身合法,返回垃圾结果也要拦住。 - **工具要告诉 agent 下一步**:相比只回一个分数,返回“分数 + 下一步建议”更能推动 agent 前进,避免它为了理解结果再多调用几次工具。 - **eval 进入在线闭环**:作者最看重的场景是 agent 在生成草稿后先跑自我评测,发现 groundedness 低就回写修正或标记,而不是事后批处理。 - **trace 比分数更常用**:实际排查时,大家更多看的是一次次 tool call 的 trace,而不是 eval 分数本身,因为 trace 才能说明 agent 为什么拿错工具或陷入循环。 文末作者还抛出一个问题:对于会改状态的工具,究竟应该在“调用前”还是“返回后”做闸门控制。