一键导入
deepagents-todolist
Using TodoListMiddleware for task planning and tracking progress with the write_todos tool in Deep Agents for complex multi-step workflows.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Using TodoListMiddleware for task planning and tracking progress with the write_todos tool in Deep Agents for complex multi-step workflows.
用 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-todolist |
| description | Using TodoListMiddleware for task planning and tracking progress with the write_todos tool in Deep Agents for complex multi-step workflows. |
| language | js |
TodoListMiddleware 通过 write_todos 工具为代理提供任务规划和进度跟踪功能。它自动包含在每个深度代理中,帮助代理将复杂的多步骤任务分解为可管理的部分。
| 使用 TodoList 的场景 | 跳过 TodoList 的场景 |
|---|---|
| 需要协调的复杂多步骤任务 | 简单的单动作任务 |
| 进度可见性很重要的长时间运行操作 | 快速操作(< 3 步) |
| 可能需要计划调整的任务 | 固定的、预定义的工作流 |
import { createDeepAgent } from "deepagents";
// TodoListMiddleware 默认包含在内
const agent = await createDeepAgent({});
// 代理将自动使用 write_todos 处理复杂任务
const result = await agent.invoke({
messages: [{
role: "user",
content: "创建一个 TypeScript 网络爬虫,提取产品数据,存储到数据库中,并生成报告。"
}]
});
import { createAgent, todoListMiddleware } from "langchain";
const agent = createAgent({
model: "claude-sonnet-4-5-20250929",
middleware: [
todoListMiddleware({
systemPrompt: `使用 write_todos 工具来规划您的工作:
1. 将任务分解为 3-5 个主要步骤
2. 开始时将任务标记为 'in_progress'
3. 完成后将任务标记为 'completed'
4. 如果计划发生变化,更新列表
`,
}),
],
});
| 任务类型 | Todo List 策略 | 示例 |
|---|---|---|
| 顺序步骤 | 预先创建所有待办事项,按顺序完成 | 构建应用:设置 → 编码 → 测试 → 部署 |
| 探索式任务 | 根据需要添加待办事项 | 研究:初始搜索 → 后续跟进 → 综合 |
| 并行工作 | 允许多个 "in_progress" 项目 | 数据处理:提取 + 转换 + 加载 |
import { createDeepAgent } from "deepagents";
const agent = await createDeepAgent({});
const result = await agent.invoke({
messages: [{
role: "user",
content: `为待办事项应用创建 REST API:
1. 设计数据模型
2. 实现 CRUD 端点
3. 添加身份验证
4. 编写测试
5. 创建 API 文档
`
}]
});
// 代理的内部规划(通过 write_todos):
// [
// { content: "为 Todo 项目设计数据模型", status: "pending" },
// { content: "实现 CRUD 端点(GET、POST、PUT、DELETE)", status: "pending" },
// { content: "添加 JWT 身份验证中间件", status: "pending" },
// { content: "编写单元测试和集成测试", status: "pending" },
// { content: "生成 OpenAPI 文档", status: "pending" }
// ]
import { createAgent, todoListMiddleware } from "langchain";
import { tool } from "langchain";
import { z } from "zod";
const runTests = tool(
async ({ testSuite }: { testSuite: string }) => {
return `${testSuite} 中的测试已通过`;
},
{
name: "run_tests",
description: "运行测试套件",
schema: z.object({ testSuite: z.string() }),
}
);
const deployCode = tool(
async ({ environment }: { environment: string }) => {
return `已部署到 ${environment}`;
},
{
name: "deploy_code",
description: "将代码部署到环境",
schema: z.object({ environment: z.string() }),
}
);
const agent = createAgent({
model: "gpt-4",
tools: [runTests, deployCode],
middleware: [
todoListMiddleware({
systemPrompt: `对于部署任务,始终:
1. 创建带有安全检查的待办事项列表
2. 在部署前运行测试
3. 在继续之前将每个步骤标记为已完成
`,
}),
],
});
const result = await agent.invoke({
messages: [{
role: "user",
content: "将应用程序部署到生产环境"
}]
});
import { createDeepAgent } from "deepagents";
const agent = await createDeepAgent({});
const result = await agent.invoke(
{
messages: [{
role: "user",
content: "创建数据处理流水线"
}]
},
{ configurable: { thread_id: "session-1" } }
);
// 从最终状态访问待办事项列表
const todos = result.todos || [];
for (const todo of todos) {
console.log(`[${todo.status}] ${todo.content}`);
}
✅ 创建具有自定义内容和结构的待办事项列表 ✅ 更新待办事项状态(pending → in_progress → completed) ✅ 在工作进展时添加新的待办事项 ✅ 删除变得不相关的待办事项 ✅ 重新组织或重新确定待办事项的优先级 ✅ 对任何任务复杂度级别使用待办事项
❌ 将工具名称从 write_todos 更改
❌ 使用自定义状态值(必须是 pending/in_progress/completed)
❌ 在没有 thread_id 的情况下访问来自其他线程的待办事项
❌ 在 createDeepAgent 中禁用 TodoListMiddleware(始终包含)
❌ 跨多个代理共享待办事项(每个代理有自己的状态)
// ❌ 没有 thread_id 的待办事项列表不会持久化
await agent.invoke({ messages: [{ role: "user", content: "任务 1" }] });
await agent.invoke({ messages: [{ role: "user", content: "任务 2" }] });
// ✅ 使用 thread_id 进行持久化
const config = { configurable: { thread_id: "user-session" } };
await agent.invoke({ messages: [{ role: "user", content: "任务 1" }] }, config);
await agent.invoke({ messages: [{ role: "user", content: "任务 2" }] }, config);
// 您无法从 createDeepAgent 中移除 TodoListMiddleware
// ❌ 这不会移除 TodoList
const agent = await createDeepAgent({ middleware: [] }); // TodoList 仍然包含
// ✅ 如果需要完全控制,使用 LangChain 的 createAgent
import { createAgent } from "langchain";
const agent2 = createAgent({
model: "gpt-4",
middleware: [] // 完全没有中间件
});
// 代理不会总是对简单任务使用 write_todos
// 简单任务 - 代理可能不会创建待办事项
const result1 = await agent.invoke({
messages: [{ role: "user", content: "2+2 等于几?" }]
});
// 状态中没有待办事项
// 复杂任务 - 代理可能会创建待办事项
const result2 = await agent.invoke({
messages: [{ role: "user", content: "构建一个网络爬虫并分析数据" }]
});
// 状态中存在待办事项