EkagraAgarwal/BanyanCode

GitHub: EkagraAgarwal/BanyanCode

BanyanCode 是一个终端原生的多 agent 编码框架,通过并行子 agent、持久化记忆和 Tree-Sitter 代码图谱将单个 prompt 转化为可验证的自动化开发工作流。

Stars: 3 | Forks: 0

# BanyanCode **用于 loop engineering 的 agent 框架。** 将单个 prompt 转化为协同工作的编码系统 —— 并行 agent、持久化 memory、代码库智能,以及可验证的 workflow,全部集成于一个快速的终端 UI 中。 [![npm version](https://img.shields.io/npm/v/banyancode?style=flat-square&color=cb3837)](https://www.npmjs.com/package/banyancode) [![GitHub release](https://img.shields.io/github/v/release/EkagraAgarwal/BanyanCode?style=flat-square&color=blue)](https://github.com/EkagraAgarwal/BanyanCode/releases/latest) [![License](https://img.shields.io/github/license/EkagraAgarwal/BanyanCode?style=flat-square)](https://github.com/EkagraAgarwal/BanyanCode/blob/main/LICENSE)
## 安装说明 ``` # YOLO curl -fsSL https://raw.githubusercontent.com/EkagraAgarwal/BanyanCode/main/install | bash # Windows irm https://raw.githubusercontent.com/EkagraAgarwal/BanyanCode/main/install.ps1 | iex # 包管理器 npm i -g banyancode@latest # or bun/pnpm/yarn bun add -g banyancode # Bun (fastest) ``` 在任何项目目录中运行 `banyancode` —— 它会在当前 workspace 中打开,并在您工作时开始构建增量 code graph。 ## 为什么选择 BanyanCode 大多数 coding agent 只提供对话功能。BanyanCode 为您提供一个**系统**。 - 一个 prompt 即可启动一个协同工作的 agent 团队。 - 每个 agent 都会自动获得其所需的 context 和工具。 - 您的 repository 将成为可搜索的结构化数据,而不是一堆杂乱的文件。 - Memory 会跨会话积累,而不会随着对话消失。 - 验证内置于 loop 中,而不是事后补充。 适用于重构、迁移、调试、代码库 onboarding、重度研究的实现,以及自主软件工程。 ## 核心功能 ### 并行 Subagent Mesh 从单个 prompt 并发调度 `scout`、`coder` 和 `researcher` agent。主 orchestrator 会分解任务并将其分配到整个 mesh 中,由可配置的并发上限和最旧优先终止的 eviction policy 进行管控 —— 从而防止任何任务耗尽您的资源。

BanyanCode agent tree showing nested parent and child subagents with token usage
The Agent Tree view — full visibility into every subagent, nested subagent, and its token spend.

### Loop Engineering 构建可重复的 agent loop,包含目标、行动、验证、重试和 memory —— 而无需您手动驱动每一个环节。核心 workflow 始终是: ``` trigger → context → plan → execute → verify → remember → repeat ```

BanyanCode chat view showing an agent plan, live todo tracking, and system stats
Live plans, todo tracking, and system stats — right inside the chat.

### 跨会话的持久化 Memory 一个多层的 memory 引擎,能够在不同会话之间真正记住您的代码库:候选提取、意图分类、混合 FTS5/tag 检索,以及自动化的清理扫描(过期 → 调和 → 修剪),让 memory 保持有效而不至于陈旧失效。 ### 代码库智能(Tree-Sitter Code Graph) `/codegraph-build` 将您的仓库索引为一个实时、可查询的图表,包含符号、调用者、依赖者、测试、影响范围和归属权 —— 由 Tree-Sitter 解析提供支持,并对其原生不支持的内容提供 regex 回退机制。 ### 验证 Hooks Repository context、影响范围分析、预检、测试和 review loop 让每一个 agent 的变更在落地前都立足于实际情况。 ### 免费研究 Loop 由 DuckDuckGo HTML 搜索提供支持的 `researcher` subagent —— 无需 API key,无需支付速率限制费用。 ### 终端原生 UX 快速的 TUI,具备命令面板、内置 LSP 支持、模型切换、执行追踪和全键盘控制。 ## 工作流程 ``` Prompt └─► Orchestrator ├─► Scout explores the repository ├─► Coder implements the change ├─► Researcher checks external knowledge ├─► Memory carries context across sessions └─► Code graph verifies structure and impact └─► merged, reviewable result ``` ## 命令 在 TUI 中输入 `/` 以浏览所有命令。核心 workflow 包括: | 命令 | 用途 | |---|---| | `/init` | 为 workspace 设置 `AGENTS.md`。 | | `/review` | 审查未提交的更改、commits、分支或 pull requests。 | | `/codegraph-build` | 构建或刷新 tree-sitter code graph。 | | `/repository-query` | 同时搜索符号、测试、文档、配置和关系。 | | `/repository-explain` | 通过架构切片了解某个符号。 | | `/repository-trace` | 通过图表追踪下游依赖者。 | | `/repository-impact` | 查看变更的影响范围。 | | `/repository-tests` | 查找与符号相关的测试。 | | `/websearch-free` | 使用 researcher agent 搜索网络。 | | `/max-subagents` | 设置 mesh 的并发上限。 | | `/lsp` | 切换内置 language servers。 | | `/yolo` | 为沙盒化的 workflow 启用自动权限批准。 | ## 配置 BanyanCode 是一款独立产品,使用 `banyancode.json` —— 绝不使用 `opencode.json`。 ``` { "banyancode_lsp": true, "banyancode_max_subagents": 10, "agent": { "coder": { "model": "minimax-coding-plan/MiniMax-M3" }, "scout": { "model": "minimax-coding-plan/MiniMax-M3" }, "researcher": { "model": "minimax-coding-plan/MiniMax-M3" } } } ``` | 键 | 默认值 | 用途 | |---|---:|---| | `banyancode_lsp` | `false` | 启用内置 language servers。 | | `banyancode_max_subagents` | `5` | 将并发 subagents 限制在 1 到 20 之间。 | | `banyancode_yolo_mode` | `false` | 自动批准权限。 | | `banyancode_disable_websearch` | `false` | 禁用免费的 researcher agent。 | | `banyancode_codegraph_watch_enabled` | `true` | 随文件变化更新 code graph。 | ## 数据与隐私 项目数据默认保留在本地: ``` .banyancode/ ├── banyancode.db ├── ignore └── trace/ ``` BanyanCode 绝不会读取或写入 OpenCode 的配置或数据。全局 BanyanCode 数据位于 `~/.config/banyancode/` 和 `~/.local/share/banyancode/` 下。 ## 开发 BanyanCode 使用 Bun 和 monorepo workspace。 ``` bun install bun run lint bun typecheck ``` 从 package 目录而不是 repository 根目录运行 package 测试: ``` cd packages/core bun test ``` ## 构建于 - [OpenCode](https://github.com/anomalyco/opencode) —— BanyanCode fork 自此的 TUI / CLI runtime - [Effect](https://effect.website) —— 类型安全的服务架构 - [tree-sitter](https://tree-sitter.github.io) —— 增量解析 - [DuckDuckGo HTML](https://duckduckgo.com/html/) —— 免费网络搜索 - [libSQL](https://turso.tech) —— 嵌入式 SQL 存储 ## 许可证 [MIT](./LICENSE)
标签:AI编程助手, SOC Prime, 人工智能, 多智能体, 开发工具, 暗色界面, 用户模式Hook绕过, 网络调试, 自动化, 自动化攻击