早期预览版,可能仍有一些问题。在 GitHub 查看 RandComAI →
RRandComp Studio

文档

把分散的 AI 会话作为一支协同团队来运行。

一个全能会话会累积所有工作和不断增长的上下文。RandComp Studio 让你把研究、产品、开发和评审拆成专注的角色会话,再把任务、消息、依赖与结果连接起来。它不会替代你的 AI 智能体或 skill 生态。

开始使用

快速开始

先安装 RandComp Studio 应用,然后从桌面看板或支持 MCP 的 AI 会话操作同一支本地团队。两种方式都要求你已安装并登录一个受支持的命令行 AI 智能体。运行器支持可以扩展;角色与运行器一节会说明内置定义以及如何添加自己的运行器。

方式 1

桌面应用

需要:Apple 芯片和 macOS 11 或更高版本。Python 和 tmux 已内置。

  1. 下载 RandCompStudio-0.1.1.dmg。
  2. 打开文件,把 RandComp Studio 拖入 Applications。
  3. 打开应用,选择公司文件夹的位置。

构建过程会把版本、大小和 SHA-256 写入落地页;打开磁盘映像前请核对页面显示的哈希值。

方式 2

在你的 AI 会话中

需要:RandComp Studio 应用、支持本地 MCP 服务器的 AI 客户端,以及 PATH 中的 randcomp。请先在应用中选择 RandComp Studio → Install the randcomp command in PATH。

claude mcp add -s user randcomp-studio -- randcomp mcp

上面是 Claude Code 示例。-s user 让它在所有项目中可用;不加该参数时,服务器只为当前文件夹注册。其他 MCP 客户端通过各自的本地服务器设置注册同一个 randcomp mcp 进程。

你的 AI 会话可以创建任务、雇用角色、启动智能体、发送工作并读取结果。应用打开后会显示同一块看板和同一组终端。

注册后还会向客户端添加四个 RandComp Studio 斜杠命令。

这是通过标准输入和标准输出通信的本地 MCP 进程,不是托管服务器。RandComp Studio 不需要账户或 API 密钥。AI 客户端仍按自身设置与其供应商通信。

首次运行时的问题

公司文件夹用普通文件保存角色、任务、决策、状态、消息和结果。它不一定是智能体工作的代码库;每个任务可单独选择项目文件夹。

若有多个已配置的运行器可用,RandComp Studio 会询问哪个工具用于运行协调员。它只检查所选运行器是否看起来已登录,不读取或保存凭据值,也不会替你登录。

五分钟

运行第一个项目

从 UI 开始

  1. 运行 randcomp 打开公司窗口。
  2. 选择 Start a project(开始一个项目),用一句话描述你想要什么。
  3. RandComp Studio 打开项目,并把请求交给项目的协调员。
  4. 协调员把这句话拆成一组具体任务,并雇佣帮手完成它们。
  5. 观察每个任务:谁在负责、产出了什么、哪里需要你。想继续推进时,在输入框里发送下一个请求。

从 CLI 开始

randcomp project create "上线一个带结账功能的小型在线商店" --runner kimi
randcomp project list
randcomp project ask PROJECT_ID "增加一个礼品卡页面"
randcomp project show PROJECT_ID

从 randcomp project list 复制 PROJECT_ID。ask 会唤醒项目的真实协调员会话并把请求交给它;如何规划任务是协调员自己的判断。同一组项目命令也可以在公司的所在机器上通过 SSH 使用。

经典的以任务为中心的命令(如 randcomp task create)保持不变,仍可用于公司级任务板。

从通过 MCP 连接的 AI 会话开始

注册服务器后,让 AI 会话通过 RandComp Studio 创建和管理工作,而不是使用客户端自己的临时子智能体。AI 客户端选择 MCP 工具;RandComp Studio 则负责底层的持久项目、协调员、帮手智能体、会话、消息和结果。

