MCPcopy Index your code
hub / github.com/1024XEngineer/bytemind

github.com/1024XEngineer/bytemind @v1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.2 ↗ · + Follow
7,245 symbols 27,622 edges 595 files 294 documented · 4%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

English | 简体中文

ByteMind Banner

Typing SVG

ByteMind

面向真实代码仓库的终端原生 AI Coding Agent。

让 AI 在终端中读代码、搜文件、执行命令、修改代码、规划任务,并在关键操作前保持可控审批。

Stars Forks Release License

Go Platform Provider Mode Runtime CI Evals Demo Coverage

文档 · 为什么是 ByteMind · 使用场景 · 快速开始 · 功能矩阵 · 架构 · Skills / MCP / SubAgents


为什么是 ByteMind

ByteMind 面向的是这样一类开发者:希望 AI 直接在代码仓库内部工作,而不是停留在外部聊天窗口中。

它不只给建议,而是尝试进入真实工程闭环:

需求输入 → 制定计划 → 调用工具 → 观察结果 → 修改代码 → 执行验证 → 输出结果

Terminal-native Human-in-the-loop Extensible

🧠 先规划

对于高风险任务,可以先进入 Plan 模式,先审阅方案,再决定是否执行。

🛠 再执行

检查文件、搜索代码、应用补丁、执行命令,并在需要时获取外部上下文。

🧭 保持控制

通过审批策略和运行边界,让关键动作始终处于可见、可控的范围内。

使用场景

场景 ByteMind 可以做什么
理解新代码仓库 浏览目录、定位入口、梳理关键模块和调用链
排查失败测试 读取失败信息、定位相关代码、修改后再次验证
审查或优化改动 从正确性、回归风险和测试覆盖角度检查变更
生成技术方案和 RFC 基于仓库上下文生成可执行的实现方案
自动化重复工程任务 把常见流程沉淀为 Skills、MCP 或 SubAgent 工作流
协作编码 在保留审批边界的前提下读写文件、执行命令、推进任务

快速开始

安装

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/1024XEngineer/bytemind/main/scripts/install.sh | bash

Windows PowerShell

iwr -useb https://raw.githubusercontent.com/1024XEngineer/bytemind/main/scripts/install.ps1 | iex

安装指定版本

curl -fsSL https://raw.githubusercontent.com/1024XEngineer/bytemind/main/scripts/install.sh | BYTEMIND_VERSION=vX.Y.Z bash
$env:BYTEMIND_VERSION='vX.Y.Z'; iwr -useb https://raw.githubusercontent.com/1024XEngineer/bytemind/main/scripts/install.ps1 | iex

配置

mkdir -p .bytemind
cp config.example.json .bytemind/config.json

运行

bytemind chat
bytemind run -prompt "分析当前仓库并总结架构"
bytemind run -prompt "重构这个模块并更新测试" -max-iterations 64

5 分钟演示

一个可复现的 Bug 修复闭环,展示 ByteMind 的完整工程能力:

go run ./cmd/bytemind run \
  -prompt "修复失败的测试并验证它通过" \
  -workspace examples/bugfix-demo/broken-project \
  -approval-mode full_access
步骤 工具 内容
1 list_files 读取项目结构
2 read_file 读取源码和测试文件
3 run_tests 发现失败的测试
4 replace_in_file 修复除零 Bug
5 run_tests 验证所有测试通过
6 git_diff 展示精确的修改内容

Bug: CalculateAverage 在空切片上除零返回 NaN。
修复: 添加 len(nums) == 0 守卫条件。

离线验证(无需 API Key):

go run ./evals/runner.go -smoke -run bugfix_go_001

详见 examples/bugfix-demo/DEMO.md(评审向导)和 ENGINEERING.md(工程证据)。


工程证据

ByteMind 专为需要可复现、可验证工程输出的评估场景而设计。

真实 Agent 循环

多步工具调用 + 观测反馈、上下文压缩、限流重试、执行预算控制(internal/agent/engine_run_loop.go)。

编码原生工具

14 个内置工具,输出结构化 JSON — git_statusgit_diffrun_tests、文件读写搜索、补丁应用、Shell 执行和 Web 访问。每个工具都有单元测试和安全分类。

可复现 Demo

examples/bugfix-demo/broken-project 是一个自包含的 Go 项目,初始 go test ./... 失败,Agent 修复后通过。提供离线验证方式。

评估系统

YAML 定义评估任务,通过 evals/runner.go 运行,支持命令退出码、输出模式、文件内容正则、文件修改检测。已集成 CI(-validate / -smoke)。

安全边界

三层安全模型:审批策略(on-request/always/never)、沙箱(off/best_effort/required)、运行时边界(可写目录、执行白名单、网络白名单)。详见 bytemind safety explain

CI 与测试

