基于 LangChain/LangGraph 实现的最小版本的 Claude Code。
- Python 3.12,使用 uv 做依赖管理
- 基于 LangGraph 的 ReAct agent
- 模型 provider 支持:Claude(Anthropic)、OpenAI、DeepSeek
- 工具系统采用注册表模式,新增工具只需放入
mincc/tools/并加入注册表 - 命令行用 typer + rich 渲染
- 支持 PyInstaller 打包成单文件可执行程序
uv synccp .env.example .env
# 用编辑器填入 LLM_API_KEY 等主要环境变量:
| 变量 | 说明 |
|---|---|
LLM_PROVIDER |
claude、openai 或 deepseek |
LLM_MODEL |
模型名,例:claude-sonnet-4-5、gpt-4o-mini、deepseek-chat |
LLM_API_KEY |
API Key |
LLM_BASE_URL |
可选;OpenAI 自部署端点;DeepSeek 留空走默认 https://api.deepseek.com/v1 |
LLM_TEMPERATURE |
采样温度(默认 0) |
LLM_MAX_TOKENS |
单次模型回复的最大输出 token 数(默认 4096) |
LLM_DISABLE_THINKING |
是否禁用 thinking/reasoning;DeepSeek 默认禁用以兼容工具调用多轮对话 |
uv run mincc输入 /exit 或 /quit 退出。查看帮助:
uv run mincc --help为了避免手动测试时误改 mincc 仓库本身,可以指定启动工作目录:
uv run mincc --workdir /path/to/test-project
# 或
uv run mincc -C /path/to/test-project运行中也可以用 /pwd 查看当前工作目录,用 /cd <path> 切换工作目录。
项目提供了一个启动脚本,会在系统临时目录创建一个可安全修改的示例项目, 然后自动用该目录启动 mincc:
uv run python scripts/start_test_app.py也可以指定自己的沙盒目录:
uv run python scripts/start_test_app.py --workdir /path/to/sandboxmincc/
├── __main__.py # python -m mincc 入口
├── cli.py # 命令行(typer)
├── config.py # .env 加载与配置数据类
├── llm.py # 模型 provider 抽象
├── agent.py # LangGraph agent 装配
├── prompts.py # 系统提示词
└── tools/ # 工具系统
├── __init__.py # 注册表 ALL_TOOLS
└── read_file.py # 示例工具
-
在
mincc/tools/下新建模块,使用@tool装饰器:from langchain_core.tools import tool @tool def my_tool(arg: str) -> str: """工具说明,LLM 会读 docstring 决定是否调用。""" ...
-
在
mincc/tools/__init__.py中 import 并加入ALL_TOOLS。
uv run pytest -quv run pyinstaller build.spec产物位于 dist/mincc(Windows 为 dist/mincc.exe)。运行需将 .env 与可执行文件放在同目录,或导出环境变量。
- 项目根目录的
.editorconfig让 PyCharm / VS Code 共用同一套缩进与换行规则。 - 推荐用
uv run ruff check做格式与静态检查(已在pyproject.toml中配置)。
MIT