该项目实现了一个基于人工智能的工作流编排器作为 MCP(模型上下文协议)服务器。它旨在通过利用大型语言模型(LLM)进行智能决策和适应性来管理和执行复杂的动态工作流。
编排器将复杂任务分解为在工作流中定义的可管理的离散步骤。一个AI代理(LLM)根据以下内容动态确定这些步骤的顺序:
关键概念包括:
系统采用模块化架构:
graph LR
客户端 --> A["API 层(FastMCP)"];
A --> B[编排引擎];
B --> C[工作流定义服务];
B --> D[状态持久化模块];
B --> E[AI交互模块];
C --> F[(工作流文件 *.md)];
D --> G[(SQLite 数据库)];
E --> H[(外部LLM服务)];
workflow_state.db)。(详情参见docs/architecture_and_data_model.md#2-high-level-architecture)
工作流定义在指定的MCP服务器设置中的WORKFLOW_DEFINITIONS_DIR目录下的子目录中。每个工作流包含:
index.md:定义总体目标并列出步骤。steps/:包含每个步骤的单独Markdown文件的目录,包括# 编排指导和# 客户端指令。可用的工作流:
(详情参见docs/architecture_and_data_model.md#8-workflow-definition-service-details)
此服务器提供以下MCP工具:
list_workflows:列出可用的工作流定义。start_workflow:按名称启动工作流,可选带有初始上下文。
{ "workflow_name": "string", "context": {} }get_workflow_status:获取正在运行的工作流实例的当前状态。
{ "instance_id": "string" }advance_workflow:报告上一步的结果并请求下一步。
{ "instance_id": "string", "report": { "step_id": "string", "result": any, "status": "string", ... }, "context_updates": {} }resume_workflow:重新连接到现有工作流实例,提供客户端假设的状态以进行协调。
{ "instance_id": "string", "assumed_current_step_name": "string", "report": { ... }, "context_updates": {} }(详细输入/输出模式参见MCP服务器定义或docs/architecture_and_data_model.md#7-api-specification,注意从HTTP API到MCP工具的映射)
服务器通过环境变量进行配置。路径可以相对于当前工作目录指定,也可以指定为绝对路径:
WORKFLOW_DEFINITIONS_DIR(必需):工作流定义目录的路径(例如,./workflows或/home/user/projects/orchestrator-mcp-server/workflows)。WORKFLOW_DB_PATH(必需):SQLite数据库文件的路径(例如,./data/workflows.sqlite或/home/user/projects/orchestrator-mcp-server/data/workflows.sqlite)。GEMINI_MODEL_NAME(除非USE_STUB_AI_CLIENT为true,否则必需):要使用的Gemini模型的名称(例如,gemini-2.5-flash-latest)。USE_STUB_AI_CLIENT(可选):设置为true以使用测试的模拟AI客户端,绕过对AI服务配置的需求(默认:false)。LOG_LEVEL(可选):日志级别(默认:info)。AI_SERVICE_ENDPOINT(可选):LLM服务API的URL(仅在不使用模拟客户端时使用)。AI_SERVICE_API_KEY(可选):LLM服务的API密钥(仅在不使用模拟客户端时使用)。AI_REQUEST_TIMEOUT_MS(可选):AI请求的超时时间(毫秒,默认:30000)。uv管理的Python环境。WORKFLOW_DEFINITIONS_DIR和WORKFLOW_DB_PATH目录存在且可写。uv sync
uv run python -m orchestrator_mcp_server
或者,如果您已使用pipx install .安装了服务器,可以直接运行orchestrator-mcp-server命令。默认情况下,服务器使用相对路径(./workflows和./data/workflows.sqlite)用于工作流定义和数据库。要使用这些默认路径,必须从项目的根目录(/home/jean/git/orchestrator-mcp-server)运行orchestrator-mcp-server命令。如果设置了WORKFLOW_DEFINITIONS_DIR和WORKFLOW_DB_PATH环境变量为绝对路径(参见配置),则可以从任何目录运行orchestrator-mcp-server命令。要在Cline中作为MCP服务器运行编排器,请在您的cline_mcp_settings.json文件的mcpServers内容中添加以下配置:
"orchestrator-mcp-server": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "orchestrator-mcp-server",
"env": {
"WORKFLOW_DEFINITIONS_DIR": "/home/YOUR_USERNAME/git/orchestrator-mcp-server/workflows",
"WORKFLOW_DB_PATH": "/home/YOUR_USERNAME/git/orchestrator-mcp-server/workflow_state.db",
"GEMINI_MODEL_NAME": "gemini-2.5-flash-preview-04-17",
"GEMINI_API_KEY": "YOUR__API_KEY"
},
"transportType": "stdio"
}
记得将"YOUR_USERNAME"替换为您实际的用户名,并将"YOUR_ANONYMIZED_API_KEY"替换为您实际的Gemini API密钥,并根据项目的位置调整路径。
下一步:
主要的测试策略涉及使用模拟AI交互模块提供确定性响应的API和核心组件的集成测试。使用专用的测试数据库。单元测试覆盖特定的实用函数和解析逻辑。
(详情参见docs/architecture_and_data_model.md#12-testing-strategy)