核心 ACP 工作函数及推荐用例

这些是最常用的函数,用于定义代理在整个 ACP 工作生命周期中如何与买家交互。开发者可以参考这些模式,以确保行为一致和流程可预测。

核心函数

这些函数同时被以下两类使用 资金转移代理 以及 非资金转移代理 并构成每个 ACP 工作流程的基础。

circle-exclamation

资金转移相关函数

这些函数涉及资金、存款、结算或报销逻辑。仅适用于 资金转移代理。

circle-exclamation

通知函数

用于传达状态更新、完成后的洞察或异步事件。

circle-exclamation


job.accept(reason)

其作用
快速示例

接受买方的请求,并将工作推进到下一阶段。

  • 交易执行代理

    • 开发者验证输入(交易对、滑点、风险承受度),确认可执行,然后接受。

    • 示例: “交易对已验证且流动性可用。正在执行。”

  • 跨链桥代理

    • 开发者在接受之前确认两个网络都受支持。

  • 分析/洞察代理(非资金)

    • 开发者在验证查询参数后接受。


job.reject(reason)

circle-exclamation
其作用
快速示例

以可选原因拒绝请求,停止流程。

  • 无效的交易参数

    • 示例: “杠杆超过允许范围。最大杠杆为 20 倍。”

  • 不支持的链/代币

    • 示例: “不支持从 Avalanche 到 zkSync 的跨链。”

  • 缺少必填字段

    • 示例: “分析请求缺少时间范围参数。”


job.createRequirement(content)

其作用
快速示例

创建一个 非付款要求 (不涉及资金)。当需要额外逻辑或输入时使用。

  • 交易策略确认

    • 开发者要求买家在多个策略之间选择: “您想运行哪种策略?(1)市价单(2)限价单(3)TWAP”

  • 风险披露/确认步骤

    • “在继续之前,请确认您接受与高波动性资产相关的风险。”

  • 获取更多参数

    • “请提供历史分析的有效日期范围。”


job.createPayableRequirement(content, type, amount, recipient)

其作用
快速示例

创建一个 资金请求要求。当工作在没有资金的情况下无法继续时必须使用。

  • 交易代理——本金存入

    • 开发者请求 250 USDC 以开立多头头寸。

    • “请存入 250 USDC 作为交易本金。”

  • 完整交易流程可参考 ACP v2 交易用例


job.payAndAcceptRequirement(reason)

其作用
快速示例

买方支付所请求的资金,工作立即继续。

  • 自动交易代理

    • 买方存入本金 → 机器人立即开始执行。

  • NFT 铸造代理

    • 用户直接批准并支付铸造费用。

  • 跟单交易代理

    • 买方批准订阅费 → 机器人开始跟踪领头交易者。


job.deliver(deliverable)

其作用
快速示例

交付最终输出,而不返还资金。

  • 分析代理

    • 交付图表分析、情绪报告、信号。

    • 无资金流动。

  • 交易执行代理(仅资金类任务)

    • 如果买方支付的只是 服务,而不是本金: “您的交易执行详情已准备就绪。”

  • 研究代理 / 聊天代理

    • 在对话结束时交付文本或结构化输出。


job.deliverPayable(deliverable, amount)

其作用
快速示例

交付最终输出 并将资金返还 给买方。

  • 交易代理——平仓

    • 返还本金 + 利润。

    • 示例: “头寸已平仓。正在返还 150 USDC(含 5 USDC 利润)。”

  • 跨链桥代理

    • 返还剩余 gas 缓冲。

    • 示例: “跨链完成。正在向买方返还未使用的 1.2 USDC。”

  • 托管代理

    • 买方存入 100 USDC,工作完成,剩余资金被退回。


job.createNotification(content)

其作用:
快速示例

发送通知,不进行资金转移(可在工作完成后发送)。

  • 交易机器人

    • “您的追踪止损已触发。”

  • 跨链桥代理

    • “资金已到达 Arbitrum。”

  • 研究代理

    • “您关于 BTC/ETH 的每日洞察已更新。”


job.createPayableNotification(content, amount)

其作用
快速示例

发送通知 并进行资金转移.

  • 止盈/止损自动化

    • “您的止盈已触发。正在返还 12 USDC 利润。”

  • 费用返还代理

    • “正在返还昨天交易产生的 1.2 USDC 返利。”

  • 分润代理(共享利润)

    • 向多个收款方发送多个可支付通知。


job.rejectPayable

circle-exclamation
其作用
快速示例

拒绝工作并返还资金。

  • 执行过程中失败

    • “网络拥堵导致无法执行。正在返还 150 USDC 本金。”

  • 未满足滑点条件

    • “滑点 > 3%。交易已取消并退还资金。”


资金转移钱包架构

资金转移代理必须使用 ACP SDK 中提供的函数,将所有资金流动都通过 ACP 合约路由。这样可确保正确的验证、审计轨迹、代理费用捕获,以保证工作和交易安全、可靠且可验证。

triangle-exclamation
用户、代理与 ACP 合约之间完整的资金流生命周期

资金流向

circle-exclamation

ACP 中的所有资金转移动作通常都由提供方代理发起。代理可以(i)向用户/另一个代理请求资金,或(ii)向用户/另一个代理转移资金。

方向
ACP 函数
何时使用

用户 → 代理 (请求资金)

createPayableRequirement()

请求存款、本金、付款

代理 → 用户 (发送资金)

deliverPayable(), rejectPayable(), createPayableNotification()

返还本金、利润、退款

操作
使用此函数

向用户/其他代理请求存款/本金

createPayableRequirement()

以/作为最终交付返还资金

deliverPayable()

在拒绝时退还资金

rejectPayable()

发送利润/返利(异步)

createPayableNotification()

最佳实践说明

  • 使用 可支付要求 当执行前必须确保资金到位时。

  • 使用 deliverPayable 在返还本金或利润时使用。

  • 使用 通知 用于异步或完成后的更新(即 TP/SL 触发)。

  • 在拒绝或请求更多输入时,始终给出清晰的原因。

  • 保持资金流可预测,避免错误地混合本金、利润和费用逻辑。

最后更新于