一键导入
deepagents-filesystem
使用 FilesystemMiddleware 实现虚拟文件系统、后端(State、Store、Filesystem、Composite)和 Deep Agents 的上下文管理。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
使用 FilesystemMiddleware 实现虚拟文件系统、后端(State、Store、Filesystem、Composite)和 Deep Agents 的上下文管理。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Mac 系统深度清理和优化工具。使用 Mole (mo 命令) 执行系统清理、磁盘分析、应用卸载、系统优化等任务。 触发场景(当用户提到以下任一内容时使用此 skill): - 清理 Mac、清理磁盘、释放空间、清理缓存、清理系统 - 卸载应用、删除应用、移除应用及其残留 - 磁盘分析、查看磁盘占用、大文件查找、空间分析 - 系统优化、系统维护、刷新系统、重建缓存 - 系统状态、系统监控、CPU/内存/磁盘监控 - 清理 node_modules、清理构建产物、清理项目依赖 - 清理安装包、删除 dmg/pkg 文件 - Mac 清理工具、类似 CleanMyMac 的功能 - "我的 Mac 太慢了"、"磁盘空间不足"、"电脑卡顿" - 即使没有明确说 "Mole",只要涉及上述场景就应使用
快速搭建和配置 pnpm monorepo 项目结构,包含 TypeScript、tsup 构建、私有 npm registry 配置。当用户需要"创建 monorepo"、"初始化 monorepo 项目"、"配置 pnpm workspace"、"设置 monorepo 构建"、"monorepo setup"时使用。特别适合需要统一管理多个包、配置构建工具、处理 TypeScript 路径问题的场景。即使用户只是说"帮我搭建项目结构"或"配置构建",如果涉及多包管理也应该使用此 skill。
智能拆分暂存区的代码变更为多个符合 Conventional Commits 规范的逻辑提交。当用户需要将大量变更按逻辑关系分组提交时使用,比如"拆分这些提交"、"把暂存区的变更分成多个 commit"、"按功能分别提交"、"split commits"等场景。特别适合处理包含多个模块、多种类型文件(配置、代码、测试、文档)的复杂变更集。
OKR 优化与质量评估专家。当用户需要:(1) 评估现有 OKR 的质量,(2) 优化模糊或不可量化的关键结果,(3) 检查 OKR 是否符合核心原则(聚焦、可量化、有挑战),(4) 将任务型 KR 转化为结果型 KR,(5) 提供具体的改进建议时使用。触发词包括"帮我优化 OKR"、"检查这个 OKR"、"这个 KR 写得好吗"、"如何量化这个目标"。
基于 git commits 自动生成 CHANGELOG.md 变更日志。支持语义化版本、分类整理、多格式输出。触发场景包括"生成变更日志"、"更新 CHANGELOG"、"版本记录"。
GitHub PR 代码审查技能。检查代码质量、安全性、性能和最佳实践,生成结构化审查报告。触发场景包括"审查 PR"、"代码检查"、"review pull request"。
| name | deepagents-filesystem |
| description | 使用 FilesystemMiddleware 实现虚拟文件系统、后端(State、Store、Filesystem、Composite)和 Deep Agents 的上下文管理。 |
| language | js |
FilesystemMiddleware 通过可插拔后端系统提供文件操作,解决上下文工程挑战。工具包括:ls、read_file、write_file、edit_file、glob、grep。
在 agent 状态中的临时存储 - 仅在单个会话内持久化。
import { createDeepAgent } from "deepagents";
const agent = await createDeepAgent({});
// 默认 StateBackend - 文件仅存在于会话中
import { createDeepAgent, FilesystemBackend } from "deepagents";
const agent = await createDeepAgent({
backend: new FilesystemBackend({
rootDir: ".",
virtualMode: true // 安全性:限制路径
})
});
import { createDeepAgent, StoreBackend } from "deepagents";
import { InMemoryStore } from "@langchain/langgraph";
const store = new InMemoryStore();
const agent = await createDeepAgent({
backend: (config) => new StoreBackend(config),
store
});
import { createDeepAgent, CompositeBackend, StateBackend, StoreBackend } from "deepagents";
import { InMemoryStore } from "@langchain/langgraph";
const store = new InMemoryStore();
const agent = await createDeepAgent({
backend: (config) => new CompositeBackend(
new StateBackend(config),
{ "/memories/": new StoreBackend(config) }
),
store
});
| 使用场景 | 后端 | 原因 |
|---|---|---|
| 临时文件 | StateBackend | 默认,无需设置 |
| 本地开发 | FilesystemBackend | 直接磁盘访问 |
| 跨会话内存 | StoreBackend | 在会话间持久化 |
| 混合存储 | CompositeBackend | 混合临时 + 持久化 |
const agent = await createDeepAgent({});
const result = await agent.invoke({
messages: [{
role: "user",
content: "搜索 TypeScript 最佳实践并保存结果以供分析"
}]
});
// Agent: 搜索 -> write_file -> 压缩上下文 -> 需要时 read_file
import { createDeepAgent, CompositeBackend, StateBackend, StoreBackend } from "deepagents";
import { InMemoryStore } from "@langchain/langgraph";
const store = new InMemoryStore();
const agent = await createDeepAgent({
backend: (config) => new CompositeBackend(
new StateBackend(config),
{ "/memories/": new StoreBackend(config) }
),
store
});
// 会话 1:保存偏好
await agent.invoke({
messages: [{ role: "user", content: "保存我的偏好:简洁解释到 /memories/prefs.txt" }]
}, { configurable: { thread_id: "thread-1" } });
// 会话 2:访问偏好
await agent.invoke({
messages: [{ role: "user", content: "阅读我的偏好并解释 async/await" }]
}, { configurable: { thread_id: "thread-2" } });
import { createAgent, createFilesystemMiddleware } from "langchain";
const agent = createAgent({
model: "claude-sonnet-4-5-20250929",
middleware: [
createFilesystemMiddleware({
systemPrompt: "将中间结果保存到 /workspace/",
customToolDescriptions: {
read_file: "阅读你之前编写的文件。对大文件使用 offset/limit。",
write_file: "保存数据以避免上下文溢出。",
}
}),
],
});
✅ 后端类型和配置 ✅ 自定义工具描述 ✅ 文件路径和组织 ✅ 文件操作的人工审批
❌ 工具名称 ❌ 禁用文件系统工具 ❌ 访问 virtual_mode 限制外的路径
// ❌ 会话更改时文件丢失
await agent.invoke({messages: [{role: "user", content: "写入 /notes.txt"}]},
{configurable: {thread_id: "thread-1"}});
await agent.invoke({messages: [{role: "user", content: "读取 /notes.txt"}]},
{configurable: {thread_id: "thread-2"}});
// 文件未找到!
// ✅ 使用相同的 thread_id 或 StoreBackend
// ❌ 不安全
new FilesystemBackend({ rootDir: "/project", virtualMode: false })
// ✅ 安全
new FilesystemBackend({ rootDir: "/project", virtualMode: true })
// ❌ 缺少 store
await createDeepAgent({ backend: (config) => new StoreBackend(config) });
// ✅ 提供 store
await createDeepAgent({
backend: (config) => new StoreBackend(config),
store: new InMemoryStore()
});