使用 RandComp Studio 为这项工作创建一个项目。
让协调员规划任务,由开发实现,QA 独立评审。
让项目及其帮手始终显示在 RandComp Studio 看板上。

MCP 服务器以 v2_project_create、v2_project_list、v2_project_show、v2_project_ask、v2_project_finish、v2_project_reopen 等形式发布项目工具,另有 v2_task_*、v2_agent_* 和 v2_result_* 工具,与经典公司级工具并存。用自然语言提出请求仍是主要方式;下面四个命令只是常用句子的快捷方式。

斜杠命令

RandComp Studio 发布四个 prompt,客户端会把它们转换成可在消息开头选择的命令。Claude Code 2.1.233 使用以下写法,并在 /mcp 下列出所有已连接服务器的命令:

输入作用
/mcp__randcomp-studio__catch-me-up查看公司现状:所有任务、参与者、等待你处理的事项和沉默的会话。只读。
/mcp__randcomp-studio__what-came-out TASK_ID查看一个任务的目标、协调员记录的结果以及每个文件的完整路径。只读,会话结束很久后仍可使用。
/mcp__randcomp-studio__start-work WHAT YOU WANT DONE根据这句话创建任务,并让协调员雇用所需角色。启动智能体会产生费用;省略内容时系统会询问。
/mcp__randcomp-studio__check-on AGENT_ID读取一个智能体用自己的话记录的工作,以及它是否在等待你。只读。

prompt 名称分别为 catch-me-up、what-came-out、start-work 和 check-on。其他 MCP 客户端可能使用不同写法;请查看该客户端的 prompt 或命令列表。

命令后的内容是它唯一的值:任务 ID、智能体 ID,或你希望完成的工作。

命令给会话的是起点,不是现成答案。

它会返回应该调用哪些 RandComp Studio 工具以及如何读取结果。随后会话在客户端自身审批设置下发起调用;在你允许工具调用前,不会创建、启动或停止任何内容。

核心概念

基本概念

概念含义
公司持久保存角色、任务、决策、消息、状态和产出文件的文件夹。
项目文件夹智能体实际操作的代码库或工作文件夹。每个任务单独选择,可以位于公司文件夹之外。
项目当前应用的主要工作单元:一句你想要的话、一位负责规划的协调员,以及由协调员拆出的一组具体任务。项目持久保存在磁盘上,重启后依然存在。
任务项目计划中的一个具体工作项,有其帮手、实时状态、结果和文件。公司级经典任务板也仍然存在,可直接派发工作。
智能体一个角色在一个任务中被雇用的实例。两个任务使用开发角色时,会得到两个不同的开发智能体。
会话智能体正在运行的一个终端。会话会产生费用;会话停止后,智能体及其历史仍会保留。
角色可复用定义,例如开发、QA 或市场分析。角色位于帮手库中,本身不会运行。
运行器执行智能体的已安装命令行 AI 工具。Claude Code、Codex 与 Kimi Code 是当前预览版内置的首批定义,不是运行器模型的边界——任何能在终端中运行的 CLI 都可以成为运行器。
角色构成公司;智能体是参与具体工作的成员。

角色库没有实时关系图。关系与箭头只存在于一个任务内部,连接该任务雇用的智能体实例。

图形界面

使用 UI

直接运行 randcomp,不加其他参数。它会在独立窗口中打开公司,服务只绑定到 127.0.0.1。

项目

用一句话开始项目,向协调员发送请求,观看具体任务的计划成形——每个任务都显示谁在负责、产出了什么。

帮手库

浏览可复用的帮手角色库,阅读定义,或导入你已有的定义。

智能体会话

打开帮手的实时会话,阅读终端内容,更改它运行的 AI 工具,或停止会话而不删除智能体。

历史与设置

查看已记录的公司活动,切换浅色或深色外观,选择界面语言,或重播首次使用向导。

读取任务状态

