本项目聚焦于任务研究,涵盖任务全貌、配置文件、任务结构以及不同指令的区别等方面,为任务的规划与执行提供了全面的指导。
若要开启本项目的使用,你需要先完成相关的配置,具体内容可参考以下各部分。
本部分暂未提及具体的安装步骤,若后续有相关内容,可补充在此。
.env配置文件示例请参考.env.example文件。关键设置包括:
LLM_MODEL:用于任务、分析和生成子任务(非STORM)的主要模型。ANTHROPIC_API_KEY, GOOGLE_API_KEY等:主要LLM的API密钥。STORM_RETRIEVER:用于STORM检索器的选择(如bing, you, tavily等)。BING_SEARCH_API_KEY, YDC_API_KEY, TAVILY_API_KEY等:所选STORM检索器的API密钥。BIG_STORM_MODEL:(可选)用于STORM内部处理的大模型。SMALL_STORM_MODEL:(可选)用于STORM内部处理的小模型。STORM_SEARCH_TOP_K, STORM_MAX_TOKENS_*:控制STORM的深度。TASKS_FILE_PATH等)。tasks/tasks.json)任务结构遵循在task_master_py/models.py中定义的Pydantic模型,包括Task、Subtask和TasksData。
{
"meta": {
"projectName": "任务大师项目",
"projectVersion": "0.1.2",
"sourceFiles": ["scripts/plan.md", "..."],
"generatedAt": "...",
"totalTasks": 15
},
"tasks": [
{
"id": 1,
"title": "设置项目环境",
"phase": 1,
"description": "初始化项目结构,安装依赖项,配置代码检查工具。",
"details": "...",
"status": "pending",
"dependencies": [],
"priority": "high",
"testStrategy": "通过运行基本命令验证环境设置。",
"subtasks": []
},
{
"id": 2,
"title": "实现核心数据模型",
"phase": 1,
"description": "定义Pydantic模型用于任务和报告。",
"details": "...",
"status": "pending",
"dependencies": [1], // 依赖于任务1
"priority": "high",
"testStrategy": "为模型验证编写单元测试。",
"subtasks": [
{
"id": 1, // 子任务ID相对于父任务
"title": "定义任务模型",
"description": "...",
"details": "...",
"status": "pending",
"dependencies": [], // 子任务之间的依赖关系(整数)
"acceptanceCriteria": "Pydantic模型通过验证...",
},
{
"id": 2,
"title": "定义报告模型",
"description": "...",
"details": "...",
"status": "pending",
"dependencies": [1], // 依赖于子任务1
"acceptanceCriteria": "Pydantic模型通过验证...",
}
]
},
// ... 更多任务
]
}
--research与--research-hint的区别expand --research:触发完整的基于STORM的工作流:AI生成问题 -> AI分组问题 -> knowledge-storm执行网络搜索并合成报告 -> AI利用合成的报告作为上下文生成子任务。需要knowledge-storm和配置好的检索器API密钥。analyze-complexity --research-hint:修改主要LLM的提示,使其更像研究助理一样使用其内部知识库进行分析。不使用knowledge-storm或执行实时网络搜索。update --research-hint:与analyze-complexity类似,提示主要LLM在处理更新提示时使用其内部知识。.env配置文件说明请参考.env.example文件,其中包含了项目运行所需的关键设置。这些设置对于项目的正常运行至关重要,下面详细介绍各个设置项:
| 属性 | 详情 |
|---|---|
LLM_MODEL |
用于任务、分析和生成子任务(非STORM)的主要模型 |
ANTHROPIC_API_KEY, GOOGLE_API_KEY等 |
主要LLM的API密钥 |
STORM_RETRIEVER |
用于STORM检索器的选择(如bing, you, tavily等) |
BING_SEARCH_API_KEY, YDC_API_KEY, TAVILY_API_KEY等 |
所选STORM检索器的API密钥 |
BIG_STORM_MODEL |
(可选)用于STORM内部处理的大模型 |
SMALL_STORM_MODEL |
(可选)用于STORM内部处理的小模型 |
STORM_SEARCH_TOP_K, STORM_MAX_TOKENS_* |
控制STORM的深度 |
文件路径(如TASKS_FILE_PATH等) |
项目中涉及的文件路径 |
任务结构遵循在task_master_py/models.py中定义的Pydantic模型,包括Task、Subtask和TasksData。具体的任务结构示例可参考上述的JSON代码。
不同的指令在项目中有着不同的作用,下面详细介绍--research与--research-hint的区别:
expand --research:触发完整的基于STORM的工作流,该工作流包括AI生成问题、AI分组问题、knowledge-storm执行网络搜索并合成报告,最后AI利用合成的报告作为上下文生成子任务。需要注意的是,此指令需要knowledge-storm和配置好的检索器API密钥。analyze-complexity --research-hint:修改主要LLM的提示,使其更像研究助理一样使用其内部知识库进行分析。此指令不使用knowledge-storm或执行实时网络搜索。update --research-hint:与analyze-complexity类似,提示主要LLM在处理更新提示时使用其内部知识。