原始提示词
Generate an SVG of a pelican riding a bicycle
生成一幅鹈鹕骑自行车的 SVG 矢量图。
Simon Willison 公开分享了一项非正式 LLM 测试。他用同一句提示词测试了 OpenAI、Anthropic、Google 和 Meta 的 16 个模型。
后面会用它演示怎样写验收标准、验证结果和组织项目文件。
原文 · Pelicans on a bicycle ↗Generate an SVG of a pelican riding a bicycle
生成一幅鹈鹕骑自行车的 SVG 矢量图。
Willison 喜欢鹈鹕,也猜测训练数据中不太可能已有同题 SVG。浏览器把模型写出的代码渲染成图,可以直观看出车架几何、脚踏位置,以及鹈鹕和自行车是否组合得合理。
支持开放协议和格式,让 Agent 能连接外部工具与数据、互相通信,并复用项目指引与专业能力。
为 Agent 框架和协议提供长期、中立的治理机制,降低对单一厂商的依赖。
汇聚 OpenAI、Anthropic、Google、Microsoft 等企业与开源社区,推动 Agent 产品、工具和基础设施互操作。
三个创始贡献项目,分别覆盖连接协议、Agent 运行时与项目指导。
连接 AI 模型、工具、数据与应用的开放协议。
本地优先、开源可扩展的 AI Agent 框架。
为 Coding Agent 提供一致项目指导的简单开放格式。
基础设施 管理应用访问模型与 MCP 工具的路由和权限。
能力扩展 用开放格式封装可复用的 Agent 专业能力。
Agent 通信 规范不同 Agent 之间的通信与任务协作。
基础设施 为 Agent、模型与 MCP 提供安全的流量网关。
开发规范 向 Coding Agent 提供项目指令与上下文。
Agent 运行时 开源、可扩展,支持多种模型。
工具协议 规范 AI 应用与外部工具及数据的连接。
API 规范 提供可跨模型供应商使用的通用接口格式。
模型训练 为 Agent 的强化学习后训练提供环境接口。
执行环境 为 Agent 提供隔离的执行沙箱。
从数据结构到流式事件,理解三种模型接口设计。
messagestool_callschoices.deltainput / outputmessages / contenttool_use 内容块同一个名称,既指 AAIF 旗下的开放项目,也指你仓库中的具体文件。
既描述系统如何组成,也保留重要决策为什么发生。
描述系统架构、技术栈与模块边界。
记录重要技术决策及其原因。
谈到 SDD 的来源,可以分别追溯理论基础、术语的学术用法、AI 时代的思想倡导和工具实践。
霍尔逻辑用「前置条件、程序、后置条件」描述程序行为,为形式化验证提供方法。
三人在《Agile Specification-Driven Development》中明确使用 SDD 一词,将测试驱动开发与契约式设计结合。
在《The New Code》中倡导以规格作为意图的来源(Spec-as-Source),用它指导 AI 生成代码和验证结果。
Kiro 将需求、设计和任务组织成可审阅的文档,由 Coding Agent 按任务实施。
Den Delimarsky 介绍开源工具 Spec Kit,让不同 Coding Agent 都能按规格、计划和任务推进实现。
从理解项目到验证结果,再把经验带回下一次会话。
一套目录,连接项目知识、工程规范与交付过程。
project/ ├─ AGENTS.md │ ├─ docs/ │ ├─ architecture.md │ ├─ memory.md │ └─ adr/ │ ├─ .specify/ │ └─ memory/ │ └─ constitution.md │ ├─ specs/ │ └─ 001-pelican-on-bike/ │ ├─ spec.md │ ├─ plan.md │ ├─ tasks.md │ └─ worklog.md # 自定义扩展 │ ├─ src/ └─ tests/
project/
├─ docs/
│ └─ memory.md
└─ .specify/
└─ memory/
└─ constitution.md
docs/memory.md 存长期经验,.specify/memory/ 在这个例子中存放 Spec Kit 的工程治理规则。
constitution.md 定义团队必须遵守的规则。长期经验则帮助团队复用已经验证过的做法。
随着 AGENTS.md、ADR 和架构说明增加,开发者和 Agent 都需要知道新知识该放哪里、以哪份记录为准。
Spec Kit 将项目治理原则保存在 .specify/memory/constitution.md。
根据官方文档,plan、tasks 和 analyze 每次运行时从该路径读取当前规则。
这里的 memory/ 可理解为 Spec Kit 保存持久项目约束的位置。通用 Agent 记忆和团队知识库可以各自设计。
保留 Constitution 的正式路径。把 docs/memory.md 中仍有用的经验按主题迁入 docs/knowledge/,更新引用后停用旧文件。
架构决策放在 docs/adr/,功能进度和交接继续写在对应的 worklog.md。
project/ ├─ AGENTS.md ├─ .specify/ │ └─ memory/ │ └─ constitution.md ├─ docs/ │ ├─ architecture.md │ ├─ adr/ │ │ ├─ 0001-xxx.md │ │ └─ 0002-xxx.md │ └─ knowledge/ # 按需建立 │ ├─ known-issues.md │ └─ lessons-learned.md ├─ specs/ │ └─ 001-pelican-on-bike/ │ ├─ spec.md │ ├─ plan.md │ ├─ tasks.md │ └─ worklog.md ├─ src/ └─ tests/
Willison 的原题用于比较模型输出。下面是本课基于原题设计的工程练习,加入了动画要求、验收标准和反馈流程。
用原始提示词生成第一版 SVG,打开看看鹈鹕和自行车是否容易辨认。
在 spec.md 写清验收标准:鹈鹕有长喙和喙囊,车架连着两个轮子,动画中双脚始终跟随脚踏。
让 Agent 生成 SVG 后自动渲染,截取踩踏的关键帧,把结构检查结果和截图交回 Agent 修改。
自动检查 SVG 能否解析、有无外部资源。人工查看车架连接、缩小后的可辨识度,以及脚踏与双腿是否同步。
规则、设计记录、任务进度和成品各有存放位置。Agent 从 AGENTS.md 找到它们。
| 目录 | 职责与示例 |
|---|---|
.specify/ | 治理规则。例:SVG 必须自包含,变更须通过结构检查。 |
docs/ | 长期维护的技术知识。例:用 ADR 记录选择原生矢量图形的原因,把可复用的缩放排查经验归入 knowledge/。 |
specs/ | 本功能的规格、计划、任务和进度。例:在 spec.md 写清验收标准,在 worklog.md 记录待确认的缩放效果。 |
src/、tests/ | 交付与验证。例:src/pelican.svg 和检查 SVG 能否解析、有无外部资源的测试。 |
如果 Harness 自己负责加载治理规则,可以用 docs/governance.md 作为项目内的规则入口。
多仓库共用规则时,可以由中央配置仓库发布版本,Harness 按项目加载。项目记录采用的版本,便于追溯。
project/ ├─ AGENTS.md ├─ docs/ │ ├─ governance.md │ ├─ architecture.md │ ├─ adr/ │ └─ knowledge/ ├─ specs/ ├─ src/ └─ tests/
Agentic Engineering 不应演变成 Markdown Engineering。
按实际用途决定文档数量。已有可靠的持久化记忆系统时,复用它保存和检索长期经验。需要随仓库维护的知识再按主题写入 docs/knowledge/。
同一条规则由一处维护,其他文档引用它。
通过 AGENTS.md 找到当前任务需要的规格、架构或决策。
进度、阻塞和交接写在 worklog.md。值得复用的经验经验证后再归档。
用测试验证行为,用 Lint 检查代码约束,由 CI 在合并前执行这些检查。
两份文件都能写项目规范。2026 年 5 月,Spec Kit 社区讨论了同时维护它们是否违反 DRY。可以从谁读取、何时读取来决定怎么分工。
| 维度 | AGENTS.md | constitution.md |
|---|---|---|
| 定位 | Agent 的操作指令入口 | 项目工程治理原则 |
| 主要读取方 | Codex 等支持该文件的 Coding Agent | Spec Kit 的工作流命令 |
| 典型内容 | 仓库上下文、工作步骤、命令和工具用法 | 架构原则、质量门槛和设计约束 |
| 加载方式 | 由 Agent 按自身规则发现并读取 | plan、tasks、analyze 在运行时读取 |
| 适用范围 | 仓库里的日常编码任务,包括 SDD | SDD 及显式引用它的其他流程 |
| 重复风险 | 复制治理条款后需要同步更新 | 复制 Agent 操作细节后也容易失步 |
以 SVG 交付为例,治理文件定义合并条件,操作文件说明 Agent 如何验证。
constitution.md · 质量原则## Quality Principles - SVG 必须自包含,变更须通过自动化结构检查。 - 未通过必要测试的变更不得合并。
AGENTS.md · 操作步骤## Development Workflow - 修改 SVG 前,阅读 .specify/memory/constitution.md 的质量原则。 - 运行本示例仓库的 npm run test:svg。 - 按 spec.md 检查原尺寸和缩小后的画面。 - 在 worklog.md 记录结果及未完成项。
如果 Constitution 要求 SVG 变更通过结构检查,而 AGENTS.md 写着「只改图形可以跳过测试」,两条规则就会冲突。
团队约定由 Constitution 定义 SVG 的质量门槛,操作说明引用这条规则并给出验证步骤。
暂停受影响的操作,指出文件和条款,请规则负责人确认。修正冲突说明后,再继续执行和验证。
把 SVG 解析和外部资源检查设为合并前的必需检查。鹈鹕是否像在骑车,仍按规格进行人工验收。
操作和治理的区分是一种维护约定。小项目可以把两类内容放在同一个文件的不同章节。
AGENTS.md适合不依赖 Spec Kit 的普通 Coding Agent 项目或轻量 SDD。把工程原则和操作步骤集中维护。
# AGENTS.md ## 工程原则 ## 操作步骤与命令
适合正式使用 Spec Kit 的团队。Constitution 保存治理原则,AGENTS.md 提供操作说明和文件索引。
project/ ├─ AGENTS.md ├─ .specify/ │ └─ memory/ │ └─ constitution.md └─ docs/ ├─ architecture.md └─ adr/
文件名不决定指令优先级。普通 Codex 会话需要用到治理原则时,通过 AGENTS.md 的明确指引或 Harness 加载 Constitution。
团队需要约定规则由谁维护、何时加载、冲突如何处理,以及哪些检查必须由机器执行。
AGENTS.md · 工作入口进入仓库时读取操作指引,再按任务定位所需文件。
constitution.md · 治理策略设计、实现或审查涉及工程约束的变更时,加载适用条款。
architecture.md · 架构知识任务涉及模块边界或系统交互时,读取当前架构,必要时查相关 ADR。
spec.md、plan.md、tasks.md · 工作流产物进入具体功能时,按阶段读取需求、设计和待执行任务。
AGENTIC ENGINEERING
感谢聆听 · 欢迎交流
技术开发部 · 马里奥