这是一个使用 Vercel AI SDK 和 DeepSeek API 实现的项目管理智能体示例,展示了 AI 智能体如何根据优先级排序模式来管理任务。
该项目实现了一个项目经理 AI 智能体,能够:
- 创建新任务并分配唯一 ID
- 根据用户请求自动分析并分配任务优先级(P0/P1/P2)
- 将任务分配给合适的工作人员(Worker A/Worker B/Review Team)
- 列出所有任务及其状态
- P0(最高优先级):紧急、关键任务(如用户提到 "urgent", "ASAP", "critical")
- P1(中等优先级):常规任务(默认优先级)
- P2(最低优先级):低优先级任务
- 运行时: Node.js 22.16.0
- 包管理器: pnpm
- 语言: TypeScript
- AI SDK: Vercel AI SDK (
ai包) - LLM Provider: DeepSeek (
@ai-sdk/deepseek) - 代码质量: ESLint + Prettier
# 使用 nvm 切换到项目指定的 Node.js 版本
nvm usepnpm install复制 .env.example 文件为 .env:
cp .env.example .env然后编辑 .env 文件,填入你的 DeepSeek API Key:
DEEPSEEK_API_KEY=your_deepseek_api_key_here💡 如何获取 DeepSeek API Key:
- 访问 DeepSeek 开放平台
- 注册并登录
- 在 API Keys 页面创建新的 API Key
pnpm devpnpm buildpnpm startpnpm formatpnpm lintdemo26-prioritization/
├── src/
│ ├── types.ts # 类型定义
│ ├── task-manager.ts # 任务管理器
│ ├── tools.ts # 工具函数定义
│ ├── pm-agent.ts # 项目经理智能体
│ └── index.ts # 主程序入口
├── todos/
│ ├── spec1.md # 项目需求文档
│ └── task1.md # 任务拆解文档
├── .env.example # 环境变量示例
├── .nvmrc # Node.js 版本配置
├── package.json # 项目配置
├── tsconfig.json # TypeScript 配置
├── eslint.config.js # ESLint 配置
└── .prettierrc # Prettier 配置
程序包含两个测试场景:
用户请求:
Create a task to implement a new login system. It's urgent and should be assigned to Worker B.
预期行为:
- 创建任务(获得 TASK-001)
- 分析关键词 "urgent",分配 P0 优先级
- 分析关键词 "Worker B",分配给 Worker B
- 列出所有任务
用户请求:
Manage a new task: Review marketing website content.
预期行为:
- 创建任务(获得 TASK-002)
- 没有紧急关键词,分配默认 P1 优先级
- 没有指定工作人员,分配给默认 Worker A
- 列出所有任务
该项目使用 Vercel AI SDK 的 tool calling 功能,让 LLM 能够:
- 理解用户意图:分析用户请求中的优先级和分配信息
- 规划任务步骤:决定先创建任务,再分配优先级和工作人员
- 调用工具:使用预定义的工具函数执行实际操作
- 动态决策:根据工具执行结果调整后续行动
优先级排序模式通过让智能体根据以下标准评估和排序任务来解决资源有限的问题:
- 紧迫性:任务的时间敏感度
- 重要性:对主要目标的影响
- 依赖关系:任务之间的先后顺序
- 资源可用性:所需工具或人员的就绪状态
- 成本收益分析:投入与预期产出的对比
用户请求 → LLM 分析 → 工具调用 → 执行操作 → 返回结果 → LLM 决策 → 继续或结束
MIT