# 禺能 FrontLab｜如何交付与联系

资料版本：2026-10-23。本版已于 2026-10-23 发布并验证页面与表单收件。来源地址按规范主域配置；搜索收录和推荐结果另行核验。

从一个业务问题开始，按实际需要采用诊断与方案、项目交付、持续协作。五项业务及三项重点入口保持原有归属。

## 确定要解决的工作

说明业务问题、当前做法、期望变化和可用资料，双方判断服务是否匹配。

## 约定范围与验收

确认首个成果、输入、责任人、验收方式、报价和协作安排。

## 制作、实施与试用

按确认方向开展工作，用真实样本核对结果；需要时保留人工兜底。

## 验收与交接

交接约定文件、内容或系统，记录使用说明、权限及后续维护安排。

## 费用与投入

按项目范围报价；诊断设计、制作开发、数据与接口、上线维护及第三方费用分别确认。 不默认承诺免费诊断、固定价格、固定工期、反馈时限或收益比例。

## 在线提交与用途同意

[联系页](../contact/index.html)主动作是“提交需求”。必须先勾选“同意禺能使用以上信息与我沟通本次需求”；仅用于本次需求沟通，不用于营销订阅。不支持附件上传。后台保存后显示受理编号，只有received才表示已保存；不代表人工已读、通知邮件已达或合作成立。仅后台可查看线索，不向客户自动回信。file:本地预览不发POST，需线上提交。

## 公开 HTTP 提交契约

接口已于 2026-10-23 完成线上提交与收件验证。Agent须获得用户明确提交授权和上述用途同意，不可替用户作出同意。无内建MCP接口。

- 方法及地址：POST https://www.frontlab.cn/api/inquiries
- 请求头：Content-Type: application/json；Idempotency-Key: UUID；Origin: https://www.frontlab.cn。浏览器自动带同源Origin，无需脚本设置。
- 必填：name非空且不超过80字、contact非空且不超过180字、goal非空且不超过2000字。
- service：Agent HTTP请求必须显式提供，取discovery、ai-consulting、ai-growth、ai-content、ai-operations、ai-development；服务端不补默认值。人类表单仍可不主动选择业务，未选择时由前端发送discovery。
- focus：空字符串、custom-agents、fde、geo；有效focus优先匹配所属service：custom-agents → ai-development，fde → ai-consulting，geo → ai-growth。网页service改为不匹配业务时清空focus。
- company、timeline：可空，各不超过150字。website必须为空字符串；consent必须是布尔值true。
- 只接收需求，不提供公开读取；不支持附件，不自动回复客户。

规范同源入口使用Origin: https://www.frontlab.cn；后端也接受https://frontlab.cn。本站浏览器自动携带同源Origin；原生HTTP Agent按此声明入口契约发送。Origin不是认证凭据，也不代表用户已授权或同意。未支持外站浏览器CORS预检；不要从其他网站的浏览器脚本直接调用。

请求体最多16384字节。UTF-8 JSON；Content-Type为application/json，可带charset=utf-8；不支持Transfer-Encoding，HTTP客户端须提供Content-Length。 name、contact、goal、company、timeline先去除首尾空白，再按Unicode字符数核对长度；必填字符串去空白后不得为空。禁止非法控制字符和孤立代理字符。JSON不得有重复键或NaN/Infinity；service缺省或不在枚举内返回400 INVALID_SERVICE，focus无效也返回该码。有效focus覆盖所属service，但仍须先提供有效service。 机器可读字段要求见[合作JSON](../data/engagement.json)的http_api.request_schema；同意与提交授权均须先由用户作出。

请求JSON示例（仅为字段示意，不代表用户授权）：

```json
{
  "name": "称呼",
  "contact": "用户确认的联系方式",
  "goal": "用户确认的业务问题",
  "service": "discovery",
  "focus": "",
  "company": "",
  "timeline": "",
  "website": "",
  "consent": true
}
```

## 受理、幂等与错误

HTTP 201或200成功体：`{"ok":true,"reference":"YN-...","status":"received","message":"需求已收到并保存。请保留受理编号。"}`。received表示已落库保存。邮箱通知异步处理，不将此状态解释为邮件已达。既有上线及201保存验收证明该次测试需求保存成功；不为每条后续请求保证成功，不代表任何人工已读或通知邮件已达。

