# 技术现状与目标边界 ## 当前事实 - 2026-09-15最新三类约定(F034):仅闲聊smalltalk、政策了解policy_overview、具体需求specific_need。闲聊含身份、能力和使用方式介绍,由LLM依据现有角色信息自主回答,不检索或推荐政策;政策了解检索知识库,包含QA;具体需求按需画像、需求拆解、检索与适用性分析后依据原文回答。一般事实咨询归知识问答;无依据与服务失败分别说明,QA答案不因缺少卡片丢弃。 - `pyproject.toml`:项目名 `business-assistant`,版本 `1.0.0`,Python `>=3.14`;声明tokenizers用于离线token统计,以及torch、transformers、pymilvus用于第二步本地Embedding与Milvus入库,依赖已锁定。F011 规整仍只使用标准库。 - uv 默认包索引为清华 PyPI 镜像,使用项目级 `[[tool.uv.index]]` 配置;不修改全局 pip 设置。 - 已有第一步知识整理、第三步公司确认画像CLI、政策检索与推荐;第四步 `src/step4_api/` 当前注册`POST /api/chat`(SSE)、`POST /api/company/classify`(JSON)与`GET /health`。聊天请求可带附件链接,返回阶段状态、正文增量、来源/卡片和最终快照;分类接口接收已取得的company_info。单进程有界线程池复用图、Redis与模型,问答和分类共享内存接纳限制。生产鉴权、多副本及真实问答容量待验收。已建立 `uv.lock`、Python冒烟与初始化回归,现有 `.venv` 为Python 3.14.5。接口字段以[聊天接口](api-chat.md)及[分类接口](company-classification.md)为准。 - 沙箱内 Python 执行被权限限制,获准的沙箱外版本检查及初始化通过;不能据此把环境判为损坏。 - Qwen Embedding 已在第二步接入;`reference/` 已全量规整为 `knowledge/prepared/` 四类 JSONL 和 Markdown,保留原始字段、来源定位及质量标记。模板契约见 `knowledge/templates/README.md`,第二步建立分类型索引,政策有效性仍未核实。 - F013 的 `summarize.py` 使用用户DeepSeek配置、五场景提示词、JSON结束状态校验、token截断翻倍重试、SQLite逐条缓存及增强JSONL导出;Qwen Embedding由第二步接入。官方DeepSeek tokenizer用于本地预算预检。 - `init.ps1` 默认进行环境同步与检查,`-CheckOnly` 仅验证 Harness,`-Offline` 禁止联网。未变更原 Python 版本要求。 ## 目标数据流(已实现基础链路,质量与生产能力待验收) ```text 用户实际困难 + 可用会话上下文(无需政策名称) ↓ 需求识别 + 个人/企业/交叉主体识别 → 按需消歧与获取相关画像 ↓ 保留原问题 + 查询拆解 → 按manifest跨一个或多个知识库召回 ↓ ↑ 候选原文与适用条件核验 → 有界扩展检索或必要补问 ↓ 有证据的建议 + 来源引用 + 待确认条件 ``` 建议边界:入口/会话、公司信息适配器、知识入库、检索、回答编排、外部模型客户端。 正式代码以后放 `src/`,回归放 `scripts/tests/`,集成验证入口放 `scripts/`。 完整问答链路仍为目标;Agent框架已按用户要求采用LangGraph,向量数据库采用Milvus。 F005为后续重点:检索端消费原问题、需求、相关主体事实及未知项,返回候选原文、条款判断与补问需求;F006负责据此生成建议。检索方向是模型假设,政策存在性与资格必须由证据支持。个人画像接口未实现,不能沿用“所有问题先获取公司”的前置条件。具体功能与评测顺序见 [政策发现功能与验收](policy-discovery.md)。 ## 跨模块约定方向 - 公司上下文携带稳定身份、属性、来源、获取时间、未知项;检索和回答消费同一份上下文。 - 知识片段携带文档/片段标识、来源定位和可获得的发布/生效/失效、适用范围元数据。 - 回答可区分公司事实、知识事实与推断,引用必须指向实际参与生成的证据。 - 请求关联 ID 支持失败定位;公司缓存按身份隔离,索引与模型版本变化应可追踪。 - 日志不默认记录完整问题、画像、知识正文或密钥;重试有界,失败不伪装成成功。 - 测试使用固定合成公司、文档、时间和服务替身;真实服务验证另外保存脱敏结果。 实际协议随 Feature 实现和验证后在这里更新。F009 完成环境初始化修正,F002 后续聚焦最小业务运行入口与对应测试。已有锁文件先检查再冻结同步;保留原环境额外包,不自动重建环境。 ## 第二步知识入库(F015) 独立CLI位于 `src/step2_knowledge_ingest/`;Qwen本地模型通过torch/transformers加载,pymilvus连接用户指定服务。按五场景、QA、目录共七类分别建数据库;全文存储段与标题摘要语义索引分集合。完整字段逐条回读校验,模型与数据哈希组成不可变快照,成功后发布本地manifest。F018检索端已按manifest选择数据库/索引并回溯完整记录;旧快照不自动删除。详见 [入库协议](../knowledge/ingestion.md)。 ## 第三步问答框架(F017) 新增LangGraph StateGraph和InMemorySaver,需求识别复用DeepSeek,企查查按886候选检索、interrupt等待确认、410身份核对、1001有界分页构建画像。来源携带接口、获取时间、确认KeyNo及页码,原问题完整交接。F018已扩展政策召回、引用校验与分析节点;生产持久化、自动跨轮公司继承及多公司联合分析待实现。代码、配置与边界见 [第三步框架](step3-agent.md)。 F018新增retrieval.py、recommendation.py和report.py:按manifest使用原问题及最多2条扩展查询六库,完整记录分段回读并校验哈希;LLM逐条基于原文分析,引用必须逐字存在;企业与个人均返回完整记录和本地可查看来源。预算、未知资格与真实验证边界见 [第三步实现](step3-agent.md)。此前第三步仅画像的说明为F017历史边界,现已由F018扩展。