kimi-debug-tunnel

kimi-debug-tunnel

基于REST API的Kimi Code CLI调试隧道,提供推送式全自动化session编排,支持多轮对话、实时流式响应和智能思考过滤。

Category
Visit Server

README

<!-- 修改记录: 2026-07-08 | kimi-code (v2.6) | 实施 004-memory-lazy-inject:注入策略升级——全量预载 → 索引+按需自读(minimal/standard/full 三级);角色锚定"你是任务 session";>20条自动折叠;注入文本 ~600B→~200B;Live test 通过 2026-07-08 | kimi-code (v2.5) | 实施 002-session-memory-share:三层共享内存系统——MemoryStore(node:sqlite 零依赖)+ 8个MCP工具(memory_*)+ 自动注入(create_session/execute_prompt) 2026-07-07 | kimi-code (v2.4) | 实施 003-permission-policy:三层权限系统——策略引擎 + 工具级拦截 + 3内置策略 + 自定义YAML + 3新MCP工具(list_policies/approve_tool/deny_tool);工具总数 19→22;selftest通过 2026-07-07 | kimi-code (v2.3) | PM Dashboard 重写 + 监控页面升级;coordinator-guide v2.3(PM范式/Skill调度/注意力管理/越权控制);2个新spec(002/003);竞品分析+系统调研 2026-07-07 | kimi-code (fix) | sanitizeText 反斜杠预加固 + maxContentLength 参数:防御 hex escape 错误,解决审计报告截断 2026-07-06 | kimi-code (robustness) | WireClient 新增心跳探测+自动重连:每10s ping /api/v1/meta,连续3次无响应→标记断连→自动重连;解决 Kimi web 静默崩溃后状态假活问题 2026-07-06 | kimi-code (arch) | 后台监听最佳方案确定为 Bash REST 轮询(OS信号驱动),set_watch_output 降为备选;工具总数 18 2026-07-06 | kimi-code (feature) | watch_session/get_watch_result/continue_watch/set_watch_output 4工具: WS后台监听+自动化循环+文件输出 2026-07-06 | kimi-code (feature) | 自适应工作流引擎:learn/execute/list/continue_workflow 4工具 + 模板存储 + 监管页面 2026-07-06 | kimi-code (architecture) | 架构深化:消除 9 文件 584 行死代码,拆分 session-manager 为 store+reader,消除 3 个单例为 DI 2026-07-06 | kimi-code (tools) | 新增 3 个 MCP 工具(list_io_records/create_session/poll_session),总计 10 工具;execute_prompt/chat_with_session 新增 auto_mode + wait 参数 2026-07-06 | kimi-code (bugfix) | 修复 EADDRINUSE 多 session 冲突:http-server.ts 添加双重错误处理避免 MCP 崩溃 2026-07-05 | FirenzeClaw | 初始版本 -->

Kimi Session Orchestrator

License Version Node MCP Tools

Kimi Code CLI 的 PM 视角多 session 编排系统——28 个 MCP 工具,支持自适应工作流引擎 + 三层共享内存 + 权限策略管理。

架构

外部用户 (浏览器 / curl)
    ↕ HTTP + WebSocket (端口 3456)
┌──────────────────────────────┐
│   kimi-session-orchestrator MCP 服务器 │
│   ├─ Express HTTP Server      │
│   ├─ WebSocket Server         │
│   ├─ WireClient (REST + WS推送 + 心跳重连) │
│   ├─ WorkflowEngine (自适应工作流)      │
│   ├─ PolicyEngine (权限策略引擎)       │
│   ├─ MemoryStore (SQLite 共享记忆)     │
│   └─ MCP stdio transport      │
└─────────────┬────────────────┘
              ↕ Bearer Token REST API
┌─────────────────────────────┐
│   Kimi Server (kimi web)    │  端口 5494
│   POST /api/v1/sessions/... │
└─────────────────────────────┘

快速开始

前置条件

  • Node.js ≥ 22node:sqlite 内置模块要求)
  • Kimi Code CLI ≥ 0.22.3
  • Git Bash(Windows)或 bash(Linux/macOS)

安装

git clone https://github.com/FirenzeClaw/kimi-session-orchestrator.git
cd kimi-session-orchestrator
npm install
npm run build

启动