任务状态根据智能体推导,而不是保存一个猜测。需要你表示智能体记录了阻塞或请求;工作中表示当前工作活跃;已完成表示任务已经结束。沉默或未知状态会显示具体原因,不会被简单标成阻塞。

与智能体沟通

从任务中打开智能体,读取当前终端输出并发送消息。“在终端中打开”会加入真实 tmux 会话;按 Ctrl-B,再按 D 即可脱离,智能体会继续工作。

命令行

使用 CLI

randcomp 与 randcomp-studio 是同一个程序,前者更短。每条命令先写对象,再写动作,例如 randcomp task list、randcomp task results TASK_ID、randcomp task finish TASK_ID。复数旧写法仍会继续工作;randcomp help 讲解的是单数新写法。

查看整个公司

randcomp status
randcomp task list
randcomp agent list

status 是简洁的公司摘要:使用哪个程序运行智能体、是否已登录、任务与智能体数量,以及每项的一行摘要。randcomp task list 解释每个任务为什么处于当前状态;randcomp agent list 说明每个智能体正在做什么。

使用另一家公司

randcomp task list --company ~/Companies/acme
randcomp --company ~/Companies/new-company

--company PATH 适用于整个命令面。指定不存在的路径会在该处创建公司;它不会改变智能体工作的项目文件夹。

参考

完整 CLI 参考

本参考与当前源代码中的公开解析器一致。方括号表示可选输入。每条命令都接受 -h 或 --help;randcomp help 打印顶层命令图。

参数值与通用行为

值来源
TASK_IDrandcomp task list 中任务旁的短标识,或足以唯一匹配一个任务的长名称片段。
AGENT_IDrandcomp agent list 中角色后括号内的 ID。若只有一个该角色智能体,也可使用角色名。
RESULT_FILE_PATHrandcomp task results TASK_ID 在“产出”下打印的完整路径。
ADDRESS已雇用智能体 ID,或不会产生歧义的角色名。

task、agent、role、status 和打开窗口的裸命令都接受 --company PATH。它选择包含 roles/ 与 coordination/ 的公司文件夹,而不是智能体的项目文件夹。默认使用首次运行时记住的公司;不存在的指定路径会被初始化为公司。对 role 命令,该参数可放在动作前或后。

MCP 服务器

randcomp mcp [--company PATH]

通过标准输入和标准输出使用 Model Context Protocol,让本地 MCP 客户端读取和控制公司。请用 claude mcp add -s user randcomp-studio -- randcomp mcp 注册,不要手动运行。它发布客户端可调用的工具,以及客户端显示为斜杠命令的四个 prompt。--company 可选择非默认公司。没有网络监听、托管服务、RandComp Studio 账户或 API 密钥。

任务

randcomp task create TEXT... [OPTIONS]

创建任务、启动协调员,并让协调员雇用所需角色。

  • --name WORDS 设置显示名称和短任务标识的基础,默认使用请求文本。
  • --in PATH 设置每个智能体打开的项目文件夹,默认使用上次选择的项目文件夹。
  • --only ROLE,ROLE 限制协调员可考虑的角色并记住该范围;--only all 清除限制。
  • --with-role ROLE 直接雇用你选择的一个角色,不让协调员选择。
  • --let-it-work-without-asking 请求运行器的无人值守权限模式。这会降低审批边界;randcomp role list 会打印运行器允许的内容。
  • --anyway 在已有会话运行时确认新增支出。省略时,RandComp Studio 会报告运行内容并停止。
randcomp task list [--json] [--company PATH]

打印公司组织图:所有任务、推导状态、智能体和可直接运行的命令。--json 返回结构化 JSON。

randcomp task results TASK_ID [--json] [--company PATH]

显示请求、协调员结果、参与者和产出文件完整路径。若可交互确定任务,可以省略 ID。它只列文件,不打印内容;--json 输出结构化结果。

randcomp task show RESULT_FILE_PATH [--company PATH]

完整打印一个产出文档。包含目录分隔符的参数按文件路径读取,其余按任务名读取。请使用“产出”下显示的精确路径。

