正文 · 原文
想要什么功能,让Agent自己开发
允中 发自 凹非寺
量子位 | 公众号QbitAI
允中 发自 凹非寺
量子位 | 公众号QbitAI
用WorkSwarm时,想加个新功能,能不能直接把需求告诉Agent,让它自己做出来,装上试试?
这个问题正好对应HyperAgent架构解读里谈到的扩展性。这是openJiuwen为HyperAgent提出的八项特征之一,即 从「开发者友好」走向「RSI友好」 。
扩展机制既要方便开发者接入新能力,也要让Agent能根据任务反馈动手改进自己的能力。改动做出来后,还得装进应用,在实际任务里试一试,才知道问题有没有解决,下一轮还要改哪里。
openJiuwen的 RSI原生AgentOS, 为这种递归自我改进(RSI)提供了运行环境。
它在界面、网关、服务端和Agent执行等环节提供不同类型的扩展点,覆盖 运行全周期 。新功能可以 热插拔 ,接入时 不用改应用原有代码 。扩展包可以 按版本管理 , 新版出了问题还能回退 。
WorkSwarm用的就是这套扩展机制。它是 基于openJiuwen RSI原生AgentOS构建的Agent应用 。Agent可以把新功能打成AgentOS能加载的 扩展包 。同一个包装进WorkSwarm后就叫 系统插件 。
在「我的扩展」里启用后,就能回到手头的任务里试试。哪里用着不顺手,再告诉Agent怎么改。这就是openJiuwen所说的「Agent所想即所得」。
想随手跟Agent聊两句,或者临时交代件小事,桌面上有个能对话的桌宠就够了。碰到要来回查资料、分几步处理的任务,再打开工作台。
WorkSwarm默认没有桌宠形态,那能不能让Agent自己加一个?
把需求直接告诉Agent,比如「给WorkSwarm加个桌宠吧,我想在桌面上点一下就能跟你聊天。」
Agent可以按你的描述生成扩展包,再把它作为「应用形态」系统插件装到WorkSwarm里。WorkSwarm背后的RSI原生AgentOS负责加载扩展,让这个系统插件在工作台上生效。
启用系统插件后,点一下切换按钮,工作台就收起来了,桌面上只留下桌宠。
可以选小蜜蜂,也可以换成胶囊样式。想发消息就点开桌宠。聊到一半要用工作台,双击桌宠就能回去,刚才的对话还在。
上一节里,WorkSwarm启用系统插件后,就能把自己变成桌宠。这个新功能接在什么地方,又是怎么跑起来的?
我们先来看openJiuwen RSI原生AgentOS把界面、网关和Agent的执行,分成了哪些部分。
从用户发出请求到Agent执行任务,系统主要分三层。
Web客户端 负责显示界面、接收用户操作; Gateway 负责接入和转发请求; Agent层 由AgentServer管理会话,由Harness组织任务执行和工具调用。
三层都留了扩展入口,既能在界面上加功能,也能调整请求怎么处理、任务怎么执行。
沿着这套架构看,扩展能力可以被分成五个环节。
Client 可以增加按钮、面板和设置项, Gateway 可以接入鉴权或调整请求路由, AgentServer 可以处理会话、消息和服务端命令。
再往执行环节看, Swarm 可以定制多个Agent的协作规则、跟踪任务进展, Agent 可以调整提示词,接入工具、MCP服务或子Agent。
这些改动通过扩展包交付。包里的manifest.json会写明包标识、版本、依赖和代码入口。涉及界面时,还可以声明组件要显示在输入区、侧栏或设置页的哪个位置。
有了扩展包,运行环境还得知道该由谁加载、什么时候调用里面的代码。安装时,系统读取并检查清单,按包ID和版本保存扩展包。加载时,Gateway和AgentServer分别选取由自己运行的包,确定要加载的版本和顺序,再把扩展代码里的处理函数注册到各自的事件总线。
当用户点击界面按钮、网关收到请求,或Agent开始组装提示词时,相应的组件会发出事件。 事件总线找到匹配的处理函数并调用它 。处理函数可以参与当前流程,也可以通过 Ops 调用组件开放的能力。需要刷新界面时,扩展还可以把更新所需的数据发回Web客户端。
选扩展点时,可以先确定要在什么时机介入,再看对应的组件开放了哪些Operation能力(Ops)。
openJiuwen的RSI原生AgentOS开放了多类扩展事件。下面是各类事件常见的触发时机。
会话与消息: 发送或接收跨会话消息时,以及上下文用量更新时。
Agent执行: Agent开始组装系统提示词时。
Swarm协作: 生成团队协作规则时,以及团队运行状态发生变化后。
界面交互: 扩展界面就绪时,或用户点击按钮、选择选项时。
网关与服务端: 网关分发请求前,或服务端处理已接入的命令时。
处理函数能调用哪些Ops,要看它在哪个组件里运行。以下是几类常用能力。
读取会话数据 ,包括历史消息、对话轮次和上下文用量。
登记Agent可用的工具 ,供Agent执行任务时调用。
查询团队信息 ,通过只读接口查看成员、任务进展和依赖关系。
更新工作台界面 ,在扩展声明的位置显示面板或刷新内容。
通过网关发起HTTP请求 ,访问策略允许的地址。
访问资源和状态 ,在授权范围内读取文件,保存扩展自己的配置和运行状态。
扩展包的结构、事件和Ops的完整清单及用法,都可以在openJiuwen扩展开发文档里查到。
基于RSI原生AgentOS的扩展机制,WorkSwarm能接入Agent做出的系统插件。想加什么功能,直接把需求告诉Agent。
装好后,在「我的扩展」里启用,试过之后再按反馈调整。系统插件引起故障时,还可以 从存档点恢复之前的配置 ,再继续调试。
第一次做系统插件,可以用开发Skill和Agent对话,边做边调试。
比如要做Token Weather,可以说「在输入框上方加条状态栏,显示当前会话的Token用量,用晴天、多云等天气提示占用程度。」Agent可以按需求编写代码、打包并安装到WorkSwarm。
启用Token Weather系统插件后就能试用。要是觉得状态栏占地方,可以接着说「做得紧凑一点,保留用量百分比。」Agent会按反馈修改系统插件并重新加载,让你再试一遍。
也可以手动编写系统插件的声明和代码,再打成ZIP。如果有依赖项,就在声明里写明依赖和版本要求,WorkSwarm加载时会检查。
通过开发Skill生成的系统插件会自动装进WorkSwarm。手动安装有三种方式。
放入安装目录。 把解压后的系统插件文件放进安装目录,WorkSwarm重启时会加载。
从扩展页面安装。 点击侧边栏的「扩展」,在「系统插件」里找到想要的功能并下载安装。
通过命令安装。 在WorkSwarm的对话框里,用/extension install安装本地系统插件。
在「我的扩展→系统插件」里,可以查看已安装系统插件的状态,也可以启用或禁用系统插件。
安装完成并确认系统插件已启用后,就可以验证功能。以Token Weather为例,打开对话,先看输入框上方有没有状态栏,再发一条消息。等Agent回复完,看看状态栏里的用量有没有更新。
试用新系统插件时, 能回退配置,才有余地继续试、继续改 。
比如启用后某个页面打不开,可以 选择故障前的存档点,恢复当时的系统插件配置 。回退后,重新打开出问题的页面,确认能正常使用,再继续调试。
借助RSI原生AgentOS的扩展能力,可以按自己的习惯调整应用界面,也可以查看单个Agent的工作过程,调整它做事的方式。
当任务需要多个Agent一起完成时, 团队怎么分工、怎么交接,也能按项目需要定制 。应用接入企业环境时,还可以 按部署要求调整访问管理和Agent的运行方式 。
前端界面扩展可以改变Agent应用的外观和交互。Agent可以按你的喜好调整主题,也可以在页面预留的位置加按钮、状态栏或面板,把常看的信息和常用的操作放到顺手的地方。
在WorkSwarm里,想换个界面风格,可以跟Agent说「给工作台做几套带动画的主题,我想在设置里切换。」Agent根据描述生成主题背景扩展包。装进WorkSwarm并启用对应的系统插件后,在设置页选一个主题,工作台就会换上对应的动态背景。
单Agent扩展可以接入会话管理、任务执行等环节。比如,它可以把会话状态和上下文用量呈现出来,让用户看清Agent的工作过程。
到了执行环节,扩展还可以按任务需要补充上下文、调整提示词里的工作规则,或为Agent登记新的工具。
在WorkSwarm里,想知道长对话的上下文都用在哪儿,可以让Agent生成一个用于上下文监控的系统插件。
启用后,面板显示输入Token数和窗口占用率,并估算系统提示词、技能、工具定义和消息各占多少。
你还可以对比每次模型请求的输入用量,查看工具调用的状态和耗时,回看近期轮次的用量摘要和会话消息。
多个Agent一起做任务时,可以通过扩展 把项目自己的分工和交接约定写进协作规则 。任务开始后,扩展还能接收状态变化的通知, 跟踪谁在做哪项任务、已经做到哪一步 。
比如,任务分给几个Agent后,想看看各自做到了哪,可以用扩展包开发Skill,让Agent按描述生成团队协作可视化扩展包。
装进WorkSwarm并启用对应的系统插件后,在集群模式下,就能在一个视图里看到团队成员、各自负责的任务和任务之间的依赖。要是某项任务还在等待,就可以顺着依赖查到哪项前置工作还没完成。
企业接入时,可以借助RSI原生AgentOS的扩展能力,按部署需要调整账号接入和Agent的运行环境。
分布式部署时,Gateway和AgentServer可以分开运行。企业可以 按业务需要选择Gateway连接的AgentServer,并在两侧分别加载所需的扩展 。
比如,在Gateway侧接入鉴权或调整请求路由,在AgentServer侧为会话补充项目上下文,或调整服务端命令的参数和执行结果处理方式。需要隔离执行时,还可以 通过适配器接入第三方沙箱 ,让Agent在选定的环境里运行命令和代码。
在WorkSwarm中,Gateway登录系统插件可以给应用入口加上登录页,并在请求进入业务流程前校验凭证。启用后,未登录的用户会看到登录页,受保护的请求会被拦下。登录后,浏览器会带上凭证,校验通过的请求可以继续处理。
在WorkSwarm里,新建单Agent会话时,系统插件可以提供Claude Code(CC)、Codex和openJiuwen三种Harness选项。选好后,由所选的Harness执行这次会话的任务、调用工具,前端界面也会随之切换。
Agent做着任务,也能动手改自己。它可以把想到的改法做成RSI原生AgentOS能加载的扩展包,装进WorkSwarm后作为系统插件启用。
回到任务里试一试,再按反馈调整界面和能力。试过好用的系统插件,下次做任务还能接着用。这就是openJiuwen所说的「 Agent所想即所得 」。
随着更多环节向扩展开放,个人的使用习惯、团队的协作规则和企业的运行要求,都可以成为Agent调整自己的依据。
刚装好时,它有一个默认的样子。往后会变成什么样,它可以在一件件实际工作里自己改出来。
欢迎来WorkSwarm试试,和Agent一起做个你想要的新功能,装上你的第一个系统插件,再到社区分享试用的效果!
相关资源
WorkSwarm体验入口:
https://openjiuwen.com/workswarm WorkSwarm GitHub代码仓:
https://github.com/openJiuwen-ai/jiuwenswarm openJiuwen Harness文档:
https://github.com/openJiuwen-ai/jiuwenswarm/blob/develop/docs/zh/Harness.md openJiuwen扩展开发文档:
https://gitcode.com/openJiuwen/jiuwenswarm/tree/releases%2F0.2.9.beta3/docs/zh/extension
*本文系量子位获授权刊载,观点仅为原作者所有。