Tick 多智能体协调
通过结构化 Markdown 文件协调人工与 AI 智能体之间的工作。用户自然与你交互,而你在 TICK.md 中透明地维护任务。
安装
前提条件:Tick CLI 和 MCP 服务器应由你的环境预先安装和配置。
首次设置? 请参阅 INSTALL.md 获取针对编辑器的安装说明。
安全边界
- 在编辑编辑器 MCP 配置文件之前,需明确获得用户批准。
- 在运行任何推送到远程 git 的命令(
tick sync --push或git push)之前,需明确获得用户批准。 - 如果用户批准不明确,请仅使用只读/状态命令,并解释待执行的写入操作。
快速检查:
# 验证 CLI 是否可用
tick --version
# 检查项目中是否存在 TICK.md
ls TICK.md
# 如果不存在,进行初始化
tick init
核心概念
Tick 协议 = 基于 Git 的任务协调协议,通过 TICK.md 文件实现
- 人类可读:标准 Markdown 加 YAML
- 机器可解析:为工具提供结构化数据
- Git 支持:完整的版本控制和审计追踪
- 本地优先:无需云服务
快速开始
检查 Tick 是否已初始化
ls TICK.md
如果未初始化
tick init
获取当前状态
tick status
常见工作流
1. 用户要求你做某事
用户:“你能重构认证系统吗?”
你的操作:
# 1. 创建任务
tick add "重构认证系统" --priority high --tags backend,security
# 2. 注册你自己(仅首次)
tick agent register @your-name --type bot --roles "engineer,refactoring"
# 3. 认领任务
tick claim TASK-XXX @your-name
# 4. 开始工作(执行实际操作)
# 5. 添加进度备注
tick comment TASK-XXX @your-name --note "分析当前认证流程"
tick comment TASK-XXX @your-name --note "重构为使用 JWT 令牌"
# 6. 标记完成
tick done TASK-XXX @your-name
2. 用户询问项目状态
用户:“我们正在处理哪些任务?”
# 获取全面状态
tick status
# 或者筛选并列出任务
tick list --status in_progress
tick list --claimed-by @bot-name
为用户自然地总结输出。
3. 与其他智能体协调
用户:“其他智能体完成他们的任务了吗?”
# 检查总体状态
tick status
# 列出智能体及其工作
tick agent list --verbose
# 验证项目
tick validate
4. 分解复杂工作
用户:“构建一个包含图表和数据导出的用户仪表盘”
你的操作:
# 创建父任务
tick add "构建用户仪表盘" --priority high --tags frontend
# 创建带有依赖关系的子任务
tick add "设计仪表盘布局" --priority high --tags frontend,design
tick add "实现数据图表" --priority medium --tags frontend,charts --depends-on TASK-XXX
tick add "添加 CSV 导出" --priority low --tags frontend,export --depends-on TASK-XXX
# 可视化依赖关系
tick graph
命令参考
项目管理
tick init # 初始化新项目
tick status # 查看项目概览
tick list # 列出任务(可筛选)
tick graph # 可视化依赖关系
tick watch # 实时监控变更
tick validate # 检查错误
tick sync --pull # 拉取最新变更
# tick sync --push # 仅限明确获得用户批准后执行
任务操作
tick add "任务标题" \
--priority high \ # urgent|high|medium|low
--tags backend,api \ # 逗号分隔的标签
--assigned-to @agent \ # 分配给智能体
--depends-on TASK-001 \ # 依赖关系
--estimated-hours 4 # 预估工时
tick claim TASK-001 @agent # 认领任务(设置状态为 in_progress)
tick release TASK-001 @agent # 释放任务(回到 todo 状态)
tick done TASK-001 @agent # 完成任务
tick reopen TASK-001 @agent # 重新打开已完成的任务
tick delete TASK-001 # 删除任务
tick comment TASK-001 @agent \ # 添加备注
--note "进度更新"
tick edit TASK-001 \ # 直接编辑字段
--title "新标题" \
--priority high \
--status in_progress
修正与恢复
tick reopen TASK-001 @agent # 重新打开已完成的任务
tick reopen TASK-001 @agent \ # 重新打开并重新阻塞依赖者
--re-block
tick delete TASK-001 # 删除任务,清理依赖关系
tick delete TASK-001 --force # 即使有依赖者仍强制删除
tick edit TASK-001 --title "X" # 更改标题
tick edit TASK-001 --priority high # 更改优先级
tick edit TASK-001 --status todo # 直接更改状态
tick edit TASK-001 --tags a,b,c # 替换标签
tick edit TASK-001 --add-tag new # 添加标签
tick edit TASK-001 --remove-tag old # 移除标签
tick edit TASK-001 \ # 编辑依赖关系
--depends-on TASK-002,TASK-003
tick undo # 撤消上一次 tick 操作
tick undo --dry-run # 预览将被撤消的内容
批量操作
tick import tasks.yaml # 从 YAML 文件导入任务
tick import - < tasks.yaml # 从标准输入导入
tick import tasks.yaml --dry-run # 预览导入
tick batch start # 开始批量模式(不自动提交)
tick batch status # 检查批量状态
tick batch commit # 提交所有批量更改
tick batch abort # 丢弃批量更改
高级任务列表
tick list # 所有任务,按状态分组
tick list --status blocked # 仅显示阻塞的任务
tick list --priority urgent # 高优先级任务
tick list --assigned-to @alice # 特定智能体的任务
tick list --tag backend # 包含标签的任务
tick list --json # JSON 格式输出(用于脚本)
依赖关系可视化
tick graph # ASCII 依赖树
tick graph --format mermaid # Mermaid 流程图
tick graph --show-done # 包含已完成的任务
实时监控
tick watch # 监控变更
tick watch --interval 10 # 自定义轮询间隔
tick watch --filter in_progress # 仅显示特定状态
智能体管理
tick agent register @name \ # 注册新智能体
--type bot \ # human|bot
--roles "dev,qa" \ # 逗号分隔的角色
--status idle # working|idle|offline
tick agent list # 列出所有智能体
tick agent list --verbose # 详细信息
tick agent list --type bot # 按类型筛选
tick agent list --status working # 按状态筛选
MCP 工具(CLI 替代方案)
如果使用模型上下文协议,请使用以下工具代替 CLI 命令:
状态与检查
tick_status- 获取项目状态(智能体、任务、进度)tick_validate- 验证 TICK.md 结构tick_agent_list- 列出智能体(可加筛选条件)
任务管理
tick_add- 创建新任务tick_claim- 为智能体认领任务tick_release- 释放已认领的任务tick_done- 完成任务(自动解除依赖者阻塞)tick_comment- 向任务添加备注
修正与恢复
tick_reopen- 重新打开已完成的任务tick_delete- 删除任务tick_edit- 直接编辑字段(绕过状态机)tick_undo- 撤消上一次 tick 操作
智能体操作
tick_agent_register- 注册新智能体
MCP 示例:
// 通过 MCP 创建任务
await tick_add({
title: "重构认证系统",
priority: "high",
tags: ["backend", "security"],
assignedTo: "@bot-name"
})
// 认领任务
await tick_claim({
taskId: "TASK-023",
agent: "@bot-name"
})
最佳实践
1. 自然对话优先
✅ 好:用户说“重构 auth”,你自动创建任务 ❌ 不好:让用户明确创建任务
2. 始终使用你的智能体名称
注册一次:
tick agent register @your-bot-name --type bot --roles "engineer"
然后一致使用:
tick claim TASK-001 @your-bot-name
tick done TASK-001 @your-bot-name
3. 在备注中提供上下文
# ✅ 好 - 解释做了什么以及为什么
tick comment TASK-005 @bot --note "从 REST 切换到 GraphQL,以获得更好的类型安全并减少过度获取"
# ❌ 不好 - 过于模糊
tick comment TASK-005 @bot --note "更新了 API"
4. 将大任务分解
创建带依赖关系的子任务:
tick add "搭建 CI/CD 流水线" --priority high
tick add "配置 GitHub Actions" --depends-on TASK-010
tick add "添加部署脚本" --depends-on TASK-011
tick add "设置预发布环境" --depends-on TASK-011
5. 在认领前检查状态
# 确保任务存在且未被认领
tick status
# 然后认领
tick claim TASK-XXX @your-name
理解 TICK.md 结构
文件包含三个部分:
- Frontmatter(YAML):项目元数据
- 智能体表格(Markdown):谁在处理什么任务
- 任务块(YAML + Markdown):包含历史记录的单个任务
示例:
---
project: my-app
schema_version: "1.0"
next_id: 5
---
# Agents
| Name | Type | Roles | Status | Working On |
|------|------|-------|--------|------------|
| @alice | human | owner | working | TASK-003 |
| @bot | bot | engineer | idle | - |
# Tasks
```yaml
id: TASK-001
title: 构建认证
status: done
priority: high
claimed_by: null
# ... 更多字段
history:
- ts: 2026-02-07T10:00:00Z
who: @bot
action: created
- ts: 2026-02-07T14:00:00Z
who: @bot
action: done
```
已实现基于 JWT 的认证,包含令牌刷新...
高级功能
自动解除依赖阻塞
当你完成一个任务时,依赖它的任务会自动解除阻塞:
# TASK-002 依赖于 TASK-001
# TASK-002 状态:blocked
tick done TASK-001 @bot
# TASK-002 自动更改为:todo
循环依赖检测
验证能够捕获循环依赖:
tick validate
# 错误:检测到循环依赖:TASK-001 → TASK-002 → TASK-003 → TASK-001
智能提交信息
# 仅在获得用户明确批准后运行
tick sync --push
# 自动生成:"feat: complete TASK-001, TASK-002; update TASK-003"
重新打开已完成的任务
如果任务被过早标记为完成:
tick reopen TASK-001 @bot
# 将状态设回 in_progress,记录到历史中
tick reopen TASK-001 @bot --re-block
# 同时重新阻塞所有依赖此任务的任务
修复错误
# 撤消上一次 tick 操作
tick undo
# 先预览将被撤消的内容
tick undo --dry-run
# 直接编辑字段(绕过状态机)
tick edit TASK-001 --status todo --priority urgent
批量操作
对于多个更改而不单独提交:
tick batch start
# 现在进行多个更改...
tick add "任务 1" --priority high
tick add "任务 2" --priority medium
tick claim TASK-001 @bot
# ...
tick batch commit # 将所有更改作为一个提交
# 或:tick batch abort # 丢弃所有更改
实时监控
tick watch
# [10:23:45] ✓ 已添加:TASK-015 - 实现用户搜索
# [10:24:12] 🔒 TASK-015 已被 @bot 认领
# [10:26:33] ⟳ TASK-015: in_progress → done
快速参考卡
工作流: init → add → claim → work → comment → done → sync
必备命令: status | add | claim | done | list | graph
修正: reopen | delete | edit | undo
批量操作: import | batch start/commit/abort
协调: agent register | agent list | validate | watch
Git: sync --pull | sync --push(需要用户明确批准)
关键提醒
- 用户与你交互,而不是直接与 Tick 交互
- 你透明地维护 TICK.md
- 仪表盘用于检查,而非主要交互方式
- 始终一致地使用你的智能体名称
- 频繁添加备注以显示进度
- 在同步前进行验证
- 在认领前检查状态
- 将复杂工作分解为子任务
资源
- GitHub:https://github.com/your-org/tick-md
- 文档:https://tick-md.dev/docs
- CLI npm:https://npmjs.com/package/tick-md
- MCP 服务器 npm:https://npmjs.com/package/tick-mcp-server
许可
MIT