☰
Trae结合MCP Servers打造技术资源推荐智能体:从零搭建可复用的推荐工作流
2026/10/3 16:12:14 网站建设 项目流程

1. 为什么要在 Trae 里接 MCP Servers 做技术资源推荐

技术资源推荐这件事,单独写个脚本也能做,但真正落地时会遇到三个绕不开的问题:第一,资源散落在 GitHub、技术博客、官方文档、问答社区,靠人工整理永远追不上更新速度;第二,推荐逻辑一旦写死,换个技术栈就得重写一遍;第三,推荐结果没有记忆,每次都要从头描述需求。Trae 结合 MCP Servers 的价值就在于,它把「工具调用」和「模型推理」拆开了——MCP Server 负责抓取、存储、检索这些确定性动作,Trae 里的智能体负责理解你的关键词、判断资源质量、组织推荐列表。你不需要在 Trae 里写爬虫,也不需要自己维护向量库,只要把 MCP Server 挂上去,用 Prompt 把推荐规则说清楚,就能跑通一条从关键词到推荐列表的链路。

这套方案适合谁?如果你经常需要给团队整理学习资料、给新人找入门项目、或者自己收藏了一堆链接却从来没看过,那这个智能体就是为你准备的。它不追求「全网最全」,而是追求「你输入一个关键词,它给你一份能直接点开看的短列表」。我实测下来,整个配置过程大概二十分钟,其中大部分时间花在确认 MCP Server 的启动参数上,真正写 Prompt 和调推荐规则反而很快。

先明确一下本文要用的两个 MCP Server。一个是 memory,基于知识图谱的持久化内存系统,用来存你推荐过的资源、你的偏好标签、以及资源之间的关联关系;另一个是 playwright,浏览器自动化服务器,让模型能在真实浏览器环境里打开页面、截图、执行 JavaScript,用来抓取资源页面的标题、摘要、Star 数这些元信息。这两个组合起来,刚好覆盖「收集」和「记忆」两个环节,推荐算法本身交给 Trae 的模型去推理。

需要提前说明的是,MCP Server 本身不绑定任何特定模型,它只是一个工具协议。你在 Trae 里配置好之后,模型会根据你的 Prompt 决定什么时候调用哪个工具。所以配置的重点不是「连上就行」,而是让模型知道:遇到关键词先查 memory 里有没有历史记录,没有再去 playwright 抓取,抓完把结果写回 memory。这个流程需要在 Prompt 里写清楚,否则模型可能每次都重新抓,既慢又浪费。

另外,TaoToken 在这里的角色是提供模型调用能力。如果你的 Trae 环境需要配置模型 API,可以用 TaoToken 的 API 地址和 Key,它兼容常见的 OpenAI 格式接口,配置起来比较直接。下面会先讲前置准备,再给可复制的配置片段。

2. TaoToken 前置准备与 Trae 侧模型接入配置

在 Trae 里接 MCP Servers 之前,先确认模型调用通道是通的。Trae 本身支持多种模型接入方式,如果你用的是自定义 API,需要填 Base URL、API Key 和 Model ID 这三件套。TaoToken 的 API 地址是https://taotoken.net/api,注意这个地址不带任何查询参数,直接填在 Base URL 里就行。API Key 在 TaoToken 控制台的 API Keys 页面生成,生成后复制保存,后面配置里会用到。

模型 ID 这块,TaoToken 支持多种模型,你在控制台或者模型对话页面能看到可用列表。选一个适合做工具调用的模型,因为 MCP 场景下模型需要理解工具描述并决定调用时机,纯文本模型可能会忽略工具。我一般选带 function calling 能力的模型,具体名称以你控制台显示的为准。

配置路径在 Trae 的设置里,找到模型配置或者 API 配置区域,填入:

{ "base_url": "https://taotoken.net/api", "api_key": "你的_TaoToken_API_Key", "model": "你的模型ID" }

注意base_url后面不要加/v1或者斜杠,TaoToken 的接口路径已经处理好了。填完之后点测试连接,如果返回正常,说明模型通道没问题。这一步看起来简单,但后面 MCP Server 调用失败时,有一半概率是这里没配对,所以先确认。

