aps-agent/docs/architecture/dialog.md

2.4 KiB
Raw Blame History

对话入口:已下线(自然语言统一交给 Pi Agent)

状态:已下线。server/agent_core/dialog.py、server/agent_core/intent.py、 server/agent_core/assistant.py 已删除;对话链路不再做规则/关键词意图识别。

现行入口

用户输入 → /api/chat → IntentResult(intent="assistant.reply", params={"query": ..., "_piPrimary": True})
        → workflow.handle_intent → fallback_lane.propose_reply()
        → Pi headless(唯一自然语言理解 + 工具选择)
        → 封闭 IntentName 工具目录 + paramsSchema
        → workflow / harness(P0 只读直通、P2 确认卡、P3 人工审批)
  • 自然语言理解与工具选择只发生在 Pi 内部;服务端不再维护快路正则、关键词表或澄清状态机。
  • IntentResult 仍是服务端与 Pi 之间的结构化工具请求信封,不是意图识别结果。
  • 工具调用一律走既有门禁:P0/P1 只读直通、P2 出确认卡、P3 走白名单 fail-closed; 缺人/缺料/缺能力/缺源数据的结论保持权威,不被 Pi 文案覆盖。
  • 多轮澄清与补数引导由 Pi 在同一轮对话内完成;缺数据时给补数步骤,不提示「先试排」。

工具参数与采用边界

  • 工具目录由 _primary_tool_catalog() 下发 paramsSchema:_PRIMARY_TOOL_PARAM_SCHEMAS 中的已登记工具是封闭契约,_validate_tool_params() 拒绝未知字段、错误类型、非法枚举或范围;未单独登记参数的工具才使用 _OPEN_PARAMS_SCHEMA。
  • data.analyze / folder.analyze 走 P0 预览:analyze_project_deep(..., apply=False) 与 analyze_work_dir(..., apply_sql=False) 只读项目上下文、深拷贝世界和 SQL 预览,返回 readOnly 与 pendingAdoption。
  • 写入只在 workflow._stage_pending_adoption() 生成 P2 import.commit 确认卡后发生;批准后 execute_confirmed() 的 action == "import.commit" 分支才采用主数据并调用 ingest_project_analyze_report()。
  • SOP 控制台同样不绕过门禁:postSopStage(sessionId, assetId) 调 /api/sop/stage,由 compile_sop_by_asset(kb_assets, asset_id) 编译后走 P2 sop.apply 确认卡。

相关文档

  • fallback.md:Pi 主入口的围墙、审计、熔断与确认卡流程。
  • modules.md:core-fallback-lane 登记与黄金测试。