LFM MCP编排器
Ollama主持的三个LFM 2.5角色的本地第一编排器:
thinkinginstructjp
当前代码按顺序运行这些阶段,而不是并行运行。它针对本地Ollama设置,可以通过stdio连接到MCP服务器。
状态
这个存储库还处于早期阶段。下面的文档描述了代码中实现的当前行为。
- 已实施:
- CLI入口点 src/main.py - 三阶段编排 src/orchestrator/engine.py - 提示建设者 instruct, thinking,以及 jp - MCP服务器附件和工具目录加载
- 尚未实施:
- 模型并行执行 - 从编排管道调用工具 - 捆绑模型配置或模型文件
文档
- 文档概述:
docs/README.md - 架构和指挥棒流:
docs/architecture.md - MCP集成:
docs/mcp.md - 开发和测试:
docs/development.md - 日语概述:
docs/README_jp.md
仓库的规划
src/
agents/ Prompt builders and payload models for each stage
mcp_runtime/ MCP server config, attachment, and tool registry
orchestrator/ Engine config, orchestration flow, traces, helpers
main.py CLI entry point
tests/
test_orchestrator_engine.py
docs/
README.md
architecture.md
mcp.md
development.md
README_jp.md快速启动
1.要求
- lfm-thinking - lfm-instruct - lfm-jp
从代码推断的当前行为:
- 该项目被描述为针对MacBook Air M4,但代码本身并没有强制执行仅限macOS的行为。
- 如果
OLLAMA_HOST指向本地主机,而Ollama未运行,CLI将尝试启动ollama serve自动。
2.安装依赖项
uv sync3.准备环境
CLI加载本地 .env 如果存在,则自动文件。
最低预期环境:
export OLLAMA_HOST=http://127.0.0.1:11434
export LFM_THINKING_MODEL=lfm-thinking
export LFM_INSTRUCT_MODEL=lfm-instruct
export LFM_JP_MODEL=lfm-jp如果您的本地模型名称不同,请用上面的环境变量覆盖它们。
4.运行编排器
将提示作为参数传递:
uv run python src/main.py "ローカルLLM構成を説明して"从文件读取:
uv run python src/main.py --prompt-file task.txt管道输入:
echo "Explain the current pipeline." | uv run python src/main.py打印痕迹至 stderr:
uv run python src/main.py --trace "Describe the runtime flow."运行时摘要
从代码推断的当前行为:
- CLI加载环境变量,读取提示,构建
EngineConfig,并确保可以联系到Ollama。 - 如果提示包含日文字符,
instruct作为规范化阶段运行,并生成一份简洁的英语任务备忘录。 - 如果提示不包含日文字符,则跳过规范化,并在代码中创建合成任务备忘录。
thinking接收任务备忘录并返回英语推理RESULT:部分。jp接收提取的RESULT:值,并将其重写为最终的日语响应。- 原始阶段输出和累积的接力棒被记录到
stderr.
看 docs/architecture.md 对于全流量。
配置
代码当前使用的环境变量:
| 变量 | 默认值 | 用途 |
|---|---|---|
OLLAMA_HOST | http://127.0.0.1:11434 基础 URL | |
LFM_THINKING_MODEL | lfm-thinking | 的型号名称 thinking 舞台 |
LFM_INSTRUCT_MODEL | lfm-instruct | 的型号名称 instruct 舞台 |
LFM_JP_MODEL | lfm-jp | 的型号名称 jp 舞台 |
LFM_TARGET_LOCALE | ja-JP | 区域设置传递到终结器提示符中 |
LFM_MAX_TOOL_ROUNDS | 4 | 存在于配置中,当前未被运行时使用 |
LFM_REQUEST_TIMEOUT | 180 | Ollama客户端超时(秒) |
OLLAMA_KEEP_ALIVE | 10m | 奥利玛活着的提示 |
LFM_ALLOW_PARTIAL_MCP | true | 允许在MCP服务器部分故障的情况下启动 |
MCP_SERVERS_JSON | 空 | MCP服务器定义的内联JSON列表 |
CLI选项:
--prompt-file PATH--mcp-config PATH--trace
MCP配置
MCP服务器定义可以通过以下任一方式提供:
--mcp-config path/to/servers.jsonMCP_SERVERS_JSON='[...]'
例子:
[
{
"name": "filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"],
"enabled": true,
"tool_prefix": "fs"
}
]重要电流限制:
- MCP注册表已初始化,工具元数据已加载,但中的编排路径
src/orchestrator/engine.py当前不向模型公开工具或执行工具调用。 - 因此,
OrchestrationResult.tools当前始终为空。
细节: docs/mcp.md
故障排除
Ollama is not installed or not on PATH
安装Ollama并确认 ollama 在所使用的外壳中可用 uv run.
Ollama is not reachable
- 检查
OLLAMA_HOST. - 如果主机是远程的,CLI将不会自动启动Ollama。
- 如果主机是本地的,请尝试
ollama serve手动并重新运行。
型号名称错误
存储库当前不提供模型设置脚本或模型文件。确认 ollama list 包含在中配置的名称 LFM_THINKING_MODEL, LFM_INSTRUCT_MODEL,以及 LFM_JP_MODEL.
似乎跳过了快速规范化
从代码推断的当前行为:
- 规范化仅在输入包含正则表达式检测到的日文字符时运行
- 仅英文提示绕过
instruct正常化阶段
MCP服务器启动警告
随着 LFM_ALLOW_PARTIAL_MCP=true,失败的MCP附件被记录为警告,启动继续。使用 --trace 检查序列化结果中的警告。
发展
此存储库中所需的验证命令:
python3 -m py_compile src/main.py src/orchestrator/engine.py src/agents/*.py src/agents/__init__.py当前存在的单元测试:
python3 -m unittest tests/test_orchestrator_engine.py更多详情: docs/development.md