接下来是 MCP Servers 的配置。Trae 的 MCP 配置通常放在项目根目录或者用户配置目录下的mcp.json文件里,具体路径看你使用的 Trae 版本。文件结构是一个 JSON 对象,mcpServers字段下面挂各个 Server 的定义。每个 Server 需要指定启动命令、参数和环境变量。

memory Server 的配置大概长这样:

{ "mcpServers": { "memory": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-memory" ], "env": { "MEMORY_FILE_PATH": "./memory.json" } } } }

MEMORY_FILE_PATH是知识图谱的持久化文件路径,建议放在项目目录下,这样换项目时记忆是隔离的。如果你希望跨项目共享记忆,可以改成绝对路径。

playwright Server 的配置:

{ "mcpServers": { "playwright": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-playwright" ] } } }

两个 Server 可以放在同一个mcp.json里,合并后就是完整的配置。注意npx命令需要本地有 Node.js 环境,版本建议 18 以上。如果启动时报command not found,检查 Node 是否在 PATH 里。

配置写完后,在 Trae 里重新加载 MCP 配置,或者重启 Trae。加载成功后,你会在工具列表里看到 memory 和 playwright 提供的工具,比如create_entities、create_relations、browser_navigate、browser_snapshot这些。看到这些工具名,说明 MCP Server 已经挂上了。

这里有个容易踩的坑:有些 Trae 版本要求 MCP Server 的配置写在特定的 settings 文件里,而不是mcp.json。如果你在mcp.json里配了但工具列表没出现,去 Trae 的设置界面找 MCP 或者 Tools 相关选项,看看是不是需要在那里手动添加。另外,playwright Server 第一次启动会下载浏览器内核,可能需要几分钟,耐心等一下。

模型通道和 MCP Server 都配好之后,就可以进入下一步:写推荐规则和调用参数。

3. 可复制的 MCP 配置片段与推荐规则模板

这一节给出一份可以直接复制的配置和 Prompt 模板。配置部分包括mcp.json的完整内容和 Trae 侧调用参数,Prompt 部分包括推荐规则、输出格式和工具调用顺序。

先看mcp.json完整内容:

{ "mcpServers": { "memory": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-memory" ], "env": { "MEMORY_FILE_PATH": "./tech-recommend-memory.json" } }, "playwright": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-playwright" ], "env": { "PLAYWRIGHT_HEADLESS": "true" } } } }

PLAYWRIGHT_HEADLESS设为true表示无头模式,抓取时不会弹出浏览器窗口。如果你需要看抓取过程,改成false。

Trae 侧调用参数主要是在智能体配置里指定使用的 MCP Server 和模型。如果你用的是 Trae 的 Agent 配置界面,勾选 memory 和 playwright 两个 Server,模型选你在 TaoToken 里配置的那个。如果是通过配置文件,大概是这样:

{ "agent": { "name": "tech-resource-recommender", "model": "你的模型ID", "mcpServers": ["memory", "playwright"], "systemPrompt": "见下方推荐规则模板" } }

推荐规则模板是核心,直接决定推荐质量。下面这份 Prompt 你可以复制到 Trae 的 System Prompt 或者对话开头:

你是一个技术资源推荐助手。你的任务是根据用户输入的关键词,推荐 3-5 个高质量技术资源。 工作流程: 1. 收到关键词后,先调用 memory 的 search_nodes 工具,查询是否已有相关资源记录。 2. 如果 memory 中有记录,直接基于记录推荐,并说明来源是历史记忆。 3. 如果 memory 中没有记录,调用 playwright 的 browser_navigate 打开搜索页,抓取资源列表。 4. 对每个候选资源,调用 browser_snapshot 获取页面摘要,提取标题、描述、Star 数(如果是 GitHub)。 5. 按以下规则筛选: - 优先选择最近一年内有更新的资源 - GitHub 项目 Star 数低于 100 的降权 - 官方文档和知名博客优先于个人转载 - 同一类型资源最多推荐 2 个 6. 将筛选后的资源写入 memory,使用 create_entities 创建资源节点,使用 create_relations 建立关键词与资源的关联。 7. 输出推荐列表,每个资源包含:名称、链接、一句话推荐理由、适合人群。 输出格式: ## 推荐列表 1. [资源名称](链接) - 推荐理由(适合:xxx) 2. ... 注意:不要编造链接,所有链接必须来自 playwright 抓取结果或 memory 记录。

这份 Prompt 的关键点在于把工具调用顺序写死了:先查 memory,再抓取,再写回。如果不写清楚,模型可能会跳过 memory 直接抓取,导致每次都是冷启动。另外,筛选规则要具体,比如「Star 数低于 100 降权」比「选择高质量资源」可执行得多。

还有一个细节:memory 的create_entities需要指定实体类型和观察值。你可以在 Prompt 里补充:

创建资源实体时,entityType 设为 "TechResource",observations 包含:关键词、链接、推荐理由、抓取时间。

这样后续查询时可以通过关键词快速定位。

配置和 Prompt 都准备好后,就可以跑一次验证流程了。

4. 从关键词到推荐列表的验证请求与成功结果

这一节演示一次完整调用。我用的关键词是「Rust 异步编程」,你可以换成任何你关心的技术方向。

在 Trae 的对话窗口输入:

帮我推荐 Rust 异步编程的学习资源

模型收到后,按照 Prompt 的流程,第一步会调用 memory 的search_nodes,查询参数是Rust 异步编程。因为是第一次运行,memory 里没有记录,返回空结果。

第二步,模型调用 playwright 的browser_navigate,打开一个搜索页。这里具体打开哪个页面取决于模型的选择,可能是 GitHub 搜索、也可能是技术社区。我实测时模型打开了 GitHub 搜索Rust async programming,然后调用browser_snapshot获取页面内容。

第三步,模型从快照里提取候选资源,比如tokio-rs/tokio、async-rs/async-std、rust-lang/async-book这些。对每个候选,模型会再调用一次browser_navigate打开项目主页,用browser_snapshot抓取 Star 数和最近更新时间。

第四步,按规则筛选。tokioStar 数很高,保留;async-book是官方文档,保留;某个 Star 数只有 30 的小项目被降权,没有进入最终列表。

第五步,模型调用 memory 的create_entities,创建三个资源节点,然后调用create_relations,建立「Rust 异步编程」到这三个资源的关联。

最后输出:

## 推荐列表 1. [tokio-rs/tokio](https://github.com/tokio-rs/tokio) - Rust 异步运行时的事实标准,生态最完整(适合:需要生产级异步运行时的开发者) 2. [rust-lang/async-book](https://github.com/rust-lang/async-book) - 官方异步编程教程,从 Future 讲到 executor(适合:想系统理解异步原理的初学者) 3. [async-rs/async-std](https://github.com/async-rs/async-std) - 标准库风格的异步运行时,API 更接近 std(适合:偏好标准库风格的开发者)

整个过程大概十几秒,其中 playwright 抓取占了大头。如果你觉得慢,可以在 Prompt 里限制只抓取前 5 个候选,减少浏览器调用次数。

验证成功的标志有三个:第一,推荐列表里的链接能点开,不是编造的;第二,memory 文件里多了三个实体节点;第三,再次输入同样的关键词时,模型直接返回历史记录,不再调用 playwright。第三点很重要,说明记忆生效了。

你可以打开tech-recommend-memory.json看看内容,大概长这样:

{ "entities": [ { "name": "tokio-rs/tokio", "entityType": "TechResource", "observations": ["关键词: Rust 异步编程", "链接: https://github.com/tokio-rs/tokio", "推荐理由: Rust 异步运行时的事实标准"] } ], "relations": [ { "from": "Rust 异步编程", "to": "tokio-rs/tokio", "relationType": "recommends" } ] }

看到这个文件,说明整条链路跑通了。接下来可以试试换个关键词,比如「Go 微服务」,看看模型是否能复用同样的流程。

5. 常见报错排查:401、local proxy failed、reading choices、OAuth

这一节整理几个我实际遇到过的报错,以及对应的排查方向。这些报错不一定都出现在你的环境里,但遇到了可以对照看看。

401 Unauthorized

这个报错通常出现在模型调用环节,不是 MCP Server 本身的问题。原因一般是 TaoToken 的 API Key 没填对,或者 Key 过期了。排查步骤:打开 Trae 的模型配置,确认api_key字段填的是完整的 Key,没有多余空格;确认base_url是https://taotoken.net/api,没有拼错;去 TaoToken 控制台的 API Keys 页面确认这个 Key 还在有效期内。如果 Key 没问题,试试在模型对话页面直接发一条消息,看是否能正常返回。如果模型对话正常但 Trae 里报 401,可能是 Trae 的配置没保存,重新加载一下。

local proxy failed

这个报错一般和网络环境有关,但不要往代理方向想。更常见的原因是 MCP Server 启动失败,Trae 尝试连接本地进程时超时。排查步骤:先确认npx命令能正常运行,在终端执行npx -y @modelcontextprotocol/server-memory,看是否能启动;如果报command not found,检查 Node.js 是否安装、是否在 PATH 里;如果启动后立刻退出,检查MEMORY_FILE_PATH指向的目录是否存在,路径不要用~,用相对路径或绝对路径。另外,playwright Server 第一次启动需要下载浏览器,如果下载卡住,也会表现为连接超时。可以手动执行npx playwright install chromium先装好浏览器。

reading choices 报错

这个报错通常出现在模型返回结果解析阶段,提示读取choices字段失败。原因可能是模型返回的格式不符合 OpenAI 兼容格式,或者返回内容为空。排查步骤:确认你选的模型支持 function calling,纯文本模型在工具调用场景下可能返回非标准格式;检查 TaoToken 控制台里该模型的状态,是否正常;如果只在特定关键词下报错,可能是 Prompt 太长导致截断,试着精简 Prompt 或者减少候选资源数量。另外,有些模型在工具调用后会返回tool_calls而不是choices,如果你的 Trae 版本对这块处理不完善,可以换一个模型试试。

OAuth 相关报错

如果你在配置 MCP Server 时看到 OAuth 字样,通常是因为某个 Server 需要授权访问外部服务。memory 和 playwright 这两个 Server 不需要 OAuth,所以如果你遇到 OAuth 报错,检查一下是不是配置里混入了其他 Server。另外,Trae 本身如果开启了账号同步功能,偶尔会弹 OAuth 授权,这个和 MCP 无关,按提示操作即可。如果 OAuth 报错导致 MCP 加载失败,先禁用其他 Server,只保留 memory 和 playwright,确认基础链路能跑通再逐个加回。

除了这些具体报错,还有一个通用排查方法:打开 Trae 的日志面板,看 MCP Server 的启动日志和工具调用日志。大部分问题在日志里都有线索,比如「tool not found」说明 Server 没挂上,「timeout」说明抓取超时。日志比报错信息更详细,遇到问题先看日志。

6. 长期使用建议与 CTA

这套配置跑通之后,你可以把它当成一个长期的技术资源入口。几个实用建议:第一,定期清理 memory 文件,如果某个关键词下的资源已经过时,手动删掉对应实体,或者在 Prompt 里加一条「推荐前检查资源更新时间,超过两年的标记为过时」;第二,如果你有多个技术方向,可以给每个方向建一个独立的 memory 文件,通过环境变量切换,避免记忆混乱;第三,playwright 抓取比较慢,如果只是查历史记录,可以在 Prompt 里加一句「如果 memory 中有足够记录,跳过 playwright 抓取」,这样响应会快很多。

如果你想把推荐结果分享给团队,可以把 memory 文件放到共享目录,或者定期导出成 Markdown 列表。Trae 本身支持导出对话,但 memory 文件是独立的,需要手动同步。

需要 TaoToken 的 API Key 和模型配置,可以去控制台生成:

https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api_keys

接入文档和 MCP 配置说明在这里:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc

如果你想先试试模型对话,确认模型能不能正常调用工具,可以打开:

https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model_chat

长期做编码和 Agent 开发的话,Coding Plan 更划算:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding_plan

配置过程中如果遇到 MCP Server 启动问题,先确认 Node 环境和路径,再看 Trae 日志。大部分问题都能在日志里找到答案。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询