Go to file
zh 89b9535138 feat(agent): 引擎接口、假引擎与一致性测试套件(A3.1 / A3.2)
runtime.ts 按架构设计 5.2 定义 AgentRuntime / RuntimeSession / RuntimeEvent(text、tool_call、tool_result、approval_required、turn_end、error),补两处实现必需项:createSession 带 sessionId、resolveToolResult 让工具回执回流。fake-runtime 为确定性假引擎,支持脚本与计划器,事件顺序与真引擎一致,用于一致性测试与 A2.7 评测。conformance.ts 是一套跑任何运行时的验收用例:单轮事件顺序、多轮、工具调用与回执、取消、错误分类、带历史恢复。测试 44 → 46 全绿;坏运行时负例证明套件不是摆设。过程中修掉两个自身缺陷:假引擎在 yield 之后才登记回执回调导致回执丢失;一致性套件超时定时器 unref 导致事件循环空转退出。
2026-09-28 15:14:11 +08:00
.github/workflows feat(ci): lint 基线与三个检查接入门禁(A1.6) 2026-09-24 15:37:35 +08:00
aps docs: ADR-0010(APS 开发期同仓不同目录)+ aps/ 骨架 + A1–A2 实施计划 2026-09-24 15:36:04 +08:00
client feat(client): 最小界面与单端口托管(A1.4 / A1.5) 2026-09-24 15:41:01 +08:00
contracts feat(server): 应用服务最小闭环与 HTTP/SSE 入口(A1.3) 2026-09-24 15:09:37 +08:00
docs docs(plan): 长程路线图(平台主线 / 前端界面 / APS 独立化) 2026-09-28 15:12:14 +08:00
providers/aps feat(core): Provider SDK、能力目录与 Core.invoke(A2.1-A2.4) 2026-09-24 15:48:45 +08:00
scripts feat(agent): 引擎接口、假引擎与一致性测试套件(A3.1 / A3.2) 2026-09-28 15:14:11 +08:00
server feat(agent): 引擎接口、假引擎与一致性测试套件(A3.1 / A3.2) 2026-09-28 15:14:11 +08:00
.dockerignore chore: 从零开始重构(首个提交) 2026-09-22 17:46:56 +08:00
.env.example chore: 从零开始重构(首个提交) 2026-09-22 17:46:56 +08:00
.gitignore chore: 按新结构重写 .gitignore 2026-09-23 21:02:10 +08:00
.prettierrc.json feat(ci): lint 基线与三个检查接入门禁(A1.6) 2026-09-24 15:37:35 +08:00
README.md feat(client): 最小界面与单端口托管(A1.4 / A1.5) 2026-09-24 15:41:01 +08:00
eslint.config.js feat(ci): lint 基线与三个检查接入门禁(A1.6) 2026-09-24 15:37:35 +08:00
package.json feat(core): Provider SDK、能力目录与 Core.invoke(A2.1-A2.4) 2026-09-24 15:48:45 +08:00
pnpm-lock.yaml feat(core): Provider SDK、能力目录与 Core.invoke(A2.1-A2.4) 2026-09-24 15:48:45 +08:00
pnpm-workspace.yaml feat(client): 最小界面与单端口托管(A1.4 / A1.5) 2026-09-24 15:41:01 +08:00
tsconfig.base.json feat(workspace): pnpm monorepo 骨架与包边界(A1.1) 2026-09-23 19:29:57 +08:00
tsconfig.json feat(client): 最小界面与单端口托管(A1.4 / A1.5) 2026-09-24 15:41:01 +08:00

README.md

多系统智能体平台 · 重构分支

本分支从零开始,不继承原仓库的提交历史。

这是什么

原 main 是「APS 产品 + 内嵌智能体层」的混合实现。本次重构把它拆成两件事:

  • 平台:客户端 + 平台服务 + Core + 引擎适配 + Provider 契约。从零重写,TypeScript / Node。
  • APS:作为独立业务系统,以现有代码搬迁适配(Python),通过 Provider 契约接入平台。

分支约定

分支 用途
rewrite/platform(本分支) 重构实现;提交历史从首个提交开始
main 原实现,只读参考;切换前另存为 legacy/main 并设为只读
  • 旧代码参考用 git show main:<path>,或另开 worktree 检出 main。
  • 移植旧逻辑时在提交信息里写明来源,例如 移植自 main:server/aps_domain/flex.py——孤儿历史下 git blame 追不到来源。
  • 切换时以本分支强推覆盖 main(--force-with-lease);切换前必须先把 main 备份为 legacy/main。

设计文档

文档 位置
架构设计 docs/architecture.md
实施设计 docs/implementation.md
架构决策记录 docs/adr/
术语与边界一页纸 docs/glossary.md
A0-G 评审材料与结论 docs/review/
能力描述规范 docs/spec/capability-description.md
问法评测集 docs/eval/

两份设计文档由飞书文档导入(A0-G 评审快照,2026-09-23)。导入后以仓库版本为准,改动走提交与 ADR 流程。

目录与包

一个 pnpm monorepo,四个一级目录(架构设计第 2 节):

contracts/                @aps/contracts      共享契约(只有类型,无运行时依赖)
server/                   @aps/server         平台服务:entry / app / agent / core / workflows
server/provider-sdk/      @aps/provider-sdk   业务系统接入平台的契约与契约测试
providers/aps/            @aps/provider-aps   APS 适配器(ERP / EMS 同构)
client/app/               @aps/client-app     界面:对话、工作区、审批
client/desktop/           @aps/desktop        Electron 壳:窗口、本地守护、离线升级
docs/                                         架构、ADR、规范与评测集

依赖方向(A1.2 接入 CI 检查):

contracts  ←  provider-sdk  ←  server  ←  client
                    ↑
              providers/*

快速开始

pnpm install        # 需要 Node >= 22.19.0
pnpm typecheck      # 等价于 tsc -b,按项目引用顺序构建全部包
pnpm verify         # 完整门禁:typecheck + lint + 依赖方向 + 跨库 + 能力描述 + 测试
pnpm dev            # 一键启动:平台服务(5199) + 客户端 dev server(5173)
pnpm start          # 构建全部后由平台服务单端口托管(浏览器打开 http://127.0.0.1:5199)
pnpm dev:server     # 只起平台服务

服务端起来后可访问:/v1/health、/v1/me、/v1/projects、/v1/capabilities、/v1/sessions。 未接入任何业务系统时能力清单为空——这是正确行为(ADR-0009:未接入时平台也要能正常启动)。

开发约定

约定 出处
能力命名与描述七要素 docs/spec/capability-description.md
问法评测集与门槛 docs/eval/README.md
数据存储写法(整数毫秒、应用侧主键、JSONB/TEXT) docs/adr/0007-storage-and-consistency.md
架构决策记录 docs/adr/(写完不改,改结论就新写一份)