randcomp task finish TASK_ID [--yes] [--company PATH]

关闭任务并停止其所有智能体会话。终端中会列出会话并先询问;--yes 提前确认,非交互脚本不会收到提示。智能体和历史会保留。

randcomp task reopen TASK_ID [--company PATH]

重新打开已完成任务,但不会自动启动会话。请列出旧智能体,并仅对需要继续工作的对象运行 randcomp agent start AGENT_ID。

智能体

randcomp agent list TASK_ID [--json] [--company PATH]
randcomp agent list [--json] [--company PATH]

列出一个任务的智能体;省略任务时列出公司全部智能体。--json 返回结构化输出。

randcomp agent logs AGENT_ID [--company PATH]

读取智能体自己的话:运行中读取完整实时回滚内容,停止后读取保存的对话。这不是可复用角色定义。

randcomp agent send AGENT_ID TEXT... [--company PATH]

向智能体发送一行。会话运行时直接进入会话;未运行时等待在智能体收件箱中。

randcomp agent attach AGENT_ID [--print-the-command] [--company PATH]

在当前终端加入 tmux 会话;按 Ctrl-B,再按 D 脱离。--print-the-command 只打印加入命令,供其他终端或脚本使用。

randcomp agent start AGENT_ID [--company PATH]
randcomp agent stop AGENT_ID [--company PATH]

start 为持久智能体创建会话并恢复其身份与历史。stop 只结束会话;智能体仍保留并可再次启动。

角色库与雇用

randcomp role add ROLE [OPTIONS]

把公司中的一个角色加入任务。雇用会记录实例,但不一定立即启动;role hire 是旧写法。

  • --assignment WORDS... 记录该实例唯一的一项工作,也可稍后添加。
  • --in PATH 设置智能体打开的项目文件夹,默认使用公司文件夹。隐藏的旧参数 --project PATH 等价。
  • --task SLUG 把智能体绑定到一个任务的协调目录标识。只有真正跨任务工作时才省略。
  • --because WORDS 记录任务为什么需要该角色。
  • --runner NAME 选择运行器;省略时使用已安装并配置的默认项。
randcomp role assign ADDRESS --assignment WORDS... [--continue] [--company PATH]

更改智能体的任务说明。一个会话只拥有一项工作,因此不同工作会被拒绝;--continue 明确表示这是对同一工作的更清晰描述。

randcomp role outcome --task SLUG [WORDS...] [--company PATH]

记录任务的简洁结果、产出路径、结论和剩余工作。不提供结果文字可清除错误结果。

randcomp role list [--all] [--company PATH]

列出已雇用成员和运行情况。--all 包括已退休成员;role roster 等价。

randcomp role retire ADDRESS [--company PATH]

不再把某个成员列为活跃,但保留其历史记录。

randcomp role import PATH [OPTIONS]

把现有 skill、agent、GPT 导出、AGENTS.md 或 Markdown 定义转换为 RandComp Studio 角色包。PATH 可以是文件、目录,或表示标准输入的 -。

  • --as NAME 覆盖推断的角色名。
  • 不加 --add 时不会写入任何内容,只打印建议包供检查。
  • --add 把转换结果复制到 role-library/<name>/ 并生成 roles/<NAME>.md。不会编辑来源或覆盖现有角色。
  • --anyway 允许在缺少非关键资料时写入,但不能绕过缺少名称、使命或覆盖拒绝。

角色会话与运行器

randcomp role runners [--company PATH]

列出所有已配置运行器、是否安装和登录,以及默认运行器。

randcomp role coordinator [--use NAME | --default] [--company PATH]

不加参数时显示新协调员使用的运行器。--use 记住新选择;--default 清除选择并回到运行器表默认值。现有协调员会话不受影响。

randcomp role runs-on ADDRESS [--use NAME] [--wait SECONDS] [--company PATH]

