From f3fdbbb55c241e0dd1c78ada6d9e792809856d88 Mon Sep 17 00:00:00 2001 From: minorcell Date: Sun, 21 Dec 2025 22:58:46 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20CLI=20?= =?UTF-8?q?=E5=85=A5=E5=8F=A3=E5=AE=9E=E7=8E=B0=E6=91=98=E8=A6=81=E4=B8=8E?= =?UTF-8?q?=20UI=20=E8=AE=BE=E8=AE=A1=E6=96=87=E6=A1=A3=EF=BC=8C=E8=AF=A6?= =?UTF-8?q?=E7=BB=86=E6=8F=8F=E8=BF=B0=E6=9E=B6=E6=9E=84=E3=80=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=8E=E4=BA=A4=E4=BA=92=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 244 ++++++++++++++++++++++-------- docs/design/gemini-cli.md | 33 ++++ docs/design/memo-cli-ui-design.md | 221 +++++++++++++++++++++++++++ 3 files changed, 439 insertions(+), 59 deletions(-) create mode 100644 docs/design/gemini-cli.md create mode 100644 docs/design/memo-cli-ui-design.md diff --git a/README.md b/README.md index eecbc72..73b7e76 100644 --- a/README.md +++ b/README.md @@ -2,78 +2,204 @@ 在终端运行的 ReAct Agent,基于 Bun + TypeScript。支持多轮对话(Session/Turn)、JSONL 结构化日志、内置工具调用,默认使用 DeepSeek(OpenAI 兼容接口)。 -## 特性 +## ✨ 核心特性 -- 多轮对话:交互式 REPL,`--once` 支持单轮退出。 -- 工具驱动:内置 bash/run_bun/read/write/edit/glob/grep/webfetch(HTML 自动转纯文本)、time、save_memory、todo,按 ReAct 协议调用。 -- 结构化日志:默认写入 `history/.jsonl`,可携带 token 计数与事件。 -- 可配置 token 预算:本地 tiktoken 预估 + LLM usage 对账,支持提示超限预警/拒绝。 +### 🤖 ReAct Agent 架构 -## 快速开始 +- **多轮对话管理**:交互式 REPL 模式,支持 `--once` 单轮退出 +- **结构化日志**:自动写入 `history/.jsonl`,包含 token 计数与事件追踪 +- **Session/Turn 系统**:完整的对话状态管理,支持会话恢复 + +### 🛠️ 内置工具集 + +memo-cli 提供了丰富的内置工具,支持 ReAct 协议调用: + +#### 文件系统操作 + +- **read**:读取文件内容,支持偏移和限制 +- **write**:写入文件内容 +- **edit**:查找替换文件内容,支持全局替换 +- **glob**:文件模式匹配搜索 +- **grep**:文本内容搜索,支持上下文显示 + +#### 系统与代码执行 + +- **bash**:执行 Shell 命令 +- **run_bun**:代码解释器工具,在沙箱中运行 Bun (JS/TS) 代码,支持 top-level await + - Linux 使用 bubblewrap (`bwrap`) 沙箱 + - macOS 使用 `sandbox-exec` profile + - 可配置网络访问权限 + +#### 网络与数据获取 + +- **webfetch**:网页抓取工具,支持 http/https/data 协议 + - 10秒超时,512KB 大小限制 + - 自动将 HTML 转换为纯文本 + - 剥离 `