11 KiB
11 KiB
type, keywords, priority
| type | keywords | priority | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| agent_dev |
|
high |
Agent 开发项目配置
本配置用于端到端的 Agent 开发项目,包括但不限于:
- Claude Code Skill/Agent
- LangChain Agent
- LangGraph Workflow
- Multi-Agent 系统
- 其他 AI Agent 框架
模板路径
templates/agent_dev_template.md
启动问题示例
以下问题仅作为参考,根据用户初始描述的详细程度和信息完整度动态选择和调整。
示例问题:主要任务
question: "这个智能助手主要帮助用户完成什么任务?(可多选,或在'其他'中详细描述;需要帮助请输入'需要帮助')"
options:
- label: "信息查询和检索"
description: "帮助用户查找、搜索、整理信息"
- label: "数据处理和分析"
description: "对数据进行清洗、转换、分析"
- label: "自动化任务执行"
description: "自动完成重复性工作或流程"
- label: "辅助决策支持"
description: "提供建议、分析、推荐"
multiSelect: true
使用时机:用户初始描述未明确说明具体任务时使用。如已明确,跳过此问题。
示例问题:预期价值
question: "预期带来什么价值?(可多选,或在'其他'中详细描述;需要帮助请输入'需要帮助')"
options:
- label: "提高效率"
description: "节省时间,加快处理速度"
- label: "降低成本"
description: "减少人力投入,降低运营成本"
- label: "提升质量"
description: "提高准确性,减少错误"
- label: "增强用户体验"
description: "简化操作,提升满意度"
multiSelect: true
使用时机:用户初始描述未说明价值或目标时使用。可与其他问题合并。
示例问题:使用场景
question: "用户在什么情况下会需要使用这个助手?(可多选,或在'其他'中描述具体场景;需要帮助请输入'需要帮助')"
options:
- label: "定期自动执行"
description: "按时间表自动运行,如每天早上、每周等"
- label: "用户主动调用"
description: "用户有需求时手动触发"
- label: "事件触发"
description: "特定事件发生时自动执行,如文件变化、消息到达等"
multiSelect: true
使用时机:了解基本任务后询问。根据回答深入询问具体触发条件、频率等细节。
示例问题:架构复杂度
question: "任务是否需要多个专门的助手配合完成?(或在'其他'中描述;需要帮助请输入'需要帮助')"
options:
- label: "不需要,单个助手就能完成"
description: "任务相对简单,流程单一"
- label: "需要,任务复杂,需要多个助手协作"
description: "需要将任务拆分给不同的专门助手"
multiSelect: false
使用时机:用户描述涉及多步骤、复杂流程时询问。如选择Multi-Agent,后续深入询问各Agent职能和协作方式。
访谈启动策略
分析用户初始描述
访谈前先分析用户初始输入的信息完整度:
信息完整度检查
识别用户初始描述中已包含的信息:
- ✓ 明确任务/功能 → 跳过"主要任务"问题
- ✓ 说明使用场景 → 跳过或简化"使用场景"问题
- ✓ 提到价值/目标 → 跳过"预期价值"问题
- ✓ 描述复杂流程/多步骤 → 主动询问Multi-Agent需求
- ✓ 提及外部系统 → 深入询问数据集成细节
- ✓ 涉及性能/安全 → 追问具体指标
动态起始点选择
| 用户描述情况 | 起始策略 | 示例 |
|---|---|---|
| 详细完整 | 直接补充细节 | "如何定义'重要联系人'?" |
| 基本清晰 | 从1-2个示例问题开始 | "使用场景"+"预期价值" |
| 模糊简略 | 依次使用示例问题 | "主要任务"→"使用场景"→... |
| 技术导向 | 引导到业务需求 | "这个功能主要帮用户解决什么问题?" |
启动原则
-
先分析,后提问
- 仔细阅读用户初始描述
- 识别已有信息和缺失信息
- 避免询问已明确的内容
-
避免机械执行
- 示例问题不是固定流程
- 根据实际情况选择和调整
- 灵活组合或跳过问题
-
动态调整深度
- 用户回答内容丰富 → 快速推进
- 用户回答简短模糊 → 追问细节
- 用户不确定 → 提供更多选项或示例
-
保持对话自然
- 基于上一轮回答提出下一个问题
- 合并相关信息的询问
- 避免突兀的话题跳转
访谈策略指南
访谈目标
收集完整的业务需求信息,用于生成结构化需求文档。
访谈方式
- 使用 AskUserQuestion 工具进行所有提问
- 每个问题独立、可单独回答
- 提供2-4个常见选项
- 在question中明确提示"可在'其他'中详细描述"或类似说明
- 系统自动添加"其他"选项
- 使用业务语言,避免技术术语
信息收集范围
基础信息:
- 项目背景和目标
- 核心功能列表
- 目标用户和使用场景
- 使用入口和触发方式
架构信息(如需Multi-Agent):
- Agent角色划分和职能
- Agent能力边界
- Agent间协作关系和数据传递
功能细节:
- 输入输出定义
- 需要访问的外部数据和系统
- 完整的交互流程
- 异常和分支处理
交付规划:
- MVP核心功能
- 后续优化和高级功能
- 分阶段目标
非功能需求:
- 用户明确的技术约束
- 性能要求(用户数、响应时间等业务指标)
- 安全和隐私要求(业务层面)
- 其他特殊需求
验收标准:
- 功能验收条件
- 非功能验收条件
动态访谈原则
-
基于回答识别缺口
- 分析每轮回答获得的信息
- 识别仍缺失的领域
- 确定后续提问方向
-
适应项目复杂度
- 简单项目:快速收集核心信息即可
- 复杂项目:深入询问架构、流程、分阶段等
- Multi-Agent项目:详细了解各Agent职能和协作
-
聚焦关键特征
- 如涉及高性能:追问具体性能指标
- 如涉及高安全:追问敏感数据处理
- 如需集成外部系统:追问数据流转细节
- 如涉及复杂流程:询问异常和分支处理
-
避免重复和冗余
- 不重复提问已获取的信息
- 合并相关信息的提问
- 综合考虑用户回答的详细程度
-
灵活调整问题深度
- 用户回答简短模糊:追问细节
- 用户回答内容丰富:快速推进其他信息
- 用户不确定:提供更具体的选项或示例
完整性检查
每轮访谈后评估已收集信息的完整性,当以下核心信息都已获取时,可结束访谈:
必需信息:
- 项目背景和目标
- 核心功能列表(至少3个)
- 典型使用场景(至少1个)
- 基本输入输出
- 验收标准(至少3条)
- 分阶段交付计划(MVP功能、降级功能、难度依赖)
可选但建议收集:
- Agent架构细节(如需Multi-Agent)
- 外部系统集成需求
- 完整交互流程
- 性能和安全要求
问题生成规范
语言风格:
- 使用业务语言
- 问题清晰具体
- 避免技术术语
question文本:
- 在问题中明确提示用户可以使用"其他"选项
- 示例:"(可多选,或在'其他'中详细描述)"
- 示例:"(或在'其他'中说明您的具体情况)"
选项设计:
- 尽可能从不同角度覆盖,边界明晰简洁,10个以内
- 选项描述简洁明确
- 覆盖主要情况,不穷尽所有可能
选项设计规范:
互斥性原则
单选问题(multiSelect: false):
- ✅ 选项应完全互斥,无重叠
- ✅ 边界清晰,用户能明确判断属于哪一个
- ❌ 避免数量范围重叠(如"1-10人"和"5-20人")
- ❌ 避免概念包含关系(如"Web界面"和"移动端界面"同时出现在"访问方式"问题中)
多选问题(multiSelect: true):
- ✅ 选项可从不同角度切分,允许合理组合
- ✅ 每个选项应代表独立的需求维度
- ❌ 避免选项之间有逻辑依赖(如"数据收集"和"基于收集的数据分析")
维度统一原则
同一问题的所有选项应属于同一分类维度
❌ 错误示例(维度混乱):
question: "用户如何使用这个工具?"
options:
- 输入问题主动调用 # 维度:触发方式
- 命令行/编程接口 # 维度:交互界面
- Web界面 # 维度:交互界面
multiSelect: false
问题:第1个选项是"触发方式",第2、3个是"交互界面",维度不统一
✅ 正确示例(维度统一):
question: "用户通过什么方式访问工具?"
options:
- 命令行接口
- Web界面
- 桌面应用
multiSelect: false
或者拆分为两个问题:
question: "工具的触发方式?"
options:
- 用户主动输入问题调用
- 定时自动执行
- 事件触发(如文献更新)
multiSelect: true
---
question: "工具的交互界面?"
options:
- 命令行/API接口
- Web浏览器界面
- 桌面客户端
multiSelect: false
边界清晰原则
数量范围选项:
# ❌ 边界重叠
- 1-10人
- 5-20人
# ✅ 边界清晰
- 个人使用(1-5人)
- 小团队(6-50人)
- 中大型(50人以上)
概念分类选项:
# ❌ 包含关系
- 医疗数据
- 患者健康记录 # 属于医疗数据的子集
# ✅ 平级分类
- 患者健康记录
- 医学影像数据
- 临床试验数据
完备性检查
- 2-4个选项应覆盖80%的常见场景
- 如果某个场景>10%用户可能选择,应作为预设选项
- 剩余<20%的长尾场景通过"其他"覆盖
- 当不确定时,优先设计偏通用的选项+依赖"其他"
multiSelect设置:
- 核心功能、使用场景、数据访问、触发方式、预期价值 → true
- 规模量级、架构复杂度、二选一决策 → false
上下文关联:
- 基于之前的回答调整问题
- 识别项目特点后深入相关领域
- 根据项目复杂度调整问题数量
访谈示例场景
场景1:详细完整的描述
用户输入:
我想做一个邮件助手,每天早上7点自动扫描我的工作邮箱,
提取来自重要联系人的邮件,总结关键内容,生成一份摘要报告
发送到企业微信。主要是为了节省每天30分钟的邮件筛选时间。
应对策略:
- 已包含:任务(邮件整理)、场景(每天早上7点)、价值(节省30分钟)、触发方式(定时)
- 缺失:重要联系人定义、摘要格式、异常处理、输入输出细节
- 起始问题:"如何判断'重要联系人'?是基于发件人列表,还是其他规则?"
场景2:基本清晰的描述
用户输入:
我想开发一个智能客服助手,帮助回答用户常见问题。
应对策略:
- 已包含:任务类型(辅助决策/信息查询)
- 缺失:使用场景、触发方式、价值、数据来源
- 起始问题:从示例问题"使用场景"开始,然后询问知识来源
场景3:模糊简略的描述
用户输入:
想做一个自动化工具。
应对策略:
- 信息极少
- 从示例问题"主要任务"开始,依次引导