news 2026/9/26 3:48:49

TRAE × 英特尔 Agentic PC:用 DeskMate 给智能体加一层本地过程记忆

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TRAE × 英特尔 Agentic PC:用 DeskMate 给智能体加一层本地过程记忆

1. 为什么 TRAE 里的智能体总是“断片”

用 TRAE 写代码时,最让人抓狂的不是模型不会写,而是它不知道你刚才干了什么。你在 PowerShell 里跑python train.py报了个CUDA out of memory,切到浏览器翻了半天文档,又回终端试了两条命令,最后回到 TRAE 想让它接着分析——结果它一脸茫然,你只能把报错、命令、文档链接重新贴一遍。

这个问题的本质是:TRAE 能读当前工程文件,但读不到你桌面上的“过程”。浏览器标签、终端输出、报错弹窗,这些发生在编辑器之外的信息,对智能体来说是黑盒。英特尔 Agentic PC 想推的本地智能体体验,核心之一就是让 AI 能感知本机上下文,而 DeskMate 正好补上了“本地过程记忆”这一层。

DeskMate 是一个跑在 Windows 10/11 上的本地桌面活动记录工具。它定时截屏,用 OCR 和 Windows UI Automation 把窗口里的文字抠出来,连同应用名、窗口标题、时间戳一起存进本地 SQLite。基础检索走 FTS5 全文索引,不依赖大模型,也不用装 Ollama。更关键的是它自带标准 MCP Server,TRAE 可以通过 MCP 协议按需查询这些记录。

一句话理解链路:屏幕与窗口文字 → DeskMate 本地采集和索引 → TRAE 通过 MCP 搜索。适合谁?适合在 Windows 上做智能体开发、想让 Agent 跨会话记住“刚才发生了什么”的开发者。下面我把配置骨架、记忆读写接口、本地存储路径和一次完整的记忆回放验证拆开讲,你可以直接跟着做。

2. 前置准备:TaoToken 与 DeskMate 环境

在动手接 DeskMate 之前,先把模型调用这条链路理顺。TRAE 里的智能体要能分析 DeskMate 检索出来的历史上下文,背后得有稳定的模型服务。我这边习惯用 TaoToken 做统一入口,官网是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,它兼容常见的 OpenAI 风格调用,TRAE 里配置自定义模型端点时直接填这个就行。

你需要先拿到 API Key。进控制台创建密钥:https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api_keys&utm_campaign=rewrite 。创建完复制保存,后面在 TRAE 的模型设置里会用到。如果你还没想好接哪个模型,可以先去模型对话页试试手感:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=model_chat&utm_campaign=rewrite ,确认响应正常再往下走。

DeskMate 这边对环境有硬要求:Windows 10/11,Python 3.10 或更高。先确认版本:

python --version # 期望输出:Python 3.10.x 或更高

如果版本不够,去 python.org 装一个 3.11 或 3.12 都行。另外建议把 DeskMate 放在一个独立目录,比如C:\deskmate,后面 MCP 配置里的绝对路径会用到。TRAE 本身装好并登录,能正常打开工程即可。

注意:DeskMate 会记录屏幕和窗口文字,可能包含源代码、账号或聊天内容。建议先在测试环境体验,并设置应用过滤、暂停采集和数据清理规则。数据默认存本机,但 TRAE 调用 MCP 工具时,被检索出的内容仍可能提交给当前使用的模型处理。

3. 可复制配置:DeskMate 安装与 MCP 接入

3.1 安装 DeskMate 并启动本地服务

打开 PowerShell,按顺序执行。先克隆仓库并进入目录:

git clone https://github.com/zhaohb/deskmate.git cd deskmate

创建虚拟环境并激活:

python -m venv .venv .\.venv\Scripts\Activate.ps1

如果激活时报执行策略错误,先跑一句Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass,再重新激活。接着安装依赖,注意 extras 里带上 OCR 和 MCP:

pip install -e ".[ocr-winrt,mcp]"

