neo-code
agent
A terminal dialogue tool based on Go
README.md
NeoCode
基于 Go + Bubble Tea 的本地 Coding Agent
NeoCode 是一个在终端中运行的 AI 编码助手,采用 ReAct(Reason-Act-Observe)循环模式,能够自主推理、调用工具并完成任务。
核心特性
- 流式输出 — 实时展示模型思考过程
- 工具系统 — 文件操作、代码执行、搜索等内置工具
- 多 Provider 支持 — OpenAI、Gemini 等主流模型,易于扩展
- 终端原生体验 — 基于 Bubble Tea 的现代化 TUI
快速开始
环境要求
- Go 1.21+
- API Key(OpenAI 或 Google Gemini)
安装与运行
# 克隆仓库
git clone https://github.com/yourusername/neocode.git
cd neocode
# 设置 API Key
export OPENAI_API_KEY=your_key_here
# 运行
go run ./cmd/neocode
基本使用
在 TUI 中输入自然语言指令,例如:
帮我看看当前项目的目录结构
创建一个 HTTP 服务器,监听 8080 端口
分析 runtime.go 的主要逻辑
使用 slash 命令快速切换配置:
/provider— 切换模型提供商/model— 切换模型
架构概览
┌─────────────────────────────────────────┐
│ TUI (Bubble Tea) │
└────────────────┬────────────────────────┘
│ Events
┌────────────────▼────────────────────────┐
│ Runtime (ReAct Loop) │
└────────┬───────────────────┬────────────┘
│ │
┌────▼─────┐ ┌────▼──────┐
│ Provider │ │ Tools │
│ (LLM) │ │ Registry │
└──────────┘ └───────────┘
核心模块职责:
internal/config— 配置管理、环境变量、YAML 加载internal/provider— LLM 提供商抽象,抹平厂商差异internal/runtime— ReAct 主循环、事件流、会话管理internal/tools— 工具注册表与具体工具实现internal/tui— 终端 UI、交互体验、事件桥接internal/app— 应用装配与依赖注入
目录结构
.
├── cmd/neocode # CLI 入口
├── docs # 架构与设计文档
│ ├── guides # 使用指南
│ └── *.md # 设计文档
├── internal
│ ├── app # 应用装配
│ ├── config # 配置管理
│ ├── provider # Provider 抽象与实现
│ ├── runtime # ReAct 循环与事件流
│ ├── tools # 工具系统
│ └── tui # 终端 UI
└── README.md
文档
- 配置指南 — Provider 策略、配置文件、环境变量
- 扩展 Provider — 如何添加新的模型提供商
- 架构设计 — 整体架构与设计理念
- 事件流 — Runtime 与 Provider 的事件交互
开发
# 格式化代码
gofmt -w ./cmd ./internal
# 运行测试
go test ./...
# 编译
go build ./...
当前状态
NeoCode 正处于 MVP 阶段,核心闭环已可用:
✅ 用户输入 → Agent 推理 → 工具调用 → 结果返回 → UI 展示
正在持续迭代中,重点关注:
- 📚 文档完善
- 🧪 测试覆盖率
- 🛠️ 工具能力扩展
- 🔧 稳定性与性能
License
MIT
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi