将 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成本更低、访问更稳的用户想把工具打包分发给他人使用的场景。

相关新闻

Linux服务器CPU异常排查:伪装成kswapd0的挖矿病毒分析与清理实战

Linux服务器CPU异常排查:伪装成kswapd0的挖矿病毒分析与清理实战

1. 项目概述:当你的服务器CPU“高烧不退”最近在线上巡检时,发现一台测试服务器的CPU使用率持续在300%以上徘徊,风扇狂转,业务响应慢如蜗牛。登录一看,一个名为kswapd0的进程赫然在列,占用了绝大部分的CPU资…

2026/10/6 5:33:34 阅读更多 →
现代DirectX 11开发指南:从Windows SDK到项目实战

现代DirectX 11开发指南:从Windows SDK到项目实战

1. 项目概述:为什么是DirectX11-With-Windows-SDK?如果你是一名C游戏开发者,尤其是从OpenGL或者更早期的DirectX版本转过来,第一次接触现代DirectX 11开发时,大概率会被各种“SDK”搞晕。是去下载那个传说中的“Direct…

2026/10/7 5:48:24 阅读更多 →
React render函数中的条件判断:if/else的正确使用方式与替代方案

React render函数中的条件判断:if/else的正确使用方式与替代方案

一、问题引入:render函数中的条件判断困惑 1.1 场景描述 在实际的React开发中,我们经常需要根据某些状态或属性来决定渲染什么内容。例如,根据用户是否登录显示不同的界面,根据数据加载状态显示加载动画或内容。此时,许多初学者会本能地想要在render函数的JSX中直接…

2026/10/3 5:46:54 阅读更多 →

最新新闻

AS5600磁编码器从选型到FOC闭环的实战避坑指南

AS5600磁编码器从选型到FOC闭环的实战避坑指南

1. 为什么磁编码器值得花时间折腾如果你正在做云台、无刷电机FOC控制、机械臂关节或者任何需要精确知道"轴转到哪儿了"的项目,那AS5600这个名字你大概率已经见过不止一次了。它是一颗12位分辨率的磁性旋转位置传感器,输出0到4095对应0到360度&…

2026/10/7 6:47:04 阅读更多 →
System One范式:把LLM服务从慢等待改造成流式快响应

System One范式:把LLM服务从慢等待改造成流式快响应

做LLM服务的同学应该都有过这种经历:请求发出去,前端转圈圈,好几秒之后一大段文字突然一次性涌出来。多数时候我们默认这是正常的,毕竟大模型“想”得慢。但你有没有想过,这种“等全量回复”的交互方式,本身…

2026/10/7 6:47:04 阅读更多 →
AI Agent工程化落地实战:GPT-6、Claude与DeepSeek生态解析

AI Agent工程化落地实战:GPT-6、Claude与DeepSeek生态解析

1. 从一份"AI 日报"的选题逻辑说起做 AI 领域的内容整理,最怕的不是信息少,而是信息太多、太杂、太碎。每天醒来,各种模型发布、工具更新、框架迭代、社区讨论铺天盖地,如果只是把链接堆在一起,那叫"信…

2026/10/7 6:47:04 阅读更多 →
智能体工程化落地:从Demo到生产环境的容错、审计与成本控制

智能体工程化落地:从Demo到生产环境的容错、审计与成本控制

1. 从本周趋势榜看智能体赛道的真实转向这周我把 GitHub Trending 榜单从头到尾翻了两遍,最大的感受就一句话:智能体这个赛道,正在从"能跑起来"往"能交付"上转。前两年大家聊智能体,聊的是概念验证、Demo 演示…

2026/10/7 6:47:04 阅读更多 →
Cadence带隙基准仿真全流程:从原理到温漂PSRR验证

Cadence带隙基准仿真全流程:从原理到温漂PSRR验证

1. 为什么带隙基准是模拟电路设计的“成人礼”如果你在模拟IC设计这个行当里待过一段时间,就会发现一个很有意思的现象:面试官考察一个候选人的基本功,往往不会上来就问你怎么设计一个高增益的运算放大器,而是会问“你做过带隙基准…

2026/10/7 6:47:04 阅读更多 →
示波器实测PWM占空比与RC滤波的物理本质

示波器实测PWM占空比与RC滤波的物理本质

1. 这不是教科书,是我在电子实验室里调了72小时波形后写下的PWM真相你手边那台示波器,屏幕右上角跳动的“50%”、“12.5kHz”、“Vpp3.3V”,从来不只是数字——它是一张实时生成的电路体检报告。PWM(脉宽调制)这个词被…

2026/10/7 6:46:04 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 6:26:51 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →