TriaDev:基于AI智能体的工作流编排器,实现项目自动化规划与开发
1. 项目概述TriaDev一个轻量级的AI智能体工作流编排器如果你在尝试用AI智能体比如Claude处理稍微复杂一点的项目时感到过力不从心——比如让它写个计划它写出来了但后续的开发、测试、文档生成却散落各处状态难以追踪——那么TriaDev这个工具可能就是你在找的“胶水”。简单来说TriaDev不是一个独立完成所有事情的“超级AI”而是一个工作流协调员。它的核心设计哲学是“让专业的技能做专业的事”自己则专注于把这些技能串联起来形成一个稳定、可预测的“黄金三角”工作流。这个“黄金三角”指的是一个结构化的多步骤项目流程。想象一下你要盖房子首先需要建筑师出蓝图规划然后项目经理来排工期和协调资源调度最后才是各个施工队进场实施。TriaDev干的就是项目经理的活儿。它自身非常轻量主要依赖几个成熟的“技能”Skill来干活planning-with-files负责规划和文档生成task-workflow负责任务调度和排序value-first-gate负责价值评审tdd-sdd-development负责测试驱动开发。TriaDev的核心价值在于它定义了一套清晰的规则和一个共享的“交接合同”triadev-handoff.json确保这些技能之间能够无缝协作状态不会丢失项目不会跑偏。它主要解决两类问题核心路径适用于非编码项目如市场调研、竞品分析、文档撰写只用到规划和调度能力扩展路径则面向软件开发在核心路径基础上增加了价值评审和TDD/SDD开发环节。无论你是想系统性地研究一个话题还是想从零开始构建一个带有完整测试的生产级代码模块TriaDev都能提供一个清晰的、可复现的自动化框架。2. 核心设计思路与“黄金三角”工作流解析TriaDev的设计非常值得借鉴它没有试图造一个全能轮子而是采用了“编排优于集成”的思路。我们来深入拆解一下它的“黄金三角”工作流到底是如何运转的以及为什么这种设计是高效且稳健的。2.1 工作流的两条核心路径TriaDev将项目意图清晰地分为两条路径这个分类本身就是一个重要的设计决策。核心路径规划 - 调度。这条路径适用于所有非编码的、分析型或创作型任务。例如“研究三种微服务架构的优劣并输出对比报告”或者“为我们的新产品起草一份用户手册”。在这条路径里planning-with-files技能会生成详细的任务计划task_plan.md、研究发现findings.md和进度记录progress.md。随后task-workflow技能会分析这个计划将其分解为有依赖关系的任务批次DAG有向无环图并决定最佳的执行顺序。整个过程不涉及代码编写但保证了工作的结构化和可追踪性。扩展路径规划 - 调度 - 价值评审 - 实施。这是面向软件开发的完整流水线。在完成规划和调度后工作不会立即进入编码阶段而是必须经过value-first-gate技能的评审。这是一个关键的质量门禁。该技能会审视即将开始实施的任务评估其业务价值、实现复杂度和优先级并给出“通过”、“驳回”或“需修改”的裁决。只有获得“GO”的裁决且不是“橡皮图章”式的草率通过任务才会进入tdd-sdd-development技能进行实际的测试驱动或示例驱动开发。这个设计强制在编码前进行思考避免了开发资源的浪费。注意价值评审门禁value-first-gate是扩展路径区别于简单自动化脚本的关键。它引入了“判断”环节模仿了人类项目经理或技术负责人的角色确保AI不是在盲目地执行任务列表而是在有意识地创造价值。2.2 状态管理的核心“交接合同”机制多个技能协作最大的挑战就是状态同步。A技能产生的输出B技能如何准确理解并使用TriaDev的解决方案是引入一个中心化的、结构化的状态文件——triadev-handoff.json。你可以把它想象成项目团队共享的“任务白板”或“交接清单”。这个JSON文件被严格划分为不同的区块每个技能只被允许读写属于自己的那个区块。例如planning-with-files负责维护planning区块里面存放项目概述、目标等task-workflow负责workflow区块存放任务DAG和当前批次信息value-first-gate负责gate区块存放评审结果tdd-sdd-development负责development区块存放实施状态。这种设计的好处非常明显解耦与自治每个技能无需关心其他技能的内部实现只需按照约定好的合同格式读写数据。技能可以独立升级或替换只要合同接口不变整个工作流就不受影响。状态持久化与可恢复性这个JSON文件就是项目的完整快照。如果对话中断、Claude会话重置或者你第二天想继续这个项目TriaDev可以读取这个文件精确地重建项目状态从上次中断的地方继续而不是推倒重来。这就是所谓的“会话恢复”能力。机器可验证TriaDev v3.1 引入了JSON Schematriadev-handoff.schema.json这意味着合同的结构可以被程序化地验证。在每次写入后都可以用Schema检查数据格式是否正确有效避免了因手误或技能Bug导致的合同损坏提升了整个系统的健壮性。2.3 纯提示词驱动的轻量化架构从v3.0.0开始TriaDev做了一个大胆的架构变更移除了所有的Python运行时代码。早期的版本可能包含一个orchestrator.py脚本作为中央控制器。新版本完全依赖Claude Skill的提示词SKILL.md来驱动整个工作流。这么做有什么深意极致的轻量化与零部署成本作为一个Claude Skill安装它就是一行命令claude skill add Charpup/triadev。用户不需要关心Python环境、依赖包冲突等问题。它直接利用Claude自身的推理和上下文管理能力来执行协调逻辑。灵活性最大化所有协调逻辑都写在提示词里这意味着调整工作流、修复逻辑bug本质上就是修改文本描述。迭代和定制变得非常快速无需编译和部署。能力边界清晰它明确了自己是“协调者”而非“执行者”。它的工作流控制、状态判断、技能调用指令都是通过自然语言描述和结构化指令传递给Claude由Claude来理解和执行下一步该调用哪个技能。这反而使它的角色更加纯粹和稳固。当然这种设计也对提示词工程提出了极高要求。SKILL.md必须足够清晰、健壮能处理各种边界情况和错误状态。从v3.1版本新增的大量评估用例evals.json和详细的参考文档来看作者正是在不断地加固这个纯提示词引擎。3. 从零开始实操安装、配置与启动第一个项目了解了设计理念我们动手实操看看如何真正使用TriaDev来管理一个项目。我会以一个具体的例子贯穿始终“开发一个Markdown文档单词统计工具要求能排除代码块和YAML front matter并输出不同格式的报告。”这是一个典型的扩展路径编码项目。3.1 环境准备与技能安装TriaDev运行在Claude具体是支持Skills的Claude环境如Claude Desktop中。首先需要安装TriaDev及其依赖的技能。安装TriaDev核心技能最推荐的方式是使用Claude Code的命令行工具如果你有访问权限claude skill add Charpup/triadev这条命令会自动处理技能的拉取和注册。手动安装备用方案如果无法使用上述命令可以手动克隆仓库到Claude的技能目录git clone https://github.com/Charpup/triadev.git ~/.claude/skills/triadev请注意技能目录路径~/.claude/skills/可能因你的Claude配置而异。安装依赖技能TriaDev本身不干活活都是依赖技能干的。你必须确保以下技能已安装planning-with-files(2.10): 负责项目规划和文档生成。task-workflow(3.0): 负责任务分解和调度。扩展路径必需value-first-gate(2.0): 负责价值评审。扩展路径必需tdd-sdd-development(3.0): 负责测试驱动开发。安装这些技能的方法类似通常可以在它们的GitHub仓库找到安装说明一般也是通过claude skill add命令。务必检查版本号不兼容的版本可能导致工作流出错。3.2 项目初始化与首次运行安装完成后你不需要单独“启动”TriaDev。它的启动是由一个具体的项目请求触发的。开启一个新的Claude会话。最好在一个干净的项目目录下进行或者让Claude有权限创建和写入文件。向Claude提出你的项目请求。这是最关键的一步指令需要清晰。例如“使用TriaDev技能帮我开发一个Markdown单词统计工具。核心功能是统计纯文本单词数自动忽略代码块...和YAML front matter---之间的内容支持输出纯文本和JSON格式的报告。请按照扩展路径完整开发流程进行。”触发技能。在对话中Claude应该能识别出你想使用TriaDev。根据你的Claude界面你可能需要手动选择或激活triadev技能。一旦激活TriaDev的协调逻辑即SKILL.md中的提示词就会开始运行。首次运行时你会观察到以下关键步骤路径宣告TriaDev会首先分析你的请求并明确宣布“这是一个扩展路径项目”因为涉及编码。这让你立刻明确后续流程。合同初始化TriaDev会在你的工作区创建triadev-handoff.json文件。这个文件最初是从模板templates/triadev-handoff.json复制过来的一个空结构。规划阶段开始TriaDev将调用planning-with-files技能。你会看到该技能开始工作与你对话以澄清需求、确认范围并最终生成task_plan.md详细任务分解、findings.md任何研究发现比如对现有库的调研和progress.md初始进度条目。实操心得在首次规划对话中尽可能详细地回答planning-with-files提出的问题。你对需求的描述越精确它生成的任务计划就越靠谱后续的自动化流程就越顺畅。不要怕“啰嗦”把边界条件、输入输出格式、非功能需求如性能都讲清楚。3.3 理解生成的项目结构初始化并运行完规划阶段后你的项目目录下会生成一系列文件。理解它们的作用至关重要task_plan.md:项目的总蓝图。它会被分解成多个“阶段”和“任务”。例如可能包含“阶段A环境搭建与基础框架”、“阶段B核心解析逻辑开发”、“阶段C报告生成模块开发”、“阶段D集成与测试”等。每个任务都有描述、验收标准和可能的依赖关系。findings.md:调研笔记。记录planning-with-files在规划过程中发现的任何有用信息比如“Python的markdown库可以解析MD但需要处理代码块”、“frontmatter库能方便地提取YAML”等。这对后续开发有参考价值。progress.md:进度日志。以时间线的方式记录每个技能的关键活动例如“规划阶段完成”、“任务调度已生成”等。这是项目历史的文本记录。triadev-handoff.json:核心状态文件。此时它的planning区块应该已经被填充current_phase字段可能是planning或scheduling。永远不要手动编辑这个文件除非你非常清楚合同规则。它是给机器读的。此时你可以打开task_plan.md查看如果觉得任务分解不合理可以及时与AI沟通调整。因为合同机制的存在在规划阶段做修改的成本是最低的。4. 工作流深入调度、评审与开发循环规划完成后TriaDev会自动推进到下一个阶段。我们继续以单词统计工具为例看看后续流程如何展开。4.1 任务调度与依赖解析TriaDev会调用task-workflow技能。该技能读取task_plan.md运用其算法将任务列表转换为一个有向无环图。这是关键一步它决定了任务执行的先后顺序。例如它可能识别出任务“设计项目结构src/,tests/”和“初始化pyproject.toml”可以并行批次1。任务“编写Markdown解析函数”必须在“设计项目结构”之后但可以和“编写单词统计核心函数”并行批次2。任务“编写JSON报告输出函数”依赖于“单词统计核心函数”批次3。任务“编写集成测试”依赖于所有上述模块批次4。task-workflow会将这个批次信息写入triadev-handoff.json的workflow区块。TriaDev的协调逻辑会据此决定下一步做什么对于扩展路径下一个环节是价值评审。4.2 价值评审门禁避免无效开发这是扩展路径独有的、也是极其重要的一环。TriaDev会调用value-first-gate技能并将第一个批次的任务例如“批次1项目初始化和基础框架”提交给它进行评审。评审过程模拟了一次理智的“开工前会议”价值评估这个批次的任务对项目的最终目标贡献有多大是必须的奠基工作还是可有可无的装饰可行性检查基于当前的项目上下文规划、已有文件完成这些任务是否存在技术风险或模糊地带优先级确认在项目时间线上现在做这批任务是最优选择吗value-first-gate会生成一个评审结果通常在一个类似value-review.json的文件中裁决可能是GO、NO-GO或REVISE。同时它会检查自己是否在“橡皮图章”模式——即是否在未经深入思考的情况下草率通过。TriaDev会读取这个裁决。只有获得真正的GO裁决工作流才会继续。注意事项如果收到REVISE裁决请务必重视。这通常意味着任务描述不够清晰或者实现方案存在隐患。你需要根据评审反馈与AI协作修改task_plan.md中的任务描述然后重新触发评审。这个过程虽然看起来多了一步但能极大避免后期返工。4.3 TDD/SDD开发循环高质量的自动化实现获得“GO”之后TriaDev进入实施阶段调用tdd-sdd-development技能。这个技能是自动化编码的核心它严格遵循测试驱动开发或示例驱动开发的流程。对于我们的单词统计工具第一个批次项目初始化的实施可能如下读取规范tdd-sdd-development会读取task_plan.md中关于该任务的详细描述和验收标准。创建或更新SPEC它可能会创建或更新一个SPEC.yaml文件用更结构化的方式定义模块的输入、输出和行为。TDD循环红根据SPEC先写一个失败的测试。比如test_should_ignore_code_blocks。绿编写最少量的代码让这个测试通过。重构在保持测试通过的前提下优化代码结构。生成实现与文档在TDD循环结束后技能会生成最终的生产代码并可能附带API文档。完成一个批次后tdd-sdd-development会更新triadev-handoff.json中的development区块标记该批次为完成。然后TriaDev的协调逻辑会检查task-workflow的DAG看是否有新的、依赖已满足的任务批次可以进入“就绪”状态。如果有则将该批次任务送入value-first-gate进行评审开启下一个“评审-开发”循环。如果没有且所有任务都已完成则项目进入收尾阶段。这个循环会持续进行直到task-workflow中定义的所有任务批次都完成。整个过程高度自动化但又在价值评审环节保留了必要的人工智能“监督”确保了开发始终朝着有价值的方向前进。5. 高级特性与实战避坑指南在熟练使用基础流程后掌握TriaDev的一些高级特性和常见问题的解决方法能让你更得心应手。5.1 会话恢复与“棕地项目”支持这是TriaDev非常强大的一个功能。所谓“棕地项目”就是指那些已经存在部分文件、并非从零开始的项目。TriaDev能够优雅地处理这种情况。如何恢复一个中断的项目假设你昨天用TriaDev开始了一个项目今天重新打开Claude会话。你不需要从头开始描述需求。只需确保你的工作区目录包含之前的项目文件尤其是triadev-handoff.json。在新的Claude会话中上传或让Claude看到这些文件。对Claude说“我们继续之前的TriaDev项目。”或者直接问“基于当前的triadev-handoff.json状态项目下一步应该做什么”TriaDev技能被触发后它会首先检查是否存在有效的triadev-handoff.json。如果存在它会读取current_phase和其他状态字段精确地恢复到中断时的环节。例如如果昨天在“价值评审”阶段中断今天它会直接调用value-first-gate来继续评审而不是重新规划。Delta Specs增量规范在“棕地项目”中你可能不是从零开始而是要对现有代码进行改进或添加功能。TriaDev通过其依赖技能支持“Delta Specs”概念。这意味着你可以在规划时明确指出哪些是现有资产哪些是新增需求。planning-with-files会生成一个考虑现有代码基的、增量式的任务计划而不是一个推倒重来的计划。5.2 合同管理与状态验证随着项目进行triadev-handoff.json会成为最重要的文件。理解其四层管理架构能帮你避免很多麻烦。JSON Schema合同(contracts/triadev-handoff.schema.json)这是“法律条文”。它用机器可读的方式定义了合同的结构、字段类型、必填项等。TriaDev在写入合同后会用这个Schema进行验证。如果你需要自定义或扩展合同修改这里是根本但需极其谨慎。模板文件(templates/triadev-handoff.json)这是一份“空白表格”。每次新项目初始化时TriaDev会复制它作为起点。如果你希望所有新项目都默认包含某些字段可以修改这个模板。人类可读参考(references/handoff-contract.md)这是“法律条文的白话解释”。它用文字描述了每个字段的含义、每个技能的读写权限。当你对合同字段感到困惑时应该查阅这个文件。阶段转换规则(references/phase-transitions.md)这是“工作流程规则手册”。它定义了current_phase字段可以从什么状态转换到什么状态例如从scheduling可以转到gating但不能直接跳回planning以及每个阶段下某些字段的“标准值”应该是什么防止出现done和completed混用。在手动干预或调试时在改变current_phase前必须查阅此文件。5.3 常见问题排查与调试技巧即使设计得再完善在实际操作中也可能遇到问题。以下是一些常见场景及解决思路问题1技能调用失败或找不到。症状TriaDev宣布进入某个阶段如“现在开始规划”但后续没有对应技能如planning-with-files的响应。排查检查技能安装确认所有依赖技能planning-with-files,task-workflow等都已正确安装且版本符合要求。可以在Claude中尝试直接调用该技能看是否响应。检查Claude上下文某些Claude环境对技能调用有上下文长度或权限限制。确保当前会话没有超出限制。查看进度文件检查progress.md看最后一条记录是什么可能卡在了某个步骤。问题2triadev-handoff.json状态混乱或损坏。症状工作流行为异常或者TriaDev报错提示状态不一致。排查与修复备份首先备份当前的handoff.json文件。人工审查打开文件对照references/handoff-contract.md检查各技能负责的区块数据是否在正确的位置current_phase的值是否合理。利用Schema验证可以手动使用JSON Schema验证工具或在Python中jsonschema库来验证文件是否符合schema.json。这能快速定位格式错误。参考阶段转换规则检查current_phase的历史变化是否符合phase-transitions.md中定义的规则。谨慎修正如果发现明显错误比如某个字段值明显不对可以小心地手动修正。但修改后最好触发一次该字段所属技能的“读取”操作让它重新同步状态。更好的方法是告诉TriaDev“检测到状态不一致请根据当前项目文件重建handoff.json”它可能会尝试自我修复。问题3价值评审门禁总是驳回或要求修改。症状项目卡在gating阶段无法推进到开发。解决这不是问题而是特性在发挥作用。认真阅读value-first-gate给出的反馈。通常原因有任务描述模糊验收标准不清晰无法判断怎样算完成。你需要回到task_plan.md中与该任务的责任技能最初是planning-with-files一起细化任务描述。技术风险未识别评审认为实现方案有风险。这可能意味着你需要补充技术调研更新findings.md或者调整技术方案。价值不匹配评审认为这批任务对当前项目目标价值不高。这时你需要重新审视项目优先级或许应该调整任务顺序或范围。问题4开发循环陷入死胡同或产生低质量代码。症状tdd-sdd-development技能生成的代码逻辑错误或者测试无法通过。解决干预TDD循环你可以在开发过程中中断直接查看它生成的测试和代码指出逻辑错误。AI会根据你的反馈进行修正。记住你是项目的最终负责人AI是强大的助手但不是完全自主的。审查SPEC文件低质量代码往往源于模糊的SPEC。检查SPEC.yaml文件确保它对输入、输出、边界条件和异常行为的描述是精确、无歧义的。提供更具体的示例在任务描述或SPEC中提供更详细的输入输出示例。对于单词统计工具与其说“能处理代码块”不如说“对于输入‘文本 代码 更多文本’统计结果应只包含‘文本’和‘更多文本’的单词”。问题5项目文件繁多如何理清关系技巧养成固定查看几个核心文件的习惯看进度progress.md是时间线。看全景task_plan.md是总蓝图。看状态triadev-handoff.json是当前快照。看产出src/和tests/目录是代码成果。 其他文件findings.md,SPEC.yaml等在需要深入了解细节时才查阅。不要试图一次性理解所有文件。最后保持耐心。TriaDev引入的结构化和自动化在初期可能会让你觉得流程“繁琐”但一旦适应它能带来惊人的项目清晰度、状态可追溯性和最终成果的质量提升。它最适合那些有明确步骤、可以分解的中等复杂度项目。对于快速原型或探索性极强、方向随时可能改变的任务传统的自由对话模式可能更灵活。