用C#实现AIAgent——LuBan Agent
想象一下:你只需说一句"帮我查一下D盘下面有哪些目录",AI 就能自动调用文件系统工具,列出所有目录。再说一句"帮我打开百度并搜索 LuBan Framework",AI 就会自动启动浏览器,完成搜索。
这不是科幻,这就是 LuBan Agent。
- 😫 想让 LLM 调用工具完成任务,但 MCP / Function Calling 的实现细节令人头疼?
- 😤 Skill 管理、工具注册、会话持久化各自需要单独实现,维护成本高?
- 😖 模型 Provider 切换困难——从 Provider A 换到 Provider B 需要重写大量代码?
- 😩 缺少中间件机制——日志、策略控制、权限拦截难以扩展?
LuBan Agent 为你提供完整的 AI Agent 基础设施,从 Agent 运行时、多模型路由、技能系统、工具系统、会话存储到中间件管道——开箱即用。
- 16 种 AI Provider 支持:OpenAI、Azure、DeepSeek、Kimi、GLM、通义千问、豆包、Claude、Gemini、Ollama、MiniMax、字节方舟、阿里百炼、腾讯混元、小米 MiMo,以及自定义 OpenAI 兼容 API
- 多地址支持:部分 Provider 提供多个 API 地址(如 Kimi 有国内通用、海外直连、编程专属三个地址),添加时可灵活选择
- 统一
provider:model格式:一键切换模型,无需修改代码 - 动态路由:LuBanChatClient 根据前缀自动分发到对应 Provider
| 工具组 | 能力 |
|---|---|
| 🌐 浏览器工具 | 导航、点击、输入、截图、获取内容(基于 Playwright) |
| 📁 文件系统工具 | 读取、写入、列出目录,支持安全路径限制 |
| 🔧 脚本执行工具 | 执行 Shell、Lua、Python 脚本 |
| 🗄️ 数据库工具 | 通过 sqlcmd 执行 SQL 语句 |
| 🔴 Redis 工具 | 通过 redis-cli 执行 Redis 命令 |
| 🌍 Web 工具 | 发送 HTTP 请求获取网页内容 |
| 🔍 语义检索工具 | 索引本地代码/文档,按语义搜索相关片段 |
内置九大核心技能,即插即用:
- 头脑风暴:实现功能前探索需求和设计
- 代码审查:审查代码、发现问题、提供改进建议
- 文档生成:生成代码注释、README、API 文档
- 代码重构:重构代码,提升代码质量
- 测试生成:自动生成单元测试
- 代码解释:解释复杂代码逻辑
- 调试助手:辅助调试问题
- Git 提交:生成规范的 Git 提交信息
- 技能发现:自动发现和推荐合适的技能
对话内激活 Skill:在 /agi 或 /browse 对话中输入 /skill -switch,选择 Skill 后,后续输入自动携带 Skill 指令,输入 /skill -off 取消。
文件化 Skill:支持通过 SKILL.md 文件定义自定义 Skill,兼容 OpenCode 格式,放置于项目级或用户级目录即可自动加载。
- 路径访问规则:限制文件系统访问范围,防止越权操作
- 危险操作确认:写入、删除、执行脚本前自动要求用户确认
- 自定义规则:支持通配符匹配,灵活控制工具行为
- 对话历史自动保存到 SQLite 数据库
- 支持长对话压缩(SummarizingChatReducer),上下文永不丢失
- 会话统计、Token 计数一目了然
- 内置文件系统 MCP 客户端
- 支持外部 MCP 服务器热加载
- 标准 JSON-RPC 协议,无缝对接生态
- 复合任务自动拆解:主 Agent 识别复杂任务后自动拆解为 DAG 任务图谱
- 串行/并行混合编排:基于拓扑分层,同层节点并行执行,跨层串行执行
- SubAgent 调度:每个 DAG 节点由独立 SubAgent 执行,支持工具组隔离
- 上下文传递:节点间通过
{dep:xxx}占位符引用前驱输出 - 错误处理:关键节点失败跳过后继,非关键节点失败继续执行
- 无感集成:在
/agi对话中自动触发,无需手动切换命令
- 工作区隔离:每个工作区拥有独立的根目录、会话历史和配置目录
- 工作区配置目录:每个工作区根目录下自动创建
.luban-agent/,可放置自定义skills、rules、mcps配置 - RAG 知识库:特殊工作区类型,支持文件索引与语义检索,自动检索增强问答
- 向量存储隔离:不同工作区的索引数据完全隔离,互不串读
- 路径授权管理:工作区授权与 PathGuard 集成,仅授权的工作区根目录可访问
- 默认配置生成:RAG 工作区创建时自动生成
rag-config.json默认配置
# 安装与 Microsoft.Playwright 1.61.0 匹配的浏览器版本
npx playwright@1.61.0 install chromium
注意:浏览器版本必须与 Microsoft.Playwright 包版本匹配,当前项目使用的是 1.61.0。
# 克隆仓库
git clone https://github.com/yswenli/luban-framework.git
cd luban-framework/luban-agent
# 运行程序
dotnet run
如果想从任意目录直接调用 luban-agent-cli 命令,可将其安装为 .NET 全局工具:
# 打包
dotnet pack -c Release -o ./artifacts
# 全局安装
dotnet tool install -g LuBan.Agent.CLI --add-source ./artifacts
安装完成后,即可在任意目录通过 luban-agent-cli 命令启动。配置文件(appsettings.json)始终优先从程序所在目录加载,当前工作目录下的 appsettings.json 可作为覆盖项。
更新:重新
dotnet pack后执行dotnet tool update -g LuBan.Agent.CLI --add-source ./artifacts卸载:dotnet tool uninstall -g LuBan.Agent.CLI
> /provider -add
选择 Provider 类型:
1. OpenAI
2. Azure OpenAI
3. DeepSeek
4. Kimi (Moonshot)
5. 智谱 GLM
6. 通义千问
7. 豆包
8. Claude
9. Google Gemini
10. Ollama (本地)
11. MiniMax
12. 字节方舟 (火山引擎)
13. 阿里百炼
14. 腾讯混元
15. 小米 MiMo
16. 自定义 OpenAI 兼容 API
请选择 (1-16): 4
请输入 Kimi API Key: ********
Kimi API 地址选择:
1. 国内通用 (https://api.moonshot.cn/v1) - 推荐
2. 海外直连 (https://api.moonshot.ai/v1)
3. 编程专属 (https://api.kimi.com/coding/v1)
请选择 (1-3): 1
✓ Provider 'Kimi' 已添加并保存
支持的模型: k3, k3-256k, kimi-for-coding, kimi-for-coding-highspeed
安全提示:API Key 输入时会隐藏显示(密码输入模式)
> /model -switch
已配置的 Provider:
1. OpenAI
请选择 Provider 编号: 1
OpenAI 支持的模型:
1. gpt-4.1
2. gpt-4.1-mini
3. gpt-4.1-nano
4. gpt-4o
...
请选择模型编号: 4
✓ 已选择模型: openai:gpt-4o
> /agi
你: 帮我查一下D盘下面有哪些目录
⠋ 正在调用工具: ListDirectoryAsync
⠙ 正在思考...
⠹ 正在生成回答...
[调用工具]: list_directory
参数 path: D:\
[工具结果]: Program Files, Users, Windows, ...
🤖 D盘下有以下目录:
1. Program Files
2. Users
3. Windows
...
实时状态显示:在执行 AI 对话时,会显示动态旋转动画和实时状态:
- 正在思考...
- 正在调用工具: {工具名}
- 工具执行完成,正在生成回答...
- 生成回答完成
LuBan Agent 提供了简洁而强大的命令系统:
除交互式菜单外,还支持通过命令行参数直接执行命令,执行完毕后自动退出,不进入交互菜单。这在脚本化调用、从任意目录快速执行单次任务时非常实用。
# 语法:luban-agent-cli /<命令> [子命令参数...]
# 首个参数为命令(以 / 开头),其余为子命令参数
# 从任意目录创建新会话
luban-agent-cli /se -n 新会话
# 从任意目录切换会话
luban-agent-cli /se -s 新会话
# 列出所有会话
luban-agent-cli /se -l
# 列出已配置的 Provider
luban-agent-cli /p -l
说明:
- 首个参数必须以
/开头(如/se、/p),否则进入交互式菜单- 子命令支持简写(
-l=-list、-s=-switch、-n=-new等),与交互模式完全一致- 数据库与会话配置始终保存在程序所在目录,不会污染当前工作目录
- Tab 自动完成 - 输入部分命令后按 Tab 自动补全
- 上/下箭头 - 浏览历史命令
- Esc 键 - 清除当前输入
- 命令前缀 - 所有命令以
/开头 - 数字快捷键 - 支持数字 1-12 快速选择命令
| 命令 | 简写 | 数字键 | 说明 |
|---|---|---|---|
/provider |
/p |
1 |
管理 AI Provider (-list/-add/-update/-delete/-switch) |
/model |
/m |
2 |
管理模型 (-list/-add/-update/-delete/-switch) |
/skill |
/sk |
3 |
查看和执行 Skill (-list/-add/-update/-delete/-switch) |
/rule |
/r |
4 |
查看和管理规则 (-list/-add/-update/-delete/-switch) |
/mcp |
/mp |
5 |
查看 MCP 客户端 (-list/-add/-update/-delete/-switch/-connect/-tools) |
/session |
/se |
6 |
管理对话会话 (-list/-new/-clear/-switch) |
/agi |
/a |
7 |
通用 Agent 对话(支持自动编排复合任务) |
/browse |
/b |
8 |
针对网站操作特异化 Agent |
/stats |
/st |
9 |
会话与 Token 统计 (-days N, --all 跨工作区) |
/work |
/w |
10 |
工作区管理 (-list/-new/-switch/-delete/-info/-authorize) |
/rag |
/rg |
11 |
知识库管理 (-new/-index/-search/-list/-delete) |
/exit |
- | 12 |
退出程序 |
| 简写 | 完整命令 | 适用场景 |
|---|---|---|
-l |
-list |
所有管理命令 |
-a |
-add |
所有管理命令(注:/work 中 -add 为 -authorize 别名) |
-u |
-update |
Provider/Model/Skill/Rule/MCP |
-d |
-delete |
Provider/Model/Skill/Rule/MCP/Work/Rag |
-d |
-days |
Stats(统计天数) |
-s |
-switch |
所有管理命令 |
-n |
-new |
Session/Work/Rag |
-c |
-clear |
Session |
-c |
-connect |
MCP |
-t |
-tools |
MCP |
-i |
-index |
Rag(索引文件) |
-info |
-info |
Work(工作区信息) |
-add |
-authorize |
Work(授权工作区) |
示例:
/p -l=/provider -list/st -d 7=/stats -days 7/st --all= 跨所有工作区统计/mp -c filesystem=/mcp -connect filesystem/work -n D:\MyProject= 创建工作区/rag -i *.md= 索引当前 RAG 工作区的 Markdown 文件
你: 帮我列出 src 目录下所有 .cs 文件并统计代码行数
[调用工具]: list_directory
参数 path: src
[调用工具]: read_file
参数 path: src\Program.cs
...
🤖 src 目录下共有 15 个 .cs 文件,总计 3,456 行代码:
- Program.cs: 112 行
- Services\ConsoleAppService.cs: 344 行
...
你: 帮我打开百度并搜索 "LuBan Framework"
[调用工具]: NavigateAsync
参数 url: https://www.baidu.com
[调用工具]: TypeTextAsync
参数 selector: #kw, text: LuBan Framework
[调用工具]: ClickAsync
参数 selector: #su
🤖 已完成搜索,当前页面标题: LuBan Framework_百度搜索
> /skill code-review
请输入内容: public void Test() { var x = 1/0; }
执行 Skill: 代码审查
📋 代码分析:
发现潜在问题:
1. ⚠️ 第 1 行存在除以零的错误
2. 💡 建议添加异常处理机制
改进建议:
...
你: 帮我查询用户表中最近的10条记录
[调用工具]: run_sql
参数 sql: SELECT * FROM users ORDER BY created_at DESC LIMIT 10
[工具结果]: ...
🤖 查询结果如下:
...
在 /agi 对话中,AI 会自动识别复合任务并启用 DAG 编排:
> /agi
👶 调研 LuBan-Framework 和 Luban-Agent 两个项目,对比它们的优缺点,生成一份对比报告
💭 思考过程:
这是一个复合任务,需要拆解为多个子任务并行执行...
🔄 开始规划任务图谱...
✓ 规划完成: 已生成 4 个节点的任务图谱
▶ 开始执行节点: research-luban
[SubAgent] 调用 web_search 搜索 LuBan 框架特性...
✓ 节点完成: research-luban
▶ 开始执行节点: research-langchain
[SubAgent] 调用 web_search 搜索 LangChain 框架特性...
✓ 节点完成: research-langchain
── 第 1 层执行完成(并行) ──
▶ 开始执行节点: compare
[SubAgent] 基于前驱结果进行对比分析...
✓ 节点完成: compare
── 第 2 层执行完成 ──
▶ 开始执行节点: report
[SubAgent] 生成对比报告...
✓ 节点完成: report
── 第 3 层执行完成 ──
🎯 编排完成
🤖 对比报告已生成:
## LuBan vs LangChain 对比
### 架构设计
- **LuBan**: 基于 .NET 生态,深度集成 Microsoft.Extensions.AI...
- **LangChain**: Python 生态,社区活跃...
### 工具集成
...
### 推荐场景
...
编排说明:
- 输入复合任务后,AI 自动判断是否需要拆解
- 每个节点由独立 SubAgent 执行,支持工具组隔离
- 同层节点并行执行(如同时调研两个框架),跨层节点串行执行
- 节点间通过
{dep:xxx}占位符传递上下文 - 流式输出执行进度,实时显示节点状态
- 无需手动切换命令,在
/agi对话中自然触发
# 创建工作区
> /work -new D:\MyProject
✓ 已创建工作区: MyProject - D:\MyProject
# 列出所有工作区
> /work -list
┌──────────┬──────┬──────────────┬──────┬────────────┬──────┐
│ 名称 │ 类型 │ 根目录 │ 会话 │ 最后活跃 │ 授权 │
├──────────┼──────┼──────────────┼──────┼────────────┼──────┤
│ * MyProject │ 普通 │ D:\MyProject │ 3 │ 2026-07-31 │ ✓ │
│ Docs │ RAG │ D:\Docs │ 0 │ - │ ✗ │
└──────────┴──────┴──────────────┴──────┴────────────┴──────┘
# 切换工作区
> /work -switch MyProject
✓ 已切换到工作区: MyProject
根目录: D:\MyProject
输入 /agi 开始工作
# 授权工作区访问
> /work -authorize
═══ 工作区授权确认 ═══
工作区: MyProject
根目录: D:\MyProject
⚠️ AI Agent 将被授权访问此目录及其子目录
是否授权?(y/N): y
✓ 已授权工作区
工作区说明:
- 启动时自动以当前目录创建或恢复工作区
- 每个工作区拥有独立的会话历史与配置目录(
.luban-agent/) - 切换工作区时自动恢复该工作区的最近会话
- 工作区授权后,AI Agent 可访问根目录及其子目录
# 1. 创建 RAG 知识库
> /rag -new D:\KnowledgeBase 我的知识库
✓ 已创建 RAG 知识库: 我的知识库 - D:\KnowledgeBase
# 2. 切换到 RAG 工作区
> /work -switch 我的知识库
✓ 已切换到工作区: 我的知识库
# 3. 授权并索引文件
> /rag -index *.md
开始索引工作区: 我的知识库
✓ 索引完成
扫描文件: 25
新增文件: 25
总切块数: 142
# 4. 检索测试
> /rag -search 如何配置工作区
找到 3 条相关结果:
文件: D:\KnowledgeBase\setup.md
内容: 工作区配置需要...
# 5. 直接问答(自动检索增强)
> /agi
模式: 知识库问答(自动检索增强)
👶 如何创建工作区?
🤖 根据知识库文档,创建工作区使用 /work -new 命令...
RAG 知识库说明:
- RAG 工作区是特殊工作区,专注于文件管理与知识问答
- 默认支持
.txt和.md文件索引 - 索引后通过
/agi对话时自动检索相关文档并注入上下文 - 不同 RAG 工作区的向量数据完全隔离
- 工作区根目录下自动生成
.luban-agent/rag-config.json配置文件
LubanAgent/
├── Commands/ # 命令实现
│ ├── ProviderCommand.cs # Provider 管理
│ ├── ModelCommand.cs # 模型管理
│ ├── SkillCommand.cs # Skill 管理
│ ├── RuleCommand.cs # 规则管理
│ ├── MCPCommand.cs # MCP 客户端管理
│ ├── SessionCommand.cs # 会话管理
│ ├── AgiCommand.cs # 通用 Agent 对话(支持自动编排)
│ ├── BrowseCommand.cs # 浏览器 Agent
│ ├── StatsCommand.cs # 统计信息
│ ├── WorkCommand.cs # 工作区管理
│ └── RagCommand.cs # RAG 知识库管理
├── Services/ # 核心服务
│ ├── ConsoleAppService.cs # 命令分发与交互
│ ├── SessionManager.cs # 会话持久化
│ ├── WorkspaceManager.cs # 工作区管理与授权
│ ├── AgentProfile.cs # Agent 配置基类
│ ├── NormalAgentProfile.cs # 普通工作区配置
│ └── RagAgentProfile.cs # RAG 工作区配置
├── Repositories/ # 数据访问层
│ ├── SessionRepository.cs # 会话存储
│ ├── WorkspaceRepository.cs # 工作区存储
│ └── RagRepository.cs # RAG 数据存储
├── Retrieval/ # 语义检索
│ ├── ModelManager.cs # 嵌入模型管理
│ ├── OnnxEmbeddingGenerator.cs # ONNX 嵌入生成器
│ └── SqliteVectorStore.cs # SQLite 向量存储(工作区隔离)
├── Infrastructure/ # 基础设施
│ └── DatabaseInitializer.cs # 数据库初始化
├── Entities/ # 数据实体
├── Model/ # AI 模型文件
└── Program.cs # 程序入口
{
"LuBanAgent": {
"DefaultModel": "openai:gpt-4o",
"SystemPrompt": "你是一个智能助手。",
"MaxToolLoopIterations": 10,
"Session": {
"CompactTargetMessages": 50,
"CompactThreshold": 10
},
"Tools": {
"Browser": {
"Enabled": true,
"Headless": false,
"Timeout": 30000
},
"FileSystem": {
"Enabled": true,
"AllowedRoots": ["C:\\Work"]
},
"Script": {
"Enabled": true,
"Shell": "cmd",
"DefaultTimeout": 30000
},
"Database": {
"Enabled": true,
"ConnectionString": "Server=..."
},
"Redis": {
"Enabled": true
},
"Web": {
"Enabled": true
},
"Retrieval": {
"Enabled": true,
"ModelId": "bge-small-zh-v1.5",
"AutoDownload": true,
"MaxFileSizeKB": 5120,
"DefaultTopK": 5
}
},
"Orchestration": {
"Enabled": true,
"PlannerType": "Composite",
"ExposeAsTool": true,
"MaxParallelism": 3,
"MaxNodes": 20,
"DefaultNodeTimeoutSeconds": 120
}
}
}
用户配置(Provider、自定义 Skill、规则等)自动保存在本地,重启后自动加载。
对于危险操作(写入文件、执行脚本、删除数据等),系统会在执行前请求用户确认:
你: 帮我写一个文件到 C:\temp\test.txt
⚠️ 危险操作请求: WriteFileAsync
参数:
path: C:\temp\test.txt
content: 文件内容...
是否执行此操作?(y/N): y
✓ 已确认执行
[调用工具]: WriteFileAsync
[工具结果]: 已写入文件 C:\temp\test.txt
🤖 已成功写入文件...
需要确认的操作包括:
- 📝 文件系统: 写入文件、删除文件、创建/删除目录
- 🔧 脚本执行: 执行 Shell、Lua、Python 脚本
- 🗄️ 数据库: INSERT、UPDATE、DELETE 操作
- 🔴 Redis: SET、DELETE、FLUSHDB 操作
# 创建新会话
> /session -new 项目讨论
# 列出所有会话
> /session -list
# 切换会话
> /session -switch 项目讨论
# 清除所有会话(需确认)
> /session -clear
# 查看统计
> /stats -days 7
会话自动保存:
- 在
/agi对话中,对话历史自动保存到 SQLite 数据库 - 数据库位置:
%LocalAppData%\LuBan\AIAgent\ai_sessions.db - 用户消息和 AI 回复都会自动保存
- Token 数量自动统计
LuBan Agent 支持两种自定义 Skill 方式:
在项目级或用户级目录创建 SKILL.md 文件,兼容 OpenCode 格式:
存储位置(按优先级):
项目级: <workspace>/.luban-agent/skills/<skill-id>/SKILL.md
用户级: %LocalAppData%/LuBan/AIAgent/skills/<skill-id>/SKILL.md
SKILL.md 格式:
---
name: my-translator
description: "将文本翻译成英文"
category: custom
---
# 翻译助手
请将用户提供的内容翻译成英文。
## 要求
- 保持原文的语气和风格
- 使用地道的英文表达
- 如有专业术语,保留原文并括号注释
使用方式:
# 在 /agi 对话中激活 Skill
> /skill -switch
可用 Skills:
# 类别 名称 描述 来源
1 custom 翻译助手 将文本翻译成英文 文件
请选择编号 (1-1), 或 0 取消: 1
✓ 已激活 Skill: 翻译助手
💡 后续输入将自动携带 Skill 指令,输入 /skill -off 取消
# 后续输入自动走 Skill 模式
👶 你好,世界
🤖 Hello, World
# 取消激活
> /skill -off
✓ 已取消 Skill
优先级:项目级 > 用户级 > 内置 > config.json
# 添加自定义 Skill
> /skill -add
请输入 Skill ID: my-translator
请输入 Skill 名称: 翻译助手
请输入 Skill 描述: 将文本翻译成英文
请输入分类: custom
请输入提示词模板(多行输入,单独一行 '.' 结束):
请将以下内容翻译成英文:
{input}
.
请输入示例(可选,逗号分隔): 你好,世界
✓ 自定义 Skill '翻译助手' (my-translator) 已添加
# 添加路径保护规则
> /rule -add
请输入规则 ID: protect-system
请输入规则名称: 保护系统目录
请输入 ActionTypePattern (默认 *): file-write
请输入 TargetPattern (默认 *): C:\Windows\*
请输入 Action (allow/deny): deny
请输入优先级 (默认 100): 100
✓ 自定义规则 '保护系统目录' (protect-system) 已添加
# 添加外部 MCP 服务器
> /mcp -add
请输入服务器名称: github
请输入描述: GitHub 集成
请输入启动命令 (如 npx): npx
请输入命令参数 (空格分隔,可选): -y @modelcontextprotocol/server-github
✓ 外部 MCP 服务器 'github' 已添加
使用 /mcp connect github 连接
# 连接 MCP 服务器
> /mcp -connect github
正在连接 github...
✓ 连接成功
# 查看可用工具
> /mcp -tools github
github 可用的工具:
- create_issue: 创建 GitHub Issue
- search_repositories: 搜索仓库
...
| 组件 | 说明 |
|---|---|
| Microsoft.Agents.AI.Foundry | Agent 运行时框架 |
| Microsoft.Extensions.AI | 统一聊天客户端抽象 |
| Microsoft.Playwright | 浏览器自动化引擎 |
| LuBan.DI | 依赖注入集成 |
| LuBan.Common | 基础接口与工具定义 |
| Microsoft.ML.OnnxRuntime | ONNX 模型推理(语义检索) |
| SQLite | 会话与向量数据存储 |
- 💬 模型路由使用
provider:model格式,新增 Provider 只需通过/provider -add添加 - 🌐 多地址支持:部分 Provider(如 Kimi、MiniMax)提供多个 API 地址,添加时可选择最适合的地址
- 📌 支持直接命令行执行:
luban-agent-cli /se -s 新会话即可从任意目录执行单次命令并退出,无需进入交互菜单(详见命令一览) - 🛠️ 7 大内置工具组覆盖浏览器自动化、文件操作、脚本执行、数据库、Redis、Web 请求、语义检索
- ⚠️ ToolConfirmationService 对写入、删除、执行等危险操作自动要求用户确认
- 🔒 FileSystemToolOptions.AllowedRoots 限制文件访问范围,防止 Agent 越权操作
- 💾 会话历史自动持久化,支持长对话压缩(SummarizingChatReducer),上下文永不丢失
- 🎨 自定义 Skill/Rule/MCP 持久化,配置保存到本地文件,重启后自动加载
- 🎯 对话内 Skill 切换:
/skill -switch选择 Skill 后,后续输入自动携带 Skill 指令,/skill -off取消 - 📄 文件化 Skill:支持 SKILL.md 文件定义 Skill,兼容 OpenCode 格式,项目级/用户级目录自动加载
- 🛡️ 规则拦截在工具执行前自动检查,支持 deny/allow/modify
- 🔌 MCP 工具集成,外部 MCP 服务器工具自动暴露给 Agent
- 📦 通过
ExternalPlugins配置可热加载外部工具插件程序集 - 🔗 结合 LuBan.AIFlow 可对接 RagFlow / Dify / Coze 等 AI 平台
- 🧩 多 Agent 编排:
/agi对话中 AI 自动识别复合任务,拆解为 DAG 并由 SubAgent 串行/并行混合执行,支持关键节点失败跳过、超时控制、上下文传递 - 📂 工作区隔离:
/work命令管理工作区,每个工作区有独立的会话历史与配置目录,切换工作区自动恢复最近会话 - 🔍 RAG 知识库:
/rag命令创建知识库工作区,索引.txt/.md文件后通过/agi自动检索增强问答,不同工作区向量数据完全隔离 - 📁 工作区配置目录:每个工作区根目录下自动创建
.luban-agent/,可放置自定义skills、rules、mcps配置,RAG 工作区还会生成默认rag-config.json
- LuBan.Framework - LuBan 框架核心
- LuBan.DI - 依赖注入容器
- LuBan.AIFlow - AI 工作流引擎
- LuBan.Web.Core - Web 核心组件
MIT License
yswenli
- 📧 Email: yswenli@outlook.com
- 🐙 GitHub: @yswenli

浙公网安备 33010602011771号