PR 门禁 CI:go build ./...、单元测试 + 覆盖率、Linux/macOS/Windows 沙箱验收、评估冒烟检查。

可扩展性

Skills(可复用工作流)、MCP(外部工具集成)、SubAgents(聚焦委派)。


功能矩阵

分类 能力 说明
终端体验 终端优先交互 面向真实仓库工作流
流式输出 实时观察执行过程 适合长任务
Agent Loop 多步骤工具调用 + 观察结果 不只是一次性问答
Build / Plan 规划与执行分离 更适合高风险改动
文件能力 读取、搜索、写入、替换、补丁 核心仓库操作
Git 能力 git_status, git_diff 查看工作区状态和变更
测试能力 run_tests 自动检测并运行项目测试
Shell 在审批下执行命令 让执行过程可控
Web 搜索和抓取外部内容 需要外部上下文时使用
会话管理 持久化和恢复任务 适合长期工作
Skills 可复用工作流 Bug 排查、审查、RFC、onboarding
MCP 外部工具 / 上下文集成 让运行时能力更丰富
SubAgents 聚焦型委托执行 降低主上下文噪声
安全控制 审批、allowlist、可写目录 人类在环执行
Provider OpenAI-compatible / Anthropic 可配置运行时支持

内置工具

工具 用途
list_files 检查仓库结构和候选文件范围
read_file 读取源码、文档、配置和测试内容
search_text 按关键词定位符号、错误信息或调用点
git_status 查看工作区状态(暂存、未暂存、未跟踪)
git_diff 输出当前变更的 unified diff
run_tests 自动检测并运行项目测试,返回结果
write_file 创建或完整写入文件
replace_in_file 对已有文件做小范围文本替换
apply_patch 以补丁方式增量修改文件
run_shell 在审批边界内执行命令并读取结果
web_search 本地上下文不足时搜索外部资料
web_fetch 抓取指定页面内容作为补充上下文

核心体验

✅ ByteMind 擅长的事情

  • 理解陌生代码仓库
  • 排查代码与失败测试
  • 规划并执行小范围重构
  • 审查正确性与回归风险
  • 撰写 RFC 风格实现方案
  • 自动化重复工程工作流

⚙️ 它为什么实用

  • 敏感动作先审批
  • 通过 max_iterations 控制执行预算
  • 支持会话持久化
  • Provider 无关运行时
  • 可扩展 Skills 与外部工具
  • 基于 SubAgent 的上下文隔离

工作原理

graph TD
    A["用户输入"] --> B["构建运行时上下文"]
    B --> C["LLM 决定:回答或调用工具"]
    C --> D{"是否调用工具"}
    D -- "否" --> E["最终回答"]
    D -- "是" --> F["审批 / 策略检查"]
    F --> G["执行工具"]
    G --> H["观察结果写回会话"]
    H --> I{"是否完成"}
    I -- "否" --> C
    I -- "是" --> E

架构

graph TD
    User["User"] --> CLI["cmd/bytemind"]
    CLI --> App["App Bootstrap"]
    App --> Runner["Runner"]

    Runner --> Engine["Agent Engine"]
    Engine --> Provider["Provider Runtime"]
    Provider --> Model["LLM Provider"]

    Engine --> Tools["Tool Registry"]
    Tools --> FileTools["File Tools"]
    Tools --> PatchTools["Patch Tools"]
    Tools --> Shell["Shell Tool"]
    Tools --> Web["Web Search / Fetch"]
    Tools --> TaskTools["Task Output / Stop"]
    Tools --> Delegate["Delegate SubAgent"]

    Runner --> Session["Session Store"]
    Runner --> Config["Config"]
    Runner --> Skills["Skills Manager"]
    Runner --> SubAgents["SubAgent Gateway"]
    Runner --> Safety["Approval / Sandbox / Allowlist"]

配置

ByteMind 默认合并三层配置:内置默认值、用户级 ~/.bytemind/config.json(或 BYTEMIND_HOME/config.json)和项目级 <workspace>/.bytemind/config.json

下方示例是项目级配置,只影响当前工作区;跨仓库复用的 provider 凭证更适合放在用户级配置或环境变量中。显式传入 -config 时,会使用指定配置文件。

.bytemind/config.json

OpenAI-compatible 示例

{
  "provider": {
    "type": "openai-compatible",
    "base_url": "https://api.openai.com/v1",
    "model": "gpt-5.4-mini",
    "api_key_env": "BYTEMIND_API_KEY"
  },
  "approval_policy": "on-request",
  "approval_mode": "interactive",
  "max_iterations": 64,
  "stream": true
}

Anthropic 示例

{
  "provider": {
    "type": "anthropic",
    "base_url": "https://api.anthropic.com",
    "model": "claude-sonnet-4-20250514",
    "api_key_env": "ANTHROPIC_API_KEY",
    "anthropic_version": "2023-06-01"
  },
  "approval_policy": "on-request",
  "approval_mode": "interactive"
}

