SuperAPI AI 工具集

card

智能体与模型

查看项目

更新于 10-16 03:54

技能介绍

概述

Card 是 MOOLLM(位于 simhacker/moollm)中的可移植能力、身份与访问令牌,以 CARD.yml 文件形式呈现。卡片是模板,将其“投入游玩”(放入房间)即可激活。

名称 Card 横跨多个经过验证的计算概念,MOOLLM 的 CARD 位于这些概念的交汇处并有意识地借用每一者:

  • HyperCard(Bill Atkinson,1987):卡片是自包含的可导航单元,带字段、按钮和脚本,可翻页、链接与堆叠。
  • 类型库 / IDL / ActiveX / OLE Control(微软,1990 年代):描述对象接口的分发元数据(方法、属性、事件、ID)。
  • Actor(Hewitt 1973;Agha 1986):拥有自身状态、接收消息的自主实体。
  • 线程 / 进程:具有自身身份、生命周期和可分发表面的控制单元。
  • 消息分发面(Smalltalk/Self/Objective-C):方法不是被调用,而是消息被发送,接收者决定如何响应。
  • 交易卡 / 扑克牌:身份与能力的可移植令牌,可收集、打出、交易。
  • 名片 / 索引卡:可嗅探的界面,交予他人即知你是谁、如何联系、能做什么。

当你遇到一个 CARD.yml,同时看到的是:一个可分发接口定义、一个可导航激活的 HyperCard、一个带本地状态的消息接收实体签名、分布式且人类可读的注册表条目、一个带稀有度与可移植性的可收集令牌,以及一张递给读者(人或 LLM)的名片。

架构核心:激活触发器

关键洞见:卡片是激活触发器,不是激活处理器。 这是 MOOLLM 卡片设计中最重要的概念。

CARD.yml SKILL.md
目的 决定该技能是否适用 说明如何执行
角色 激活触发器 激活处理器
内容 可嗅探接口 完整文档
大小 约 150–200 行 按需
LLM 读取时机 首先读取,用于决策 激活后其次读取

CARD 提问“此情境是否需要我?”;SKILL.md 回答“实际该怎么做”。

仅含 CARD(无 SKILL.md)的目录本身已是可分发的一等对象。CARD 不是技能文档,它就是技能的接口、Actor、卡片、类型库与名片合一的 YAML 文件。

推荐章节顺序

为便于 LLM 扫描,建议按以下顺序组织:

  1. 身份(card: id、name、emoji、tagline、description)
  2. 文件索引(files:)
  3. K-lines(激活的概念)
  4. invoke_when(触发条件)
  5. advertisements(主要!放在 methods 之前)
  6. methods(仅签名)
  7. state(简要字段列表)
  8. documentation 指针

广告是主要激活信号:LLM 自上而下扫描寻找“是否适用”,广告直接回答该问题。将广告前置可加快技能选择。

内容放置规则

放入 CARD.yml(可嗅探接口):简要描述与标语、文件索引、K-lines、广告(主要)、方法签名(一行)、简要状态模式(仅字段名)、文档指针。

移至 SKILL.md:实现细节、带序列的详细协议、分发表、对话示例、带类型的完整状态模式、示例。

examples/ 目录:使用描述性文件名的独立文件(如 ceremony-invocation.yml),避免无描述性名称。

方法与内容放置细则

  • 短签名 → CARD 的 methods
  • 琐碎内联(buff、reply、简单提示)→ 广告中嵌入
  • 详细协议(序列、表格)→ SKILL.md
  • 多变体 → SKILL.md
  • 分发表(actor_verb_target)→ SKILL.md

目标大小:CARD.yml 约 150–200 行;若超过 300 行则应重构。

什么是卡片

卡片是可携带、赠予、打出和激活的可移植令牌。CARD.yml 位于多种卡片传统的交汇处:PC 板卡(槽位/接口)、HyperCard(可导航内容单元)、扑克牌(可组合、可打出)、万智牌(能力、费用、类型、组合)、宝可梦(带属性与进化的角色)、Fluxx(改变规则本身)、塔罗(原型符号与提示)、名片(联系与凭证)、钥匙卡(访问令牌)、Hollerith 卡(作为物理产物的数据)。

Sidecar CARD.yml 模式

任何位于目录中的实体都可拥有一个 sidecar CARD.yml 使其可卡片化。例如 pub/ 目录下同时有 ROOM.yml 和 CARD.yml,使酒馆成为可玩卡片;characters/don-hopkins/ 下同时有 CHARACTER.yml 和 CARD.yml。

Sidecar 的优势:关注点分离(实体定义与卡片表示)、可选、可组合、可移植。

激活记录

打出卡片即创建激活记录——带持久状态的实例化方法。卡片可拥有任意数量的方法(类似 Self 对象);LLM 从上下文推断隐式参数(POSTEL);卡片可仅有状态而无方法;激活生命周期为 pending → in_progress → completed;激活暴露可供他人按下的按钮;房间可与在场卡片互动;卡片可互相触发方法。

Fluxx 卡片:改变规则

受 Fluxx 启发,部分卡片可修改游戏本身:可改变 room.rules、可叠加效果、支持元 Fluxx(对规则本身的规则)、可广告移除动作。这使 MOOLLM 成为可自我修改的游戏。

数据流合奏

卡片可包含生成器、转换器与消费者的协调合奏:组件通过兼容的输入/输出自连线(POSTEL 绑定);采用 Factorio 式带容量、溢出和背压的队列;可用自然语言描述连线;卡片跟踪合奏健康度与瓶颈。

卡片广告

如同房间中的对象,卡片广告其能做什么。处于库存中时广告可见但优先级较低;在房间中打出时,卡片的广告与房间对象合并,最佳动作无论来源如何都会胜出;多张卡片时所有广告竞争,最适合当下的工具浮到顶端。

K-lines 为何安全

真实人物的卡片无需代理抽象。一张“Dave Ungar”卡片并不冒充 Dave Ungar,而是激活其传统:Self 语言、基于原型的继承、ITS-ABOUT-TIME 编译哲学、消息传递纯粹性。这如同引用某人的工作,而非假扮其人。