Skip to content

Custom & Agent

Custom

Custom 是框架提供的扩展机制,允许开发者实现框架内置识别算法和动作类型无法满足的特殊需求。

  1. 自定义识别 (Custom Recognition)

    当内置的识别算法(如 TemplateMatch、FeatureMatch、OCR 等)无法实现特定的图像识别需求时,可以使用自定义识别方法。

  2. 自定义动作 (Custom Action)

    当内置的动作类型(如 Click、Swipe、InputText 等)无法完成特定的操作需求时,可以执行自定义动作。

主流的编写 Custom 的方法分为两种。

  • 通过UI注册 Custom 的方法请见各 UI 的手册

  • 通过 Agent 注册 Custom 的方法请见:Agent (⭐ 推荐)

在 Pipeline 中调用 Custom 的方法请参考任务流水线协议

Agent

当你需要某些难以用 Pipeline 实现的自定义识别或自定义动作时,Agent 提供了一种更稳妥的扩展方式。

  • 提高稳定性:自定义代码与框架核心隔离,降低因自定义逻辑导致整体失败的风险。
  • 便于扩展:适合承载较复杂、可独立迭代的业务逻辑。
  • 更易维护:框架升级与自定义实现的边界更清晰。
  • 多种语言支持:可自行选择支持的编程语言,并利用该语言的特性。

AgentClient 和 AgentServer

AgentServer

AgentServer 用于注册并执行你编写的自定义识别与自定义动作代码。通常用于实现较复杂的 识别判断业务动作,以及实现 事件监听。它更专注于业务能力本身,而不是主流程调度与框架生命周期管理。

一个简单的 AgentServer 示例参考可见 模板 Commit

什么时候需要编写 AgentServer ?

NOTE

通常语境下,如果没有特别指明,在社区交流中提到 Agent 一般指的是 AgentServer 。

通常建议在以下场景考虑编写:

  • 自定义识别/动作逻辑较复杂,用 Pipeline 实现较为复杂。
  • 自定义识别/动作需要特殊的逻辑或是涉及到算法,无法用 Pipeline 实现。

AgentClient

AgentClient 是 UI 的一部分,其负责与 AgentServer 进行通信。在主流程执行到自定义节点时,AgentClient 会把请求交给 Server,并在对侧执行完成后接收结果,再将结果带回主流程继续执行。它负责把调用链路衔接起来,但本身并不承载具体业务规则。