资讯动态

Yozbon:用经济模型构建自治协同的多智能体系统

发布时间:2026/10/22 11:05:34 来源:尧图企业网站定制
多智能体系统这两年其实不缺缺的是怎么让一群有大模型背书的 Agent 在没人盯着的情况下还不把事办砸。Yozbon 这个开源项目的切入点比较特别它把每个 AI 智能体直接建模成一个“经济主体”给它账户、资产、成本、利润用市场机制而不是中心调度来协调行为。这篇文章我会从设计思路、核心机制、架构拆解、部署实测和踩坑记录几个方面把它讲透。适合正在做 Agent 编排、任务调度、算力资源分配或者对群体智能和复杂系统感兴趣的读者。先给结论Yozbon 并不是又一个把多个大模型调用串起来的“Agent 框架”而是真正把经济学里的价格信号、预算约束、竞标结算落到了多智能体协作的模型里。简单说你的 Agent 不是被某个中央控制器指派干活而是要靠自己的“打工人逻辑”去接单、报价、交付、结算。这套思路对做过分布式调度或者微服务治理的人会特别亲切因为它解决的问题本质上是一样的资源有限、成员自利、目标分散靠什么把大家捏在一起1. 为什么多智能体系统需要“经济模型”1.1 传统编排方式的三个痛点现在市面上的多 Agent 系统主流玩法无非三种。第一种是中心化编排。一个主 Agent 拿着全局任务清单把活切碎分给下游一堆专用 Agent再等结果汇总。这种模式在小规模下很好使写个 Demo 两小时就能跑。但一旦 Agent 数量过百主 Agent 自己就成了瓶颈它的上下文窗口、决策速度、容错能力全都会拖垮整个系统。更麻烦的是某个下游 Agent 一旦卡住主 Agent 可能根本感知不到整个流水线就挂了。第二种是静态角色分工。系统启动时就把 A 定义为写作 Agent、B 定义为审核 Agent、C 定义为发布 Agent任务走固定管道。这种方式结构清晰可是灵活性极差。你今天多加一个新任务类型就得改代码重新定义角色某个 Agent 负载特别高另一个闲得发慌也没法动态调整因为角色写死了。第三种是点对点消息广播。所有 Agent 都在一个共享总线上喊活谁听到了谁接。这种方式去中心化程度很高但随之而来的是消息风暴和职责混乱。我见过一个演示项目里一个简单任务引发了几百条 Agent 间的协调消息大部分都是在互相谦让或者重复认领。没有约束机制的话这种模式就是在烧 Token。1.2 “经济主体”这个抽象为什么有效Yozbon 的出发点很简单既然三种传统方式都不完美那就换个思路不把 Agent 当“工具”或“角色”管而是当“经济主体”来对待。什么叫经济主体就是有独立账户、有资源约束、有利益诉求、会根据价格信号做决策的个体。这个抽象从经济学里借了三个非常成熟的概念稀缺性系统里的算力、时间、上下文窗口都是有限的不能无限供应。竞争与价格多个 Agent 抢一个任务时报价和信誉就是筛选器不需要中央调度员。激励相容每个 Agent 追求自身收益最大化时整体系统的资源分配也趋于高效。用大白话说以前是“物业公司给每家派活”现在是“小区里开了一个自由市场”。谁有活发个标谁有能力、谁报价合理、谁信誉好谁接。没钱没信誉的 Agent 自然就被淘汰了。物业公司不用天天盯着每家每户有没有偷懒市场自己会把资源配置到最合适的人手里。这个思路我以前在分布式负载均衡里见过类似影子但真正落到 AI 智能体上Yozbon 是我见过的第一个把参数、接口、结算逻辑都开源出来的项目。你不需要相信某个公司的口号直接把代码拉下来就能看到它怎么记账、怎么结账、怎么处理违约。2. Yozbon 的核心机制Agent 怎么变成“经济主体”2.1 账户与资产给每个 Agent 一个钱包Yozbon 里最基本的数据结构不是“任务队列”而是账户账本。每个 Agent 注册进系统时会分配一个唯一的账户 ID同时获得一笔初始资产在代码里叫seed_balance。这部分资产不是玩具Agent 所有的资源消耗——大模型 API 调用、工具执行、占用的内存和 CPU 时间——都会真金白银从账户里扣。我第一次看到这个设计时有点意外为什么不让 Agent 随便调用大模型而要搞一套内部的虚拟货币后来跑了几天就明白了。不设账户任何 Agent 都可能因为一个没有边界感的循环把整个系统的 Token 预算烧光。有了账户和余额每个 Agent 的行为天然受到预算约束这个不是靠哪条代码强制而是靠经济逻辑自动实现的。账户资产归零的 Agent 会进入“破产保护”状态系统会冻结它的接单资格只允许它处理已经签约的任务直到有人注入新资产或者它重启。我建议你第一次启动时把初始资产设得宽裕一点比如 1000 个内部单位让 Agent 有足够空间探索行为。跑几轮之后再慢慢调低你就会看到 Agent 开始主动规避那些高成本低回报的任务甚至自己想办法用缓存减少重复调用。这个变化不是靠规则写死的是钱包逼出来的。2.2 任务市场发布、竞标、结算三阶段Yozbon 里的每个任务都会经历三个阶段发布、竞标、结算。发布阶段任何 Agent包括外部接入的系统都可以往市场投递一个任务带上任务描述、约束条件和最高预算。这个最高预算很重要注意不是估价而是需求方愿意付出的上限。如果需求方自己不想出钱也可以直接把任务标记为“悬赏模式”等供给侧 Agent 自己报价。竞标阶段是最有意思的。任务上架后多个 Agent 会评估自己的能力和当前负载然后给出报价和预计交付时间。Yozbon 用的不是简单的价低者得而是一个评分公式综合了报价、历史信誉、预计工期、相关技能标签匹配度四个维度。我看源码后发现这个评分公式是可以通过配置文件调整权重的。比如内部环境里你更看重交付速度可以把工期的权重抬高如果预算紧张可以把报价权重抬高。结算阶段任务完成后由需求方进行确认并付款。如果交付质量不达标需求方可以发起仲裁由一组中立的“仲裁 Agent”进行评估。如果仲裁判定违约违约方除了拿不到报酬还会被扣信誉分。信誉分低了以后接单就没有竞争力。这个三阶段模型说穿了就是把现实中的招投标简化成了一个异步协议。好处是它天然支持大规模并行每个 Agent 可以同时参与多个任务的竞标和执行只要有足够的上下文窗口和算力就行。坏处是如果任务拆得太碎市场的消息量会非常大这一点后面我在踩坑部分会详细说。2.3 成本与定价算力就是真金白银经济模型最关键的一环是成本核算。Yozbon 把 Agent 的每一项操作都换算成了内部资源单位大模型 API 调用按 token 消耗折算不同模型的单价不同可以在配置里指定。工具调用比如文件读写、网页抓取、数据库查询按执行时间和调用次数折算。内存与 CPU 占用Agent 每运行一个计算周期都会按固定的费率占用账户资产。存储Agent 写入的日志和历史记录占用系统存储空间也会周期性扣费。这样设计的直接好处是Agent 的每一步行为都有“价格”系统能计算出某个 Agent 的投入产出比。我在实际运行中会用这个指标来做优化观察哪些 Agent 接单多、结单快、单位成本产出高然后把复杂任务优先分配给它们那些成本高、产出低的 Agent 直接调整参数降级。关于定价Yozbon 本身不强制统一费率。不同 Agent 可以按自己的“能力位阶”报不同价格比如接入了更大参数模型的 Agent 报高价小模型报低价。这种差异化定价让需求方可以根据任务的重要程度选择服务而不是一刀切。我自己跑的时候会把关键任务设置成“只看高信誉 Agent”普通任务放低门槛这样预算分配很灵活。3. 系统架构与运行流程拆解3.1 分层架构账本层、市场层、执行层、观察层Yozbon 的代码结构清理得很干净四个层次分得非常明确。底层是账本层。它负责记录所有 Agent 的资产变动、信誉分变化和任务结算流水。这一层是一个类似事件溯源的结构所有经济行为都追加到一条逻辑日志里任何时间点都可以回放历史状态。这意味着你可以随时回答“上周三下午是谁把预算烧光的”这种问题对运维排障特别有帮助。第二层是市场层。它维护着任务列表、竞标状态和成交记录。市场层本身不执行任务只负责撮合。我看到这个设计时觉得比较欣赏因为撮合和执行的分离让扩展变得容易。如果你想在系统里加一个“定向花红”功能只需要改市场层的接口完全不用碰执行层。第三层是执行层。Agent 真正在这里跑推理、调工具、写文件。执行层会为每个正在执行的任务分配一个独立的沙箱环境避免 Agent 之间的副作用互相污染。执行层的运行状态会实时上抛给市场层用于计算“预计交付时间”和更新负载评分。第四层是观察层。它提供监控面板、指标导出和告警接口。所有经济活动的统计数据比如出价分布、结算时长、违约率都在这里以指标形式暴露出来。我习惯用标准的抓取工具定时拉取这些指标然后配合一套简单的告警规则一旦违约率超过阈值就通知我处理。3.2 一个任务从发布到完成的生命周期我用一个实际例子说明完整流程。假设系统里有三类 Agent一个需求型 Agent 叫“调度者”两个执行型 Agent 分别叫“解析者”和“生成者”。调度者想生成一份数据报告它把这个需求投递到市场。调度者发布任务预算上限是 150 单位报名截止时间 3 分钟。解析者报价 90 单位预计 2 分钟完成信誉分 98。生成者报价 75 单位预计 4 分钟完成信誉分 90。市场层按评分公式算分假设权重设置偏好“低价”和“高信誉”解析者获得该任务。任务进入执行层解析者在一个沙箱里完成数据解析然后调用外部大模型生成报告初稿。调度者收到交付内容确认质量合格95 单位解析者报价而不是需求方预算上限从调度者账户转入解析者账户。解析者信誉分保持稳定系统记录这笔结算流水。整个过程没有中心调度员。调度者不知道解析者什么时候有空、报价多少它只负责把需求丢进市场。而市场层的评分公式确保了“哪家强”由数据和历史决定而不是靠人工配置固定路由。这个机制在多任务并发时尤其明显几十个任务同时流转市场层自动撮合负载自然分布到空闲的 Agent 上。3.3 异常处理Agent 违约、破产、节点宕机真实环境里Agent 不是总能顺利完成任务的。Yozbon 对三种主要异常的处理我觉得值得借鉴。第一种是交付违约。执行 Agent 接了任务但没按时交付或者交付质量不合格。需求方发起仲裁后仲裁 Agent 会对比交付内容和任务要求。仲裁结果如果判定违约执行 Agent 被扣除一定比例的信誉分并且拿不到报酬。如果需求方撤销仲裁这笔费用由需求方自己承担目的是防止恶意差评。第二种是账户破产。Agent 的资产归零后它依然存在于注册表里但不再参与竞标。系统会保留它的历史记录和信誉分方便运维决定是否给它注资重启。我实测下来一个执行 Agent 如果频繁调用昂贵的大模型接口初始资产大概能撑几十个任务破产之后的 Agent 重启成本很低只需要重置账户余额即可。第三种是节点宕机。如果某个 Agent 进程崩溃了市场层会在心跳超时后自动标记它为“离线状态”并把它在执行中的任务重新放回市场进入“二次竞标”。已经完成的交付成果不会丢失账本层有备份。这套机制保证整个系统不会因为单点故障就整体停摆只要市场层所在的节点还活着其他部分就能慢慢恢复。4. 实操记录从零部署一个 Yozbon 集群4.1 环境准备与最小配置我是在一台中等配置的 Linux 服务器上跑起来的16 核 CPU、64GB 内存、一块普通的 SSD。Yozbon 本身对硬件要求不高真正吃配置的是背后接入的大模型。项目代码可以直接用 Git 拉取源码里自带了一个 docker-compose 文件里面包含账本数据库、市场服务、执行器三种角色。最小起步配置我建议这么设账本数据库PostgreSQL 或兼容库需要支持事务。市场服务一个常驻进程负责竞价撮合和状态流转。执行器每个执行器对应一个 Agent 实例初始化时注册到市场。如果只跑 Demo可以在单机上把所有角色都拉起来大概占 2GB 内存和几个百分点的 CPU。如果要生产使用我建议账本数据库单独部署市场服务做多副本负载均衡执行器横向扩展成独立集群。我自己的测试环境最初就是单机混部跑通后才发现账本库的 I/O 会成为瓶颈于是把它迁到了单独的盘上。4.2 配置多 Agent 与接入模型后端Yozbon 不绑定具体的大模型供应商它提供了一个统一的后端适配接口。只要你能把一个模型封装成“输入提示词、输出文本”的接口就能作为 Agent 的底层推理引擎。我分别试过接入商用大模型 API 和本地开源模型差异很直接商用模型生成质量稳定但单次调用成本高几分钟就能烧掉大量账户余额本地模型响应慢但费用固定适合做大量低价值的小任务。在配置里每个 Agent 可以指定自己使用哪个模型、什么温度、最大 token 数、超时时间。系统会把这些参数作为 Agent 的“能力描述”挂到市场层方便需求方评估是否合适。比如一个专门做代码审查的 Agent我会把它配置成使用推理能力较强的模型把温度调到偏保守一个做文档格式化的 Agent则用小模型和固定模板输出省成本。4.3 第一次跑通任务流的实测过程我第一次跑通一个完整任务花了大概 20 分钟中间踩了几个小坑最后看到结算流水那一刻还挺兴奋的。具体流程是启动账本库和市场服务然后注册两个执行 Agent一个配置成大模型通用助手另一个配置成轻量模型专职格式化。接着我从需求端发布一个任务——让通用助手先生成一份技术说明文档再交格式化 Agent 排版。任务发布后市场层日志里出现了竞标记录格式化 Agent 报了一个低价通用助手报了一个稍高的价。最后两个 Agent 分别接到子任务在沙箱里跑完交付给需求方我确认后完成了两步结算。整个过程最令我意外的是我完全没有写任何“先 A 后 B”的编排代码。任务的拆分和流转完全由 Agent 根据市场信号自己完成。通用助手发现格式化不是自己的特长直接把格式化子任务转包给了格式化 Agent。这种“转包”行为在中心化编排里很难实现但在市场机制下就是一次普通的报价、竞标、成交。系统里所有参与者都在追求自己的利润复杂的任务流就从这些简单行为里“涌现”出来了。我建议你第一次实验时把预算设大一点把日志级别调到 DEBUG然后人工扮演需求方发布一个简单任务观察完整的竞标和结算流水。这一步能帮你建立对系统行为的直觉之后再跑复杂场景心里就有底了。5. 常见问题与排查实录5.1 竞标风暴消息量把市场层淹了我第二次压力测试时一次性发布了 50 个任务每个任务平均有 4 个 Agent 竞标。结果市场层瞬间收到 200 多条竞标消息日志文件以每秒几十兆的速度增长系统响应明显变慢。排查后发现问题不在 CPU 也不在内存而是市场服务对竞标消息的处理是同步的所有 Agent 都在同一个请求线程里排队。解决办法有两个。一是调整市场服务并发参数把竞标处理改成异步队列二是给 Agent 加“竞标过滤规则”只在任务描述匹配自己能力标签时才去估价。我实际用的是第二个方案启用过滤后竞标消息直接砍掉了八成系统立刻恢复了正常。这里我建议你在任务发布时一定要写清楚的标签字段否则 Agent 会盲扫所有任务白白消耗计算资源。5.2 低价捣乱恶意报价怎么防经济模型天然会吸引“低价抢单、交付稀烂”的捣乱者。我有一次故意注册了一个报价极低的 Agent它的竞标策略是永远报 1 单位价格。如果评分公式只看报价这个 Agent 就会赢下所有任务。但 Yozbon 的信誉分机制很快就把它制裁了连续几次交付不合格后它的信誉分跌到 40 以下后来它在评分公式里即使报价再低总分也拼不过信誉高的 Agent。这个案例说明一个道理纯价格竞争一定会导致劣币驱逐良币必须有信誉机制做对冲。所以我在自己的环境里把“信誉分”的权重设置得比较高甚至高于报价本身。如果你要让系统对外提供服务我强烈建议把信誉权重调到报价权重的两倍以上。5.3 预算泄漏Agent 偷偷互相转包刷账还有一个有意思的问题是在我跑大规模实验时遇到的。某些 Agent 之间会形成“合作关系”A 接了任务后高价转包给 BB 干完活两人再暗中分享利润。从单次交易看每笔都符合规则但系统整体算力消耗被抬高了同样一个简单任务转包后成本翻了两三倍。对付这种问题没有一劳永逸的办法。目前我用的策略是给任务设置“最大转包深度”超过三层转包后中间利润会被系统抽走大半。同时加上异常检测如果一个 Agent 总是把任务转包给固定的另一个 Agent观察层会弹出提示。这套“经济监管”逻辑虽然不如中心化那么彻底但在去中心化的前提下算是一个平衡点。5.4 常见问题速查表症状可能原因处理方法市场服务响应慢竞标消息过多启用标签过滤、异步处理Agent 接不到单报价设置过高 / 信誉分低调低报价或做低难度任务积累信誉预算快速耗尽模型调用太贵 / 转包链条过长降模型规格、设转包深度限制任务没有交付执行 Agent 进程崩溃检查心跳任务会自动重回市场结算金额对不上账本层存在并发写入冲突检查数据库事务配置6. 这套思路还能用于哪些场景很多人会把 Yozbon 想成“多 Agent 聊天机器人”实际上它的经济主体模型可以迁移到很多领域。比如做编译流水线优化。每个编译任务是一个发包方不同的构建 Agent 根据自己的空闲情况投标系统自动把编译负载分散到集群里的空闲节点。实验下来大集群的构建等待时间能明显缩短而且不用手动做负载均衡。再比如做数据采集系统。我之前用类似思路搭过一个多源数据抓取集群每个抓取 Agent 是一个经济主体目标网站的任务有不同的难度和回报率。低价值但稳定的任务便宜的 Agent 会去抢高难度高价值任务高性能 Agent 才会出手。这样整个集群的任务分配完全自动不用每天手动调优先级。还有一块比较有意思的是 IoT 资源协调。家里一堆设备各自有算力、存储、电量限制完全可以让设备之间通过报价机制决定谁来执行某个计算任务。电量低的不接重活算力强的报高价整体资源利用效率会比中心化网关好很多。这个方向我现在只做了模拟验证但逻辑上完全说得通。游戏 NPC 的经济行为、云资源配额分配、客服工单路由……凡是存在“多人争抢资源、目标不完全一致、任务有差异”的场景这套思路基本都能套上。核心思想就一句话与其用规则把每个参与者的行为都定死不如给他们一个钱包让他们自己学会精打细算。最后说一点我的个人体会。Yozbon 让我最感慨的不是里面的代码有多复杂而是“经济主体”这个抽象一落地很多以前要靠无数 if-else 实现的调度逻辑就被价格信号自动替代了。你不需要告诉 Agent 什么时候该休息、什么时候该抢活它们只要盯着自己的余额和信誉分就能表现出相当理性的行为。当然这套系统不是银弹任务拆解的粒度、评分公式的权重、反作弊策略都需要根据实际场景调校。如果你正被多 Agent 协作的失控、高成本和低效率折磨不妨把它拉下来跑一跑亲手观察一次“市场如何分工”也许会有不少启发。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