Commit Graph

2 Commits

Author SHA1 Message Date
zh b20dbd17d0 feat(agent): 引擎可替换验证(A3.9)
一致性用例支持两种工具执行模式(platform 由平台执行、runtime 由引擎侧扩展桥执行)与场景跳过(跳过要记原因,不算通过),并支持把场景会话绑定到平台侧真实会话(Pi 走扩展桥时平台必须真的存在该会话)。新增 scripts/engine-conformance.mjs:同一套用例对假引擎与 Pi 各跑一遍,产出 docs/eval/engine-conformance-<日期>.md 对比报告。实测两轮都是 11 项检查 0 项未通过;过程中修掉一个保真缺陷——Pi 工具名是下划线形式(fake_echo),平台事件里应还原成能力 id(fake.echo),已加反向映射并补单测。测试 76 → 77 全绿。
2026-09-29 10:35:40 +08:00
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