运行边界示例

{
  "approval_policy": "on-request",
  "approval_mode": "interactive",
  "writable_roots": [],
  "exec_allowlist": [],
  "network_allowlist": [],
  "system_sandbox_mode": "off"
}

Skills、MCP 与 SubAgents

Skills

可复用工作流定义,从三个作用域加载(builtin > user > project)。通过 /skills/skill 命令管理。

/help                 显示可用命令
/session              显示当前会话
/sessions [limit]     列出最近会话
/agents [name]        列出可用 SubAgent 或查看某个定义
/explorer             显示内置 explorer SubAgent 定义
/review               显示内置 review SubAgent 定义
/resume <id>          按 id 或前缀恢复最近会话
/new                  在当前工作区开始新会话
/quit                 退出 CLI

MCP

MCP 用于把 ByteMind 连接到本地仓库之外的外部工具和上下文。

SubAgents

SubAgents 提供聚焦型隔离执行上下文:

SubAgent 工具 用途
explorer list_files, read_file, search_text 只读仓库探索
review list_files, read_file, search_text 代码审查和 Bug 检测
general 文件工具 + 编辑工具 多步骤编码任务

Skills MCP SubAgents


安全模型

动作 默认行为
读取文件 通常自动允许
搜索文件 通常自动允许
写入文件 需要审批
执行 shell 命令 需要审批或受 allowlist 约束
高风险动作 执行前展示确认

ByteMind 的设计原则很简单:

AI 可以执行,但最终控制边界必须掌握在人手里。

安全诊断

# 查看当前安全配置
bytemind safety status

# 了解安全模型
bytemind safety explain

# 检查环境、配置和依赖
bytemind doctor

项目结构

cmd/bytemind            CLI 入口
internal/app            应用启动装配
internal/agent          Agent loop、prompt、streaming、subagent execution
internal/config         配置加载、默认值、环境变量覆盖
internal/llm            通用消息与工具类型
internal/provider       Provider 适配与 provider runtime
internal/session        会话持久化
internal/tools          文件 / patch / shell / web 工具
internal/skills         Skills 发现与加载
internal/subagents      SubAgent 管理与 preflight gateway
internal/sandbox        运行边界与沙箱相关逻辑
tui/                    终端 UI(BubbleTea 框架)
examples/bugfix-demo    5 分钟可复现 Bug 修复演示
evals/                  评测任务与运行器
docs/                   架构文档、RFC、PRD
scripts/                跨平台安装脚本

链接


License

This project is licensed under the MIT License.

Extension points exported contracts — how you extend this code

ToolRenderer (Interface)
ToolRenderer describes how a tool's execution is displayed in the TUI. Each tool registers an implementation; the render [16 …
tui/tool_renderer.go
Reloader (Interface)
Reloader is an optional manager capability for force-refreshing extension runtime state (for example after config mutati [10 …
internal/extensions/interface.go
ToolSpecProvider (Interface)
(no doc) [10 implementers]
internal/tools/spec.go
PromptHistoryWriter (Interface)
(no doc) [8 implementers]
internal/storage/prompt_history.go
PromptHistoryWriter (Interface)
(no doc) [8 implementers]
internal/history/store.go
Runner (Interface)
(no doc) [5 implementers]
tui/ports.go
SemanticError (Interface)
SemanticError is the minimal, testable cross-module error contract. [3 implementers]
internal/core/types.go
SessionStore (Interface)
SessionStore defines the persistence contract consumed by Runner. [3 implementers]
internal/agent/ports.go

Core symbols most depended-on inside this repo

Render
called by 415
tui/tool_renderer.go
New
called by 289
internal/session/store.go
String
called by 219
internal/app/cli_mcp.go
max
called by 211
tui/model.go
Error
called by 174
internal/provider/types.go
NewStore
called by 172
internal/session/store.go
NewRunner
called by 169
internal/agent/runner.go
handleKey
called by 162
tui/model.go

Shape

Function 4,807
Method 1,602
Struct 667
Interface 82
TypeAlias 74
FuncType 13

Languages

Go100%

Modules by API surface

tui/model_test.go304 symbols
tui/model.go183 symbols
tui/model_util_test.go101 symbols
tui/input_paste_test.go96 symbols
tui/component_chat_stream_test.go93 symbols
internal/agent/subagent_delegate_test.go88 symbols
tui/markdown_renderer.go87 symbols
tui/input_paste.go86 symbols
internal/config/config_test.go78 symbols
tui/input_images_test.go77 symbols
internal/runtime/manager.go74 symbols
tui/component_text_render.go61 symbols

Datastores touched

mydbDatabase · 1 repos

For agents

$ claude mcp add bytemind \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact