AgentSkillsCN

logistics-protocol

制定能量分配、主动配送及供应链管理的相关规则。在优化搬运工逻辑或调试资源短缺问题时,可调用此功能。

SKILL.md
--- frontmatter
name: "logistics-protocol"
description: "定义能量分配、主动配送和供应链管理的规则。在优化搬运工逻辑或调试资源短缺时调用。"

Logistics Protocol (物流协议)

此技能定义了殖民地内能量物流的标准操作程序。它规定了能量如何从源头(Sources)输送到目的地(Sinks),以及 Creep 如何协调供需。

1. 供应链层级

源头(生产者)

  • 主要:掉落资源(衰减快,拾取优先级最高)。
  • 次要:采矿容器(标准来源)。
  • 第三:墓碑和遗迹(机会性)。

目的地(消费者)

  • 第1级(关键):Spawn、Extensions(生存)。
  • 第1.5级(优先建造):在关键建筑(Spawn/Extension/Tower)上工作且激活了 priorityRequest 的建造者。
  • 第2级(防御):Towers(能量 < 500)。
  • 第3级(主动支持)
    • 升级者:当能量 < 50% 且正在工作时。
    • 建造者:当能量 < 50%(标准主动配送)。
  • 第4级(存储):Storage、Terminal(盈余)。
  • 第5级(缓冲):普通容器、Controller Link。

2. 主动配送协议

搬运工使用加权评分系统来选择最佳配送目标,平衡优先级和距离。

目标选择算法

Score = BasePriority - (Distance * 1.0)

基础优先级

  • 200:Spawn / Extension(关键生存)。
  • 150:优先建造者(标记为 priorityRequest)。
  • 120:Tower(防御/维修)。
  • 100:升级者(活跃)。
  • 80:建造者(标准)。
  • 50:目标容器(缓冲)。
  • 10:Storage(盈余)。

逻辑

  • 搬运工扫描房间内所有有效目标。
  • 如果优先级差距较小,较近的低级目标可能会覆盖较远的高级目标(尽管当前差距设计得足够稳健)。
  • 多请求处理:搬运工通过每个 tick 重新评估最佳目标来固有地处理多个请求。如果携带足够的能量供多个 creep 使用,它将首先交付给得分最高的目标,然后是下一个。

3. 请求信号

Creep(升级者/建造者)可以通过 Memory 发出求救/需求信号:

标准请求(恐慌模式)

  • 信号:设置 memory.requestingEnergy = true
  • 条件:能量 == 0,附近没有供应。
  • 响应:标准搬运工配送(第3级)。

优先请求(智能供应)

  • 信号:设置 memory.requestingEnergy = true 并且 memory.priorityRequest = true
  • 标记:建造者在 memory.targetStructType 中标记作业类型(例如 "spawn"、"extension")。
  • 条件
    • 角色是建造者
    • 目标是关键建筑(Spawn/Extension/Tower)。
    • 能量 < 30%
  • 响应:搬运工将其视为第1.5级优先级,覆盖 Towers 和升级者。

终止

  • store.getFreeCapacity() == 0 时,Creep 清除标志。

4. 防饥饿规则

  • 建造者死锁:如果建造者能量为 0 且没有供应,它绝不能阻挡采矿点。它应该移动到"等待区"或请求配送。
  • 搬运工空闲:如果搬运工有能量但没有标准目的地,它必须寻找升级者来倾倒能量,而不是休眠。
  • 等待超时:等待搬运工的 Creep 会在 50 ticks(约 2.5 分钟)后超时。超时后(😤 timeout),它们将放弃等待并从最近的源头自行采集,以防止无限饥饿。