接入后得到什么
KunlunCode 是 LoopX 的一等 host surface。LoopX 保存 goal、todo、claim、quota、边界和 writeback;KunlunCode app-server 运行原生 Goal continuation 与 Goal Pro 独立 verifier。
| 部件 | 负责 | 不负责 |
|---|---|---|
| LoopX | 持久 goal/todo、身份、gate、quota、证据 | Agent 推理和外部工具 |
loopx-kunluncode | 连接、添加任务、创建/恢复 Goal、验收并事务化回写 | 常驻 scheduler |
| KunlunCode | 原生自动续跑、工具执行与独立验证 | 绕过 LoopX policy 或隐式扩大权限 |
.loopx/kunluncode.json,不会读取 .claude/loop.md,也不会作为 Claude Code 的 cc lane 执行。连接已有 goal 时会保留其他注册 Agent。三套命令空间:并不完全一致
接入后同时存在 LoopX shell CLI、KunlunCode TUI slash 和 LoopX MCP tools。名称相似不代表状态相通,也不存在自动的一一映射。
| 命令空间 | 例子 | 所有者 | 当前适配器如何使用 |
|---|---|---|---|
| LoopX shell CLI | loopx ...loopx-kunluncode ... | LoopX 控制面 | 连接、添加 todo、启动 native controller 和读取合并状态 |
| KunlunCode TUI slash | /goal、/goal-pro、/plan、/mcp | KunlunCode session runtime | 仍由 TUI 解析;适配器通过等价 app-server API 激活 Goal |
| LoopX MCP tools | should_run、claim_task、complete_task | LoopX MCP server | 交互/兼容模式使用;native run 期间写工具失败关闭 |
/goal:KunlunCode 原生 Goal
保存 KunlunCode session 自己的 persistent objective、continuation status 和 token budget。直接从 TUI 启动时不会自动完成 LoopX todo。
/goal-pro:/goal + 独立完成验证
沿用原生 Goal 生命周期;请求完成时必须由独立 verifier 通过。失败或验证基础设施出错时仍保持 active。
从产品语义看,/goal-pro 就是普通 native Goal 加强制独立验证。协议中普通 Goal 对应 arrangement,Goal Pro 对应 strict;Strict 还约束协调/委派方式,但真正决定完成的是 verifier gate。它仍是 KunlunCode 原生状态,不是 LoopX goal 的高级版。
/goal [status|history|pause|resume|clear|edit [--budget <tokens>] <objective>
|--budget <tokens> <objective>|<objective>]
/goal-pro [status|history|pause|resume|clear|edit [--budget <tokens>] <objective>
|[--answer] [--budget <tokens>] [--] <objective>]/set goal_enabled true。它只控制 KunlunCode 的 /goal 与 /goal-pro,不会启用、暂停或恢复 LoopX goal。原生 Goal 由谁激活
/goal 由 KunlunCode TUI 解析,并不是模型能够输入给自己的普通文本命令。除人工 slash 命令外,本机版本还提供受约束的模型工具和 app-server 路径。
| 激活路径 | 调用者 | 约束 |
|---|---|---|
/goal ... 或 /goal-pro ... | 人工操作者 | TUI 创建并激活原生 Goal |
create_goal | KunlunCode 模型 | 仅在用户明确要求 persistent Goal 时允许;模型不能自行升级普通任务 |
thread/goal/set | app-server 客户端 | 确定性写入 materialized thread;控制器仍需启动或恢复首个 turn |
loopx-kunluncode run | LoopX 外层控制器 | 先选择 todo,再调用 app-server;默认创建 strict Goal Pro |
只有 Goal 被激活后,KunlunCode runtime 才会注入 continuation 指令并驱动后续 Goal turns。普通 headless prompt 不会因为任务看起来很长就自动进入 native Goal。
当前适配器组合两个循环
loopx-kunluncode run 不伪造 slash 文本,也不等待模型自行决定是否调用 create_goal。它直接创建或恢复 thread,调用 thread/goal/set 与 turn/start,让 KunlunCode 自动续跑;本地 journal 负责进程中断后的恢复和 writeback 对账。
- LoopX 管理 + 原生严格长任务:默认
--mode goal-pro。 - 普通 native Goal:使用
--mode goal;旧单轮 MCP worker:使用--mode headless。 - 只使用 KunlunCode 自己的持久目标:使用
/goal或/goal-pro,但不要把其状态当作 LoopX writeback。 /mcp只查看 KunlunCode 已加载的 MCP 工具,不会把 LoopX CLI 变成 slash 命令。
前置条件
- 主机上的
kunluncode已安装并能启动 provider; uv与 Git 可用;- 拥有包含 KunlunCode 适配器的 LoopX 发布包,或用于开发的源码 checkout;
- 拥有目标项目目录;若安装 MCP/使用 legacy headless,还需用户 MCP 配置写权限。
python3 --version
kunluncode --version
uv --version
git --version
export LOOPX_KUNLUN=loopx-kunluncode
export TARGET_PROJECT=/path/to/your-project
export LOOPX_GOAL_ID=my-long-running-goal
export KUNLUN_AGENT_ID=kunlun安装适配器
普通用户安装发布包;install 会通过 uv 创建 adapter-owned MCP 环境,安装相同版本的 LoopX 与 mcp==1.28.1,不要求源码 checkout。
python3 -m pip install --upgrade loopx
loopx-kunluncode install
loopx-kunluncode --help贡献者才需要 checkout-local 环境:
export LOOPX_SOURCE=/path/to/loopx
cd "$LOOPX_SOURCE"
uv venv .venv
uv pip install --python .venv/bin/python -e . 'mcp==1.28.1'
export LOOPX_KUNLUN="$LOOPX_SOURCE/.venv/bin/loopx-kunluncode"
"$LOOPX_KUNLUN" install --python "$LOOPX_SOURCE/.venv/bin/python""$LOOPX_KUNLUN" --help 应列出 connect / install / uninstall / add / run / status;内置 provisioner 不修改系统 Python。
连接项目
新项目:创建 goal 并安装 MCP
"$LOOPX_KUNLUN" connect \
--project "$TARGET_PROJECT" \
--goal-id "$LOOPX_GOAL_ID" \
--agent-id "$KUNLUN_AGENT_ID" \
--objective "持续完成该项目中经过验证的实现任务"当项目没有 .loopx/registry.json 时,--objective 必填。命令会 bootstrap goal、注册 peer Agent、加入 kunluncode backend、写项目绑定,并安装用户级 loopx-kunluncode MCP entry。
已有 LoopX goal
"$LOOPX_KUNLUN" connect \
--project "$TARGET_PROJECT" \
--goal-id "$LOOPX_GOAL_ID" \
--agent-id "$KUNLUN_AGENT_ID"使用 registry 中真实存在的 goal id。适配器会保留已有的 cc、Codex 或其他 Agent,再追加 KunlunCode 身份;不存在的 goal 会失败关闭。
拆开项目绑定和 MCP 安装
"$LOOPX_KUNLUN" connect \
--project "$TARGET_PROJECT" \
--goal-id "$LOOPX_GOAL_ID" \
--agent-id "$KUNLUN_AGENT_ID" \
--skip-mcp
"$LOOPX_KUNLUN" installloopx-kunluncode 不是 LoopX 管理的 entry,安装器拒绝覆盖。先 readback,只有确认应接管时才使用 --replace。新 entry 添加失败时会恢复可重建的旧 command entry;无法安全恢复的 entry 会在删除前被拒绝。Native goal-pro/goal 由 app-server 外层回写,本身不依赖 MCP;--skip-mcp 后仍可运行。MCP 用于 readback、交互使用和 --mode headless。
验证连接
"$LOOPX_KUNLUN" status \
--project "$TARGET_PROJECT"
kunluncode --cwd "$TARGET_PROJECT" mcp test loopx-kunluncode
kunluncode config get mcp_servers状态应显示正确 goal 与 Agent;若安装 MCP,MCP test 应列出四个 LoopX 工具。源码贡献者还应运行 examples/kunluncode-app-server-goal-pro-smoke.py --require,证明 2026-07-27、mode=strict、status=complete、verification_passed=true 和跨进程同 thread 恢复。
| 状态字段 | 期望值 |
|---|---|
ok | true |
goal_id | 连接的 goal id |
agent_identity.agent_id | kunlun 或显式指定值 |
agent_identity.registered | true |
host_surface | kunluncode |
source | runtime_profile:kunluncode |
kunluncode_native_goal.phase | 运行后最终为 committed |
verification_passed | 成功 Goal Pro 为 true |
should_run=false 可能只是当前没有工作、处于 gate、等待 cadence 或已经终态,并不自动表示安装失败。
.loopx/kunluncode.json 解析。始终从正确项目运行或传入 --cwd。添加并运行任务
添加一个有界 todo
"$LOOPX_KUNLUN" add \
--project "$TARGET_PROJECT" \
"修复配置解析问题,运行相关测试,并记录通过结果"add 会把 todo 绑定并 claim 给当前 KunlunCode Agent。任务文本应包含清晰完成条件,但不应包含密钥、原始日志或私有材料。
默认:可恢复的原生 Goal Pro
"$LOOPX_KUNLUN" run \
--project "$TARGET_PROJECT" \
--mode goal-pro \
--permission-mode auto \
--max-duration-secs 600 \
--controller-timeout-secs 3600控制器先由 LoopX 选择/claim todo,再创建或恢复 app-server thread,设置 mode=strict 的 Goal,启动首轮并等待原生 auto-continuation。只有 complete + verification_passed 才执行 delivery、todo、quota 三阶段回写。
其他显式模式
# 普通 native Goal(无严格 verifier gate)
loopx-kunluncode run --project "$TARGET_PROJECT" --mode goal
# 旧版一轮一进程 MCP worker
loopx-kunluncode run --project "$TARGET_PROJECT" \
--mode headless --permission-mode autoLegacy worker 仍要求模型在 next_agent_todo 与 no_follow_up=true 中二选一;native 模式的 writeback 则由外层事务控制器完成。
中断后继续
直接重跑同一命令;journal 会恢复同一 thread 或只补齐缺失 writeback。
立即停止
终态、user gate、quota、wait 或 monitor-only 时,按 packet 处理,不要循环调用模型。
--max-duration-secs 是每 turn 软预算,--controller-timeout-secs 是完整 Goal 等待预算;可选 --token-budget。机器消费输出时加 --json;只预览时加 --dry-run。
权限模式怎么选
| 模式 | 适用场景 | 注意 |
|---|---|---|
ask | TUI 或 legacy 人工流程 | native app-server 不处理交互审批,会失败关闭 |
auto | 默认 native Goal/Goal Pro | 非交互工具策略,但不扩大 LoopX authority |
accept-edits | KunlunCode 原生编辑确认策略 | 仍需验证写入范围和 postcondition |
dont-ask | 不希望出现提示并接受拒绝 | 可能让 Goal 保持 active 或 blocked |
bypass / yolo | 用户明确授权的强隔离环境 | 高风险,不等于发布或生产授权 |
auto。需要逐项审批时改用 TUI;不要为了“跑起来”使用 bypass/yolo。身份、状态与安全边界
| 状态 | 位置 | 提交? |
|---|---|---|
| Registry | <project>/.loopx/registry.json | 否 |
| KunlunCode binding | <project>/.loopx/kunluncode.json | 否 |
| Native runtime journal | <project>/.loopx/kunluncode-runtime.json | 否 |
| Active goal | <project>/.loopx/goals/... | 否 |
| MCP registration | KunlunCode 用户配置 | 否 |
| uv 环境 | .venv | 否 |
- Native Goal 激活不授予 write、push、publish、destructive、credential、external sink 或 production 权限。
- claim/complete 会验证请求 Agent 与项目绑定一致;冒充其他 lane 会失败。
- Native run 期间 MCP claim/complete 与 shell 中直接发往当前绑定 goal 的 LoopX lifecycle CLI 写命令都会失败关闭,防止模型在 verifier 前绕行提交。
- 只有
complete + verification_passed后才执行 refresh、todo complete、quota spend。 - Refresh 显式 suppress external sinks;journal 不保存原始 objective、output 或 trajectory。
- 原始 transcript、长日志、provider 响应、密钥和本机路径不得进入公共提交。
常用维护命令
升级发布包或源码环境搬家后刷新 MCP
"$LOOPX_KUNLUN" install
kunluncode --cwd "$TARGET_PROJECT" mcp test loopx-kunluncode停止执行但保留状态
停止调用 run 即可。适配器没有常驻 scheduler;active native Goal 的 opaque identity 留在本地 journal,之后同一命令会恢复。
卸载 LoopX 管理的 MCP entry
"$LOOPX_KUNLUN" uninstall卸载器只删除能确认由 LoopX 管理的 entry;native app-server mode 仍可运行。解除项目绑定时删除 kunluncode.json。仅在 journal phase=committed 后删除 kunluncode-runtime.json;active 阶段删除代表明确放弃恢复。以上操作都不会删除 goal、todo、历史、KunlunCode thread 或其他 Agent。
故障排查
找不到 kunluncode
运行 command -v kunluncode 和 kunluncode --version,修复 PATH。
uv is required
安装 uv,或传入已包含 LoopX 与 mcp==1.28.1 的 uv Python。
MCP 无法连接
依次 readback 配置、重新 install、从目标项目执行 mcp test。
身份不匹配
用正确 goal/Agent 重新 connect;不要修改请求去冒充另一个 Agent。
goal-mode 未激活
确认当前目录、registry 和 binding,再重新 connect。
ask 被 native run 拒绝
app-server 无交互 TUI。使用已审查的 auto,或直接在 TUI 手动运行。
运行中断或超时
读取 native phase 后重跑同一命令。若记录的 thread 无法恢复,控制器会失败关闭而不会另建重复 Goal;确认旧执行器停止并明确放弃恢复后,才能删除 journal 重启。
complete 但未回写
Goal Pro 还必须有 verifier PASS;PASS 后中断会由 evidence log 对账恢复。
重新同步 Python 环境
cd "$LOOPX_SOURCE"
uv pip install --python .venv/bin/python -e . 'mcp==1.28.1'
"$LOOPX_KUNLUN" install --python "$LOOPX_SOURCE/.venv/bin/python"should_run=false
读取 effective_action、reason、interaction_contract 与 scheduler_hint。没有 todo、终态、quota、user gate 或 monitor cadence 都可能正确阻止执行。
2026-07-27;写回阶段有本地 journal 与 agent-scoped evidence 对账。完整验收清单
- uv 可用;LoopX 与
mcp==1.28.1位于同一环境。 - connect 返回成功,goal id 与 Agent id 正确。
.loopx/kunluncode.json未被 Git 跟踪。- 已有 goal 的其他 registered agents 被保留。
- 若安装 MCP,MCP test 显示四个工具。
- status 显示 registered kunlun、host kunluncode、runtime profile kunluncode。
- 真实 app-server smoke 证明 strict Goal、verifier PASS 与跨进程 resume。
- 低风险 todo 只在 native Goal Pro verifier PASS 后完成 delivery/todo/quota writeback。
- status 显示 native
phase=committed、verification_passed=true。 - 人为中断后重跑不会重复已完成 writeback 阶段。
- 错误 Agent id 被拒绝。
- 终态、quota 或 user gate 时停止重复运行。
- 凭据、私有状态、原始日志和本机路径未进入提交。
命令速查
# 连接或初始化
loopx-kunluncode connect --project DIR --goal-id ID [--agent-id ID] \
[--objective TEXT] [--python PYTHON] [--skip-mcp] [--replace] [--dry-run]
# 安装 / 卸载用户级 MCP entry
loopx-kunluncode install [--python PYTHON] [--replace] [--dry-run]
loopx-kunluncode uninstall [--dry-run]
# 添加 todo、运行原生 Goal、读取状态
loopx-kunluncode add --project DIR TEXT...
loopx-kunluncode run --project DIR \
[--mode goal-pro|goal|headless] \
[--permission-mode ask|auto|accept-edits|dont-ask|bypass|yolo] \
[--max-duration-secs N] [--controller-timeout-secs N] \
[--token-budget N] [--json] [--dry-run]
loopx-kunluncode status --project DIRstatus、native journal 摘要和 app-server/MCP readback。不要依赖聊天记录猜测 goal、todo、verifier 或 gate。