安装完成后启动 UI:

deskmate ui

启动后 DeskMate 会打开本地页面http://127.0.0.1:3030/ui。这个页面就是它的控制台,你能看到采集状态、存储路径和检索入口。默认数据落在本机用户目录下的 SQLite 文件里,具体路径在 UI 的设置区能看到,通常是%USERPROFILE%\.deskmate\deskmate.db这类位置。如果你想改存储路径,在启动前设置环境变量:

$env:DESKMATE_DATA_DIR = "D:\deskmate-data" deskmate ui

这样索引和截图就都落到 D 盘,方便你单独管理和清理。

3.2 在 TRAE 里添加 DeskMate MCP Server

进入 TRAE 的设置 → MCP → 添加 → 手动添加,填入下面这段 JSON:

{ "mcpServers": { "deskmate": { "command": "C:\\deskmate\\.venv\\Scripts\\python.exe", "args": ["-m", "deskmate", "mcp"], "env": { "DESKMATE_API": "http://127.0.0.1:3030" } } } }

把command换成你本机虚拟环境里python.exe的实际绝对路径。比如你把仓库放在C:\deskmate,那路径就是C:\deskmate\.venv\Scripts\python.exe。保存配置并启用 DeskMate MCP。启用成功后,TRAE 的工具列表里会出现deskmate_search这个工具。

3.3 记忆读写接口调用

DeskMate 的记忆读写分两层。写入层由采集器自动完成,你不需要手动调;读取层通过 MCP 暴露给 TRAE。核心工具是deskmate_search,它接受关键词、时间范围和数量限制。在 TRAE 对话里可以直接用自然语言触发,比如:

调用 DeskMate 搜索我最近一小时看到的 error 和 exception, 列出关键报错、出现时间和所在应用。

TRAE 会解析成对deskmate_search的调用,参数大致是query="error exception"、since="1h"、limit=20。返回结果里每条记录包含时间戳、应用名、窗口标题和 OCR 文本片段。如果你想在脚本里直接调 HTTP 接口做验证,可以这样:

