aps-agent/docs/adr
zh 0e1a1bb5c0 feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16)
server/config.ts 按 ADR-0011 读取配置:环境变量 > ~/.aps/config.json > 默认值;默认 DeepSeek(https://api.deepseek.com/v1,deepseek-chat);密钥只在配置对象里出现一次,日志与启动横幅一律走 redactConfig。.env.example 改为平台自己的变量并写清优先级。serve 启动打印脱敏配置与「模型是否已配置」。数据库默认 ~/.aps/aps.sqlite(决策 D16,驱动用 Node 内置 node:sqlite,实测 22.19 免 flag、零原生依赖)。顺带收紧跨库访问检查的边界:平台自己的 APS_DB_PATH 不算越界(补一条用例锁住),避免误报。测试 47 → 54 全绿。
2026-09-28 16:01:04 +08:00
..
0000-template.md docs(adr): 建立 ADR 目录约定与模板,补齐 ADR-0001 2026-09-22 18:26:30 +08:00
0001-tech-stack-and-repo.md docs(adr): 按“开发阶段无客户数据”修订 ADR-0001/0003,去掉迁移与兼容假设 2026-09-23 10:43:15 +08:00
0002-engine-provider-deployment.md docs(adr): 补齐 ADR-0002/0003/0004(部署形态、数据作用域、桌面端边界) 2026-09-22 18:33:22 +08:00
0003-data-scope-and-authority.md docs(adr): 按“开发阶段无客户数据”修订 ADR-0001/0003,去掉迁移与兼容假设 2026-09-23 10:43:15 +08:00
0004-desktop-and-local-capabilities.md docs(adr): 补齐 ADR-0002/0003/0004(部署形态、数据作用域、桌面端边界) 2026-09-22 18:33:22 +08:00
0005-cutover-strategy.md docs(adr): 补齐 ADR-0005(直接切换,不并行、不迁移) 2026-09-23 11:03:42 +08:00
0006-engine-as-subprocess.md docs(adr): 补齐 ADR-0006(引擎以长驻子进程运行) 2026-09-23 11:25:31 +08:00
0007-storage-and-consistency.md docs(adr): 补齐 ADR-0007(数据存储选型与双形态一致规则) 2026-09-23 15:43:40 +08:00
0008-database-ownership-and-topology.md docs: ADR-0008 数据库归属与实例拓扑、平台与业务能力边界、单机版口径 2026-09-24 13:51:39 +08:00
0009-delivery-shape.md docs: ADR-0009 交付形态(纯平台包 + APS 单独部署) 2026-09-24 14:57:39 +08:00
0010-aps-dev-shape-in-repo.md docs: ADR-0010(APS 开发期同仓不同目录)+ aps/ 骨架 + A1–A2 实施计划 2026-09-24 15:36:04 +08:00
0011-model-endpoint.md feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16) 2026-09-28 16:01:04 +08:00
README.md feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16) 2026-09-28 16:01:04 +08:00

README.md

架构决策记录(ADR)

一份文件记一个决定。设计文档写"怎么落地",ADR 写"为什么这么定、放弃了什么"。

目录约定

项 约定
位置 docs/adr/
命名 NNNN-英文短标题.md,四位递增,从 0001 开始
粒度 一份文件只记一个决定;相关联的决定分文件写,互相引用
语言 文件名用英文短横线小写,正文用中文
评审 走 MR:有 diff、有讨论、有提交历史

不可更改原则

ADR 写完不再修改。要改结论就新写一份,并在两份里互相标注取代关系:

  • 新 ADR 的 状态 写 已接受(取代 ADR-0002)
  • 旧 ADR 的 状态 改为 已取代(被 ADR-0007 取代)

这样任何时候都能回答"当初为什么这么定、后来为什么改"。

状态取值

状态 含义
提议 已写出,等待决策人签字
已接受 决策人签字,作为当前依据
已取代 被更新的 ADR 覆盖
已废弃 决定不再适用,且未被替代

谁写、谁定

任何人可以提议(状态 提议)。决策人在文件里签字后状态改为 已接受。签字栏留空表示还没定。

索引

编号 标题 状态 来源
0001 技术栈与仓库形态 已接受 任务表 A0.1、A0.2
0002 引擎与 Provider 的部署形态 已接受 任务表 A0.3(决策 D1)
0003 数据作用域与权威数据源 已接受 任务表 A0.4(决策 D2)
0004 桌面端与本地能力边界 已接受 任务表 A0.5(决策 D4)
0005 直接切换,不并行、不迁移 已接受 任务表 A0.9(决策 D7)
0006 引擎以长驻子进程运行 已接受 任务表 A3(决策 D10)
0007 数据存储选型与双形态一致规则 已接受 任务表 A0(决策 D11)
0008 数据库归属与实例拓扑 已接受 任务表 A0(决策 D13)
0009 交付形态:纯平台包 + APS 单独部署 已接受 任务表 A0(决策 D14)
0010 APS 开发期与本仓库同仓不同目录 已接受 任务表 B0
0011 模型与端点:DeepSeek + 本机配置文件 已接受 任务表 A0(决策 D15)

编号在写之前先在本表登记,避免多人并行时撞号。