尚未偵測到更新。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.