又一个Agent项目诞生了,Python 版 PaiCLI 类似 Claude Code 的终端 Agent
大家好,我是二哥呀。
目前 PaiCLI 已经有 Java 版、TypeScript 版和 Python 版了,三个版本的核心架构完全一致,区别只在语言层面。
先叠个甲,PaiCLI 的 Harness 能力和 Claude Code 有很大的距离,但让大家把 AI Agent 的核心技术栈全部亲手实现一遍的目的是可以实现的。
跟着做完这个项目,你会发现,ReAct、MCP、Memory 这些听起来高大上的概念,落到代码里其实没有想象中那么复杂。
代码已经同步到gitcode上了。

01、为什么要做Python版本?
AI 时代,编程语言不再成为大家学习编程的门槛,因为你不精通的 Python/Java/TypeScript/Go,Claude Code/Codex这些 Agent 都很精通。
Python 也是很多小伙伴学习 AI Agent 开发最情有独钟的语言,所以我们就也搞了 Python 版本。

PaiCLI-Python 的核心依赖有 6 个。
httpx, 异步 HTTP 客户端。和 requests 最大的区别在于原生支持 async/await,Agent 调用大模型 API 的时候可以做到非阻塞流式输出。
PaiCLI 里所有和模型的通信都走 httpx 的 AsyncClient,SSE 流式解析也是用它做的。

prompt-toolkit, 交互式终端输入框架。支持语法高亮、自动补全、多行编辑、历史记录。PaiCLI 的终端交互体验全靠它,按上箭头翻历史、Tab 补全命令,这些都不需要自己从零实现。
Rich, 终端渲染库。Markdown 渲染、语法高亮、进度条、表格、面板,全部开箱即用。Agent 输出代码片段的时候能直接在终端里高亮显示,不是一坨纯文本。
Typer, CLI 框架。基于 Python 类型注解自动生成命令行参数解析,比 argparse 写起来少一半代码。PaiCLI 的所有子命令都用 Typer 定义。
MCP SDK, Anthropic 官方的 MCP SDK。PaiCLI 直接用官方 SDK 接入 MCP 生态,支持 stdio 和 HTTP 两种传输协议,不需要自己实现协议层。
SQLite, 记忆系统和代码索引的持久化存储。不需要额外装数据库,Python 标准库自带 sqlite3 模块,Agent 的长期记忆和 RAG 代码索引都存在本地 SQLite 文件里。

这 6 个库覆盖了网络通信、终端交互、命令行解析、协议对接、数据持久化五个方向。
顺便提一嘴,整个项目用 uv 做包管理,hatchling 做构建后端。
02、实现了哪些功能
PaiCLI-Python 的功能可以按 Agent 的核心能力来拆分。以下每个模块都是独立的,想学哪个就看哪个的源码。
ReAct。 接收用户输入 → 调用大模型推理 → 判断是否需要工具 → 执行工具 → 把结果喂回模型 → 继续推理。
15 个内置工具。读文件、写文件、执行命令、搜索文件、Glob 匹配、代码搜索、记忆读写、快照创建恢复、网页搜索、网页抓取、LSP 诊断。每个工具都标注了是否只读、是否并发安全,Agent 可以根据标注做并行调度。

MCP 协议接入。通过 MCP SDK 连接外部工具服务器,支持 stdio 和 Streamable HTTP 两种传输协议。配置文件写好服务器地址和启动命令,PaiCLI 启动时自动加载外部工具。实现了工具发现、调用、资源读取、Prompt 模板获取等全部 MCP 客户端能力。
三层记忆系统。对话上下文是短期记忆,SQLite 持久化的跨会话数据是长期记忆,支持按关键词搜索历史记忆。
RAG 代码库检索。把项目源码按行拆分后存入 SQLite,支持多关键词 AND 匹配搜索。Agent 回答代码相关问题时,先用 RAG 检索定位到具体文件和行号,...
企业级Agent工作流编排项目PaiFlow
Vibe Coding版本的PaiAgent
派聪明RAG AI知识库Java版本+Go版本
微服务 PmHub、技术派、MYDB
求职派JobClaw(OpenClaw/Hermes架构
PaiCLI(类似Claude Code的Agent
派简历(代码已完成)
等实战项目。
1. 微信扫右侧的优惠券加入知识星球
2. 解锁星球的实战项目教程和源码: 项目源码+教程获取
回复