问题描述
Evolver 运行完整后没有自动接取 bounty task。taskReceiver 模块功能正常,但 evolve.js 内部调用链路不工作。
复现步骤
- 配置
.env(A2A_HUB_URL, A2A_NODE_ID, A2A_NODE_SECRET, WORKER_ENABLED=1)
- 在
genes.json 的 gene_gep_innovate_from_opportunity 中添加 "bounty_task" 到 signals_match
- 运行
node index.js
- 观察输出
实际行为
- 21 个 evolution cycle 全部完成
- 输出显示
External candidates (A2A receive zone; staged only, never execute directly): (none)
- 没有任何任务被 fetch 或 claim
预期行为
Evolver 应通过 taskReceiver 自动 fetch Hub 任务、评分、claim 并注入 bounty_task 信号到 evolution loop。
已验证
taskReceiver 模块直接调用(正常工作)
```
const taskReceiver = require("./src/gep/taskReceiver");
const result = await taskReceiver.fetchTasks();
// → 成功返回 10 个任务
```
taskToSignals 信号生成(正常工作)
```
taskReceiver.taskToSignals({ title: "Test", signals: "kafka", bounty_id: "x" });
// → ["kafka", "external_task", "bounty_task"] ✅
```
genes.json 匹配(已修复)
在 gene_gep_innovate_from_opportunity 的 signals_match 中添加了 "bounty_task",GEP prompt 中正确显示。
Hub 认证(正常)
/a2a/hello → 200, 获得 node_secret
/a2a/task/list → 200, 返回任务列表
/a2a/task/claim → 手动调用 200(需 REST 格式,非 GEP-A2A envelope)
环境
- Evolver: 1.69.16 (main: 95e384e)
- Node.js: v24.14.1
- OS: Linux 6.17.0-22-generic
- genes.json: 4 genes, bounty_task 已添加到 innovate gene
可能原因
src/evolve.js 完全混淆(javascript-obfuscator),无法排查:
- evolve.js 是否实际调用了
taskReceiver.fetchTasks()?
- 调用频率/触发条件是什么?
- "A2A receive zone" 是推送模式还是拉取模式?
建议
- 确认 evolve.js 是否在 cycle 开始时调用 taskReceiver
- 如需手动触发,提供环境变量或 API
- 考虑提供未混淆的 taskReceiver 集成示例
临时解决方案
目前可通过 Hub REST API 手动接取任务:
```
POST /a2a/task/claim
{ "task_id": "", "node_id": "<node_id>" }
```
但自动流程不工作。
问题描述
Evolver 运行完整后没有自动接取 bounty task。taskReceiver 模块功能正常,但 evolve.js 内部调用链路不工作。
复现步骤
.env(A2A_HUB_URL, A2A_NODE_ID, A2A_NODE_SECRET, WORKER_ENABLED=1)genes.json的gene_gep_innovate_from_opportunity中添加"bounty_task"到signals_matchnode index.js实际行为
External candidates (A2A receive zone; staged only, never execute directly): (none)预期行为
Evolver 应通过 taskReceiver 自动 fetch Hub 任务、评分、claim 并注入 bounty_task 信号到 evolution loop。
已验证
taskReceiver 模块直接调用(正常工作)
```
const taskReceiver = require("./src/gep/taskReceiver");
const result = await taskReceiver.fetchTasks();
// → 成功返回 10 个任务
```
taskToSignals 信号生成(正常工作)
```
taskReceiver.taskToSignals({ title: "Test", signals: "kafka", bounty_id: "x" });
// → ["kafka", "external_task", "bounty_task"] ✅
```
genes.json 匹配(已修复)
在
gene_gep_innovate_from_opportunity的signals_match中添加了"bounty_task",GEP prompt 中正确显示。Hub 认证(正常)
/a2a/hello→ 200, 获得 node_secret/a2a/task/list→ 200, 返回任务列表/a2a/task/claim→ 手动调用 200(需 REST 格式,非 GEP-A2A envelope)环境
可能原因
src/evolve.js完全混淆(javascript-obfuscator),无法排查:taskReceiver.fetchTasks()?建议
临时解决方案
目前可通过 Hub REST API 手动接取任务:
```
POST /a2a/task/claim
{ "task_id": "", "node_id": "<node_id>" }
```
但自动流程不工作。