显示智能体运行器。--use 将它迁移到另一个运行器。若正在运行,RandComp Studio 会先请求并验证交接;--wait 设置交接截止时间。

randcomp role launch ADDRESS [--let-it-work-without-asking] [--company PATH]

为已雇用智能体创建会话。无人值守参数会明确降低安全边界;若运行器未定义该模式则会被拒绝。

randcomp role stop ADDRESS [--company PATH]
randcomp role attach ADDRESS [--company PATH]

stop 结束会话但保留雇用记录。角色级 attach 打印加入命令;agent attach 直接加入。

randcomp role replace ADDRESS [--wait SECONDS] [--let-it-work-without-asking] [--company PATH]

请求在线智能体交接、验证交接、退役旧会话并启动新的延续会话。超时则旧会话完全保持原样。

randcomp role at-once [HOW_MANY] [--company PATH]

显示或设置每个任务可同时运行的专业智能体数量。多余成员等待轮次;任务协调员不计入。旧 at-most 已移除,只会说明替代命令。

randcomp role check ADDRESS [--company PATH]
randcomp role history ADDRESS [--company PATH]

check 取出智能体收件箱中等待的全部内容;history 显示该成员的所有会话及会话继承关系。

角色消息

randcomp role say ADDRESS TEXT... [--about TASK_ID] [--company PATH]

发送创始人撰写的消息。向跨任务协调员发送时,--about 用于明确任务。

randcomp role send --to ADDRESS --from NAME [--as-founder] TEXT... [--company PATH]

从一个角色向另一个角色发送消息。--from 如实记录发送者;--as-founder 明确标记消息由创始人撰写。

randcomp role route [--company PATH]

投递角色发件箱中当前等待的全部消息。

randcomp role read ADDRESS [--lines N] [--company PATH]

读取完整实时回滚内容或保存的对话。--lines N 只限制实时内容;已完成对话始终完整显示。

randcomp role inbox [ADDRESS] [--company PATH]

显示一个接收者的未读消息;省略地址时显示所有接收者。

公司状态与窗口

randcomp status [--json] [--company PATH]

打印所选运行器及登录状态、任务和智能体数量,再为每项打印一行摘要。--json 返回结构化输出。

randcomp [--company PATH] [--no-model]

不加后续命令时,在独立窗口中打开公司,并只绑定到 127.0.0.1。--no-model 禁用可选的本地模型说明。

randcomp help
randcomp COMMAND --help

打印完整命令图,或某一命令的解析器帮助。

颜色

randcomp COMMAND --no-color

只有人在终端读取时,命令才会为状态、可复制值、标题和弱化的上下文行着色。通过管道、重定向或智能体读取时,输出是逐字节纯文本。所有命令都支持 --no-color,也遵循 NO_COLOR 和 FORCE_COLOR。

旧写法

建议学习上面的语法。工具过去支持的所有写法仍会原样运行,因此已有脚本不会失效:

task create, do, dispatchtasks new
task listtasks ls
task results, resultstasks TASK_ID
task show, showtasks RESULT_FILE_PATH
task finish, finish, reopentasks TASK_ID finish / reopen
agent listtasks TASK_ID agents
agent logs/send/attach/start/stop, read, say, attach, start, stopagents AGENT_ID logs 及其余动作
role library, roles并入 role list 与 role import
role addrole hire
app, ui直接运行 randcomp
inbox, handoff, todo add/note/done不再出现在教学界面中,但仍可运行

执行

角色与运行器

角色是工作定义,运行器是执行它的已安装程序。同一角色的两个智能体可以使用不同运行器。

randcomp role runners
randcomp role coordinator --use NAME
randcomp role runs-on AGENT_ID --use NAME
randcomp role at-once NUMBER

coordinator --use 更改之后启动的协调员运行器。runs-on 把一个智能体迁移到另一运行器。at-once 控制每个任务同时运行的专业智能体数量;多余成员保持已雇用并等待轮次。

