Phase 2 Testing: workflow-agent-react 包 (#222) #225

Closed
opened 2026-05-13 02:31:27 +00:00 by xiaoju · 1 comment
Owner

验证目标

@uncaged/workflow-agent-react 包实现 createReactAdapter,复用 workflow-reactor 的 ReAct 循环,返回 AdapterFn

同时修复 Phase 1 Review 反馈:

  • wrapAgentAsAdapter 抽到 workflow-util-agent 共享
  • advanceOneRoundchildThread 支持从 adapter 返回

测试步骤

包结构

  • Step 1: 包存在且可构建

    ls packages/workflow-agent-react/package.json
    ls packages/workflow-agent-react/src/index.ts
    

    预期: 文件存在

  • Step 2: 导出正确

    grep -n "createReactAdapter\|ReactAdapterConfig\|ReactToolHandler" packages/workflow-agent-react/src/index.ts
    

    预期: 三个都有导出

createReactAdapter 功能

  • Step 3: mock LLM 测试 — 纯 resolve(无工具调用)

    cd packages/workflow-agent-react && bun test
    

    预期: adapter 接收 (prompt, schema) 返回 RoleFn,RoleFn 执行后返回类型安全的 T

  • Step 4: mock LLM 测试 — 工具调用后 resolve
    预期: LLM 先调用工具,拿到工具结果后调用 resolve tool,返回 T

  • Step 5: mock LLM 测试 — schema 校验失败重试
    预期: resolve 参数不符合 schema 时,推送错误反馈,LLM 重试

  • Step 6: mock LLM 测试 — maxRounds 超限
    预期: 超过 maxRounds 时抛出错误

wrapAgentAsAdapter 共享

  • Step 7: 函数在 util-agent 中导出

    grep -n "wrapAgentAsAdapter" packages/workflow-util-agent/src/index.ts
    

    预期: 有导出

  • Step 8: bundle-entry 不再重复定义

    grep -c "wrapAgentAsAdapter" packages/workflow-template-develop/bundle-entry.ts packages/workflow-template-solve-issue/bundle-entry.ts
    

    预期: 只有 import,没有函数定义

childThread 支持

  • Step 9: RoleFn 返回值支持 childThread
    grep -A3 "type RoleFn\|type RoleResult" packages/workflow-protocol/src/types.ts
    
    预期: 返回值包含 childThread 字段

全量验证

  • Step 10: 全量测试通过
    cd ~/repos/workflow && bun test
    
    预期: 全部 pass

验证完成标准

所有 checkbox 打勾
代码 review 通过
全量测试通过

Ref: #222


小橘 🍊(NEKO Team)

## 验证目标 `@uncaged/workflow-agent-react` 包实现 `createReactAdapter`,复用 `workflow-reactor` 的 ReAct 循环,返回 `AdapterFn`。 同时修复 Phase 1 Review 反馈: - `wrapAgentAsAdapter` 抽到 `workflow-util-agent` 共享 - `advanceOneRound` 中 `childThread` 支持从 adapter 返回 ## 测试步骤 ### 包结构 - [ ] **Step 1: 包存在且可构建** ```bash ls packages/workflow-agent-react/package.json ls packages/workflow-agent-react/src/index.ts ``` **预期:** 文件存在 - [ ] **Step 2: 导出正确** ```bash grep -n "createReactAdapter\|ReactAdapterConfig\|ReactToolHandler" packages/workflow-agent-react/src/index.ts ``` **预期:** 三个都有导出 ### createReactAdapter 功能 - [ ] **Step 3: mock LLM 测试 — 纯 resolve(无工具调用)** ```bash cd packages/workflow-agent-react && bun test ``` **预期:** adapter 接收 (prompt, schema) 返回 RoleFn,RoleFn 执行后返回类型安全的 T - [ ] **Step 4: mock LLM 测试 — 工具调用后 resolve** **预期:** LLM 先调用工具,拿到工具结果后调用 resolve tool,返回 T - [ ] **Step 5: mock LLM 测试 — schema 校验失败重试** **预期:** resolve 参数不符合 schema 时,推送错误反馈,LLM 重试 - [ ] **Step 6: mock LLM 测试 — maxRounds 超限** **预期:** 超过 maxRounds 时抛出错误 ### wrapAgentAsAdapter 共享 - [ ] **Step 7: 函数在 util-agent 中导出** ```bash grep -n "wrapAgentAsAdapter" packages/workflow-util-agent/src/index.ts ``` **预期:** 有导出 - [ ] **Step 8: bundle-entry 不再重复定义** ```bash grep -c "wrapAgentAsAdapter" packages/workflow-template-develop/bundle-entry.ts packages/workflow-template-solve-issue/bundle-entry.ts ``` **预期:** 只有 import,没有函数定义 ### childThread 支持 - [ ] **Step 9: RoleFn 返回值支持 childThread** ```bash grep -A3 "type RoleFn\|type RoleResult" packages/workflow-protocol/src/types.ts ``` **预期:** 返回值包含 childThread 字段 ### 全量验证 - [ ] **Step 10: 全量测试通过** ```bash cd ~/repos/workflow && bun test ``` **预期:** 全部 pass ## 验证完成标准 ✅ 所有 checkbox 打勾 ✅ 代码 review 通过 ✅ 全量测试通过 Ref: #222 --- 小橘 🍊(NEKO Team)
Author
Owner

Phase 2 验证通过。workflow-agent-react 已实现 createReactAdapter,wrapAgentAsAdapter 已演化为 createTextAdapter (0.3.17)。

— 小橘 🍊(NEKO Team)

Phase 2 验证通过。workflow-agent-react 已实现 createReactAdapter,wrapAgentAsAdapter 已演化为 createTextAdapter (0.3.17)。 — 小橘 🍊(NEKO Team)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#225