refactor: extract @uncaged/workflow-util-agent + smart prompt building #14

Closed
opened 2026-05-06 07:15:08 +00:00 by xiaoju · 0 comments
Owner

背景

  1. workflow-agent-cursorworkflow-agent-hermes 有重复代码(spawn-cli、build-agent-prompt)
  2. build-agent-prompt 把所有 step 全文放进去,context 会爆

变更

1. 新包 @uncaged/workflow-util-agent

从两个 agent adapter 提取公共代码:

packages/workflow-util-agent/
  src/
    spawn-cli.ts          # spawnCli 函数
    build-agent-prompt.ts # buildAgentPrompt 函数
    index.ts

2. Smart prompt 策略

buildAgentPrompt 改为只保留完整的 start + 最后一步,中间步骤用 meta 做摘要:

[System Prompt]

## Task
<start.content — original prompt, full>

## Previous Steps

### Step 1: planner
Summary: {"plan": "修改 auth middleware...", "files": ["src/auth.ts"]}

### Step 2: coder
Summary: {"filesChanged": ["src/auth.ts", "src/session.ts"], "summary": "Added token expiry check"}

## Latest Step: reviewer (full content)
<reviewer 的完整 content>

## Tools
Use `uncaged-workflow thread <threadId>` to read full details of any previous step.

规则:

  • start(prompt):完整
  • 最后一步:完整(content + meta)
  • 中间步骤:只放 JSON.stringify(step.meta)
  • 末尾提示 agent 可以用 CLI 查看详细内容

3. 更新 agent adapters

  • workflow-agent-cursor:删除 spawn-cli.ts 和 build-agent-prompt.ts,改 import 自 @uncaged/workflow-util-agent
  • workflow-agent-hermes:同上

4. 命名规范确认

  • workflow-agent-xxx — Agent Adapter 包
  • workflow-util-xxx — 工具/公共包
  • workflow-role-xxx — Role 包
  • workflow-template-xxx — Workflow 模板包

验证

  • spawn-cli 和 build-agent-prompt 在 util 包中
  • 两个 agent adapter 不再有重复代码
  • prompt 只有 start + 最后一步完整,中间步骤用 meta 摘要
  • bun test 通过
  • bunx biome check . 通过
## 背景 1. `workflow-agent-cursor` 和 `workflow-agent-hermes` 有重复代码(spawn-cli、build-agent-prompt) 2. build-agent-prompt 把所有 step 全文放进去,context 会爆 ## 变更 ### 1. 新包 @uncaged/workflow-util-agent 从两个 agent adapter 提取公共代码: ``` packages/workflow-util-agent/ src/ spawn-cli.ts # spawnCli 函数 build-agent-prompt.ts # buildAgentPrompt 函数 index.ts ``` ### 2. Smart prompt 策略 buildAgentPrompt 改为只保留完整的 start + 最后一步,中间步骤用 meta 做摘要: ``` [System Prompt] ## Task <start.content — original prompt, full> ## Previous Steps ### Step 1: planner Summary: {"plan": "修改 auth middleware...", "files": ["src/auth.ts"]} ### Step 2: coder Summary: {"filesChanged": ["src/auth.ts", "src/session.ts"], "summary": "Added token expiry check"} ## Latest Step: reviewer (full content) <reviewer 的完整 content> ## Tools Use `uncaged-workflow thread <threadId>` to read full details of any previous step. ``` 规则: - start(prompt):完整 - 最后一步:完整(content + meta) - 中间步骤:只放 `JSON.stringify(step.meta)` - 末尾提示 agent 可以用 CLI 查看详细内容 ### 3. 更新 agent adapters - `workflow-agent-cursor`:删除 spawn-cli.ts 和 build-agent-prompt.ts,改 import 自 `@uncaged/workflow-util-agent` - `workflow-agent-hermes`:同上 ### 4. 命名规范确认 - `workflow-agent-xxx` — Agent Adapter 包 - `workflow-util-xxx` — 工具/公共包 - `workflow-role-xxx` — Role 包 - `workflow-template-xxx` — Workflow 模板包 ## 验证 - [ ] spawn-cli 和 build-agent-prompt 在 util 包中 - [ ] 两个 agent adapter 不再有重复代码 - [ ] prompt 只有 start + 最后一步完整,中间步骤用 meta 摘要 - [ ] bun test 通过 - [ ] bunx biome check . 通过
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#14