Logo
热心市民王先生

Kimi-CLI 目录结构分析

技术研究 人工智能 LLM

Kimi-CLI 是一个多语言、模块化的 AI 代理系统,主要使用 Python (50.4%)、Rust (26.0%) 和 TypeScript (21.9%)。

总体架构概览

Kimi-CLI 是一个多语言、模块化的 AI 代理系统,主要使用 Python (50.4%)、Rust (26.0%) 和 TypeScript (21.9%)。

核心目录结构

kimi-cli/
├── src/kimi_cli/          # Python 核心代码
├── rust/                   # Rust 核心模块
│   ├── kagent/            # Agent 实现
│   ├── kaos/              # 抽象操作系统层
│   └── kosong/            # LLM 抽象层
├── packages/              # Python 包
│   ├── kaos/
│   ├── kimi-code/
│   └── kosong/
├── sdks/                  # SDK
│   └── kimi-sdk/
├── web/                   # Web UI (TypeScript/React)
├── tests/                 # 单元测试
├── tests_e2e/             # 端到端测试
├── docs/                  # 文档
├── examples/              # 示例代码
└── klips/                 # 设计提案

详细目录结构

1. src/kimi_cli/ - Python 核心模块

src/kimi_cli/
├── agents/                # Agent 配置
│   ├── default/          # 默认 agent
│   │   ├── agent.yaml   # Agent 规范
│   │   ├── system.md    # 系统提示词
│   │   └── sub.yaml    # 子 agent
│   └── okabe/           # Okabe agent
├── acp/                  # Agent Client Protocol 实现
│   ├── mcp.py           # MCP 配置转换
│   ├── server.py        # ACP 服务器
│   ├── session.py       # ACP 会话
│   └── tools.py        # ACP 工具
├── auth/                 # 认证模块
├── cli/                  # CLI 界面
├── config.py             # 配置管理
├── llm.py                # LLM 抽象
├── prompts/              # 提示词
│   ├── init.md          # 初始化提示词
│   └── compact.md       # 上下文压缩提示词
├── skills/               # 技能系统
│   ├── kimi-cli-help/   # CLI 帮助技能
│   └── skill-creator/  # 技能创建器
├── soul/                 # 核心执行引擎
│   ├── kimisoul.py      # KimiSoul 主类
│   ├── agent.py         # Agent 运行时
│   ├── context.py       # 上下文管理
│   ├── compaction.py    # 上下文压缩
│   ├── toolset.py       # 工具集管理
│   ├── denwarenji.py    # D-Mail 时间旅行机制
│   ├── approval.py      # 批准机制
│   └── message.py       # 消息处理
├── tools/                # 工具实现
│   ├── file/            # 文件操作工具
│   ├── shell/           # Shell 命令工具
│   ├── web/             # Web 搜索/抓取工具
│   ├── multiagent/      # 多 agent 工具
│   ├── think/           # 思考工具
│   ├── todo/            # 任务列表工具
│   └── dmail/           # D-Mail 工具
├── ui/                   # 用户界面
├── wire/                 # Wire 通信协议
├── app.py                # 应用入口
└── agentspec.py          # Agent 规范定义

2. rust/ - Rust 核心模块

rust/
├── kagent/              # Agent 的 Rust 实现
│   └── src/
│       ├── main.rs      # 入口
│       ├── app.rs       # 应用
│       ├── agents/      # Agent 相关
│       ├── cli/         # CLI
│       ├── config.rs    # 配置
│       ├── llm.rs       # LLM
│       └── exception.rs # 异常
├── kaos/               # 抽象操作系统层
│   └── src/
│       ├── lib.rs       # 库入口
│       ├── path.rs      # 路径抽象
│       ├── local.rs     # 本地文件系统
│       └── current.rs   # 当前环境
└── kosong/             # LLM 抽象层
    └── src/
        ├── lib.rs       # 库入口
        ├── generate.rs  # 生成逻辑
        ├── chat_provider/  # 聊天提供者
        ├── message.rs    # 消息定义
        ├── tooling/     # 工具抽象
        └── utils/       # 工具

3. packages/ - Python 包

packages/
├── kaos/               # KAOS Python 实现
├── kimi-code/          # Kimi Code CLI 主包
└── kosong/             # Kosong Python 绑定

4. web/ - Web UI

web/
├── src/
│   ├── components/     # React 组件
│   ├── features/       # 功能模块
│   ├── hooks/          # React Hooks
│   ├── lib/            # 工具库
│   ├── config/         # 配置
│   ├── App.tsx         # 主应用
│   └── main.tsx       # 入口
├── public/             # 静态资源
└── package.json        # Node 依赖

关键设计模式

1. 分层架构

  • Soul 层: 执行引擎,负责任务规划和执行
  • Agent 层: Agent 配置和运行时管理
  • Tool 层: 工具实现和调度
  • Kaos 层: 文件系统抽象(跨平台)
  • Kosong 层: LLM 抽象(多提供者)

2. 模块化设计

  • 工具作为独立模块,可动态加载
  • 技能作为独立目录,可热加载
  • MCP 服务器可动态连接

3. 异步架构

  • 全面使用 Python asyncio
  • Rust 使用 tokio 运行时
  • 通过 PyO3 实现 Python-Rust 互操作