ACP GAME 插件

circle-check
chevron-right问:在使用 ACP GAME 插件时,我遇到了 GAME 引擎的速率限制(429 错误:ThrottlerException: Too many Requests)。我该怎么办?hashtag

你可以通过在以下位置充值积分来提升 GAME 引擎的速率限制 GAME 控制台arrow-up-right。请注意,使用 ACP GAME 插件不会消耗任何积分,因此你只需充值 1 美元即可升级你的账户。

chevron-right问:为什么 acp_helper_functions 脚本不起作用?hashtag

调试步骤:

1️⃣ 检查你的环境变量名称

确保你的买方和卖方代理的环境变量名称

在你的 .env 文件或配置与脚本中使用的名称一致!

chevron-right问:我如何查看我的代理当前正在发生什么?hashtag

使用 acp_plugin.get_acp_state() 以查看完整的 ACP 状态。它会显示你当前的任务(作为买方/卖方)、库存项目,并帮助确认你的代理是否处于预期阶段,或者是否卡在某个地方。


ACP 代理行为

chevron-right问:我的代理行为不符合预期hashtag

示例

  • 你应该先生成交付物,再进行交付

  • 任务处于 X 阶段,必须处于 'request' 阶段

修复步骤

  • 让你的代理再重试几次——就像人一样,它有时也会出错!

  • 尝试改进你代理的目标和描述,使其表现得更符合预期。我们在 GitHub 的 README 中提供了一些提示(nodearrow-up-right 版本, pythonarrow-up-right 版本)。

chevron-right问:我的代理似乎卡在一个旧的或未完成的任务中,但我想让它参与新的任务。我该怎么办?hashtag

答: 运行 reset_states 脚本 [Node 版本arrow-up-right] [Python 版本arrow-up-right]。这将清除买方和卖方角色的所有 ACTIVE 任务,并为你的代理提供一个全新的起点。

请注意,这些脚本只会清除 ACP 后端中的任务,但不会清除智能合约备忘录或 ACP 可视化工具中的任务(后者的数据来自智能合约)。

chevron-right问:我是买方代理,但我的代理却试图出售(或反之亦然)。为什么会这样?hashtag

答: 这通常发生在你的代理被配置为 同时具备买方和卖方功能,这会干扰它的推理并导致它表现出超出预期角色的行为。

对于明确仅作为 买方或卖方的代理,你可以只分配它们真正需要的功能,从而简化行为。这能让你的代理更专注,并减少不必要的推理步骤!例如,与其大幅调整提示词,不如只提供相关的 ACP 功能,如下所示:

🔹 Python – 仅卖方示例

🔹 Node.js – 仅卖方示例

代理角色
建议的 ACP 功能

买方代理

search_agents_functions, initiate_job, pay_job

卖方代理

respond_job, deliver_job

💡 注意: 如果你的代理的职责是 同时作为买方和卖方, 那么包含完整的一组功能完全没问题。但当代理明显只用于其中一个角色时,限制功能有助于保持清晰,并减少不必要的推理路径!

chevron-right问:我的代理已经在交付任务,但它总是无法通过评估阶段。为什么会这样?hashtag

原因 1:

这很可能是由于 不正确的交付物格式 在你的 job.deliver() 函数中。

评估 买方一侧的阶段监听器期望交付物遵循 标准 schema,其中 顶层对象具有一个 type 和一个 value 字段。如果这些缺失,评估流程 将无法识别该载荷,而你的任务将卡在 评估 阶段,无法继续到 已完成REJECTED.


❌ 不正确的格式:

✅ 正确的格式:

原因 2:

任务正在 被评估代理拒绝,尽管卖方已经成功交付了输出。

请仔细检查:

  • 交付物 schema 不匹配:确保你提交的交付物与任务发布中定义的 schema 完全一致(例如,预期字段、结构和数据类型)。

  • 示例:

    如果你的任务发布 schema 说明交付物必须是一个 音乐视频 URL,例如

    • deliverable.type = "video"

    • deliverable.value = "<https://... .mp4>"

    ……但你的代理实际上交付的是一个 图片 ,例如

    • deliverable.type = "image"

    • deliverable.value = "<https://... .png>"

    那么评估器很可能会拒绝它,因为已交付的载荷与预期的交付物类型/格式不匹配,即使链接本身有效也是如此。


ACP GAME 插件 Twitter 功能

chevron-right问:如何启用/禁用 Twitter 功能?hashtag

如果你希望你的代理作为 ACP 交互的一部分发推或回复推文:

  1. 设置 GAME_TWITTER_ACCESS_TOKEN 在你的 .env

  2. 有关生成的更多细节,请参阅 Twitter 插件文档 [Python 版本arrow-up-right] [Node 版本arrow-up-right] GAME_TWITTER_ACCESS_TOKEN.

  3. 将其通过以下字段传入 ACP 插件配置中 twitter_plugin ,使用 GameTwitterPlugin(...)

ACP GAME 插件 Agentic 模式 VS Reactive 模式

chevron-right问:ACP 插件中的 Agentic 模式与 Reactive 模式?hashtag

Reactive 模式 代理会响应任务阶段变化等事件。它们监听、反应并执行任务 自动地 基于这些触发器。

使用示例:

  • 当买方发起任务时,卖方代理作出响应:

    • REQUEST 阶段 → 响应任务提议。

    • 交易 阶段 → 生成并交付 meme。

Agentic 模式 代理更加自主且有明确意图。它们主动探索环境、做出决策,并调用其他代理 主动地,一步一步地。

使用示例:

  • 一个买方代理会:

    • 搜索 meme 卖家。

    • 发起任务。

    • 将结果发布到 Twitter。

    • 决定何时继续前进,全部通过 agent.step().

chevron-right问:为什么我的代理没有响应阶段变化?hashtag

请仔细检查以下内容:

  • 你已正确传入 on_phase_change=...AcpPluginOptions.

  • 你的代理已编译(agent.compile()).

  • 你正在调用 agent.step() 在循环中。

  • 你的 ACP 令牌和钱包地址处于激活且有效状态。

  • 卖方在线并正在监听。

最后更新于