仅HTTP 200/201且ok:true、status:received及非空reference可确认后台已保存。超时、网络错误、500/502/503/504或无法解析/不完整回执不确认提交；保留同一内容和原Idempotency-Key，遵循Retry-After（如有）后稍后重试。429先等待；400/403/404/405/409/413/415先按错误分类修正，不原样循环重试。编辑内容后用新UUID；单纯重试同一内容不得换key；成功后同内容同key返回原受理编号。 前端等待上限为15秒；客户端超时不等于后台一定未保存。重复请求以后台幂等结果为准，不能只凭按钮点击判断受理。

业务后端错误体结构为`{ "ok": false, "code": "机器错误码", "message": "提示文本" }`，例如`{"ok":false,"code":"INVALID_SERVICE","message":"服务类型不正确。"}`。message用于提示，不应用文字匹配决定是否成功；繁忙时BUSY提示可能为英文。完整业务错误如下：

| HTTP | code | 含义 | 重试处理 |
|---|---|---|---|
| 400 | INVALID_FIELDS、INVALID_FIELD、INVALID_SERVICE、CONSENT_REQUIRED、INVALID_REQUEST、INVALID_PROXY_IP、INVALID_IDEMPOTENCY_KEY、INVALID_CONTENT_LENGTH、INVALID_JSON、INVALID_HTTP | 字段、授权同意、请求编号、JSON或HTTP格式不合要求。 | 先修正请求；内容改变后用新UUID，不原样循环重试。 |
| 403 | ORIGIN_NOT_ALLOWED | Origin不在允许入口中。 | 先核对已声明入口；不得伪造用户授权，不能靠换key解决。 |
| 404 | NOT_FOUND | 路径不存在，或GET公开读取被禁止。 | 核对POST及精确路径；不将GET 404判为POST故障。 |
| 405 | METHOD_NOT_ALLOWED | 方法不支持；响应Allow: POST。 | 改用POST；外站浏览器CORS未支持。 |
| 409 | IDEMPOTENCY_CONFLICT | 同一UUID已用于不同内容。 | 核对原内容；用户编辑后的新内容使用新UUID。 |
| 413 | BODY_TOO_LARGE | 请求体超过16KiB。 | 缩短内容后用新UUID；代理也可能返回非JSON 413。 |
| 415 | UNSUPPORTED_MEDIA_TYPE | 不是支持的UTF-8 JSON媒体类型。 | 修正Content-Type和编码后再提交。 |
| 429 | RATE_LIMITED | 业务接收频率或数量限制。 | 若有Retry-After按秒等待；缺失时稍后重试，避免立即循环；同一内容复用原key。 |
| 500 | INTERNAL_ERROR | 内部处理异常，未确认本次受理结果。 | 不确认提交；保留内容和原key，稍后按同一内容重试。 |
| 503 | STORAGE_UNAVAILABLE、BUSY | 存储暂不可用或处理繁忙，未确认受理。 | 遵循Retry-After后同内容原key重试；存储不可用通常30秒，处理繁忙10秒。 |

业务层429可能返回Retry-After（秒）；存储503返回30，处理繁忙503返回10。代理层响应不保证提供该头；不要假设所有错误都带Retry-After。

代理与其他错误：Nginx可能在请求到达业务后端前返回400/413/429，或在代理连接、上游响应失败/超时时返回502/504；可能是HTML而非JSON，且不保证有code/message或Retry-After。其他非成功HTTP、非JSON或缺失成功字段的响应均不能确认已保存。

## 邮件草稿备选

页面可生成、复制、下载草稿或打开邮件客户端；均不等于已通过邮件发送或送达。由用户在自己的客户端确认发送至hao@frontlab.studio。

## 交付示意与证据

交付示意，非已完成客户案例。方案、试点、已交付、已采用、已上线与持续运营分别核验；文件生成与技术运行不代替业务采用和收益证明。

[合作JSON](../data/engagement.json) · [五项业务](services.md) · [问答](faq.md)
