跳到主要内容

07-Guardrails-HITL-MCP-Streaming

核对日期:2026-05-18
官方资料:Guardrails https://docs.langchain.com/oss/javascript/langchain/guardrails;Human-in-the-loop https://docs.langchain.com/oss/javascript/langchain/human-in-the-loop;MCP https://docs.langchain.com/oss/javascript/langchain/mcp;Streaming https://docs.langchain.com/oss/javascript/langchain/streaming

官方概念

Guardrails 是输入、输出、工具调用和上下文层面的防护策略;HITL 让高风险步骤进入人工审批;MCP 用标准协议连接外部工具和上下文服务;Streaming 让应用边生成边返回事件或 token。

机制

高风险 Agent 的闭环通常是:

输入检查 -> 工具权限 -> 人工审批 -> 工具执行 -> 输出校验 -> trace/eval

Streaming 不能只看体验,也要看中途取消、部分输出、错误事件和审计记录。

TypeScript 写法

综合项目 multi-tool-task-agent.ts 演示了:

  • 动态工具暴露:普通员工不暴露 manager 工具。
  • HITL:外部发送必须有审批 token。
  • 工具重试:瞬时 calendar 失败只重试一次。
  • Audit log:每个工具调用写 trace。

Python 差异

Python 官方示例常把 HITL 和 LangGraph interrupt/resume 联系起来;TypeScript 学习时仍应把审批理解为状态机问题,而不是简单 confirm prompt。MCP 客户端包名、transport 和认证方式也要按目标语言官方文档核对。

工程边界

  • Guardrails 不能只靠模型自我检查。
  • HITL 需要可恢复状态和审批审计。
  • MCP Server 权限要最小化,不能把所有内部工具一次性暴露给 Agent。

常见反模式

反模式后果
输出后再做权限检查敏感信息已经泄露
人工审批只在 UI 弹窗里后端无法审计和回放
streaming 没有错误事件协议前端只看到半截答案

练习任务

  1. 运行多工具任务 Agent eval,确认外部发送无审批时失败。
  2. 给工具增加风险等级,高风险工具默认隐藏。
  3. 设计一个 MCP Server 白名单策略,限制工具、资源和 prompt 权限。