黑曜石研究助手
一个现代的多智能体AI研究助手,通过模型上下文协议(MCP)与Obsidian集成。它能自动进行网络和学术研究,综合研究结果,并在您的Obsidian知识库中创建格式精美的笔记。
🌟 特点
- 多智能体架构5个专业代理协同工作(研究、分析、记忆、撰写、引文管理)
- 多供应商大型语言模型支持在Gemini、GPT和Claude之间无缝切换
- Obsidian 集成通过MCP直接集成 - 读写您的保险库
- 综合研究网络搜索(DuckDuckGo)+ 学术论文(arXiv)
- 语义搜索利用ChromaDB进行现有笔记的语义搜索
- 智能链接自动将新笔记与相关现有笔记建立链接
- 文献管理追踪来源并创建正确的引用
- 漂亮的用户界面现代Streamlit界面,支持实时进度追踪
🏗️ 建筑学
Research Query → Memory Agent → Research Agent → Analysis Agent → Writer Agent → Obsidian Note
↓ ↓ ↓ ↓
(Check Vault) (Web+Academic) (Synthesize) (Format & Write)📋 先决条件
- Python 3.10 或更高版本
- 诗歌(用于依赖管理)
- Docker Desktop(用于Obsidian MCP服务器)
- 至少需要一个大型语言模型(LLM)API密钥(Gemini、OpenAI或Anthropic)
🚀 安装
- 克隆仓库:
cd /home/nima/Desktop/agenticProject- 安装 Poetry (如尚未安装):
curl -sSL https://install.python-poetry.org | python3 -- 安装依赖项:
poetry install- 配置环境变量:
cp .env.example .env
# Edit .env with your API keys
nano .env- 设置Obsidian知识库:
保险库将自动创建在 ./obsidian_vault/ 首次运行时。
🎯 使用方法
Streamlit 用户界面(推荐)
启动网页界面:
poetry run streamlit run src/frontend/app.py然后打开你的浏览器到 http://localhost:8501
命令行界面(CLI)
从命令行运行研究(或:执行研究):
poetry run python src/main.py "Latest developments in quantum computing"使用特定提供商:
poetry run python src/main.py "AI agent architectures" --provider gemini --model gemini-1.5-pro🔧 配置
大型语言模型(LLM)提供商
在……中进行配置 .env:
# Use Gemini (recommended - good balance of cost/performance)
DEFAULT_LLM_PROVIDER=gemini
DEFAULT_MODEL=gemini-1.5-pro
# Use GPT-4
DEFAULT_LLM_PROVIDER=openai
DEFAULT_MODEL=gpt-4-turbo
# Use Claude
DEFAULT_LLM_PROVIDER=anthropic
DEFAULT_MODEL=claude-3-5-sonnet-20241022Obsidian MCP 服务器
该项目包含一个基于Docker的MCP服务器,用于Obsidian操作。设置步骤如下:
- 确保Docker Desktop正在运行
- 启动MCP服务器:
docker-compose up -d- 验证其是否正在运行:
docker-compose ps见 用于详细的Docker配置。
📚 项目结构
obsidian-research-assistant/
├── obsidian_vault/ # Your Obsidian vault
│ └── Research/ # Research notes
├── src/
│ ├── agents/ # Agent implementations
│ │ ├── orchestrator.py # LangGraph workflow
│ │ ├── research_agent.py # Web/academic search
│ │ ├── analysis_agent.py # Content synthesis
│ │ ├── memory_agent.py # Vault context
│ │ ├── writer_agent.py # Note creation
│ │ └── citation_manager.py # Reference handling
│ ├── services/
│ │ ├── llm_service.py # Multi-provider LLM
│ │ ├── search_service.py # DuckDuckGo + arXiv
│ │ └── embedding_service.py # Semantic search
│ ├── mcp/
│ │ └── obsidian_client.py # MCP integration
│ ├── utils/
│ │ ├── markdown_formatter.py
│ │ └── note_templates.py
│ ├── config/
│ │ └── settings.py
│ ├── frontend/
│ │ └── app.py # Streamlit UI
│ └── main.py # CLI entry point
├── tests/
├── pyproject.toml
└── README.md🎨 示例研究查询
- “大型语言模型的最新进展”
- “量子计算在密码学中的应用”
- “多智能体人工智能系统架构”
- “计算机视觉变换器的最新进展”
- “利用深度学习进行蛋白质折叠”
🔍 它的工作原理
- 内存代理在你现有的 Obsidian 笔记中搜索相关上下文
- 研究代理进行网页搜索(使用DuckDuckGo)和学术搜索(使用arXiv)
- 分析代理利用大型语言模型(LLM)综合分析结果并提取见解
- 作家经纪人在 Obsidian 中以 Markdown 格式化内容并创建笔记
- 引文管理器来源链接及相关注释
🛠️ 故障排除
MCP连接问题
- 确保 Docker Desktop 正在运行
- 启动MCP服务器:
docker-compose up -d - 检查服务器状态:
docker-compose ps - 查看日志:
docker-compose logs obsidian-mcp-server - 验证
OBSIDIAN_VAULT_PATH是正确的
API密钥错误
- 请验证您的API密钥是否已正确设置
.env - 请检查您的API密钥是否拥有足够的信用额度
- 如果一个供应商失败了,尝试换一个不同的供应商
ChromaDB 问题
- 删除
chroma_db/文件夹并重启以重建索引 - 确保您在项目目录中具有写入权限
📝 许可证
MIT 许可证 - 欢迎自由使用此项目来丰富您的作品集或用于个人用途。
