Khorsheed/dsh-plugins--packages-local-agent-claude-code ↗★ 0
@khorsheed/dsh-local-agent-claude-code
集成Claude Code子代理 适合需要在DSH中委派任务给本地Claude Code CLI的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Khorsheed/dsh-plugins#548eeabe331c121621b2d08deab4278ad81d6312&path:packages/local-agent-claude-code说明文档
阅读完整 README ↗配置
bundle 行接受这些可选字段:
permissionMode——skip(默认)传--dangerously-skip-permissions,子代理写文件无需审批;normal不传,需审批的动作(如写文件)被拒绝。model——每轮委派以它起 CLI(claude -p --model);不写就一个模型参数都不传。见下。baseUrl——为子 CLI 设置ANTHROPIC_BASE_URL(例如自部署路由器或代理);缺省继承宿主进程环境。配置优先于环境。proxyUrl——子 CLI 自身流量(模型调用与 OAuth 续期)的 HTTP 代理,provision 进作用域settings.json的 env 块;宿主进程环境不带代理时(例如 supervisor 拉起的实例不继承 shell export)用这项。live——长驻驱动:每成员常驻一个 stream-json 进程(--input-format stream-json),按轮发 stdin 消息(runtime 级优雅中断 control interrupt、同形推送流);关闭或通道不可用即回一次性claude -p。liveIdleMs——长驻 runtime 空闲回收时限(默认 30 分钟)。
迁移说明——live 轮次统一消费增量输出;旧
liveMirrorGranularity: event | token配置键继续兼容读取,但不再影响行为,也不会改变运行中的进程。评测继续保留 exec;最终内容仍以 provider 完成项为准,包括工具记录和用量。
默认模型(model)
不写 = 今天的表现。 没有这个键时,本插件在 argv 上一个模型参数都不加:跑哪个模型由作用域 settings.json 的 model 决定,它也没有时由 claude 自己的默认决定(本插件从不猜它是什么)。
写了 = 每轮委派以它起 CLI。 新起一轮与续接(resume)、一次性与常驻(live: true)四种 argv 都带上 --model ,位置在成员通道的 --allowedTools …-- 之前——那个旗标是变长的,-- 之后就是任务文本。
一次性(exec)轮不改写作用域 settings.json——--model 每轮覆盖它,文件仍是你编辑的样子。常驻(live)spawn 会把成员的生效模型暂写进该文件(--resume 重挂时 CLI 认文件里的模型而不认 --model 旗标),绑定空模型的 spawn 前再还原;状态页与设置卡读到的「CLI 配置」层永远是你自己配的值,不会读到某个成员留下的暂写。
设置卡「默认模型」修改后续轮次使用的 provider 配置。共享选择器展示当前作用域的模型目录、发现来源和完整性,并保留按需填写模型 ID 的入口。清空选择后跟随有效配置及默认值链。保存不会打断当前轮次,也无需重载;共享选择器不可用时,卡片保留文本输入兜底。成员级模型和推理强度修改使用下文的持久控制面。
模型读面现已读取 Claude 原生 initialize 目录,保留选择别名、显示名、解析名称和支持的 effort 值。目录共用 core 缓存和刷新订阅,刷新失败保留成功数据,并独立标识历史建议。此 scoped 控制查询不发送用户任务、不写模型设置。旧 CLI 缺少目录时显示不支持;原生候选不证明账号权限。共用模型菜单和成员 effort 控制已接入。运行中选择排到下一完整轮次(含工具续跑);core 统一持有当前/待生效配置、撤销与重试,冻结评测成员禁止变更。
委派级的模型优先。 编排器可以经门面 DelegationCallOptions.model 给某一次委派点名模型,它排在这个键之前(顺序见家族核心 README 的层序)。首轮请求的值记进委派记录,resume 轮照它重发——resume 不接受 model 参数。常驻模式下,首轮点名的模型作为该成员的起始模型在 runtime spawn 时绑定:已绑定不同模型的 runtime 先退役,同一个 CLI 会话经 --resume 在新进程上续起。
成员会话级切换。 成员会话的 composer 模型选择器经家族网关 setMemberModel 写入一个会话级覆盖——它排在委派模型与这个键之前,只存内存、刻意不跨宿主重启、也不写进设置。切换进行中轮次的成员会被拒绝;live 下换到不同模型会退役该成员的常驻 runtime,下一轮以新模型重挂同一个 CLI 会话(对话不丢),换成相同模型则什么都不发生。
这不是评测的缺口。 评测 run 的条件在建立时冻结:run 跑到一半改这个键,下一轮的模型回读会发现声明模型 ≠ 实测模型,run 直接判为 misattributed 而失败(冻结决策 5)。「切了新 run 照新走、进行中的 run 不被悄悄换掉」是设计出来的,不是漏掉的。
⚠️ skip 没有 OS 级沙箱——子进程可以写宿主用户能写的任何地方,包括工作区之外;作用域登录的 OAuth token 会发送给 baseUrl 指向的端点。委派需要限制时改用 normal;baseUrl 只指向你信任的地址。
评测快照(effectiveSettings)。 本 harness 向注册表声明一份实时读取的公平性设置快照,供评测条件哈希使用:drive(exec/live)、permissionMode(skip/normal,插件配置)、端点是否固定(按 provider 的解析顺序——配置项优先于宿主进程环境的 ANTHROPIC_BASE_URL,只报主机名)、已配置模型(先看插件配置的 model 键——它每轮覆盖文件;没有才读作用域 settings.json 的 model;CLI 自身的默认模型由 CLI 决定,绝不猜值,都没有就不给字段)、CLI 版本(claude --version,按可执行文件路径+mtime 缓存;探测不到即字段缺位)。/claude-code status 与 LocalAgentStatus Remote 附带同一份快照。