Skip to content

V2 治理命令族(开发者参考)

版本: CLI v0.134.0+ | 状态: ✅ 内部/运维工具 | 23 个统一治理命令 | 内存态,进程内有效

这是 cc CLI 中一族统一形态的内部治理命令——每个命令在内存中治理某个 V2 子系统的 profile 成熟度job/query 生命周期,并暴露每 owner/每 profile 的配额、空闲/卡死超时、自动清道夫与治理统计。它们面向开发者与运维,不是终端用户日常功能;全部输出 JSON,状态进程内有效、不持久化。

提示:本页是把 23 个高度同构的小命令合并成一篇参考,避免每命令一页的冗余。其底层子系统的用户向能力(如永久记忆、会话用量、网页抓取工具)各有独立文档,见相关文档

概述

ChainlessChain 的多个 V2 内部子系统(BM25 搜索、记忆注入、Prompt 压缩、响应缓存、任务模型选择……)都遵循同一套治理生命周期模型:先注册一个 profile(带成熟度状态),再在其下创建 job/query(带生命周期状态),并由统一的配额与超时规则约束、由自动清道夫回收闲置/卡死项。每个子系统对应一个 cc <cmd> 治理命令,命令之间子命令词汇完全一致,只是名词随子系统而变(profile/target、query/job/task…)。

这族命令用于:检视某子系统的内部状态、手动驱动状态机做调试、调整治理参数、跑一次自动回收、读取治理统计。

核心特性

  • 🧬 统一形态:23 个命令共享同一套子命令词汇,学一个即会全部
  • 🟢 Profile 成熟度pending → active → stale/paused → archived 状态机
  • 🔄 Job/Query 生命周期created → running/searching → completed / failed / cancelled
  • 🎚️ 治理配额:每 owner 最大活跃 profile 数、每 profile 最大 pending job 数
  • ⏱️ 空闲/卡死超时:profile idle 超时、job stuck 超时(毫秒)
  • 🧹 自动清道夫:一键把闲置 profile 置 stale、把卡死 job 置 failed
  • 📊 治理统计:每子系统的 gov stats(计数/分布)
  • 🧾 全 JSON 输出:便于脚本/运维管道消费
  • 💾 内存态:状态进程内有效、不落盘——是治理视图而非持久存储

系统架构

cc <cmd>  (治理命令,src/commands/<cmd>.js)
   │  薄封装,全部委托给底层 lib 的 *V2 函数

src/lib/<subsystem>.js   (V2 治理 API,内存态)
   ├─ Profile 成熟度: register → activate → stale/pause → archive(+ touch 续活)
   ├─ Job/Query 生命周期: create → start/searching → complete / fail / cancel
   ├─ 配额: maxActivePerOwner / maxPendingPerProfile
   ├─ 超时: profileIdleMs / jobStuckMs
   ├─ 清道夫: autoStaleIdleProfiles / autoFailStuckJobs
   └─ 统计: get<Subsystem>GovStatsV2

统一子命令词汇

