ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

将 Claude Code 项目改造为 Windows 独立运行工具——以 ai-berkshire 为例

将 Claude Code 项目改造为 Windows 独立运行工具——以 ai-berkshire 为例 一、背景ai-berkshire是一套基于巴菲特/段永平/费雪/格雷厄姆四大投资流派的 AI 投研工具集原本依赖 Claude Code 作为运行时环境Claude Code 负责读取 skill prompt → 调用 LLM → 执行工具 → 管理多 Agent 编排。开源链接GitHub - xbtlin/ai-berkshire: AI 时代的伯克希尔基于 Claude Code / Codex 的价值投资研究框架。巴菲特·芒格·段永平·李录四大师方法论 多Agent并行研究。| AI-era Berkshire: a value investing research framework built for Claude Code / Codex. 4 masters methodologies multi-agent adversarial analysis. · GitHub这种依赖带来两个问题必须安装 Claude Code且需要 Anthropic API国内访问不便、账号余额管理麻烦无法脱离 Claude Code 运行不能打包成分发工具也不能用国内大模型 API。目标改造为一套在 Windows 上可独立运行的 Python 工具支持国内 AI 库DeepSeek、通义千问、Moonshot 等不依赖 Claude Code。二、改造思路核心是用 Python 替代 Claude Code 的运行时职责用户输入 → main.py 解析参数 ↓ skill_loader 加载 skills/*.md 并替换 $ARGUMENTS ↓ llm_client 发送给 LLM API ←→ tools.py 执行工具 ↓ (run_command / read_file / write_file LLM 返回文本或工具调用 / web_search / web_fetch / spawn_agent) ↓ (循环直到完成) 输出报告关键设计模块职责main.pyCLI 入口解析命令行参数启动技能执行config.py从.env加载配置API key、模型、providerskill_loader.py加载skills/*.md替换$ARGUMENTS构造 system prompttools.py6 个工具定义与执行器llm_client.pyLLM 客户端支持 Anthropic 和 OpenAI 兼容 API实现 function calling 循环双 API 支持通过.env中的LLM_PROVIDER切换anthropic→ 走 Anthropic Claude 官方接口openai→ 走 OpenAI 兼容接口DeepSeek、通义千问、Moonshot、本地 Ollama 等都兼容国内模型通过 OpenAI 兼容接口接入无需改动业务代码。三、安装验证过程踩坑记录阶段 1一键安装脚本的中中文乱码最初用install.bat做一键安装但批处理文件保存为 GBK 编码、终端是 UTF-8 时中文注释会被解析成命令报AI 不是内部或外部命令这类错误。解决把 install.bat 的所有输出改成纯 ASCII避免编码问题。阶段 2依赖安装python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple注意cmd.exe 里 URL不能加反引号或引号否则会被当作 URL 的一部分传给 pip。验证python -c import openai, anthropic; from duckduckgo_search import DDGS; print(OK)阶段 3冒烟测试的 f-string 语法错误Python 3.13_setup_helper.py里在 f-string 内部用了{\version\}转义Python 3.13 对 f-string 语法更严格直接报SyntaxError: unexpected character after line continuation character。解决重写_setup_helper.py把内联的测试代码改为写入临时 .py 文件再执行彻底避开引号转义地狱。阶段 4config.py 空文件导致 ImportError运行时报ImportError: cannot import name load_config from config排查发现config.py是空文件之前写入被静默拦截其他 3 个模块skill_loader / tools / llm_client都正常。解决重新写入config.py实现.env加载 配置 dataclass。阶段 5API 余额与配置错配第一次运行报402 Insufficient Balance且诊断信息显示配置错配模型: deepseek-v4-pro ← 模型名是 DeepSeek 的 Provider: anthropic ← 但 Provider 却是 anthropic两个问题Provider 与模型不匹配DeepSeek 用 OpenAI 兼容接口LLM_PROVIDER必须是openai不是anthropic模型名不存在deepseek-v4-pro不是 DeepSeek 官方型号正确的是deepseek-chat余额不足报错格式不是 DeepSeek 官方格式疑似走了第三方中转账号。解决.env四项必须配套一致LLM_PROVIDERopenai LLM_API_KEYsk-你的deepseek密钥 LLM_BASE_URLhttps://api.deepseek.com/v1 LLM_MODELdeepseek-chat阶段 6端到端验证通过python main.py dyp-ask 用一句话解释什么是好生意输出✅ 整个链路跑通环境安装 → config 加载 → skill prompt 组装 → LLM API 调用 → 中文输出正常。四、使用方法1. 安装cd E:\Code\Open\ai-berkshire-main\standalone python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple2. 配置 .envcopy .env.example .env notepad .env三个国内选项任选其一DeepSeek推荐LLM_PROVIDERopenai LLM_API_KEYsk-xxxx LLM_BASE_URLhttps://api.deepseek.com/v1 LLM_MODELdeepseek-chat通义千问LLM_PROVIDERopenai LLM_API_KEYsk-xxxx LLM_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1 LLM_MODELqwen-plusMoonshotKimiLLM_PROVIDERopenai LLM_API_KEYsk-xxxx LLM_BASE_URLhttps://api.moonshot.cn/v1 LLM_MODELmoonshot-v1-128k3. 运行技能:: 列出所有技能 python main.py --list :: 巴菲特买入前 Checklist python main.py investment-checklist 腾讯 :: 股价异动快速归因 python main.py news-pulse 拼多多 :: 四大师综合深度研究 python main.py investment-research 美团 :: 段永平问答最轻量 python main.py dyp-ask 拼多多护城河在哪五、总结成果成功将ai-berkshire从 Claude Code 依赖改造为 Windows 独立运行工具支持国内 AI 库DeepSeek / 通义千问 / Moonshot通过 OpenAI 兼容接口接入无需改动业务代码保留原项目全部 20 个技能功能包括需要 function calling 的复杂技能investment-checklist、news-pulse 等。踩坑总结坑根因解决install.bat 中文乱码GBK/UTF-8 编码不一致批处理输出改纯 ASCIIpip install 无输出cmd 不识别反引号URL 不加任何引号f-string 语法错误Python 3.13 更严格测试代码写临时文件执行ImportError load_configconfig.py 空文件重新写入 config.py402 Insufficient BalanceProvider 与模型错配 余额不足.env四项配套配置关于国内模型的注意事项国内模型的 function calling 能力整体弱于 Claude/GPT-4oDeepSeek / 通义千问支持 function calling能正常跑需要工具调用的技能Moonshot支持但稳定性略差如果某个 skill 跑起来 LLM 不调工具只给文本换 DeepSeek 或 Qwen 试试。适用场景想用原项目投研技能但不想装 Claude Code 的用户想用国内大模型 API成本更低、访问更稳的用户想把工具打包分发给他人使用的场景。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进