ruflo-arena 实战指南用竞争规则学Ruliology为 Ruflo 程序策略构建竞技场、锦标赛与自适应共同进化【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/rufloruflo-arena 是 Ruflo 生态中首个可执行的竞争规则学competitive ruliology插件实现了 Ruflo ADR-147/148/150 的落地切片把策略视为程序读取对手历史的确定性有限状态机让它们在收益博弈下同场竞技通过锦标赛产出 Wolfram 式竞争矩阵competitive array再用爬山进化与共同进化co-evolution在经验上发现优胜者。读完本文你将掌握该插件的安装运行、CLI 与 MCP 工具调用、策略/博弈/进化机制以及如何用种子复现与持久化每一场程序对程序的竞争。为什么程序 vs 程序需要真实地跑一场传统博弈论倾向用数学推导求解最优策略而 Wolfram 的规则学立场是由于计算不可约性computational irreducibility程序的竞争结果无法被简单预测或化简必须真正运行这场竞争才能知道谁赢。ruflo-arena 把这一立场工程化策略是程序——确定性有限状态机deterministic FSM其输出仅取决于当前状态状态转移取决于对手上一回合动作Moore 机语义程序在收益博弈payoff game下两两对阵锦标赛产出竞争矩阵mean-payoff 矩阵与 mean-vs-field 排名爬山进化与共同进化在搜索空间里经验性地发现获胜者。该插件定位为执行引擎 本地数据占位展示层ADR-149/150 仪表盘与数据智能层RuVector ADR-196/197/198由其他模块承接。核心事实与契约见 ADR-0001: ruflo-arena plugin contract。安装与测试插件依赖极轻——运行时只有zod一个依赖用于 MCP 边界输入校验要求 Node 20见 package.jsoncd plugins/ruflo-arena npm install # light — runtime dep is just zod npm run build # tsc - dist/ npm test # vitest (engine MCP tools persistence) npm run lint # eslint (typescript-eslint)仓库已内置完整测试套件tests/games-arena.test.ts、tests/tournament.test.ts、tests/evolution.test.ts、tests/mcp-tools.test.ts覆盖博弈收益表、确定性复现、锦标赛支配性、进化收敛与 MCP 工具面。npm run demo可直接以源码模式--experimental-strip-types运行演示。架构总览源码结构见 src/index.ts 的导出面层次分明src/ domain/ types ( Zod schemas) · games · strategies (FSM programs, library, mutation) engine/ rng · arena (match) · tournament (competitive array) · evolution (hill-climb, co-evolution) persistence/ RunStore (File InMemory) AgentDB record builder report/ competitive-array tables · ASCII heatmaps · fitness sparklines mcp-tools/ arenaTools: MCPTool[] (the 6 tools above) index.ts export surface default { tools } cli.ts human-facing CLIdomain类型与 Zod 输入 schema、收益博弈定义、策略库FSM 程序工厂 变异算子engine可播种 PRNG、单场对阵、锦标赛、爬山进化与共同进化persistenceFileRunStore/InMemoryRunStore与 AgentDB 记录构造器report竞争矩阵表格、ASCII 热力图、适应度 sparkline纯文本渲染保证零 UI 依赖即可观测mcp-tools6 个 MCP 工具cli.ts人类友好的命令行入口。策略即程序FSM 与闭包策略核心思想是策略 读取历史的简单程序。类型定义在 src/domain/types.tsFsmStrategy确定性 Moore 机。每个状态输出一个动作action并根据对手动作next映射转移到下一状态FnStrategy闭包策略例如用播种 RNG 的random由init/act/update三元组驱动AgentInstance策略的可运行实例Moore 语义为出牌看状态、转移看对手见 src/domain/strategies.ts 的instantiate未知动作保持原状态不转移。内置经典策略库均为 FSM 工厂可针对任意动作集参数化策略机制tit-for-tat/copy-opponent复制对手上一动作copyOpponentalways-cooperate/always-defect恒定动作单状态 FSMconstantgrim一直合作对手一旦背叛则永远背叛2 态pavlov赢则保持、输则切换Win-Stay-Lose-Shift2 态alternate动作循环交替random均匀随机闭包策略走种子化 RNGsuspicious-anti-tft反复制antiCopy先背叛型 TFT 变体PD 下经典阵容classicRoster即上述 8 个非 PD 博弈则退化为恒定×2 复制 反复制 交替 随机6 个。findStrategy支持前缀匹配策略名。可进化的 FSM随机基因组与变异算子ADR-148 的进化能力建立在两个原语上src/domain/strategies.tsrandomFSM按动作集与状态数随机生成 FSM动作、转移、起始状态全部随机mutate对 FSM 做一次随机结构编辑五种算子随机选择flipAction翻转某状态输出动作rewire重连某状态在某动作上的转移目标moveStart移动起始状态addState新增状态并保证新状态可达把旧状态的一条转移指过去removeState删除状态并重映射全部转移与起始状态当状态数 ≤ 1 时强制改为addState。这正是程序空间上的局部搜索每个个体都是一个可运行程序变异即程序改写。收益博弈PD 与零和 match-or-not博弈即收益矩阵src/domain/games.tsIterated Prisoners Dilemmapd/prisoners-dilemma经典 R3、T5、S0、P1 参数动作集{C, D}非零和Match-or-notmon/match-or-not动作一致时 A 得 1 分、B 得 -1不一致则相反零和GAMES注册表支持别名pd↔prisoners-dilemma、mon↔match-or-notgetGame对未知博弈直接报错并列出已知项。makeGame用a|b字符串查表返回[pA, pB]缺失组合抛错。测试 tests/games-arena.test.ts 验证了 PD 四格收益与零和性质任意两动作收益之和为 0。单场对阵arena/run 的底层实现runMatchsrc/engine/arena.ts是全部竞争的基础用mulberry32(derive(seed, 1))与mulberry32(derive(seed, 2))分别为 A、B 生成互不相关的独立随机流derive以不同 salt 派生流种子循环rounds回合双方各自act()出牌 →game.payoff结算 → 累计分数 → 双方observe()观察对手动作并转移状态返回累计分、场均分与可选逐回合历史。meanPayoff则取 A 对 B 的场均收益供锦标赛与进化复用。确定性来自 mulberry32src/engine/rng.ts同种子同流测试断言同种子两次运行的历史完全一致这是 Wolfram 强调的竞争可重跑前提。锦标赛Wolfram 竞争矩阵与 mean-vs-field 排名runTournamentsrc/engine/tournament.ts对阵容做循环赛matrix[i][j] 策略 i 对策略 j 的场均收益构成mean-payoff 矩阵竞争矩阵meanVsField[i] 策略 i 对阵全场的平均收益includeSelffalse时跳过对角线对角留 0由调用方按该标志解读ranking按 mean-vs-field 降序排序。测试 tests/tournament.test.ts 验证了矩阵为方形且与阵容等长、排名严格降序、同种子完全复现以及一个经典事实——PD 中 always-defect 对任意对手场均不低于对方pairwise-unbeatable 支配性。README 给出了一次典型 PD 排名mean-vs-fieldgrim ≈ 2.99、always-defect ≈ 2.76、tit-for-tat ≈ 2.50、…、always-cooperate ≈ 1.88——可见以牙还牙类策略在全场平均口径下反超单纯的 always-defect这正是竞争矩阵的价值所在。进化与共同进化经验发现获胜者爬山进化evolve/runevolveVsFieldsrc/engine/evolution.ts以randomFSM随机生成一个 2 态可配startStates初始程序适应度 mean-vs-field对阵容每个对手跑rounds回合取场均收益的平均fitnessVsField每代对当前最优做一次mutatefitness 当前则接受keep-if-fitter否则丢弃输出best进化后的程序、bestFitness、curve每代适应度、是否被接受、状态数。README 的示例轨迹进化从随机 FSM约 2.78爬升到约 3.00呈现 Wolfram 强调的平台期→突破plateau→breakthrough适应度曲线特征。共同进化coevolve/runcoevolvesrc/engine/evolution.ts实现军备竞赛A、B 各持一个随机 FSM奇数代变异 A接受当且仅当 A 的收益 ≥ 基线偶数代变异 B接受当且仅当A 的收益 ≤ 基线即 B 在最小化 A 的收益——双方对抗缓存当前 A vs B 的基线收益每代只跑一次候选对阵同种子数值上等价但每代省约 2/3 的对阵次数返回双方最终程序与curve每代payoffA轨迹。MCP 层对超长曲线用单次扫描求 min/max 区间规避Math.min(...spread)在 V8 下约 1.6 万参数的参数上限见 src/mcp-tools/index.ts。CLI 实战编译后通过dist/cli.js或 binruflo-arena调用入口见 src/cli.tsnode dist/cli.js demo # 锦标赛 进化 共同进化 零和博弈演示 node dist/cli.js tournament --game pd --rounds 200 --seed 1 node dist/cli.js arena --a tit-for-tat --b always-defect node dist/cli.js evolve --game pd --generations 300 --seed 42 node dist/cli.js coevolve --game pd --generations 400 --seed 7各子命令与 MCP 工具一一对应arena→arena/run、tournament→tournament/run、evolve→evolve/run、coevolve→coevolve/runtournament输出竞争矩阵表格 ASCII 热力图 排名表competitiveArrayTable/heatmap/rankingTable见 src/report/render.tsevolve输出起始/最终适应度、接受变异数、适应度 sparkline 与进化后程序的describeFSM描述coevolve输出 A 收益随世代的 sparkline 与区间。完整子命令解析见 commands/arena.md其中还展示了以$ARGUMENTS驱动的命令→MCP 工具映射约定。MCP 工具ruflo-arena/mcp-tools插件导出 6 个 MCP 工具createArenaTools工厂可注入RunStore默认arenaTools使用FileRunStore见 src/mcp-tools/index.tsTool用途arena/run两个指定策略之间的一次确定性对阵tournament/run循环赛 → 竞争矩阵 mean-vs-field 排名evolve/run对固定阵容爬山进化 FSM返回程序 适应度曲线coevolve/run共同进化军备竞赛轨迹run/get按 runId 取回持久化运行记录run/list列出近期运行记录新在前limit默认 20上限 1000所有工具返回 Ruflo 统一信封{ success, result | error }并在边界用 Zod 校验输入数值输入被coerceMCP/CLI 字符串自动转数字。Zod schema 定义在 src/domain/types.ts关键参数与默认值工具参数默认值约束arena/rungame/a/b/rounds/seed/history/persistpd/tit-for-tat/always-defect/ 200 / 1 / false / truerounds 正整数 ≤ 100_000tournament/rungame/rounds/seed/includeSelf/persistpd/ 200 / 1 / true / truerounds ≤ 100_000evolve/rungame/generations/seed/rounds/startStates/persistpd/ 300 / 42 / 100 / 2 / truegenerations ≤ 50_000startStates 1–32coevolve/rungame/generations/seed/rounds/startStates/persistpd/ 400 / 7 / 100 / 2 / true同上run/getrunId—必填run/listlimit20正整数 ≤ 1000evolve/run与coevolve/run的默认种子分别为 42 与 7README/CLI 与 schema 三者保持一致。持久化精确重放与 AgentDB 语义检索每次运行都是可复现工件ADR-147RuVector ADR-197 的本地占位FileRunStore把完整工件写入.ruflo/arena/runId.jsonrunId 形如kind-uuid8见 src/persistence/run-store.ts支持 bit-for-bit 重放InMemoryRunStore供测试/临时场景createArenaTools(new InMemoryRunStore())RunRecord记录runId/kind/game/seed/createdAt/summary/artifact其中seed是复现的关键。按 Ruflo 约定AgentDB 持久化在命令/代理层完成每个工具结果携带agentdb载荷交由mcp__plugin_ruflo-core_ruflo__memory_store落库mcp__plugin_ruflo-core_ruflo__memory_store({ namespace: result.agentdb.namespace, // arena key: result.agentdb.key, // 即 runId value: result.agentdb.value, // JSON 摘要kind, game, seed, ranking/fitness … tags: result.agentdb.tags // [ruliology,competition, kind, game] })agentdbRecord把kind/game/seed提升为顶层字段便于 RuVector ADR-197 索引器免解析过滤value保留完整摘要供语义检索。此后即可用mcp__plugin_ruflo-core_ruflo__memory_search({ namespace: arena, query: tournaments where grim dominated })这类查询回溯历史竞争。注意v1 中agentdb.value摘要 schema 未版本化ADR 提醒在 RuVector 集成契约ADR-152 ↔ ADR-200落地前应避免跨仓库依赖。范围界定v1 做什么、不做什么v1 刻意保持仅 Ruflo 内、不动核心包含简单程序 随机策略、PD 零和博弈、锦标赛、爬山进化与共同进化、文件/AgentDB 持久化、MCP 工具 CLI不包含另作跟踪LLM 代理策略与蒸馏ADR-151、执行沙箱/资源治理ADR-153、仪表盘 UIADR-149/154、完整 RuVector 数据/智能层ADR-196–198、ADR-200。一个值得注意的边界v1 的 FSM 必然停机无非停机程序问题而不可信/进化出的程序沙箱化在 ADR-153 中跟踪——若你计划把进化产物接入真实执行环境应先补齐该治理项。结语从竞争矩阵到自进化 swarmruflo-arena 用约 10 个源码文件的体量完整落地了策略即程序、竞争须实跑、结果可重放、历史可检索的竞争规则学闭环arena单挑 →tournament竞争矩阵 →evolve对固定阵容爬山 →coevolve军备竞赛四条递进能力全部可通过 CLI 与 MCP 工具调用并持久化。对于希望把程序间竞争引入 swarm 编排、策略选择或自动化探索的开发者这个插件既是一个可复现的实验场也为 RuVector 数据层与仪表盘预留了清晰的接缝。建议从node dist/cli.js demo开始观察 PD 竞争矩阵中 grim 的领先与进化曲线的平台期突破再以固定种子复现、改参数、接入 AgentDB 检索逐步深入。【免费下载链接】ruflo The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考