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 互操作