我为 AI Agent 任务输出构建了标记语言
发布: (2026年1月18日 GMT+8 21:30)
4 min read
原文: Dev.to
Source: Dev.to
介绍
每次我让 Claude 或 ChatGPT 帮我规划项目时,得到的都是……混乱。
有时是 markdown 列表,有时是编号步骤,有时是 JSON,有时是一大段文字,任务埋在中间的某个位置。
我想要:
- 可靠地解析输出
- 以不同方式可视化
- 在不复制粘贴的情况下跟踪进度
于是我构建了 TaskML。
TaskML 的样子
TaskML 是一种轻量级标记语言,专为任务管理而设计。它易于人阅读、AI 编写,并且可以即时解析。
@project Website Redesign
@sprint Week 1
[ ] Design homepage #p0 @alice
[x] Create wireframes
[~] Build prototype ~2h
[ ] Write copy #p1 @bob ~4h !2024-02-15
语法概览
@project/@sprint– 上下文块[ ]– 待办任务[x]– 已完成任务[~]– 正在进行[!]– 被阻塞任务#p0– 优先级(p0= 严重,p3= 低)@alice– 负责人~2h– 时间估计!2024-02-15– 截止日期- 缩进 – 子任务
可视化
TaskML 支持七种不同的视图:
- 经典的嵌套任务列表,带有状态指示和元数据。
- 基于任务状态(待办、进行中、已完成)的自动列布局。
- 甘特图式视图,展示持续时间和截止日期。
- 类电子表格视图,可对状态、优先级、负责人等列进行排序。
- 层级视图,显示父子关系。
- 可视化节点图,展示任务依赖。
- 仪表盘,统计:任务总数、完成率、时间估计、优先级分布。
与 AI 一起使用 TaskML
你可以通过一个简单的系统提示让任何 AI 输出 TaskML:
在跟踪任务、项目或待办事项时,始终使用 TaskML 格式:
@project Project Name @sprint Sprint Name (optional) Tasks use checkbox syntax: [ ] Pending task [x] Completed task [~] In progress task [!] Blocked task Add metadata inline: - #p0‑#p3 for priority - @name for assignee - ~Xh for estimates - !YYYY‑MM‑DD for due dates
Claude、ChatGPT、Cursor 以及许多其他模型都能立刻上手。
实现细节
- 零运行时依赖
- ~15 KB(压缩后)
- 原生 TypeScript
- 可在 Node.js 与浏览器中使用
- MIT 许可证
安装
npm install taskml
基本用法(TypeScript/JavaScript)
import { parse, render } from 'taskml';
const doc = parse(`
@project My Tasks
[ ] First task
[x] Done task
`);
// 渲染为 HTML(例如看板视图)
const html = render(doc, { view: 'kanban' });
交互式 Playground
在 taskml.dev/playground 实时尝试 TaskML。Playground 包含:
- 带语法高亮的实时编辑器
- 所有七种视图类型
- 模板示例
- 一键复制/分享
路线图
- VS Code 扩展
- Obsidian 插件
- React 组件
- 更多 AI 集成
- CLI 工具
链接
行动号召
如果你用 TaskML 构建了什么,我很想看到。
在 GitHub 上点个星会对我意义重大。