Dify实践坑点记录
MCP调用时上下文Token累积
Dify 在调用MCP时,会将MCP返回的响应和上下文累积在一起,然后撑爆模型的最大Token限制
可能的解决办法:
尽量用Workflow而不是Chatflow去新建项目
用“对话变量”做递归总结,把关键事实、下一步目标等摘要化地存起来,替代整段历史
将MCP工具做为一个独立的节点,明确调用顺序,这个路线比较适合确定步骤的自动化
在每次工具调用后,差一个输出清洗/摘要的节点
MCP在设计之初,似乎并不是像playwirght MCP这样执行一个步骤就要调用一个工具的,不但会造成巨额的钱财输出,也会让整个执行过程变得非常非常慢。尽可能减少大模型在这个过程中的参与,或者直接将大模型部署到本地
Ngrok
Ngrok开启内网穿透后,可能会被dify拒绝访问,此时要加--host-header=rewrite参数,这个参数常常能解决隧道访问时遇到的 403 Forbidden 问题。它的主要作用是重写HTTP请求头中的Host字段,让经过ngrok转发的请求看起来像是直接发给本地服务的一样,从而绕过一些安全检查。
ngrok http 8089 --host-header=rewritePlaywright MCP
本地机docker部署dify后,注册Playwright MCP到dify中时,MCP的http地址应该为
http://host.docker.internal:你的端口号/mcphost.docker.internal是docker用来访问宿主机的专用host名
但是会遇到403的情况,这个时候,在启动playwright MCP需要加-allowed-hosts "*" 来允许host范围,当然生产环境不能用"*" 允许所有的host来访问,具体启动playwright MCP的命令如下:
npx @playwright/mcp@latest --shared-browser-context --isolated --port 8089 --host 0.0.0.0 --allowed-hosts "*"MCP配置
mcp的唯一标识符不能有大写字母,只能小写字母、下划线、数字和连字符,最多24个字符
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
soap的会员制餐厅!
喜欢就支持一下吧