ソース情報
- リポジトリ
- phuhao00/bony-agent
- ソースの最終更新活動
- 2026年6月17日 09:03
- 検出された SKILL.md の言語
- 中国語
- スター
- 14
- フォーク
- 3
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
メニュー
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
直接コマンドでは確認用 Prompt が省略されます。実行前にソースを確認してください。
npx skills add https://github.com/phuhao00/bony-agent --skill rag-expertコマンドは1行のまま表示されます。コピー前に横へスクロールして全体を確認してください。
ローカルで確認しますか?SkillsMP が現在取得できるファイルをダウンロードできます。
SOC 職業分類に基づく
SKILL.md を表示中
| name | rag-expert |
| description | 知识库管理专家。负责文档上传、向量化索引、语义检索、知识库维护等 RAG 全链路操作。 |
| license | MIT |
| metadata | {"category":"Knowledge","version":"2.0.0"} |
| allowed-tools | ["search_knowledge_base","upload_knowledge","delete_document","clear_knowledge","query_knowledge","get_knowledge_status"] |
你是私有知识库的全链路管理专家,基于 LlamaIndex + ZhiPu AI 实现 RAG(检索增强生成)。
用户 → Next.js 前端 → FastAPI 后端 → RAGManager → ZhiPu AI
↓
LlamaIndex VectorStoreIndex
↓
storage/rag/ (持久化索引)
storage/knowledge/ (源文件)
| 组件 | 技术 | 说明 |
|---|---|---|
| 向量索引 | LlamaIndex VectorStoreIndex | 文档分块(512 tokens)、向量存储、余弦相似度检索 |
| LLM | ZhiPu glm-4-plus | 基于检索结果生成答案 (temperature=0.1) |
| Embedding | ZhiPu embedding-2 | 文本转向量 |
| Core | RAGManager 单例 | 管理索引、文档CRUD、查询 |
| 文件 | 路径 | 职责 |
|---|---|---|
| RAG 引擎 | backend/utils/rag_manager.py | RAGManager 类:索引管理、文档CRUD、查询 |
| Agent 工具 | backend/tools/rag_tools.py | search_knowledge_base LangChain Tool |
| 后端 API | backend/main.py (L787-942) | 6 个 /knowledge/* FastAPI 端点 |
| 前端页面 | web/app/knowledge/page.tsx | 上传/查询/管理 UI |
| 前端代理 | web/app/api/knowledge/*/route.ts | 6 个 Next.js Route Handler 代理 |
| 方法 | 路径 | 功能 |
|---|---|---|
POST | /knowledge/upload | 上传文档到知识库 |
GET | /knowledge/documents | 列出所有已导入文档 |
DELETE | /knowledge/documents/{doc_id} | 删除指定文档(触发索引重建) |
POST | /knowledge/query | 语义查询知识库 |
GET | /knowledge/status | 获取知识库状态 |
DELETE | /knowledge/clear | 清空整个知识库 |
.txt .md .pdf .docx .doc .json .csv(最大 20MB)
当用户提问涉及已上传文档内容时:
from tools.rag_tools import search_knowledge_base
result = search_knowledge_base("用户的问题")
# 返回: 答案文本 + 参考来源(前3条)
from utils.rag_manager import get_rag_manager, save_knowledge_file
rag = get_rag_manager()
# 上传文档
filepath = save_knowledge_file(content_bytes, "report.pdf")
result = rag.ingest_documents([filepath])
# result: {"success": True, "documents": [{"id": "uuid", "filename": "report.pdf", "size": 10240}]}
# 查询
result = rag.query("如何配置系统?", top_k=3)
# result: {"success": True, "answer": "...", "sources": [{"text": "...", "score": 0.92, "metadata": {...}}]}
# 获取文档列表
docs = rag.get_documents_info()
# 删除文档(会重建索引)
rag.delete_document("doc-uuid")
# 获取状态
status = rag.get_status()
# status: {"initialized": True, "document_count": 5, "total_file_size_human": "2.3 MB", ...}
# 清空
rag.clear_all()
# 上传
curl -X POST http://localhost:8000/knowledge/upload -F "file=@report.pdf"
# 查询
curl -X POST http://localhost:8000/knowledge/query \
-H "Content-Type: application/json" \
-d '{"query": "你的问题", "top_k": 3}'
# 列出文档
curl http://localhost:8000/knowledge/documents
# 删除文档
curl -X DELETE http://localhost:8000/knowledge/documents/{doc_id}
# 查看状态
curl http://localhost:8000/knowledge/status
# 清空
curl -X DELETE http://localhost:8000/knowledge/clear
save_knowledge_file() 保存到 storage/knowledge/(文件名加时间戳防重名)SimpleDirectoryReader 解析文档内容Settings.chunk_size=512 分块 → embedding-2 向量化VectorStoreIndex.insert() 插入索引storage/rag/ + 保存元数据至 documents_meta.jsonembedding-2 转向量VectorStoreIndex 余弦相似度检索 Top-K 文本块GLM-4-Plus 生成答案{answer, sources[{text, score, metadata}]}documents_meta 移除记录storage/knowledge/ 中的源文件storage/
├── knowledge/ # 源文件目录
│ ├── report_20260209_123456.pdf
│ └── guide_20260210_091011.md
├── rag/ # LlamaIndex 持久化
│ ├── documents_meta.json # 自定义文档元数据
│ ├── docstore.json # LlamaIndex 文档存储
│ ├── index_store.json # 索引元信息
│ └── default__vector_store.json # 向量数据
└── uploads/ # 通用上传临时目录
search_knowledge_base 工具已注册到以下 Agent 的工具列表中:
backend/agents/bot.py — 基础 Agentbackend/agents/planning_bot.py — 规划 Agentbackend/core/prompts/agent_prompts.py — System Prompt 中描述工具用途ZHIPUAI_API_KEY:否则 RAGManager 初始化失败rag_manager.py 在导入时将 glm-4-plus 注册到 LlamaIndex 的模型列表中,绕过 OpenAI 模型名校验RAGManager 实例,首次调用时惰性初始化storage/ 目录下,不使用系统 /tmp