Ultrabot:30 课程开发指南 - 第0课
Ultrabot30 课程开发指南从零开始构建一个生产级 AI 助手框架。本指南将带你从向 LLM 问好一步步走到一个完整的多提供者、多通道 AI 智能体具备工具调用、记忆、安全防护和 Web 界面。每节课程都建立在上一节课的基础之上。每节课都包含可运行的代码和测试。本教程的主要思路来自于Nanobot(https://github.com/HKUDS/nanobot)以及Learn-Claude-Code(https://github.com/shareAI-lab/learn-claude-code/)所以对应的叫做Ultrabot。本课程设计由AI辅助下完成更新地址见https://github.com/junfhu/UltrabotStepByStep如果您觉得对您有帮助请帮助点亮一颗星。本课程中使用的大模型提供商是火山引擎Code Plan如果正好你也需要可以使用我的邀请码获取9折优惠 https://volcengine.com/L/_01BJCkKdMc/ 邀请码HHCDB4J4前置条件pyenvPython 版本管理器—— 本指南全程使用Python 3.12通过 pyenv 安装一个 OpenAI 兼容的 API 密钥任何OPENAI兼容提供者一个文本编辑器任何文本编辑器什么都行就这些。不需要构建工具不需要包管理器不需要框架。只有当你需要时我们才会增加复杂度。为什么用 pyenv系统自带的 Python 不可靠 —— 不同操作系统版本自带不同的 Python 版本修改它可能会破坏系统工具。pyenv让你完全掌控安装任意 Python 版本、在它们之间切换、创建隔离环境。每个专业的 Python 项目都应该使用它。快速安装如果你还没有的话# Linuxcurlhttps://pyenv.run|bash然后添加到你的 shell 配置文件~/.bashrc、~/.zshrc等exportPYENV_ROOT$HOME/.pyenvexportPATH$PYENV_ROOT/bin:$PATHeval$(pyenv init -)重启 shell然后pyenvinstall3.12pyenv global3.12python--version# Python 3.12.x针对不同系统有可能需要安装一些额外的包需要自动问其他AI我的Ubuntu22需要额外安装如下包sudoaptupdatesudoaptinstall-ymakebuild-essential libssl-dev zlib1g-dev\libbz2-dev libreadline-dev libsqlite3-devcurl\libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev\liblzma-devgit# 安装更多编译依赖sudoaptinstall-ypkg-configsudoaptinstall-ylibgdbm-dev libnss3-devsudoaptinstall-ylibssl-dev libffi-devsudoaptinstall-ylibbz2-dev libreadline-dev libsqlite3-devsudoaptinstall-ylibncurses5-dev libncursesw5-dev liblzma-dev如何使用本指南按顺序完成课程。每节课都建立在前一节课的基础上。自己动手敲代码—— 不要只是复制粘贴。这样你会学到更多。每节课后运行测试。测试全绿 你做对了。阅读说明文字。代码注释解释的是为什么而不仅仅是是什么。检查每个检查点。如果它不能工作先调试再继续。设计理念我们从课程 1 就开始和 LLM 对话然后一步步的丰富它课程最后打包成一个完整项目。课程进度课程 1-4和 LLM 对话、流式输出响应、调用工具 —— 有趣的部分课程 5-8添加完善的配置、多提供者支持和一个好用的 CLI课程 9-16生产基础设施 —— 持久化、弹性容错、通道、网关课程 17-23专家人设、Web 界面、定时任务、记忆、媒体处理课程 24-29高级 AI 功能和安全加固课程 30将所有内容打包成一个正式的 Python 项目并发布架构概览到课程 30 结束时你将构建出ultrabot/ ├── agent/ # AI 对话循环、提示词、压缩、委托 ├── bus/ # 异步消息总线支持优先级队列 ├── channels/ # 7 个平台通道Telegram、Discord、Slack、企业微信、微信、飞书、QQ ├── chunking/ # 针对平台限制的智能消息分割 ├── cli/ # 交互式 CLI支持主题和流式输出 ├── config/ # Pydantic 设置、迁移、诊断工具 ├── cron/ # 任务调度器APScheduler ├── daemon/ # 后台进程管理器支持 PID 文件 ├── experts/ # 人设系统使用 YAML 定义和自动路由 ├── gateway/ # 多通道网关服务器FastAPI ├── heartbeat/ # 健康监控服务 ├── mcp/ # Model Context Protocol 客户端 ├── media/ # 图片/PDF 处理管线 ├── memory/ # SQLite FTS5 持久化记忆支持重要性评分 ├── providers/ # LLM 提供者OpenAI、Anthropic支持熔断器 ├── security/ # 速率限制、注入检测、凭证脱敏 ├── session/ # 对话持久化支持 TTL 裁剪 ├── skills/ # 插件/技能系统 ├── tools/ # 15 个内置工具 工具集组合 ├── updater/ # 自更新支持版本检查 ├── usage/ # 按模型统计 token 和费用 └── webui/ # FastAPI WebSocket 聊天界面课程地图#课程你将构建什么1向 LLM 问好一个文件pip install openai和 GPT 对话2流式输出 智能体循环流式 token多轮对话3工具调用LLM 调用工具、执行、再回来4更多工具 工具集15 个工具命名分组启用/禁用5配置系统Pydantic 设置JSON 配置环境变量6提供者抽象LLMProvider ABCOpenAI 提供者注册表7Anthropic 提供者Claude 支持格式转换流式输出8CLI 交互式 REPLTyper、Rich、prompt_toolkit、斜杠命令9会话持久化JSON 存储、TTL、上下文窗口裁剪10熔断器 故障转移状态机自动提供者回退11消息总线异步优先级队列、死信队列、扇出12安全守卫速率限制、清洗、访问控制13Telegram 通道BaseChannel ABC第一个消息平台14Discord Slack另外两个通道支持平台格式化15网关服务器FastAPI多通道编排16中国平台企业微信、微信、飞书、QQ17专家人设YAML 定义、解析器、注册表18专家路由自动路由、热重载、/expert 命令19Web 界面FastAPI WebSocket 浏览器聊天20定时调度APScheduler持久化任务21守护进程 心跳后台进程健康监控22记忆存储SQLite FTS5重要性评分23媒体管线图片、PDF、基于哈希的存储24智能分块感知平台的消息分割25上下文压缩基于 LLM 的摘要26提示缓存 辅助模型缓存断点、廉价 LLM 客户端27注入检测 脱敏安全加固28浏览器 委托Playwright 工具、子智能体生成29运维完善用量统计、更新、诊断、主题、密钥轮换30项目打包pyproject.toml、入口点、CI、README接下来可以进入第一课UltraBot 开发者指南 —— 第 1 部分课程 1-8从零到一个完善的多提供者 CLI 聊天机器人支持工具调用。每节课程只增加一个核心概念。课程 1 对任何安装了 Python 的人来说10 分钟即可完成。到课程 8 结束时你将拥有一个生产级的交互式助手。