之前试用 Kiro 感觉他的设计非常有前沿性,所以开发了一个类Kiro 的协议,适用于大部分IDE

事先声明:此协议可能会导致 AI 处理任务消耗次数增加。在处理大任务的时候效果最佳

并非小任务不可以执行,在处理较小任务的时候可以添加提示词:请忽略 UADC 协议内容,直接执行 (其实如果任务很小的话,他也不会去执行协议。很奇怪的一个现象,任务复杂度小于协议复杂度的时候他会优先执行任务,任务复杂度大于协议复杂度的时候他会优先执行协议,我没搞懂为什么,也算是 BUG 转 feature 了)

先来解释几个问题

为什么认为 Kiro Spces 模式好。

Spces 核心是将 AI 的工作流完全转向了以文件为中心的 “文档即代码 (Docs as Code)” 模式。这种模式迫使 AI 必须先熟悉全部代码后,制定完整的开发计划。从根源避免了 AI 拿到需求直接上手,导致的各种不可控。

每个任务都管理 requirements.md(需求分析)、design.md(设计方案)、tasks.md (任务文档)不会影响开发效率吗?

当然会,但这些文件并非任务的过程产出,而是 AI 自我 PUA 的过程。他们会成为后续 AI 编码时候的指引,避免 AI 无法完全理解需求,以及出现更多的幻觉。同时也可以让我们知道 AI 是如何看待我们提出的需求的。

协议目前还属于持续迭代阶段,当前 3.2 版本是最稳定版本

需要注意的事

协议中用到了 MCP dynamic-interaction 这是我开发的一个 AI 交互 MCP 目前没有公开,大家可以直接换为 MCP mcp-feedback-enhanced 等MCP。效果完全相同

UADC 协议 3.2:简洁增强版CN.txt (4.3 KB)
UADC 协议 3.2:简洁增强版EN.txt (4.9 KB)
UADC 协议 3.2:内容最佳CN.txt (6.3 KB)
UADC 协议 3.2:内容最佳EN,内容过长部分IDE不支持.txt (8.1 KB)

开发中遇到的问题

AI 可以接受并且识别到协议,但是不遵守 或 忽视协议。

AI模型(尤其是像GPT这样的生成式模型)在处理Prompt时,不是简单地“执行代码”,而是通过上下文理解、模式匹配和概率生成来响应。结构清晰和AI的默认行为匹配上的协议,通常效果会好很多。 复杂性和认知负载过高 的协议,通常AI会选择性忽视。

Prompt 技巧

  • 简化结构:缩短Prompt长度(目标<2000 tokens)。用 bullet points 或编号列表替换长段落。
  • 强化关键指令:用粗体、重复或伪代码强调“必须”行为。例如,重加通知模式(如果需要),或明确“如果不确定,优先调用MCP审批”。
  • 添加角色和自省:开头定义AI角色:“你是严格遵守UADC 2.8的AI代理,专注于生成requirements.md、design.md、tasks.md作为执行依据。”
  • 增强示例:为每个阶段添加1-2个完整示例,包括文件生成和MCP消息。
  • 处理新概念:将“情境注入”改为AI内部模拟(“在思考时,回忆requirements.md全文”),避免外部依赖。
  • 错误处理:添加“如果违反协议,立即停止并报告”。

欢迎大家使用并且提出问题。我会继续迭代。

35 Likes

抓包可以直接提取kiro的提示词,稍微改一下效果还行

1 Like

没办法,我用的 Windsurf Rule 长短限制了 6000 个字符,Commit 还会去读这个 Rule。经常没办法生成中文内容,还不执行 Rule。自己搞一个稳定些

那确实,那个提示词超级长

我会写一个 简洁增强 版就是因为翻译成英文太长了。QWQ

不过超长提示词丢进roo可以跑
现在打算自己写个提示词把3部分串起来

需求提示词28kb

期待 :heart: :heart:

太长了,最好保持简洁,部分描述类型的其实是不必要的

和之前提取的又不一样了,现在把所有步骤压进一个提示词了

Agent 原理是每次请求的时候吧系统提示词、Rule、上下文全部发给 AI。你要是合并成一个,那么AI的每一步操作啥也不干先消耗 28K token。远不如分步操作合适

hhh这也是,估计是aws有钱这样搞

太强了,大佬

ai有时候也不跟着文档写

我协议里面逻辑给他焊死了。其实就是在任务里面写上对应文档位置,每次行动的时候都让他回忆文档内容。稳定很多

code work as comment……

没 get 到佬想表达的意思

先插个路标

kiro没按照文档写的 自由发挥的其实 哈哈哈哈 就写一个功能模块就开始放飞自我
佬你的提示词可以给 kiro用吗

Kiro 应该不行,Kiro 目前的问题在于他每个任务都是新开的对话,他的对话不会去读 requirements.md、design.md 这些文件。你需要手动提示他读取这些文件恢复上下文