aps-agent/server
zh 2c0cfb85d0 feat(agent): Pi 子进程接入(A3.3)
新增 server/agent/pi/runtime.ts:用官方 RpcClient 拉起 pi --mode rpc,一个会话一个进程(ADR-0006)。启动参数带 --no-builtin-tools / --no-extensions / --no-skills / --no-context-files,Pi 自带的 read/bash/edit/write 全部关掉,工具只能来自能力目录(扩展桥在 A3.11 接)。密钥经环境变量注入子进程(不进命令行,避免进程列表泄露);Pi 自己的 session 文件放 ~/.aps/pi-sessions 只作同引擎恢复,会话历史仍归平台。事件映射:message_update(text_delta)→text、tool_execution_start/end→tool_call/tool_result、message_end(assistant, stopReason=error)→error 并按六分类归一、agent_settled→turn_end。配置层加引擎选择:有密钥自动用 Pi、否则假引擎,可用 APS_ENGINE 覆盖;要求 Pi 但没有密钥时明确回退并告警。未配置密钥时 createSession 快速失败并给出配置指引,不再静默挂住。测试 56 → 60(59 通过 + 1 条需 APS_PI_INTEGRATION=1 的真实调用默认跳过);用假密钥实测:401 在 340ms 内被归到 forbidden,随后正常收尾。过程中修掉自身缺陷:错误回合的 finishReason 被 turn_end 覆盖回 stop,改为取最严重结果。
2026-09-28 20:21:24 +08:00
..
agent feat(agent): Pi 子进程接入(A3.3) 2026-09-28 20:21:24 +08:00
app feat(agent): Pi 子进程接入(A3.3) 2026-09-28 20:21:24 +08:00
bin feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16) 2026-09-28 16:01:04 +08:00
core feat(storage): 会话与消息落库 SQLite(A3.7,决策 D16) 2026-09-28 16:03:12 +08:00
entry feat(core): 引擎工具回调端点与会话归属者(A2.5) 2026-09-24 15:50:07 +08:00
provider-sdk feat(core): Provider SDK、能力目录与 Core.invoke(A2.1-A2.4) 2026-09-24 15:48:45 +08:00
workflows feat(workspace): pnpm monorepo 骨架与包边界(A1.1) 2026-09-23 19:29:57 +08:00
README.md feat(workspace): pnpm monorepo 骨架与包边界(A1.1) 2026-09-23 19:29:57 +08:00
config.ts feat(agent): Pi 子进程接入(A3.3) 2026-09-28 20:21:24 +08:00
index.ts feat(agent): Pi 子进程接入(A3.3) 2026-09-28 20:21:24 +08:00
package.json feat(agent): Pi 子进程接入(A3.3) 2026-09-28 20:21:24 +08:00
tsconfig.json feat(config): 模型与端点配置层(ADR-0011,决策 D15 / D16) 2026-09-28 16:01:04 +08:00

README.md

@aps/server

平台服务。目录按架构设计第 2 节建立,各模块的边界与「不该出现什么」以该节为准。

目录 职责 不该出现什么
entry/ HTTP / SSE 入口、会话、鉴权 业务规则、直接调业务系统
app/ 请求编排、能力查询、审批流转、事件推送 引擎内部概念、直接 import Pi
agent/ 引擎适配:AgentRuntime 接口 + Pi / Codex 实现 业务规则、碰凭据
core/ 能力目录、身份映射、策略、凭据、执行、审计 业务数据、直接拼业务系统 URL
workflows/ 跨系统顺序流程 配置化 DAG 引擎

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

contracts  ←  provider-sdk  ←  server  ←  client
                    ↑
              providers/*
  • providers/* 只依赖 @aps/provider-sdk(与 @aps/contracts),不依赖 @aps/server
  • 只有 agent/ 允许 import 引擎包;其它模块必须经这一层