Guide users to create standardized, executable Talos workflows starting from intent.
Produce a set of files:workflows/<name>/ in the directory workflow.md and manifest.json, installable into the target project via talos install <name> .
Architecture
| Layer | File | Responsibility |
|---|---|---|
| Orchestration | workflow.md |
Define stages and coordination rules |
| Configuration | manifest.json |
Declare dependencies (agents, skills, mcp, plugins) |
| Agent | agents/*.md(root) |
Reusable builtin agent library, referenced by workflows via paths |
| Memory | memorizer skill | Guided loading by the coordinator when delegating to subagents |
Decoupling Principles:
workflow.mdOnly references agent names (委托 **X** agent), does not embed agent logic- Agents do not hardcode skill content, only reference skill names (
加载 **X** skill) manifest.jsonis the single source of configuration—dependencies and configuration are all declared here- Memory writing is guided by the workflow coordinator via prompt when delegating to subagents, no need to define a stage in workflow.md
- Each dependency is declared in only one place
Interaction Flow
Phase 1: Capture Intent
Extract from conversation context, ask for what's missing. Clarify four things:
- Goal: What to accomplish?
- Starting Point: What is the typical input? (issue, design mockup, prompt?)
- End Point: What is the expected final deliverable? (PR, deployment, documentation?)
- Reference: Are there existing workflows to draw from?
Skip redundant questions when intent is already clear.
Phase 2: Design Stages
Work backward from the end point; each precondition is a stage.No need to manually add memory stages (reading and writing memory is handled automatically by the workflow skill).
Division of Labor Decision:
| Characteristic | Handling Method | workflow.md Writing |
|---|---|---|
| Frequent user interaction (clarification, confirmation, selection) | Main agent handles it itself | No subagent/skill keywords |
| Well-scoped, self-contained execution (writing code, review, testing) | Delegate to subagent | 委托 **X** agent |
| Reusable procedural patterns (TDD, debugging, PRD) | Load skill | 加载 **X** skill |
Agent Reuse: When designing stages, first check agents/ for existing builtin agents in the directory. Only suggest creating a new one when no suitable builtin agent exists (place it in the agents/ directory, referenced via manifest.json ).
Output the stage list to the user for confirmation, annotating the execution method in parentheses:
Stage 1: 理解缺陷 [main]
Stage 2: 调试验证 [agent: debugger]
Stage 3: 代码审查 [agent: reviewer]
After user confirmation, proceed to Phase 3.
Phase 3: Skill & MCP Discovery
For each stage that requires external capabilities:
- User already knows → record directly into manifest.json
- User describes the requirement but does not know its name → Use WebSearch to search for
site:skills.sh <关键词>or guide browsing https://www.skills.sh - If not found → Inform the user, and later use
/skill-creatorto create
Phase 4: Generate files
Generate in order:
workflows/<name>/workflow.mdworkflows/<name>/manifest.json- If a new agent is needed:
agents/<name>.md
After generation, execute the verification checklist.
Output format
workflow.md
Compatible with workflow runner parsing rules:
- Stage title:
## stage N — name - Subagent delegation:
委托 **X** agent - Skill loading:
加载 **X** skill - Skip condition (optional):
XX时跳过
Not needed Include memory-related stages (reading memory and writing memory are handled automatically by the workflow skill).
# <Workflow 名称>
一句话描述。
## stage 1 — <stage 名称>
<stage 描述>
委托 **<agent-name>** agent,传入 <参数>。
<可选:XX时跳过>
manifest.json
{
"agents": [
"agents/<builtin-agent-name>",
"./agents/<local-agent-name>"
],
"skills": [
{ "name": "<name>", "source": "<source>" }
],
"mcp": [
{
"name": "<name>",
"transport": "stdio",
"command": "<command>",
"args": ["<arg>"]
}
],
"plugins": [
"<plugin-ref>"
]
}
Field description:
agents: Path reference.agents/xxreferences builtin (root agents/),./agents/xxreferences workflow-localskills: Download from the skills.sh registrymcp: Inline configuration object, or path reference (./mcp/config.json)plugins: plugin ref string
agents/*.md
Only create a new agent when there is no suitable builtin agent, place it in the root agents/ directory:
---
name: "<kebab-case>"
description: "<一句话:做什么 + 何时用>"
tools: Bash, Read, Write, Edit, Skill
model: sonnet
---
<2-3 句职责说明>
## 输入
<接收什么>
## 输出
<产出什么>
## 流程
1. <步骤>
2. ...
## 依赖
- **Skills**: `<name>` — <使用条件>
- **MCP**: <server> — <用途>
## 规则
- <约束>
Verification checklist
- For each X of
委托 **X** agentin workflow.md, inmanifest.jsonthere is a corresponding path in agents - For each skill in agent
## 依赖, there is an entry inmanifest.json's skills - For each MCP in agent
## 依赖, it is declared inmanifest.json's mcp - manifest.json has no orphan entries (all declared dependencies are referenced by workflow.md or an agent)
- Stage numbers increase consecutively starting from 1
- The completion criteria of each stage are clearly determinable in the description
- workflow.md does not contain memory-related stages (handled automatically by the workflow skill)
Complete example: Debug Pipeline
workflow.md:
# Debug Pipeline
Web 缺陷诊断与修复流程。
## stage 1 — 理解缺陷
与用户对话,理解缺陷现象、复现步骤、期望行为。
在完整理解缺陷之前可以多次询问用户,不要急于进入调试阶段。确认理解后输出结构化的缺陷描述。
## stage 2 — 调试验证
委托 **debugger** agent,传入缺陷描述和相关代码位置。
## stage 3 — 代码审查
委托 **reviewer** agent,传入修复代码。
缺陷为单行配置变更或样式微调时跳过。
manifest.json:
{
"agents": [
"agents/debugger",
"agents/reviewer"
],
"skills": [
{ "name": "diagnose", "source": "mattpocock/skills" },
{ "name": "code-review", "source": "obra/superpowers", "installName": "requesting-code-review" },
{ "name": "knowledge-synthesis", "source": "anthropics/knowledge-work-plugins" },
{ "name": "obsidian-markdown", "source": "kepano/obsidian-skills" }
],
"mcp": [],
"plugins": []
}
agents/debugger.md:
---
name: "debugger"
description: "诊断并修复缺陷。当需要分析 bug、定位根因、修复问题并验证时使用。"
tools: Bash, Read, Write, Edit, Skill
model: sonnet
---
循环诊断缺陷:用 diagnose skill 深度分析,根据环境选择合适的工具验证并采集 debug 数据,直到问题确认解决。
## 输入
- 缺陷描述和复现步骤
- 相关代码位置(如有)
## 输出
- 根因分析
- 修复后的代码
- 验证结果
## 流程
1. 加载 `diagnose` skill 进行系统化分析,形成初始假设
2. 根据缺陷环境选择工具验证假设(浏览器用 Chrome DevTools,后端用日志/断点等)
3. 根据收集的数据修正假设,定位根因
4. 实现修复
5. 再次验证修复效果
6. 验证不通过则回到步骤 1,带入新数据继续分析
7. 验证通过后输出结论
## 依赖
- **Skills**: `diagnose` — 系统化 bug 诊断
## 规则
- 每轮循环必须收集新的证据,不允许空转
- 优先复现再修复,不在没有证据的情况下改代码
- 修复后必须验证原场景通过