Skip to content

Commit ecdc443

Browse files
committed
docs: 重写REAMD文档内容
1 parent b922a73 commit ecdc443

1 file changed

Lines changed: 85 additions & 156 deletions

File tree

README.md

Lines changed: 85 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -2,211 +2,140 @@
22

33
> 基于 Go + Bubble Tea 的本地 Coding Agent
44
5-
NeoCode 是一个在终端中运行的 AI 编码助手,采用 ReAct(Reason-Act-Observe)循环模式,能够自主推理、调用工具并完成任务。
5+
## NeoCode 是什么
66

7-
## 核心特性
7+
NeoCode 是一个在终端中运行的 AI 编码助手,采用 ReAct(Reason-Act-Observe)循环模式,围绕以下主链路工作:
88

9-
- **流式输出** — 实时展示模型思考过程
10-
- **工具系统** — 文件操作、代码执行、搜索等内置工具
11-
- **内建 Provider 支持** — OpenAI、Gemini、OpenLL、Qiniu,模型列表支持动态发现与缓存
12-
- **终端原生体验** — 基于 Bubble Tea 的现代化 TUI
9+
`用户输入 -> Agent 推理 -> 调用工具 -> 获取结果 -> 继续推理 -> UI 展示`
1310

14-
## 一键安装
11+
它适合希望在本地工作流中完成代码理解、修改、调试与自动化操作的开发者。
1512

16-
NeoCode 提供了跨平台的一键安装脚本。无论你是哪种操作系统,只需在终端执行以下命令,脚本将自动探测系统架构、拉取最新 Release 产物并配置好环境变量:
13+
## 有什么能力
1714

18-
### 🍎 macOS / Linux
19-
打开终端(Terminal)并运行:
20-
```bash
21-
curl -fsSL https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.sh | bash
22-
```
15+
- 终端原生 TUI 交互体验(Bubble Tea)
16+
- Agent 可调用内置工具完成文件与命令相关任务
17+
- 支持 Provider/Model 切换(内建 `openai``gemini``openll``qiniu`
18+
- 支持上下文压缩(`/compact`),帮助长会话保持可用
19+
- 支持工作区隔离(`--workdir``/cwd`
20+
- 会话持久化与恢复,降低重复沟通成本
2321

24-
### Windows
22+
## 怎么用(快速开始)
2523

26-
打开 PowerShell 并运行:
24+
### 1) 环境要求
2725

26+
- Go `1.25+`
27+
- 可用的 API Key(如 OpenAI、Gemini、OpenLL、Qiniu)
2828

29+
### 2) 一键安装
2930

30-
```PowerShell
31-
irm https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.ps1 | iex
32-
```
33-
31+
macOS / Linux:
3432

33+
```bash
34+
curl -fsSL https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.sh | bash
35+
```
3536

36-
## 快速开始
37-
38-
### 环境要求
37+
Windows PowerShell:
3938

40-
- Go 1.21+
41-
- API Key(OpenAI 或 Google Gemini)
39+
```powershell
40+
irm https://raw.githubusercontent.com/1024XEngineer/neo-code/main/scripts/install.ps1 | iex
41+
```
4242

43-
### 安装与运行
43+
### 3) 从源码运行
4444

4545
```bash
46-
# 克隆仓库
4746
git clone https://github.com/1024XEngineer/neo-code.git
48-
cd neocode
49-
50-
# 设置 API Key
51-
export OPENAI_API_KEY=your_key_here
52-
53-
# 运行
47+
cd neo-code
5448
go run ./cmd/neocode
5549
```
5650

57-
### 基本使用
51+
设置 API Key 示例(按你使用的 provider 选择):
5852

59-
在 TUI 中输入自然语言指令,例如:
60-
61-
```
62-
帮我看看当前项目的目录结构
63-
创建一个 HTTP 服务器,监听 8080 端口
64-
分析 runtime.go 的主要逻辑
53+
```bash
54+
export OPENAI_API_KEY="your_key_here"
55+
export GEMINI_API_KEY="your_key_here"
56+
export AI_API_KEY="your_key_here"
57+
export QINIU_API_KEY="your_key_here"
6558
```
6659

67-
使用 slash 命令快速切换配置
60+
Windows PowerShell
6861

69-
- `/provider` — 切换内建模型提供商
70-
- `/model` — 切换模型
71-
72-
## 架构概览
73-
74-
```
75-
┌─────────────────────────────────────────┐
76-
│ TUI (Bubble Tea) │
77-
└────────────────┬────────────────────────┘
78-
│ Events
79-
┌────────────────▼────────────────────────┐
80-
│ Runtime (ReAct Loop) │
81-
└────────┬───────────────────┬────────────┘
82-
│ │
83-
┌────▼─────┐ ┌────▼──────┐
84-
│ Provider │ │ Tools │
85-
│ (LLM) │ │ Registry │
86-
└──────────┘ └───────────┘
62+
```powershell
63+
$env:OPENAI_API_KEY = "your_key_here"
64+
$env:GEMINI_API_KEY = "your_key_here"
65+
$env:AI_API_KEY = "your_key_here"
66+
$env:QINIU_API_KEY = "your_key_here"
8767
```
8868

89-
核心模块职责:
90-
91-
- **`internal/config`** — 配置管理、环境变量、YAML 加载
92-
- **`internal/context`** — system prompt、消息裁剪与上下文构建
93-
- **`internal/provider`** — Provider 契约、驱动注册与通用领域类型
94-
- **`internal/provider/openaicompat`** — OpenAI-compatible 协议入口、discovery 与 `api_style` 分流
95-
- **`internal/provider/openaicompat/chatcompletions`**`/chat/completions` 请求组装、SSE 解析与 tool-call 增量处理
96-
- **`internal/provider/catalog`** — 模型发现、catalog 缓存与后台刷新
97-
- **`internal/provider/builtin`** — 内建 driver 注册
98-
- **`internal/runtime`** — ReAct 主循环与事件流编排(不直接承载会话存储实现;不再导出会话模型与存储类型)
99-
- **`internal/session`** — 会话模型、会话存储抽象与 JSON 持久化实现(统一对外暴露 `Session` / `Summary` / `Store`
100-
- **`internal/tools`** — 工具注册表与具体工具实现
101-
- **`internal/tui`** — 终端 UI、交互体验、事件桥接
102-
- **`internal/app`** — 应用装配与依赖注入
103-
104-
## 目录结构
69+
按工作区启动(仅当前进程生效):
10570

106-
```text
107-
.
108-
├── cmd/neocode # CLI 入口
109-
├── docs # 架构与设计文档
110-
│ ├── guides # 使用指南
111-
│ └── *.md # 设计文档
112-
├── internal
113-
│ ├── app # 应用装配
114-
│ ├── config # 配置管理
115-
│ ├── context # 上下文构建
116-
│ ├── provider # Provider 契约与驱动注册
117-
│ │ ├── builtin # 内建 driver 注册
118-
│ │ ├── catalog # 模型发现与缓存
119-
│ │ └── openaicompat # OpenAI-compatible 协议入口与子协议实现
120-
│ ├── runtime # ReAct 循环与事件流
121-
│ ├── session # 会话模型与持久化
122-
│ ├── tools # 工具系统
123-
│ └── tui # 终端 UI
124-
└── README.md
71+
```bash
72+
go run ./cmd/neocode --workdir /path/to/workspace
12573
```
12674

127-
## 文档
75+
### 4) 首次使用与常用命令
12876

129-
- **[配置指南](docs/guides/configuration.md)** — Provider 策略、配置文件、环境变量
130-
- **[扩展 Provider](docs/guides/adding-providers.md)** — 如何添加新的模型提供商
131-
- **[架构设计](docs/neocode-coding-agent-mvp-architecture.md)** — 整体架构与设计理念
132-
- **[事件流](docs/runtime-provider-event-flow.md)** — Runtime 与 Provider 的事件交互
133-
- **[Session 持久化](docs/session-persistence-design.md)** — 会话 JSON 存储、token 累计与工作区隔离
134-
135-
## 开发
136-
137-
```bash
138-
# 格式化代码
139-
gofmt -w ./cmd ./internal
77+
- `/help`:查看命令帮助
78+
- `/provider`:打开 provider 选择器
79+
- `/model`:打开 model 选择器
80+
- `/compact`:压缩当前会话上下文
81+
- `/status`:查看当前会话与运行状态
82+
- `/cwd [path]`:查看或设置当前会话工作区
83+
- `/memo`:查看记忆索引
84+
- `/remember <text>`:保存记忆
85+
- `/forget <keyword>`:按关键词删除记忆
86+
- `& <command>`:在当前工作区执行本地命令
14087

141-
# 运行测试
142-
go test ./...
88+
示例输入:
14389

144-
# 编译
145-
go build ./...
90+
```text
91+
请先阅读当前项目目录结构并给出模块职责摘要
92+
帮我在 internal/runtime 下定位与 tool result 回灌相关逻辑
14693
```
14794

148-
## 当前状态
149-
150-
NeoCode 正处于 MVP 阶段,核心闭环已可用:
151-
152-
✅ 用户输入 → Agent 推理 → 工具调用 → 结果返回 → UI 展示
95+
## 配置入口
15396

154-
正在持续迭代中,重点关注:
97+
- 主配置文件:`~/.neocode/config.yaml`
98+
- 自定义 Provider:`~/.neocode/providers/<provider-name>/provider.yaml`
15599

156-
- 📚 文档完善
157-
- 🧪 测试覆盖率
158-
- 🛠️ 工具能力扩展
159-
- 🔧 稳定性与性能
100+
配置原则(用户侧重点):
160101

102+
- API Key 通过环境变量注入,不写入 `config.yaml`
103+
- `--workdir` 只影响当前运行,不会回写到配置文件
161104

105+
详细配置请参考:[docs/guides/configuration.md](docs/guides/configuration.md)
162106

163-
## 自动化发版指南
107+
## 文档导航
164108

165-
NeoCode 已经集成了 GoReleaser 与 GitHub Actions 的全自动化 CI/CD 流水线。
109+
- [配置指南](docs/guides/configuration.md)
110+
- [扩展 Provider](docs/guides/adding-providers.md)
111+
- [Runtime/Provider 事件流](docs/runtime-provider-event-flow.md)
112+
- [Session 持久化设计](docs/session-persistence-design.md)
113+
- [Context Compact 说明](docs/context-compact.md)
114+
- [Tools 与 TUI 集成](docs/tools-and-tui-integration.md)
115+
- [MCP 配置指南](docs/guides/mcp-configuration.md)
166116

167-
**作为项目维护者,发布新版本时绝对不需要在本地手动编译或打包二进制文件。** 只需要通过 Git 打一个语义化版本标签(Tag)即可触发全自动构建:
117+
## 如何参与
168118

169-
1. **确保主分支代码已就绪**:所有新特性和 Bug 修复均已合并至 `main` 分支
119+
欢迎通过 Issue 和 PR 参与共建
170120

171-
2. **在本地打上版本标签**(版本号必须以 `v` 开头,如 `v0.1.0`):
121+
1.[Issues](https://github.com/1024XEngineer/neo-code/issues) 先沟通问题或需求。
122+
2. Fork 仓库并创建功能分支。
123+
3. 完成开发并确保改动聚焦、边界清晰。
124+
4. 本地自检:
172125

173-
```Bash
174-
git tag v0.1.0
126+
```bash
127+
gofmt -w ./cmd ./internal
128+
go test ./...
129+
go build ./...
175130
```
176131

177-
3. **将标签推送到远程仓库**
178-
179-
```Bash
180-
git push origin v0.1.0
181-
```
132+
5. 提交 PR 到主仓库并说明变更目的、影响范围和验证方式。
182133

183-
**发布流水线说明:** 推送到远程后,GitHub Actions 会自动接管,整个过程通常耗时 1~2 分钟
134+
提交前请确认
184135

185-
- 自动读取 `.goreleaser.yaml` 配置。
186-
- 执行跨平台(Windows/macOS/Linux)与多架构(amd64/arm64)的静态交叉编译。
187-
- 自动将编译产物打包压缩(`.tar.gz``.zip`),并计算 SHA256 校验和。
188-
- 自动在项目的 Releases 页面创建一个全新的发版记录,并将所有压缩包作为资产(Assets)挂载上去。
136+
- 不提交明文密钥、个人配置或会话数据
137+
- 不提交无关改动与临时文件
189138

190139
## License
191140

192141
MIT
193-
194-
## Manual Compact
195-
196-
NeoCode 支持通过 `/compact` 手动压缩当前会话上下文。配置项见 `docs/guides/configuration.md`,流程和摘要约定见 `docs/context-compact.md`
197-
198-
## CLI Workdir
199-
200-
NeoCode 现在支持通过 CLI 启动参数覆盖本次运行工作区:
201-
202-
```bash
203-
go run ./cmd/neocode --workdir /path/to/workspace
204-
```
205-
206-
说明:
207-
208-
- `--workdir` 只影响当前进程,不会写回 `config.yaml`
209-
- 当前工作区会同时用于工具执行根目录与 session 存储分桶
210-
- session 历史现在按工作区隔离存储,不同工作区默认互不可见
211-
212-
[![Contributors](https://hub-io-mcells-projects.vercel.app/r/1024XEngineer/neo-code)](https://github.com/1024XEngineer/neo-code/graphs/contributors)

0 commit comments

Comments
 (0)