# P5.1→NS3 缺失项 #1:App1 Prompt 工程规范 ## 简要结论 - 状态:✅ 已解决 - 风险等级:🟡 低 - App1 的完整 Prompt 工程规范已在百炼平台 System Prompt 文档和后端代码中实现,NS3 作为 MCP Server 扩展 spec 不涉及 Prompt 细节属于正常分工。 ## 详细审查 ### 审查范围 - `apps/backend/app/ai/apps/app1_chat.py` — App1 后端实现 - `docs/prd/ai-app-prompts.md` — 百炼平台 8 个应用的 System Prompt 完整定义 - `docs/prd/specs/P5-miniapp-ai-integration.md` — P5 原始 spec(首条 Prompt 数据结构) - `docs/prd/Neo_Specs/NS3-mcp-server-ai-extension.md` — NS3 spec ### 发现 1. **System Prompt 模板**:`docs/prd/ai-app-prompts.md` 中定义了 App1 完整的 System Prompt,包含: - 角色定义(台球门店运营助手) - 5 个技能(数据查询、客户信息、助教业绩、经营数据、库存) - 权限控制规则(助教/管理者角色隔离) - 查询规范和回复规范 - `biz_params.user_prompt_params` 参数注入(User_ID、Role、Nickname) 2. **首条 Prompt JSON 结构**:P5 spec 中明确定义了 App1 的首条用户消息结构: ```json { "current_time": "...", "source_page": "来源页面标识", "page_context": "页面上下文摘要", "screen_content": "屏幕可见内容文本化" } ``` 3. **后端实现**:`app1_chat.py` 已实现: - `_build_system_prompt()` 构建 system prompt JSON(注入用户信息 + 页面上下文) - `_build_page_context()` 调用 `build_page_text()` 获取 10 种页面入口的结构化文本 - Token 预算控制(`_MAX_SYSTEM_PROMPT_LEN = 4000`) - SSE 流式返回完整链路 4. **NS3 的定位**:NS3 是 MCP Server 扩展 spec,职责是数据库连接、查库手册、脱敏策略,不涉及 AI 应用的 Prompt 工程。Prompt 规范由 P5 spec + `ai-app-prompts.md` 承载,这是正确的分工。 ### 证据 `app1_chat.py` 中的 system prompt 构建: ```python prompt: dict = { "task": "你是台球门店的 AI 助手,根据用户的问题和当前页面上下文提供帮助。", "biz_params": { "user_prompt_params": { "User_ID": str(user_id), "Role": role, "Nickname": nickname, }, }, } ``` `ai-app-prompts.md` 中 App1 的 System Prompt 长度约 1500 字,覆盖 5 个技能、权限控制、查询规范、回复规范。 ### 说明 App1 是通用对话应用,其 Prompt 工程规范不包含 few-shot 示例和 JSON schema 约束(这些是结构化输出应用 2-8 的需求)。App1 使用流式文本返回(`chat_stream`),不需要 JSON schema 约束。百炼平台的 System Prompt 配置 + 后端 `_build_system_prompt()` 的动态注入,构成了完整的 Prompt 工程规范。