附录 B. AgentClinic 领域地图
AgentClinic 是一个教学项目,用于演示 SDD 周期。它是一个关于程序代理"诊所"的小型讽刺应用。
这个领域不只是为了好玩。它提供了足够的实体来展示路由、数据库、阶段、验证和 MVP 扩展,同时保持简单。
实体
| 实体 | 含义 | 示例 |
|---|---|---|
| 代理 | 程序助手或机器人 | "SpecWriter"、"BugFixer" |
| 病症 | 代理的反复出现的问题 | "幻觉 API"、"未经请求就重构" |
| 疗法 | 帮助代理的方法 | "严格的 validation.md"、"/clear 后的短会话" |
| 预约 | 用户提交的申请 | 姓名、留言、选择的病症 |
| 反馈 | 关于诊所的反馈 | 姓名、留言、日期 |
最小路由
到教程结束时,项目可以拥有以下路由:
| 路由 | 含义 |
|---|---|
/ | 主页 |
/agents | 代理列表 |
/agents/:id | 代理卡片和相关病症 |
/ailments | 病症列表 |
/therapies | 疗法列表 |
/appointments | 预约表单 |
/feedback | 反馈表单 |
| /dashboard | 简单的管理面板 |
并非所有路由都在第一阶段就需要。在 SDD 中,重要的不是一次性构建所有内容,而是逐步添加可验证的片段。
可能的 SQLite 表
agents
id
name
description
ailments
id
title
description
therapies
id
title
description
agent_ailments
agent_id
ailment_id
appointments
id
name
message
ailment_id
created_at
feedback
id
name
message
created_at
这不是强制性的模式。它作为规范和验证事实的参考。
领域如何按阶段分解
| 阶段 | 交付成果 | 最小事实 |
|---|---|---|
| Hello Hono | 应用响应 / | GET / 返回 200 |
| 代理和病症 | 代理列表和代理卡片 | 有关联的病症列表 |
| 疗法 | 治疗方法页面 | 路由返回 200 |
| 预约 | 表单和申请保存 | 无效表单被拒绝 |
| 反馈 | 反馈表单 | 保存后能看到最新反馈 |
| 管理面板 | 实体计数器 | 计数器与数据库一致 |
什么不属于教学领域
为了保持项目的教学性质,在没有单独规范的情况下不要添加:
- 真正的医学术语;
- 真实的个人数据;
- 支付场景;
- 带角色的授权;
- 外部邮件发送;
- 复杂图表;
- 与真实服务的集成。
如果想添加这样的功能,将其作为一个单独的阶段,并从 requirements.md、plan.md 和 validation.md 开始。
规范的领域词汇表
在所有章节和规范中使用一致的词语:
- 用"代理",而不是混用"机器人"、"助手"、"模型";
- 用"病症",而不是一个文件用"问题"另一个文件用"症状";
- 用"疗法",而不是在指领域实体时用"解决方案";
- 用"预约",而不是不加说明地用"申请";
- 用"反馈",而不是在中文文本中用"feedback"。
路由、表和文件的技术名称如果已在代码中使用,则保持英文。