用 Python 打造一个极简OpenClaw Agent —— openclaw-mini

用 Python 打造一个极简OpenClaw Agent —— openclaw-mini
在这里插入图片描述](https://i-blog.ZEEKLOGimg.cn/direct/cc1b1aeaef9747e69580b154824fb91d.png)

如果你关注过 OpenClaw 这个项目,可能会觉得它功能完整但结构相对复杂,而且不是用 Python 实现。

对于很多想快速搭建一个 本地运行的 Discord AI 助手 的开发者来说,可能更希望有一个:

  • 架构更简单
  • 全 Python 实现
  • 不需要自己封装 OpenAI API
  • 本地运行即可

这时候,我非常推荐看看这个项目:

👉 openclaw-mini
Repo: https://github.com/robotlearner001/openclaw-mini

它是一个 OpenClaw 风格的“极简版本”,专注在一个清晰的路径上:
Discord + 本地 Codex CLI + Markdown 驱动的行为定义。


openclaw-mini 是什么?

openclaw-mini 是一个最小可用的 OpenClaw 风格 Agent,专注做三件事:

  • ✅ 使用 Discord 作为输入输出通道
  • ✅ 使用本地 Codex CLI 执行模型推理
  • ✅ 使用 SOUL.md + skills/*.md 定义行为

没有复杂的多 Agent 管理,没有庞大的中间层抽象。

它的核心目标是:

做一个你能在一个下午完整读懂的 AI Agent 架构。

它的运行机制:非常干净的一条主线

读过代码之后,你会发现整个控制流非常清晰。

1️⃣ 启动入口:main.py

  • 加载环境变量
  • 启动 Discord 客户端

没有额外框架,没有复杂生命周期管理。


2️⃣ bot.py:处理消息

当收到 Discord 消息时:

  • 过滤 bot 自己发的消息
  • 处理内置命令:
    • /help
    • /skills
    • /soul

如果不是命令,则进入模型处理流程。


3️⃣ 构造提示词(Prompt 拼接)

普通消息会被封装为一个完整 instruction,包含:

  • SOUL.md 的内容(Agent 的人格和行为原则)
  • skills/*.md 的所有技能卡片内容
  • 用户原始消息

它的思路是:

用 Markdown 驱动行为,而不是在代码里写大量逻辑。

这是一种非常干净的“提示工程驱动架构”。


4️⃣ llm.py:调用本地 Codex CLI

这里是最有意思的设计。

不在 Python 里直接调用 OpenAI API
而是调用:

codex exec--json --output-last-message 

然后读取模型的最终输出。

也就是说:

  • Python 只负责 I/O 和流程
  • 模型会话由 Codex CLI 管理
  • 对话状态由 Codex CLI 线程维护

本地 Codex 会话的设计:非常聪明

每一个 Discord 会话会映射到一个:

✅ 持久化 Codex thread ID

线程信息保存在:

.codex-discord-sessions.json 

并支持:

  • TTL 过期控制(CODEX_SESSION_TTL_SEC
  • 超时自动重建
  • 会话持续上下文

这样做的好处是:

✅ 不需要自己实现对话历史拼接
✅ 不需要维护 token 限制逻辑
✅ 不需要管理复杂的 API session

全部交给 Codex CLI。


为什么这个设计很实用?

对于个人开发者或小团队,这种架构有几个明显优势:

✅ 1. 可读性极高

整个代码量很小,逻辑线性。

你可以在一个晚上完全理解:

  • 消息如何进来
  • Prompt 如何构造
  • 模型如何调用
  • 会话如何持久化

✅ 2. 本地迭代极快

你只需要:

  1. 安装 openAI Codex CLI
  2. 配置 Discord Token
  3. 修改 Markdown 文件

改完 SOUL.md 或某个 skill 文件,重启即可生效。


✅ 3. 运维非常轻量

项目已经包含:

  • systemd 模板
  • launchd 模板
  • 环境变量控制参数:
    • CODEX_SANDBOX
    • approval 策略
    • 超时时间
    • 模型选择

这意味着:

它是“最小可生产部署”的结构。

它适合什么人?

如果你想做:

  • 🎯 一个 Discord 专用 AI 助手
  • 🧠 一个本地可控的 Agent
  • 🛠 一个可以完全理解其内部机制的系统
  • 🐍 一个纯 Python 技术栈项目

那么 openclaw-mini 是非常合适的起点。


和完整 OpenClaw 的区别

对比项OpenClawopenclaw-mini
架构复杂度
语言非 Python✅ Python
多 Agent 支持简化
上手难度偏高✅ 非常友好
适合人群进阶构建者✅ 快速原型开发者

如果你觉得 OpenClaw 太重、太抽象、太工程化,
openclaw-mini 是一个非常好的“轻量入口”。


总结

openclaw-mini 做了一件很聪明的事情:

把复杂性留给 Codex CLI,把结构简化到最小。

Discord 负责输入输出,
Markdown 负责行为定义,
Codex 负责推理,
Python 负责连接。

这是一种非常“Unix 哲学”的设计方式:
每个组件做好一件事。

如果你正在考虑做一个本地 AI Discord Agent,
我建议从它开始,而不是一上来就搭一个复杂框架。


Repo

🔗 https://github.com/robotlearner001/openclaw-mini


如果你已经在用 OpenClaw 或在做自己的 Agent 框架,也欢迎交流思路。
极简架构,有时候反而是最强的起点。

英文参考

OpenClawAgent

Read more

【Python】Matplotlib图例进阶:plt.legend()的深度定制与实战技巧

1. 图例基础:从自动生成到精确定位 刚接触Matplotlib绘图时,我最常遇到的困惑就是:明明画了三条曲线,怎么图例只显示两条?或者图例把关键数据挡住了怎么办?这些问题的答案都藏在plt.legend()这个看似简单的函数里。 先看最基本的用法。当我们用plot()画线时,只要给每条线加上label参数,最后调用plt.legend()就能自动生成图例: import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x), label='正弦曲线') plt.plot(x, np.cos(x), label=

By Ne0inhk
[大模型实战 01] 本地大模型初体验:Ollama 部署与 Python 调用指南

[大模型实战 01] 本地大模型初体验:Ollama 部署与 Python 调用指南

[大模型实战 01] 本地大模型初体验:Ollama 部署与 Python 调用指南 核心摘要 (TL;DR)工具:Ollama (最流行的本地大模型运行工具)。目标:在本地电脑运行大模型,并提供 API 给 Python 调用。痛点解决:教咱们如何用国内 ModelScope 替代 HuggingFace 实现极速下载。干货:包含修改端口、显存计算公式、以及 Embedding/多模态等概念科普。 01. Ollama 介绍 官网地址:https://ollama.com/ Ollama 是目前最火的本地大模型部署工具。 简单来说,它能帮咱们快速拉取模型文件,让模型在本地直接运行并进行对话。同时,它还能把模型打包成一个标准的接口,通过端口开放给咱们写的 Python 脚本调用。 对于咱们来说,

By Ne0inhk
Python从0到100(九十二):Swin Transformer 架构解析及在UCI-HAR行为识别中的实现

Python从0到100(九十二):Swin Transformer 架构解析及在UCI-HAR行为识别中的实现

前言:零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能相关知识,成为学业升学和工作就业的先行者! 【优惠信息】 • 新专栏订阅前200名享9.9元优惠 • 订阅量破200后价格上涨至19.9元 • 订阅本专栏可免费加入粉丝福利群,享受: - 所有问题解答 -专属福利领取 欢迎大家订阅专栏:零基础学Python:Python从0到100最新最全教程! 本文目录: * 一. Swin Transformer的基础原理 * 1. Transformer在视觉任务中的挑战 * 2. Swin Transformer的核心思想 * 二、 Swin Transformer的架构 * 1. Patch Embedding * 2. 位置编码 * 3. Swin Transformer Block * 4. 窗

By Ne0inhk
利用 Python 爬虫进行跨境电商数据采集

利用 Python 爬虫进行跨境电商数据采集

* 1 引言 * 2 代理IP的优势 * 3 获取代理IP账号 * 4 爬取实战案例---(某电商网站爬取) * 4.1 网站分析 * 4.2 编写代码 * 4.3 优化代码 * 5 总结 1 引言 在数字化时代,数据作为核心资源蕴含重要价值,网络爬虫成为企业洞察市场趋势、学术研究探索未知领域的重要技术手段。然而爬虫实践中常面临技术挑战,例如某电商企业通过爬虫获取竞品数据时,因高频请求触发目标平台 IP 封锁机制导致采集中断。IP 代理在网络爬虫中发挥关键作用:通过分布式请求分散访问压力,可规避单 IP 高频访问限制并突破地域内容获取限制;同时能隐藏真实 IP 地址降低法律风险,模拟多用户行为特征优化反爬虫策略,有效平衡数据获取需求与网络访问规则。这种技术工具通过突破技术限制、提升采集效率、保障数据安全等多维价值,成为网络爬虫体系中的重要组成部分。本文将介绍代理IP在网络爬虫中的重要性,并结合实际应用。 2 代理IP的优势

By Ne0inhk