# 1. 启动 Kimi Server(⚠️ --port 5494 在 Linux 上必须显式指定,否则随机端口导致无法连接)
kimi web --no-open --port 5494

# 2. 设置 token(Kimi Server 启动时打印)
export KIMI_SERVER_TOKEN="your-token-here"

# 3. 启动 Tunnel
npm start

Tunnel 启动后自动连接 Kimi Server,选择最近 session,初始化记忆库(如 .kimi-tunnel/ 存在)。

平台差异:Windows 上 kimi web --no-open 默认固定端口 5494,--port 可省略。Linux 上默认随机端口,因此 --port 5494 是必须的,否则 orchestrator 无法找到 Kimi Server。若启动后需要恢复连接,tunnel 会每 10s 自动重试。

注册到 Kimi Code CLI

~/.kimi-code/mcp.json 中添加(路径按实际安装位置调整):

{
  "mcpServers": {
    "kimi-session-orchestrator": {
      "command": "node",
      "args": ["<项目绝对路径>/dist/index.js"],
      "env": {
        "KIMI_SERVER_TOKEN": "your-token-here",
        "KIMI_SERVER_URL": "http://127.0.0.1:5494"
      }
    }
  }
}

注意:Linux 上 KIMI_SERVER_URL 必须显式设置(默认 http://127.0.0.1:5494),确保与 kimi web --port 一致。

然后 /reload 即可使用。

安装 Skill

cp -r skills/kimi-session-orchestrator ~/.agents/skills/kimi-session-orchestrator

新 session 加载 skill 后自动触发 PM 启动协议——读取 coordinator-guide 建立基线,询问角色、目标和决策模式。详见 Linux 部署 → 安装 PM Skill

MCP 工具

Session 管理

工具 描述
create_session 创建新 session,支持 cwd/permission_mode/memory_level/from_session/policy
list_sessions 列出所有 session(按更新时间倒序)
get_session_info 查看 session 详情(含 wire.jsonl 路径、标题、cwd)
get_tunnel_status Wire 连接状态、客户端数、运行时间、WS 连接状态

任务下发

工具 描述
execute_prompt 发送 prompt(即发即返),支持 auto_mode/thinking/policy/skip_memory
chat_with_session 向已有 session 发送任务(即发即返)
run_flow 多步流程:创建 session → 逐步下发 → 自动等待每步完成
execute_workflow 执行工作流模板:加载模板 → 自动驱动 → 自适应调整
continue_workflow 对暂停的工作流执行决策(retry/skip/abort/manual)

状态监控

工具 描述
poll_session 结构化轮询 session 状态(WS 缓存优先,active/swarm/awaiting/done/error/idle)
list_io_records 快速提取 prompt ↔ 回复(过滤 tool_call/thinking 噪音)
read_session_log 读取完整对话日志,支持分页和增量
watch_session WS 后台监听,主动等待 session 完成
get_watch_result 获取后台监听结果(非阻塞)
continue_watch 拿结果 + 发下一步 + 启动新监听

共享记忆(v2.5+)

工具 描述
memory_set 写入键值对到命名空间,自动版本递增
memory_get 读取条目,支持 namespace/key 过滤 + 过期条目
memory_list 列出命名空间键名(前缀匹配)
memory_delete 删除指定条目
memory_status 知识库全景:条目数、命名空间分布、最后更新
memory_archive 将 session L2 findings 归档为 L1 learnings

v2.6 注入策略create_session(memory_level) 自动注入记忆索引(命名空间 + 键名 + 读取建议),task session 首 turn 自主调用 memory_get 按需拉取。注入文本从 ~600B 降至 ~200B。

工作流模板

工具 描述
learn_workflow 从描述或历史 session 学习工作流,生成 YAML 模板
list_templates 列出可用模板(名称、版本、步骤数)

权限策略

工具 描述
list_policies 列出内置 + 自定义策略,含验证状态
approve_tool PM 放行被阻断的工具调用(once/session scope)
deny_tool PM 拒绝被阻断的工具调用

推送

工具 描述
stream_response 实时推送结果到所有 WebSocket 调试客户端
set_watch_output 设置监听结果文件路径,完成后自动写入

REST API

端点 方法 描述
/ GET Web 调试控制台 (v2.3)
/workflow-console.html GET PM Dashboard — Session 健康监控、注意力预警、Skill 调度日志
/api/status GET 隧道状态
/api/execute POST 发送 prompt 并等待回复
/api/send POST 发送 prompt 并等待回复(与 /api/execute 相同机制)
/ws WebSocket 实时双向通信

示例

curl -X POST http://localhost:3456/api/execute \
  -H "Content-Type: application/json" \
  -d '{"prompt":"写一个 Python hello world","timeout_ms":60000}'

智能思考过滤

  • 默认:排除思考链内容,仅返回文本回复
  • 自动触发:当回复含"不确定/可能/需要更多"等模糊词时,自动读取思考内容确认意图
  • 手动:设置 include_thinking: true 强制包含

项目结构

src/
├── index.ts                   # 入口:DI 装配,启动 HTTP+MCP,初始化记忆库
├── types.ts                   # TunnelServices 接口(wireClient/messageQueue/workflowEngine/policyEngine/memoryStore/tunnelProjectRoot)
├── mcp-server.ts              # MCP stdio 服务器(注册 28 个工具)
├── http-server.ts             # Express + WebSocket 装配入口
├── wire-client.ts             # Kimi Server REST + WS 推送 + 心跳探测自动重连
├── message-queue.ts           # WebSocket pub/sub 广播
├── session-store.ts           # 文件系统扫描 + 路径解析
├── session-log-reader.ts      # wire.jsonl 日志解析 + IO 提取 + sanitizeText
├── workflow-template.ts       # 模板类型定义 + YAML 解析 + Zod 校验
├── workflow-store.ts          # 模板持久化(templates/ CRUD)
├── workflow-engine.ts         # 自适应工作流引擎
├── policy-types.ts            # 策略类型 + Zod schema + 已知工具清单
├── policy-builtins.ts         # read-only / safe-edit / full-access
├── policy-store.ts            # YAML 策略文件 CRUD(.kimi-tunnel/policies/)
├── policy-engine.ts           # 策略解析/检查/绑定 + BlockEvent 追踪
├── memory-store.ts            # SQLite 持久化 + buildInjection()(索引注入)
├── memory-injector.ts         # 注入文本构建(thin wrapper → memory-store)
├── tools/
│   ├── create-session.ts      # 创建新 session(含 memory_level/policy)
│   ├── execute-prompt.ts      # 发送 prompt(即发即返 + 自动注入)
│   ├── chat-with-session.ts   # 多轮编排
│   ├── list-sessions.ts       # 列出所有 session
│   ├── get-session-info.ts    # 查看 session 详情
│   ├── read-session-log.ts    # 读取对话日志
│   ├── list-io-records.ts     # 快速 IO 提取
│   ├── poll-session.ts        # 结构化状态轮询
│   ├── run-flow.ts            # 多步流程执行
│   ├── stream-response.ts     # WebSocket 推送
│   ├── get-tunnel-status.ts   # 隧道状态
│   ├── learn-workflow.ts      # 学习工作流
│   ├── execute-workflow.ts    # 执行工作流模板
│   ├── list-workflow-templates.ts # 列出模板
│   ├── continue-workflow.ts   # 工作流决策
│   ├── session-watch.ts       # watch_session/get_watch_result/continue_watch/set_watch_output
│   ├── memory-set.ts          # 写入记忆条目
│   ├── memory-get.ts          # 读取记忆条目
│   ├── memory-list.ts         # 列出记忆键名
│   ├── memory-delete.ts       # 删除记忆条目
│   ├── memory-status.ts       # 记忆库状态
│   ├── memory-archive.ts      # 归档 session findings
│   ├── list-policies.ts       # 列出策略
│   ├── approve-tool.ts        # 放行阻断工具
│   └── deny-tool.ts           # 拒绝阻断工具
└── public/
    ├── console.html           # Web 调试控制台
    └── workflow-console.html  # PM Dashboard 监管面板(四区:健康/阻断/工作流/Skill)

共享记忆系统(v2.5+)

┌─────────────────────────────────────────────────┐
│ L1: 项目知识库 (.kimi-tunnel/memory.db)          │
│ PM 一次性录入 → task session 启动时自动注入索引    │
│ project/meta / decisions / risks / learnings    │
├─────────────────────────────────────────────────┤
│ L2: Session 上下文 (session:<id>/*)             │
│ 创建时写入,运行时更新,退役后归档                  │
├─────────────────────────────────────────────────┤
│ L3: 学习沉淀 (learn skill → 向量库)              │
│ 从 L1+L2 提取可复用模式                          │
└─────────────────────────────────────────────────┘

PM 操作:                            Task session 首 turn:
  memory_set(ns, key, value)         → 收到索引 → memory_get(ns)
  create_session(memory_level=full)  → 评估关联 → 拉取条目 → 执行任务
  execute_prompt(task)               → 同一 turn 完成上下文建立 + 工作

权限策略系统(v2.4+)

  • 三层架构:Session 级策略(create_session policy 参数) + 任务级策略(execute_prompt policy 参数) + 工具级拦截(WireClient approveAll)
  • 3 内置策略read-only(只读)/ safe-edit(安全编辑,禁 shell 命令)/ full-access(全部允许)
  • 自定义 YAML.kimi-tunnel/policies/<name>.yaml
  • PM Dashboard:实时阻断事件面板,支持 approve/deny(once/session scope)

参考文档

文档 用途
API.md Kimi Server REST API 完整参考
docs/coordinator-guide.md 统筹 Session 准入规范(PM视角 v2.6)
docs/issues/memory-init-timing.md [FIXED] MemoryStore 启动初始化缺陷
docs/issues/memory-cross-project-injection.md [FIXED] 跨项目注入静默失效
specs/001-adaptive-workflow-engine/ 自适应工作流引擎 [DONE]
specs/002-session-memory-share/ Session 冷启动记忆共享 [DONE]
specs/003-permission-policy/ 权限与策略管理 [DONE]
specs/004-memory-lazy-inject/ 记忆注入策略升级——索引+按需自读 [DONE]

Linux 部署

前置条件

node -v   # ≥ 22
kimi --version  # ≥ 0.22.3

一键部署

git clone https://github.com/FirenzeClaw/kimi-session-orchestrator.git
cd kimi-session-orchestrator
npm install && npm run build

启动

# 终端 1: Kimi Server(⚠️ Linux 上 --port 5494 是必须的,不可省略)
kimi web --no-open --port 5494
# 记下输出的 Token

# 终端 2: Tunnel
export KIMI_SERVER_TOKEN="<token>"
npm start

注册 MCP

mkdir -p ~/.kimi-code

cat > ~/.kimi-code/mcp.json << 'EOF'
{
  "mcpServers": {
    "kimi-session-orchestrator": {
      "command": "node",
      "args": ["/home/user/kimi-session-orchestrator/dist/index.js"],
      "env": {
        "KIMI_SERVER_TOKEN": "<token>",
        "KIMI_SERVER_URL": "http://127.0.0.1:5494"
      }
    }
  }
}
EOF

注意args 中的路径需为绝对路径,按实际 clone 位置调整。KIMI_SERVER_URL 必须与 kimi web --port 一致(Linux 上默认为随机端口,必须显式指定)。/reload 后生效。

安装 PM Skill

将 skill 注册到 Agent 系统(skill 加载时自动读取 coordinator-guide 并询问 PM 模式):

# 复制 skill 目录(含 SKILL.md + coordinator-guide.md)
cp -r skills/kimi-session-orchestrator ~/.agents/skills/kimi-session-orchestrator

# 新 session 自动加载,触发 PM 启动协议:
#   ① 读取 coordinator-guide 建立规范基线
#   ② 询问角色(PM/执行)+ 目标 + 决策模式(自主/等待)

构建脚本 Linux 兼容

项目 package.json 的 build 脚本使用 cp -r,兼容 Linux。若 dist/public/ 不存在:

mkdir -p dist/public && npm run build

兼容性确认

组件 Linux 备注
node:sqlite Node 22+ 内置
path.join/dirname 全项目使用跨平台 API
文件路径 统一 replace(/\\/g, "/") 归一化
MCP stdio 标准协议
Kimi Server CLI kimi web 跨平台
Wire Client 重连 启动失败后每 10s 自动重试(v2.6.1+),指数退避最长 ~63s
Kimi Server 端口 ⚠️ Linux 默认随机端口,必须 kimi web --port 5494 或设置 KIMI_SERVER_URL

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured