llm通信mcp
本地AI助手由 奥拉玛 和 主控程序,配备Telegram机器人前端。
运作原理
Telegram user
│
▼
bot.py ← Telegram bot (python-telegram-bot)
│
▼
client.py
│
├──► Tooling Agent (llama3.1:8b)
│ decides if web search is needed
│ calls web_search tool via MCP if required
│ │
│ ▼
│ server.py ← MCP server exposing web_search (DuckDuckGo)
│
└──► Chat Agent (llama3.2:3b)
synthesises the final answer from search results (if any)
or answers directly from its own knowledge管道使用 两个独立的Olama模型:
| 代理 | 默认模型 | 角色 |
|---|---|---|
| 工装代理 | llama3.1:8b | 决定是否搜索网络;执行工具调用 |
| 聊天代理 | llama3.2:3b | 产生最终的对话答案 |
流量:
- 用户向Telegram机器人(或CLI)发送消息。
- 这 工装代理 接收查询并决定是否需要网络搜索。
- 如果是,它会呼叫 web_search 在MCP服务器上(由DuckDuckGo支持)并收集结果。 - 如果没有(问候语、数学、编码问题、稳定的事实等),它将跳过搜索。
- 这 聊天代理 根据搜索结果(如果有的话)或自身知识合成一个干净的答案。
- 答案将返回给Telegram用户(或打印到终端)。
______________________________________________________________________
需求
______________________________________________________________________
设置
1.克隆并安装依赖项
git clone
cd llm-communicate-mcp
uv sync2.拉动Olama车型
ollama pull llama3.1:8b # tooling agent
ollama pull llama3.2:3b # chat agent3.配置环境变量
cp .env.example .env编辑 .env 并填写您的值:
| 变量 | 默认值 | 描述 |
|---|---|---|
TELEGRAM_BOT_TOKEN | *(bot需要)* | 令牌来自 @植物学家 |
OLLAMA_HOST | http://localhost:11434 | Ollama实例的URL |
OLLAMA_TOOLING_MODEL | llama3.1:8b | 路由和工具调用模型(需要函数调用支持) |
OLLAMA_CHAT_MODEL | llama3.2:3b | 最终会话答案模型 |
______________________________________________________________________
用法
运行Telegram机器人
uv run python src/bot.py在Telegram上向你的机器人发送任何消息,它都会用人工智能生成的答案进行回复,只在必要时搜索网络。
从终端运行(无需电报)
uv run python src/client.py "Who won the 2025 Super Bowl?"
uv run python src/client.py "What is 2 + 2?"
uv run python src/client.py "How does TCP work?"______________________________________________________________________
项目结构
.
├── src/
│ ├── server.py # MCP server — exposes web_search tool via DuckDuckGo
│ ├── client.py # MCP client — two-LLM orchestration (tooling + chat)
│ └── bot.py # Telegram bot — routes messages through the client
├── .env # Your local config (gitignored)
├── .env.example # Template — copy this to .env
├── pyproject.toml
└── README.md______________________________________________________________________
依赖项
| 包装 | 用途 |
|---|---|
mcp | 模型上下文协议客户端/服务器 |
ollama | Ollama的Python客户端 |
ddgs | DuckDuckGo搜索 |
python-telegram-bot | Telegram机器人框架 |
python-dotenv | 负载 .env 文件 |
