<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Nyral on atin的个人小站</title>
        <link>https://atin.asia/tags/nyral/</link>
        <description>Recent content in Nyral on atin的个人小站</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Mon, 02 Nov 2026 23:45:00 +0800</lastBuildDate><atom:link href="https://atin.asia/tags/nyral/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Nyral 的多模型协作：讨论团与评审团，让模型一起干活</title>
            <link>https://atin.asia/archives/multi-model-discussion-circle/</link>
            <pubDate>Mon, 02 Nov 2026 23:45:00 +0800</pubDate>
            <guid>https://atin.asia/archives/multi-model-discussion-circle/</guid>
            <description>&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;所有已配置的模型能协作、能当众干活，而 token 消耗始终由用户把关——这是给 Nyral 设计&amp;quot;多模型协作&amp;quot;时的三个目标。方案演化到今天，落地成两种模式：讨论团和评审团。&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;起因一次生图模型当主模型翻的车&#34;&gt;起因：一次生图模型当主模型翻的车&#xA;&lt;/h2&gt;&lt;p&gt;Nyral 接入腾讯 TokenHub 聚合网关后，我一度把 &lt;code&gt;hy-image-v3.5-preview&lt;/code&gt;（混元文生图模型）设成了主聊天模型，结果发一句&amp;quot;你好&amp;quot;就报 &lt;code&gt;400 model not exist&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;排查下来的原因很直白：混元多模态是&lt;strong&gt;独立的生成模型&lt;/strong&gt;，没有对话能力，走 &lt;code&gt;chat/completions&lt;/code&gt; 必然失败。它真正的调用端点是 &lt;code&gt;POST {base}/v1/wand/hunyuan-image/v35-generation&lt;/code&gt;——一个聊天式结构的生成端点，支持 &lt;code&gt;messages&lt;/code&gt; 数组、参考图，同步返回 &lt;code&gt;choices[].delta.image.url&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;顺手把生图工具和主链路都改到了这个端点，实测通过。但问题随之而来：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;用户配了一堆模型（DeepSeek、GLM、小米 MiMo、TokenHub 混元），它们却彼此孤立。&lt;/strong&gt; 对话靠一个主模型，生图靠工具写死当前 provider，生视频又是另一套。能力是有的，但&amp;quot;各干各的&amp;quot;，谁也不认识谁。&lt;/p&gt;&#xA;&lt;h2 id=&#34;想法让所有模型互相可见&#34;&gt;想法：让所有模型互相可见&#xA;&lt;/h2&gt;&lt;p&gt;那天凌晨，我说了一句：能不能让所有模型互相看到？DeepSeek 可以直接调用 GLM，GLM 反过来也能用 DeepSeek，小米同样如此。每个模型都有完整能力，主模型甚至可以&amp;quot;偷懒&amp;quot;，让副模型去干活。&lt;/p&gt;&#xA;&lt;p&gt;讨论下来，这个概念落地成三层：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;模型注册表（所有已配置模型，按能力分组）&#xA;      │ 能力路由&#xA;      ▼&#xA;主模型（主持人 + 决策者 + 汇总者）&#xA;      │ model_delegate / 生成工具&#xA;      ▼&#xA;参与模型（顾问团：各抒己见，结果仅供参考）&#xA;      ▼&#xA;用户（最终决策者，可随时打断）&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;模型注册表&lt;/strong&gt;：设置页里所有 provider + 勾选的模型，按能力标注分组（对话 / 生图 / 生视频）。配一次 TokenHub Key，对话选 hy4、生图选 hy-image、生视频选 hy-video，全部互相可见。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;主模型当主持人&lt;/strong&gt;：议题由它定，请谁参与由它提议，观点由它汇总收敛，结论由它呈现给用户。它自己也可以参与讨论——毕竟它掌握上下文和工具。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;参与模型是顾问团&lt;/strong&gt;：每次发言是一次独立调用，输出只是&amp;quot;顾问意见&amp;quot;，不是结论。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;用户拍板&lt;/strong&gt;：主模型给出&amp;quot;结论 + 分歧点 + 推荐&amp;quot;，用户一句话就能推翻。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;演化讨论团还是评审团&#34;&gt;演化：讨论团还是评审团？&#xA;&lt;/h2&gt;&lt;p&gt;初版文章发布后，我又和豆包推演了一版更工程化的设计——评审团。它保留了&amp;quot;多模型协作 + 用户拍板&amp;quot;的核心，但把&amp;quot;模型互相可见&amp;quot;改成了&amp;quot;模型完全隔离&amp;quot;，并补上了上下文传递规则、token 预算、状态机等细节。&lt;/p&gt;&#xA;&lt;p&gt;两种模式摆在一起，一度像二选一：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;维度&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;讨论团&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;评审团&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;模型间关系&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;互相可见，串行碰撞&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;完全隔离，互不可见&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;讨论形态&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;模型间你来我往&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;每轮独立发言 → 汇总 → 用户决定是否再投&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;收敛方式&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;主模型收敛&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;用户拍板 + 收敛检测提示&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;立场污染&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;有风险（汇总带倾向）&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;强制&amp;quot;事实/倾向分离&amp;quot;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;成本控制&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;弹窗授权（开团前）&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;弹窗授权 + 每轮用户确认&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;但想深一层：&lt;strong&gt;这不是单选题&lt;/strong&gt;。两者的差异只是&amp;quot;信息流拓扑&amp;quot;——讨论团是全连接（每个人看得见别人的发言），评审团是星型（只有主模型全知，评审模型只见汇总）。中间还夹着&amp;quot;只传上轮事实性汇总&amp;quot;的半开放形态。把可见度做成参数，两种模式就统一成&lt;strong&gt;一个多模型协作框架&lt;/strong&gt;了：ReviewOrchestrator 里一个 mode 字段的事，不是两套代码。&lt;/p&gt;&#xA;&lt;h2 id=&#34;关键设计信息流拓扑参数化&#34;&gt;关键设计：信息流拓扑参数化&#xA;&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;讨论团 = 全连接，串行。&lt;/strong&gt; 讨论的本质是碰撞，后发言者要能看到前面的观点，所以讨论链必须串行——并行只会得到三份各说各话的独立答案，没有讨论价值。但&amp;quot;派发链&amp;quot;可以并行：互不依赖的子任务（比如先各查资料）主模型可以并行派发，结果回来后进入串行讨论阶段。干活的阶段并行，对话的阶段串行。&lt;/p&gt;&#xA;&lt;p&gt;工程上这反而简单：Nyral 的本地引擎本来就是串行工具循环 + SSE 流式输出，讨论就是&amp;quot;主模型循环调 &lt;code&gt;model_delegate&lt;/code&gt;，每调一个副模型就输出一条流式发言&amp;quot;，天然不会打架。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;评审团 = 星型，并行。&lt;/strong&gt; 评审模型之间永不互见，零锚定、零传话失真、零立场污染，每个模型永远从自己的盲区出发给意见。作为回报，评审天然适合并行——互不可见就没有串行依赖，一轮延迟 ≈ 最慢的那个模型。评审模型每轮只看到&amp;quot;问题 + 上轮事实性汇总 + 分歧点&amp;quot;，主模型是唯一全知者，持有完整历史。&lt;/p&gt;&#xA;&lt;p&gt;评审团有个独立的价值：&lt;strong&gt;事实与倾向强制分离&lt;/strong&gt;。主模型也是模型，汇总时必然掺入倾向。若混合呈现，用户（最终决策者）会被悄悄带偏——这是比模型间锚定更严重的污染。所以汇报格式严格分段：&amp;ldquo;各模型观点&amp;quot;只陈述、禁止任何评价性词汇，&amp;ldquo;主模型推荐&amp;quot;必须显式标注&amp;quot;这是主持人的倾向，不是事实&amp;rdquo;，用户有权展开查看任意模型发言原文。&lt;/p&gt;&#xA;&lt;h2 id=&#34;成本控制三重闸门&#34;&gt;成本控制：三重闸门&#xA;&lt;/h2&gt;&lt;p&gt;多模型协作的代价是 token 翻倍，不能默认放开。两个模式共用三道闸门：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;弹窗授权&lt;/strong&gt;：主模型要开团/开评审或调生图工具时，弹出候选模型让用户选、确认或拒绝。讨论团、评审团、生图、生视频共用同一套&amp;quot;选模型 + 确认&amp;quot;弹窗，候选列表不同而已。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;每轮用户确认&lt;/strong&gt;：评审团的&amp;quot;再投一轮&amp;quot;本身就是闸门——不点就不会产生下一轮成本；讨论团里用户随时可以打断。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;模型级开关 + 轮数上限&lt;/strong&gt;：单模型可单独禁用参与协作，&lt;code&gt;max_rounds&lt;/code&gt; 默认 3 轮封顶。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;另加 120 秒超时自动拒绝：没人点弹窗就自动拒绝（这个机制本来就存在），后台任务也不会卡死。&lt;/p&gt;&#xA;&lt;p&gt;成本账也大致算过：3 个评审模型 + 1 个主模型跑一轮约 4800 token（池子快照策略，每轮只传小汇总），全量上下文共享要 3 倍以上，还会让模型观点趋同。&lt;strong&gt;把池子做小，是控制成本的核心。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;交互当众流式随时打断&#34;&gt;交互：当众流式，随时打断&#xA;&lt;/h2&gt;&lt;p&gt;最初的想法是把协作放在后台，跑完甩个结论。但这样有两个问题：用户干等 N 倍时间；结论怎么来的像个黑盒。&lt;/p&gt;&#xA;&lt;p&gt;后来想到一个更顺的形态——&lt;strong&gt;参考多 Agent 交接的剧场感&lt;/strong&gt;：Marvis 调用 browser 子 Agent 时，小弟会&amp;quot;冒出来&amp;quot;说&amp;quot;我去看看&amp;rdquo;，干完再交接回来，用户全程围观，从不觉得在死等。&lt;/p&gt;&#xA;&lt;p&gt;两种模式同理，都做成&lt;strong&gt;可见的流式对话&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;用户：这需求怎么做比较好？&#xA;─────────────────────────────&#xA;[hy4-preview] 我的方案：先建索引再……&#xA;[deepseek]    我不同意，索引成本高，应该直接全量扫&#xA;[glm]         折中：先扫再按需索引，hy4 的方案更稳&#xA;[hy4-preview] 采纳，按我的方案，deepseek 的担忧兜底处理&#xA;─────────────────────────────&#xA;主持人收敛：结论如下……&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;每个模型发言是一个气泡（像子 Agent 冒出来），用户能看到谁在说话、观点怎么碰撞、怎么收敛，随时插一句&amp;quot;别争了，用第二个方案&amp;quot;。评审团模式下，各模型观点独立呈现，分歧点列成清单，最后给&amp;quot;执行推荐 / 再投一轮 / 拒绝修改&amp;quot;三个选项。等待感消失，黑盒变透明。&lt;/p&gt;&#xA;&lt;h2 id=&#34;演进路径&#34;&gt;演进路径&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;第一步：&lt;code&gt;model_delegate&lt;/code&gt; 单次委派&lt;/strong&gt;——主模型&amp;quot;偷懒&amp;quot;让副模型干一件具体的事，成本可控，先解决&amp;quot;互相调用&amp;quot;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;第二步：讨论团&lt;/strong&gt;——串行可见，先跑通信息流拓扑。它天然串行，实现就是&amp;quot;循环调用 + 上下文拼接&amp;quot;，比评审团便宜。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;第三步：评审团&lt;/strong&gt;——加并行调度 + 事实/倾向分离汇总，建立在前面两步的地基上。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;风险清单&#34;&gt;风险清单&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;延迟&lt;/strong&gt;：N 模型 × M 轮的串行讨论总时长不短，靠流式可见缓解&amp;quot;等待感&amp;quot;；评审团并行后延迟收敛到单轮。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;成本&lt;/strong&gt;：弹窗授权 + 每轮确认 + 模型级开关/轮数上限三重闸门。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;稳定性&lt;/strong&gt;：多模型输出格式不一致、某个模型挂了讨论卡住，需要重试和降级（超时跳过，全部失败则终止提示）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;路由准确性&lt;/strong&gt;：模型能力标注靠启发式 + 分组勾选，跨 provider 路由可能指向无权限模型（TokenHub 那类 400/402 的坑），需要对照测试。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;观点不收敛&lt;/strong&gt;：评审团加收敛检测，连续两轮观点一致时提示&amp;quot;继续评审大概率不会产生新信息，建议拍板&amp;quot;——提示只是建议，用户有权无视。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;结语&#34;&gt;结语&#xA;&lt;/h2&gt;&lt;p&gt;这个设计其实没造新轮子：模型注册表是现有配置的升级，弹窗和超时是现成机制，工具循环是 Nyral 本来就有的大脑，多模型协作只是把&amp;quot;单主模型驱动&amp;quot;扩展成&amp;quot;主模型主持、副模型顾问、用户拍板&amp;quot;。&lt;/p&gt;&#xA;&lt;p&gt;讨论团适合发散（头脑风暴、创意激发），评审团适合收敛（方案评审、重大决策）——不是二选一，是同一个框架下的两种形态。&lt;/p&gt;&#xA;&lt;p&gt;它想回答一个朴素的问题：&lt;strong&gt;用户都配了那么多模型了，为什么不能让它们一起干活？&lt;/strong&gt; 现在至少有了一个不花冤枉 token、又能当众协作的答案。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Nyral 官网页面上线</title>
            <link>https://atin.asia/archives/nyral-site/</link>
            <pubDate>Sun, 01 Nov 2026 17:10:00 +0800</pubDate>
            <guid>https://atin.asia/archives/nyral-site/</guid>
            <description>&lt;p&gt;Nyral 的官网页面上线了：&lt;a class=&#34;link&#34; href=&#34;https://atin.asia/nyral/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://atin.asia/nyral/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;这个页面把项目的定位、界面截图和下载入口收在了一页：GitHub / Gitee 的 Release APK 按钮会跟随发版自动更新，不用手动维护版本号。&lt;/p&gt;&#xA;&lt;p&gt;如果还不了解 Nyral 是什么，可以看这篇：&lt;a class=&#34;link&#34; href=&#34;https://atin.asia/archives/nyral-intro/&#34; &gt;Nyral：开源、免 Root、自托管的 Android 智能体助手&lt;/a&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;源码：&lt;a class=&#34;link&#34; href=&#34;https://github.com/aixtin/nyral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://gitee.com/aixtin/nyral&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Gitee&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;下载：&lt;a class=&#34;link&#34; href=&#34;https://github.com/aixtin/nyral/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub Release&lt;/a&gt; · &lt;a class=&#34;link&#34; href=&#34;https://gitee.com/aixtin/nyral/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Gitee Release&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
