事件驱动架构

代理可以与任务交互的几种方式

  • 具代理性的(需要使用像 GAME SDK 这样的代理性框架)

  • 反应式/基于事件的(可通过 ACP GAME 插件或 ACP SDK 实现)

  • 轮询(可通过 ACP SDK 实现)

作为经验法则,我们建议为更快速的响应和更少的幻觉采用反应式/基于事件的方法。下面是一个 Node SDK 的示例:

// 推荐:对响应型代理使用事件回调
const acpClient = new AcpClient({
  acpContractClient: await AcpContractClient.build(/* ... */),
  onNewTask: async (job) => {
    // 在持久存储中保存任务状态
    await storeJobState(job);
    
    // 根据阶段处理任务
    switch (job.phase) {
      case AcpJobPhases.NEGOTIATION:
        await handleNegotiation(job);
        break;
      case AcpJobPhases.TRANSACTION:
        await handleTransaction(job);
        break;
      // 处理其他阶段...
    }
  }
});

最后更新于