RandComp Studio 首批自带 Claude Code、Codex CLI 与 Kimi Code 的运行器定义。它们是初始集成,而不是产品定义。高级用户可在 ~/.config/mission-control/runners.json 中新增或覆盖运行器,无需修改产品;下一步也会加入更多内置运行器。

复用已有 skills 和 agents

RandComp Studio 不是替代型 marketplace。导入器接受你已有的角色定义,例如 Agent Skill、Claude agent 或 skill、导出的 GPT 或普通 Markdown,并转换为本地角色包规范。

randcomp role import ROLE_SOURCE_PATH
randcomp role import ROLE_SOURCE_PATH --add

第一条命令仅用于检查:打印系统理解的内容、角色转换结果,以及匹配规则能否真正选中它。不加 --add 不会写入任何内容。来源路径只读;确认后的转换结果会复制到公司 role-library/。

本地优先设计

文件、隐私与边界

  • UI 服务器只绑定到 127.0.0.1。
  • RandComp Studio 没有托管账户或自己的模型 API 密钥。
  • 匿名使用统计——仅记录事件次数,不含任何内容。每条事件只有类型、UTC 时间和随机安装 ID;不含 IP 地址、项目名称、消息或身份信息。可在“设置 → 使用统计”中关闭。
  • 命令行 AI 智能体仍按该工具的设置和隐私政策与其供应商通信。
  • 公司文件夹包含可读的角色、任务文件、状态、消息和产出。
  • 本地应用状态默认位于 ~/.config/mission-control。设置 MISSION_CONTROL_HOME 可覆盖。
  • RandComp Studio 只检查运行器登录标记是否存在。凭据值不会进入页面、日志或状态文件。
访问项目文件夹就是真实访问。

智能体通过你选择的命令行 AI 工具读取和修改项目文件夹。该工具的审批与沙箱设置决定智能体能做什么。

会话会产生费用

控制成本与自主程度

雇用智能体只写入持久记录;启动会话才可能产生费用。RandComp Studio 明确区分这两个概念。

  • 每个派发任务都有自己的协调员。
  • 默认每个任务同时运行三个专业智能体,协调员不计入。
  • 超过并发数量的智能体等待轮次,而不是被拒绝。
  • 只有应用的消息投递器运行时,排队智能体才会继续;关闭应用会阻止下一轮时,UI 会明确说明。
  • 完成任务会停止所有会话;重新打开不会自动重启。
  • 无人值守权限模式必须明确启用,并且取决于运行器。请先阅读所选运行器允许的行为。

常见问题

故障排查

randcomp: command not found

把 ~/.local/bin 加入 PATH。安装程序会打印适合当前 shell 的精确命令。

export PATH="$HOME/.local/bin:$PATH"

Python 版本过旧

这只影响源码安装,桌面应用自带 Python。源码安装需要 Python 3.11 以读取 TOML 运行器配置;在 macOS 上可运行 brew install python 安装当前版本,也可运行:

MISSION_CONTROL_PYTHON=/path/to/python3 ./install.sh

智能体会话无法启动

应用已经内置 tmux,无需另行安装。它无法内置的是你的命令行 AI 智能体:确认工具位于 PATH 并已通过自身命令登录。randcomp status 会显示找到的工具和登录状态。若从源码安装,则机器上仍需安装 tmux。然后检查:

randcomp status
randcomp role runners

打开了错误的公司

记住的公司不会随当前目录变化。请使用 --company PATH 明确指定另一个公司。

智能体沉默或等待

重启前先读取确切原因和会话记录:

randcomp agent logs AGENT_ID
randcomp agent attach AGENT_ID

维护

移动或卸载

移动解压后的文件夹

已安装命令会指向该文件夹。移动后,请在新位置重新运行 ./install.sh。

移除 RandComp Studio

rm ~/.local/bin/randcomp
rm ~/.local/bin/randcomp-studio

然后删除解压后的产品文件夹。公司文件夹属于你,不会被触碰。