feat: 白龙马数字意识框架 v2.2.0 - 3D意识空间、多技能协同、自我进化系统
This commit is contained in:
72
_patch_coord.cjs
Normal file
72
_patch_coord.cjs
Normal file
@@ -0,0 +1,72 @@
|
||||
const fs = require("fs");
|
||||
let code = fs.readFileSync("src/agents/coordinator.js", "utf8");
|
||||
|
||||
// Step 1: Remove old bus.on() registrations from onInit
|
||||
code = code.replace(
|
||||
/ \/\/ 注册消息处理器\n([\s\S]*?)this\._taskSeq = 0/m,
|
||||
' // 消息路由已移至 onMessage()\n\n this._taskSeq = 0'
|
||||
);
|
||||
|
||||
// Step 2: Add onMessage override (insert before onHeartbeat)
|
||||
const hbIdx = code.indexOf(" async onHeartbeat() {");
|
||||
const onMessage = `
|
||||
async onMessage(msg) {
|
||||
await super.onMessage(msg)
|
||||
switch (msg.type) {
|
||||
case MessageType.AGENT_READY: return this._onAgentReady(msg)
|
||||
case MessageType.AGENT_DIE: return this._onAgentDie(msg)
|
||||
case MessageType.TASK_ASSIGN: return this._onTaskAssign(msg)
|
||||
case MessageType.TASK_RESULT: return this._onTaskResult(msg)
|
||||
case MessageType.TASK_FAILED: return this._onTaskFailed(msg)
|
||||
case MessageType.USER_INPUT: return this._onUserInput(msg)
|
||||
case MessageType.REFLECT: return this._onReflect(msg)
|
||||
}
|
||||
}
|
||||
|
||||
`;
|
||||
code = code.slice(0, hbIdx) + onMessage + code.slice(hbIdx);
|
||||
|
||||
// Step 3: Add _onTaskAssign handler (insert before _onAgentReady)
|
||||
const arIdx = code.indexOf(" /** @private */\n _onAgentReady");
|
||||
const taskAssign = ` /** @private */
|
||||
_onTaskAssign(msg) {
|
||||
const { taskId, action, params, priority } = msg.payload || {}
|
||||
console.log(\`[Coordinator] 收到任务 \${taskId || '(no-id)'}: \${action}\`)
|
||||
|
||||
const target = this._routeTask(action, params || {})
|
||||
if (!target) {
|
||||
console.log(\`[Coordinator] 无法路由任务 "\${action}",无匹配 Agent\`)
|
||||
this.send(MessageType.TASK_FAILED, msg.from, {
|
||||
taskId,
|
||||
reason: 'no_matching_agent',
|
||||
}, { replyTo: msg.id })
|
||||
return
|
||||
}
|
||||
|
||||
const realTaskId = taskId || \`task_\${++this._taskSeq}_\${Date.now()}\`
|
||||
const task = {
|
||||
id: realTaskId,
|
||||
action,
|
||||
params: params || {},
|
||||
assignedTo: target,
|
||||
status: 'running',
|
||||
createdAt: Date.now(),
|
||||
requesterId: msg.from,
|
||||
}
|
||||
this._tasks.set(realTaskId, task)
|
||||
|
||||
this.send(MessageType.TASK_ASSIGN, target, {
|
||||
taskId: realTaskId,
|
||||
action,
|
||||
params: params || {},
|
||||
priority: priority ?? Priority.NORMAL,
|
||||
})
|
||||
|
||||
console.log(\`[Coordinator] 任务 \${realTaskId} -> \${target}\`)
|
||||
}
|
||||
|
||||
`;
|
||||
code = code.slice(0, arIdx) + taskAssign + code.slice(arIdx);
|
||||
|
||||
fs.writeFileSync("src/agents/coordinator.js", code, "utf8");
|
||||
console.log("OK: patched coordinator.js");
|
||||
Reference in New Issue
Block a user