办公文档
需要跨会话持久终端、访问工作区外文件或处理结构化文档时,用…
当代理需要持久 shell/REPL 会话、后台长任务、工作区外文件、Excel/DOCX/PDF 等结构化文件、大规模搜索或 SSH 远程操作时,用 Desktop Commander MCP 完成。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要跨会话持久终端、访问工作区外文件或处特定
解决思路
- 用 start_process 启动持久 shell/REPL/SSH 会话并拿到 PID,之后用 interact_with_process(pid, ...) 在同一会话里继续发命令,环境变量、工作目录、虚拟环境、REPL 变量都会保留;注意不同 start_process 调用之间不共享状态。
- 用 start_process 在后台启动开发服务器、watcher、构建、训练或测试等长任务,拿到进程句柄后用 read_process_output 跟踪输出、用 interact_with_process 交互、用 force_terminate 结束,避免前台阻塞。
- 用 read_file / write_file / move_file / list_directory / get_file_info 访问用户授权范围内(allowedDirectories)的任意路径,包括 Downloads、Documents 和 IDE 工作区外的项目;路径尽量用绝对路径,不要用 ~ 或相对路径。
- 用 edit_block(file_path, old_string, new_string) 做精确字符串替换;同一子串在一文件中合法出现多次时设置 expected_replacements,匹配歧义会直接报错而不是静默覆盖;改完要复查内容。
- 直接处理结构化文件:Excel 用 read_file(sheet=..., range=...) 读成 JSON 二维数组、用 edit_block(range=..., content=[[...]]) 原地改单元格;DOCX 先 read_file(offset=0) 拿大纲定位段落,再用 read_file(offset=N>0) 读原始 XML,把 XML 片段作为 old_string 传给 edit_block;PDF 用 write_pdf 生成新文件或通过 operations 数组插入/删除页面。
- 用 start_search(pattern, path, searchType="content"|"files") 做 ripgrep 级搜索,用 get_more_search_results(sessionId) 分页,用 list_searches / stop_search 管理;查询有歧义时并发多个搜索。
- 用 start_process("ssh user@host") 建立长驻 SSH 会话,之后在同一会话里 tail 日志、跑诊断、部署、调试,避免每步重连;结束时用 force_terminate(pid) 关闭(kill_process 用于 list_processes 找到的任意 OS PID)。
- 用 list_processes / list_sessions / list_searches / get_recent_tool_calls 做进程与诊断管理,清理旧开发服务器、排查 CPU/内存问题,或恢复上次会话的工作上下文。
- 分析大本地数据文件(如 200MB CSV)时,用 start_process("python3 -i") 开 Python REPL,interact_with_process 里 import pandas 并 read_csv 一次,之后所有 df 查询都在同一已加载 REPL 中执行,避免重复加载。
- 跑一次性 Node 脚本时用 start_process("node:local") 开无状态执行器,再通过 interact_with_process(pid, "<JS>") 发送代码;代码不要放进 start_process 参数,那里只放运行器类型。
- 长输出(文件读取、进程输出、搜索结果)统一用 offset / length 分页,负 offset 表示从末尾读(tail 模式),避免把巨量结果灌进上下文。
- 执行部署、重启、迁移等会改变环境的命令前,先向用户说明并确认;生产环境 SSH 操作风险非平凡时也要先确认。
- 在 macOS 上默认 shell 是 zsh,用 python3 而非 python,部分 GNU 工具带前缀(如 gsed),包管理器通常是 brew,open 打开文件/应用,mdfind 做精确文件名搜索;先用 get_config 或 uname 判断平台再假设这些。
- 遇到 [DENIED] 或 read_file/write_file 被拒时,把被拒路径反馈给用户,不要重试。
- REPL 无响应时先用 list_sessions 看是否 Blocked: true(在等输入而非卡死),再用 read_process_output(pid, offset=-100) 看最后输出,然后用 interact_with_process 发送它等待的输入解锁。
适用边界 · 注意事项
- 文件操作仅限用户配置的 allowedDirectories 范围,越界路径会被拒绝,不要重试。
- 不同 start_process 调用之间不共享 shell 状态,需要共享状态时必须复用同一个会话。
- edit_block 的 old_string 或 expected_replacements 写错仍可能损坏内容,改完必须复查。