$body = @{ query = "error" since = "1h" limit = 10 } | ConvertTo-Json Invoke-RestMethod -Uri "http://127.0.0.1:3030/api/search" ` -Method Post -Body $body -ContentType "application/json"

这个接口返回的就是本地 SQLite FTS5 的检索结果,不经过大模型,速度快、可离线。拿到结果后,TRAE 再结合当前工程做分析,就完成了“本地过程记忆 + 云端推理”的分工。

4. 验证请求:一次完整的记忆回放

配置完别急着写复杂逻辑,先用最小闭环验证链路通不通。我试过的做法是制造一个可控的报错,然后让 TRAE 把它找回来。

第一步,在 PowerShell 里故意跑一条会报错的命令:

python -c "import nonexistent_module_xyz"

你会看到ModuleNotFoundError: No module named 'nonexistent_module_xyz'。保持这个终端窗口开着,等 DeskMate 采集一轮,默认间隔几十秒,你也可以在 UI 里点“立即采集”。

第二步,切到浏览器随便搜一下这个报错,让 DeskMate 记录到浏览器窗口的文字。然后回到 TRAE,输入:

调用 DeskMate 搜索我最近十分钟看到的 ModuleNotFoundError, 告诉我报错时间、所在应用和完整错误信息。

第三步,观察 TRAE 的返回。正常情况它会调用deskmate_search,命中 PowerShell 和浏览器两条记录,整理出类似“14:32 在 Windows Terminal 出现 ModuleNotFoundError,14:33 在 Chrome 搜索了该错误”的线索。如果它能把这两条串起来,说明记忆回放链路已经跑通。

第四步,做一次跨会话验证。关掉 TRAE 再重新打开,重复上面的查询。因为记录存在本地 SQLite,不随会话消失,所以重启后依然能检索到。这一步是“跨会话上下文延续”的关键证据。

提示:如果第一次搜索没命中,先确认 DeskMate UI 里采集是开启状态,再检查时间范围是否覆盖了你操作的时间段。OCR 对深色主题终端偶尔会漏字,可以临时把终端背景调浅再试。

5. 本篇常见错排查

MCP 启用后 TRAE 里看不到 deskmate_search。九成是command路径写错。检查C:\deskmate\.venv\Scripts\python.exe是否真实存在,注意 JSON 里反斜杠要双写。另外确认 DeskMate UI 已经在跑,DESKMATE_API指向的http://127.0.0.1:3030能访问。

搜索返回空结果。先看 DeskMate UI 的采集状态,如果是暂停就恢复。再看存储路径是否被DESKMATE_DATA_DIR改到了别处,导致你查的库和采集的库不是同一个。最后确认查询时间范围,since="1h"只覆盖最近一小时。

OCR 文字乱码或缺失。Windows 的 OCR 语言包可能没装全。去“设置 → 时间和语言 → 语言和区域”确认中文和英文语言包都装了。深色背景、小字号、抗锯齿字体会影响识别率,测试阶段用浅色主题更稳。

TRAE 调用 MCP 超时。多半是 DeskMate 服务没起来或者端口被占。在 PowerShell 里跑Invoke-RestMethod http://127.0.0.1:3030/api/health看是否返回正常。如果 3030 被占用,可以在启动前用环境变量换端口,同时同步改 MCP 配置里的DESKMATE_API。

担心隐私想限制采集范围。DeskMate 支持应用过滤,在 UI 设置里把敏感应用加入排除列表,或者直接暂停采集。数据清理也在 UI 里,可以按时间范围删除记录。记住一点:本地存储不等于绝对安全,TRAE 检索出来的内容仍会进入模型上下文。

6. 把本地记忆接进你的智能体工作流

跑通最小闭环之后,DeskMate 的价值就不只是“找回报错”了。你可以把它当成智能体的本地过程记忆层,配合 TRAE 做更长的任务链。比如让 TRAE 在开始一个新任务前,先检索过去两小时的相关窗口记录,自动补全上下文;或者在调试循环里,每轮都把终端输出喂给 DeskMate,让 Agent 自己回溯哪次改动引入了回归。

如果你打算长期在 TRAE 里跑编码 Agent,建议把模型调用也固定下来。TaoToken 的 Coding Plan 适合这种持续编码场景:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding_plan&utm_campaign=rewrite ,配合 DeskMate 的本地记忆,Agent 既有跨会话的“过程感”,又有稳定的模型后端。接入细节和参数说明看文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 。如果你用的是 Claude Code 这类客户端,Anthropic 兼容接入方式也有对应说明:https://taotoken.net/claudecode-anthropic?utm_source=taotoken_aicg_blog_end&utm_content=claudecode&utm_campaign=rewrite 。

最后提醒一句,DeskMate 目前是早期开发版本,采用 PolyForm Noncommercial License 1.0.0,商业使用前需要联系作者获得授权。测试阶段建议单独开一个数据目录,定期清理,别把生产环境的敏感窗口记录长期留在本地。先把“报错回放”这个动作跑顺,再往上叠会议转写、日报生成这些进阶能力,链路会稳很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 3:48:38

TRAE + Doubao-Seed-Evolving + Android Studio:旧 App 项目跑通配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 3:46:33

【STM32 HAL库】01 - LED闪烁实验(GPIO输出)

【STM32 HAL库】01 - LED闪烁实验(GPIO输出)一、实验目的熟悉 STM32CubeMX 图形化配置工具的基本使用流程掌握 GPIO 引脚配置为输出模式的方法理解 HAL 库中 GPIO 相关函数的使用实现 LED 周期性闪烁,验证开发板下载、运行链路正常二、硬件平…

作者头像 李华
网站建设 2026/9/26 3:45:41

Postgres mcp server 配置 TaoToken:settings.json 骨架与连通性验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/26 3:45:05

DBAPI MCP 多端点发布:TaoToken 统一 Key 接入配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华