子命令作用
enums-v2打印成熟度 + 生命周期枚举常量
config-v2查看当前治理配置(配额/超时)
set-max-active-v2 <n>设每 owner 最大活跃 profile 数
set-max-pending-v2 <n>设每 profile 最大 pending job 数
set-idle-ms-v2 <ms>设 profile 空闲超时
set-stuck-ms-v2 <ms>设 job 卡死超时
register-profile-v2(或 register-target-v2注册 profile/target
activate-profile-v2 <id>置 active
stale-profile-v2/pause-profile-v2 <id>置 stale/paused
archive-profile-v2 <id>归档
touch-profile-v2 <id>续活(刷新空闲计时)
get-profile-v2 <id> / list-profiles-v2查/列 profile
create-<job>-v2complete/fail/cancel-<job>-v2job/query 生命周期流转
get-<job>-v2 <id> / list-<job>-v2查/列 job
auto-stale-idle-... / auto-fail-stuck-...自动清道夫

命令清单

命令子系统底层 lib
cc bm25BM25 搜索 profile/querylib/bm25-search.js
cc ccronCowork 定时任务lib/cowork-cron.js
cc consol会话整合(Consolidator)lib/session-consolidator.js
cc fflag功能开关(Feature Flags)lib/feature-flags.js
cc itbudget迭代预算(Iteration Budget)lib/iteration-budget.js
cc mcpscafMCP 脚手架lib/mcp-scaffold.js
cc meminj记忆注入(Memory Injection)lib/memory-injection.js
cc orchgov编排器治理(Orchestrator)lib/orchestrator.js
cc pdfpPDF 解析器lib/pdf-parser.js
cc permmem永久记忆 pin 成熟度 + 保留任务lib/permanent-memory.js
cc promcompPrompt 压缩器lib/prompt-compressor.js
cc rcache响应缓存 profile 成熟度 + 刷新任务lib/response-cache.js
cc seshhook会话钩子(Session Hooks)lib/session-hooks.js
cc seshsearch会话搜索lib/session-search.js
cc seshtail会话 Taillib/session-tail.js
cc seshu会话用量(Session Usage)lib/session-usage.js
cc slotfill槽位填充器(Slot Filler)lib/slot-filler.js
cc svccont服务容器(Service Container)lib/service-container.js
cc tms任务模型选择器(Task Model Selector)lib/task-model-selector.js
cc topiccls主题分类器(Topic Classifier)lib/topic-classifier.js
cc uprof用户画像(User Profile)lib/user-profile.js
cc vcheck版本检查器(Version Checker)lib/version-checker.js
cc webfetch网页抓取 profile/target 治理lib/web-fetch.js

注:cc webfetch 是网页抓取子系统的治理面(profile/target 生命周期),区别于 agent 的 web_fetch 抓取工具本身。

配置参考

每个子系统的治理参数都用相同的四个开关,运行时可调(内存态,进程内有效):

参数子命令含义
每 owner 最大活跃 profile 数set-max-active-v2 <n>限制单 owner 同时 active 的 profile
每 profile 最大 pending job 数set-max-pending-v2 <n>限制单 profile 排队的 job
profile 空闲超时(ms)set-idle-ms-v2 <ms>超过则被 auto-stale-idle 回收
job 卡死超时(ms)set-stuck-ms-v2 <ms>超过则被 auto-fail-stuck 失败

查看当前值用 config-v2,查看枚举常量用 enums-v2

性能指标

  • 内存态 O(1) 流转:注册/激活/流转/查询均为内存 Map 操作,无 I/O。
  • 清道夫批量回收auto-stale-idle / auto-fail-stuck 一次扫描批量处理超时项。
  • 零持久化开销:不写盘、不查库,纯进程内治理视图。

测试覆盖率

各底层子系统的 V2 治理 API 在 lib 层有单元测试(命令层为薄封装):

bash
cd packages/cli
npx vitest run __tests__/unit/bm25-search.test.js \
  __tests__/unit/lib/task-model-selector-v2.test.js \
  __tests__/unit/lib/user-profile-v2.test.js \
  __tests__/unit/lib/topic-classifier-v2.test.js

测试覆盖成熟度/生命周期状态机流转、配额拒绝、空闲/卡死清道夫、治理统计。

安全考虑

  • 内存态、不持久化:治理状态进程内有效,重启即清空——不要把它当作可靠存储。
  • 开发/运维面:这些命令用于调试与运维,不在终端用户日常路径上;输出为内部状态。
  • 配额即防护:每 owner/每 profile 配额防止单方占满活跃槽位;清道夫防止闲置/卡死项堆积。
  • 无内容泄露:治理面只暴露 profile/job 的元数据与计数,不暴露底层数据内容。

故障排查

现象可能原因处理
重启后 profile/job 全没了内存态、不持久化(设计如此)重新 register;不要依赖其跨重启
register-profile-v2 被拒超过每 owner 最大活跃数config-v2 看配额,set-max-active-v2 调高或归档旧 profile
create-<job>-v2 被拒超过每 profile 最大 pending 数set-max-pending-v2 调高或先消费 pending job
profile 莫名变 stale空闲超过 idle-ms 被清道夫回收touch-profile-v2 续活;或调高 set-idle-ms-v2
job 莫名 failed运行超过 stuck-ms 被清道夫失败调高 set-stuck-ms-v2;排查真实卡死原因
不知道有哪些状态cc <cmd> enums-v2 打印枚举

关键文件

路径说明
packages/cli/src/commands/<cmd>.js各治理命令(薄封装,委托 lib 的 *V2 函数)
packages/cli/src/lib/<subsystem>.js各子系统的 V2 治理 API(成熟度/生命周期/配额/清道夫/统计)
packages/cli/__tests__/unit/**lib 层 V2 治理单元测试

使用示例

cc bm25 为例(其它命令同构):

bash
# 看枚举与当前配置
cc bm25 enums-v2
cc bm25 config-v2

# 注册一个 profile 并激活
cc bm25 register-profile-v2 --id p1 --owner alice --field content
cc bm25 activate-profile-v2 p1

# 在其下创建一个 query 并走完生命周期
cc bm25 create-query-v2 --profile p1 --text "hello"
cc bm25 list-queries-v2

# 调治理参数
cc bm25 set-max-active-v2 5
cc bm25 set-idle-ms-v2 600000

# 跑一次自动清道夫并看统计
cc bm25 auto-stale-idle-profiles-v2
cc bm25 list-profiles-v2
bash
# 同一套词汇适用于其它子系统,例如任务模型选择器:
cc tms enums-v2
cc tms register-profile-v2 --id m1 --owner bob
cc tms config-v2

相关文档

基于 MIT 许可发布