AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Connect AI agents like code. A provider-agnostic multi-agent orchestration library + Claude Code plugin — compose any agents (Claude, Codex, MiniMax) into teams with a tiny DSL, every topology, a programmable control flow, and a proven-team library.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Programmable, leader-driven agent teams on CAVE.
Run many agent "teams" — a team leader that orchestrates teammates — without Claude Code Teams' blockers, reuse them, and use MiniMax or Claude (or any runtime), from Claude Code. cave-teams uses CAVE (it doesn't reimplement it): each team makes an ephemeral CAVE server that hosts the agents, runs them, and serves the flow, then tears it down.
Teams are always a leader + teammates:查看完整 README ↗Programmable, leader-driven agent teams on CAVE.
Run many agent "teams" — a team leader that orchestrates teammates — without Claude Code Teams' blockers, reuse them, and use MiniMax or Claude (or any runtime), from Claude Code. cave-teams uses CAVE (it doesn't reimplement it): each team makes an ephemeral CAVE server that hosts the agents, runs them, and serves the flow, then tears it down.
pip install cave-teams # pulls cave-harness (the CAVE runtime) + pydantic
Teams are always a leader + teammates:
Conditions on messages come in two tiers:
open_rules): intelligent-reliant checks only the leader can judge; cave-teams surfaces them and assumes they hold when the leader invokes the next teammate.from cave_teams import Team, AgentRef, seq, cave_team
from cave_teams.examples import MiniMaxRuntime
class Brief(Team): # a topology = a Team subclass (Class · Link · Config)
op = "brief"
def build(self):
return seq(AgentRef("researcher"), AgentRef("writer"))
leader = MiniMaxRuntime("leader", tools=None) # writes its message files (needs file tools)
teammates = {
"researcher": MiniMaxRuntime("researcher", tools=[]),
"writer": MiniMaxRuntime("writer", tools=[]),
}
result = cave_team(
Brief({}), agent_runtimes=teammates, leader_runtime=leader,
task="Topic: why octopuses are intelligent.",
open_rules={"researcher": ["research must be accurate before the writer uses it"]},
)
print(result["report"])
A backend is any object with .run(str) -> str — that's all set_runtime needs. The MiniMax/Claude backends are just an example instance; CAVE runs any agent runtime.
Compose teammates with a tiny algebra; it compiles to the guardrails (whose turn it is):
seq(a, b) # a then b a >> b
par(a, b) # a and b together a | b
gate(body, phi) # loop until phi
choice(routes) # guarded branch
team(G) # a composition as one Link → a team is a teammate (closure law)
Topologies are also configs (save under .cave/golden/, reuse, scan_caves) and classes (subclass a Team, override build()).
run_team(team, task, leader, teammate_runtimes, team_dir, open_rules=...) is the leader-driven loop directly (no CAVE server). llm_leader(rt) / file_leader(rt) wrap a runtime as the leader (the latter writes its message as a file, per the session/inbox structure). cave_team(...) is run_team on a freshly-made, torn-down CAVE server.
cave-harness (the CAVE runtime; import name cave) — pulled in automatically.MINIMAX_API_KEY in the environment.MIT.