最近折腾了个小东西,叫OpenLaoKe。
其实也没啥特别的,就是个在终端里用的AI编程助手,类似Claude Code或者Cursor那种。不过这是我用Python写的,开源的。
为啥要自己写一个?主要是想搞明白这类工具到底是怎么工作的。Claude Code那么强大,但代码闭源。OpenCode也是TypeScript写的,我Python用得更多,就想用Python实现一遍,看看能不能达到类似的效果。
怎么装
先确保你机器上有Python 3.11或更高版本。然后:
# 克隆代码
git clone https://github.com/cycleuser/OpenLaoKe.git
cd OpenLaoKe
# 安装
pip install -e .
# 或者用uv(推荐)
uv pip install -e .
装完直接输入下面的命令:
openlaoke --config
第一次运行会出来一个配置向导,引导你设置API密钥。支持好几个平台:OpenAI、Anthropic、阿里云、MiniMax、Ollama本地模型等。

选好模型之后,就可以在当前目录来调用 open code 上面已经安装的技能。

配好之后就能用了。在命令行里直接打字,跟AI对话,让它帮你写代码、改代码、跑命令。
比如可以进行各种文档或者代码撰写的任务。

能干啥
核心功能就这几个:
能在命令行里跟AI对话,让它帮你写代码、改代码、跑命令。支持好几个AI平台,OpenAI、Anthropic、阿里云、MiniMax这些都能接。本地跑的Ollama和LM Studio也支持。
有一些内置工具,比如读写文件、跑shell命令、搜索代码。还能让AI调用子代理并行干活。
有个权限系统,防止AI乱搞你的文件。分三种模式,默认模式每次操作都要你确认,自动模式直接执行,绕过模式完全不限制。我一般用自动模式,但危险操作还是会问一下。
配了个简单的向导,第一次跑的时候会引导你设置API密钥。配置文件存在~/.openlaoke/config.json里,想改直接编辑就行。
几个有意思的设计
说几个我觉得还算有意思的设计:
工具系统用了延迟加载,不是一上来就把所有工具都加载进来。比如WebSearch、LSP这些不常用的工具,用到的时候才加载。这样启动快,内存占用也小。
状态管理是集中的,所有对话、任务、权限配置都在一个AppState对象里。状态变了就通知所有监听器更新UI。虽然Python没有React那种响应式框架,但用监听器模式也能达到类似效果。
API客户端支持多个提供商,但暴露给上层的接口是统一的。上层代码不用管底层是调用的OpenAI还是Anthropic,传消息、收回复就行。
任务系统有个超时控制,默认15分钟。有些AI容易陷入死循环,或者在某个工具调用上卡很久,有了超时至少能自动终止。
Agent架构的理解
写这个项目最大的收获是粗略理解了Agent的编排架构。
AI不是直接回答问题,而是通过工具与环境交互。比如你要它"重构这个函数",它不是一次性给你答案,而是先读文件,理解代码,然后一步步修改,最后还要跑测试验证。
整个过程是循环的:AI思考 → 选择工具 → 执行 → 看结果 → 再思考。直到任务完成或者达到最大循环次数。
这种模式的好处是AI能处理复杂任务,坏处是可能要交互很多次才能完成。我在测试的时候就遇到过,有时候AI会陷入某个思路出不来,反复尝试同一个失败的方案。后来加了个监督系统,检测到任务没完成就自动重试,还给AI一些反馈让它换种方法。
代码质量
代码质量就是一个习作水平。有类型标注,有单元测试,有代码格式化,但也就是那种"能跑就行"的脚本,算不得正经的工程代码。用了pydantic做数据验证,rich做终端UI,httpx做HTTP客户端,都是比较成熟的库。
测试覆盖了主要功能,但不是特别全面。有些边界情况、异常处理可能没测到。要是有人愿意贡献测试用例,我会很开心。
性能方面,主要瓶颈在网络IO,毕竟要调API。本地处理部分几乎可以忽略不计。Python的异步IO用得挺顺手,多个工具可以并行执行。
不足之处
最后说说不足:
UI比较简陋,就是个终端界面。虽然用了rich库美化了一下,但跟图形界面比还是差点意思。
错误处理不够优雅,有些异常直接抛出来,用户可能看不懂。应该转换成更友好的提示。
文档不完善,README写得很简单,很多功能没说明白。代码注释也不够多。
代理协作功能刚做了一半,多代理并行执行的逻辑还不够成熟。
技能系统是从OpenCode复用来的,但实现得比较粗糙。技能就是一个markdown文件,里面写一些提示词和规则。AI激活技能后,会把技能内容加到系统提示里。
总结
总的来说,这是个学习项目,不是生产级产品。如果想用一个稳定的、功能完备的AI编程助手,还是用Open Code或者Claude Code吧。
但如果你想了解这类工具是怎么工作的,或者想基于Python做二次开发,欢迎来看看代码。在GitHub上搜OpenLaoKe就能找到。
代码写得挺规整的,有完整的类型标注,应该不难读懂。一个小工具,希望能对想学习Agent架构的人有点帮助。
预览时标签不可点
Close
更多
Name cleared
微信扫一扫赞赏作者
Like the AuthorOther Amount
赞赏后展示我的头像
作品
暂无作品
Like the Author
Other Amount
¥
最低赞赏 ¥0
OK
Back
Other Amount
更多
赞赏金额
¥
最低赞赏 ¥0
1
2
3
4
5
6
7
8
9
0
.
虚拟化,操作系统,以及一些小工具 · 目录
虚拟化,操作系统,以及一些小工具
上一篇Chou(瞅)-PDF论文重命名工具升级了!这次专门优化了中文论文支持下一篇HeiBan(黑板)-将Markdown转换成HTML来当讲义
Close
更多
搜索「」网络结果
Close
调整当前正文文字大小
更多
100%