zh
|
8a9e9a7211
|
feat(agent): 能力桥——Pi 真正能调用平台能力(A3.4 / A3.11)
新增 Pi 扩展(server/agent/pi/extension/aps-bridge.ts):把平台能力目录注册成 Pi 工具,工具执行时回调平台的 /internal/tool-call(loopback + 内部令牌),平台侧收口到 Core.invoke。平台侧每次建会话写一份桥配置(含能力清单与会话 id,放 ~/.aps/pi-bridge,权限 0600),通过 -e 显式加载扩展(--no-extensions 仍保留,只加载平台自己的扩展)。运行时接口新增 toolExecution 区分工具由谁执行:fake=platform(平台执行并回填)、pi=runtime(扩展在 Pi 进程里执行,平台只观察事件);回合执行器按模式分流,避免重复执行。真引擎实测通过:问「请调用 fake_echo 工具把这句话回显给我」→ 模型自己选出工具 → 回执带 executionId 返回 → 回答里引用该 id;HTTP 查该 executionId 得 {status:succeeded, result:{echo:'工具桥通了'}}。测试 60 → 66(新增扩展桥 3 条 + 回合执行器分流 3 条),全绿。
|
2026-09-28 22:03:44 +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 |
zh
|
cd883d9ad7
|
feat(agent): 规则计划器按声明的 text/query 参数填充原始问法
让假引擎的默认计划器能把用户原话作为 text/query 参数传给能力,M1 演示与联调不再因为缺参数而失败;能力声明里没有这两个参数时不受影响。
|
2026-09-28 15:39:21 +08:00 |
zh
|
d03f8d7414
|
feat(agent,eval): 假引擎接入服务端并跑通问法评测(A2.6 / A2.7,M1 闭环)
服务端改用 AgentRuntime 接口:新增 turn-runner 把 RuntimeEvent 翻成平台事件(text→message.delta、tool_call→tool.call 并走 Core.invoke、tool_result→tool.result、turn_end→message.completed+run.state、error→error),工具描述由能力目录投影;取消时先推 cancelling 再中止引擎;关停时主动断开 SSE 长连接。默认引擎为假引擎 + 规则计划器,M1 链路打通:假引擎发起工具调用 → Core.invoke → 假 Provider → 回执回流 → 继续说话(scripts/m1-loop.test.mjs 验证)。A2.6:providers 下 17 个能力描述文件,七要素 CI 检查实际校验通过。A2.7:scripts/eval-intents.mjs 跑手 + 规则基线报告(工具选择 68.2%、参数命中 23.1%、澄清率 33.3%、误澄清 13.6%、幻觉 0、越权 0),修正了期望参数占位符无法字面比对与比率显示两个自身缺陷。测试 46 → 47 全绿。
|
2026-09-28 15:38:42 +08:00 |
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 |
zh
|
d2aa837579
|
feat(workspace): pnpm monorepo 骨架与包边界(A1.1)
六个包:@aps/contracts、@aps/provider-sdk、@aps/server、@aps/client-app、@aps/desktop、@aps/provider-aps。依赖方向 contracts <- provider-sdk <- server <- client,providers/* 只依赖 provider-sdk。TypeScript 项目引用串起构建,pnpm typecheck 全绿。server 内部按 entry/app/agent/core/workflows 建目录并写明各自不该出现什么。
|
2026-09-23 19:29:57 +08:00 |