OpenLaoKe(唠嗑):一个命令行AI助手

最近折腾了个小东西,叫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本地模型等。

Image

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

Image

配好之后就能用了。在命令行里直接打字,跟AI对话,让它帮你写代码、改代码、跑命令。

比如可以进行各种文档或者代码撰写的任务。

Image

能干啥

核心功能就这几个:

能在命令行里跟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%