OmniMCP
  ](https://www.python.org/) 
核心功能
- 视觉感知: 使用OmniParser理解UI元素。
- 法学硕士规划: 根据目标、历史和视觉状态计划下一步行动。
- 代理人执行人: 协调感知-计划-行动循环(
omnimcp/agent_executor.py). - 行动执行: 通过以下方式控制鼠标/键盘
pynput(omnimcp/input.py). - CLI界面: 简单入口点(
cli.py)用于运行任务。 - 自动部署: 可选的OmniParser服务器部署到AWS EC2,并自动关闭。
- 调试: 每一步生成带时间戳的可视化日志。
概述
cli.py 用途 AgentExecutor 运行感知-计划-行动循环。它捕捉屏幕(VisualState),计划使用LLM(core.plan_action_for_ui),并执行操作(InputController).
德莫斯
- 实际操作(计算器):
python cli.py打开计算器并计算5\*9。
- 合成用户界面(登录):
python demo_synthetic.py使用生成的图像(没有真正的I/O)。 *(注意:正在进行重构以使用AgentExecutor)。*
先决条件
- Python>=3.10,\/`.
MCP服务器注意事项: 实验性MCP服务器(OmniMCP 类在 omnimcp/mcp_server.py)存在,但与主独立 cli.py/AgentExecutor 工作流程。
建筑
- 命令行界面 (
cli.py)-入口点,设置,启动执行器。 - 代理执行人 (
omnimcp/agent_executor.py)-协调循环,管理状态/工件。 - 视觉状态管理 (
omnimcp/visual_state.py)-感知(屏幕截图,调用解析器)。 - OmniParser客户端和部署 (
omnimcp/omniparser/)-管理OmniParser服务器通信/部署。 - LLM规划师 (
omnimcp/core.py)-生成行动计划。 - 输入控制器 (
omnimcp/input.py)-执行操作(鼠标/键盘)。 - (可选)MCP服务器 (
omnimcp/mcp_server.py)-实验性MCP接口。
发展
环境设置和检查
# Setup (if not done): ./install.sh
# Activate env: source .venv/bin/activate (or similar)
# Format/Lint: uv run ruff format . && uv run ruff check . --fix
# Run tests: uv run pytest tests/调试支持
跑步 python cli.py 节省带时间戳的跑步时间 runs/,包括:
step_N_state_raw.pngstep_N_state_parsed.png(带元素框)step_N_action_highlight.png(带有行动亮点)final_state.png
详细日志见 logs/run_YYYY-MM-DD_HH-mm-ss.log (LOG_LEVEL=DEBUG 在……里面 .env 推荐)。
Example Log Snippet (Auto-Deploy + Agent Step)
# --- Initialization & Auto-Deploy ---
2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.client:... - No server_url provided, attempting discovery/deployment...
2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.server:... - Creating new EC2 instance...
2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.server:... - Instance i-... is running. Public IP: ...
2025-MM-DD HH:MM:SS | INFO | omnimcp.omniparser.server:... - Setting up auto-shutdown infrastructure...
2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.server:... - Auto-shutdown infrastructure setup completed...
... (SSH connection, Docker setup) ...
2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.omniparser.client:... - Auto-deployment successful. Server URL: http://...
... (Agent Executor Init) ...
# --- Agent Execution Loop Example Step ---
2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - --- Step N/10 ---
2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Perceiving current screen state...
2025-MM-DD HH:MM:SS | INFO | omnimcp.visual_state:update:... - VisualState update complete. Found X elements. Took Y.YYs.
2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - Perceived state with X elements.
... (Save artifacts) ...
2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Planning next action...
... (LLM Call) ...
2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - LLM Plan: Action=..., TargetID=..., GoalComplete=False
2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Added to history: Step N: Planned action ...
2025-MM-DD HH:MM:SS | INFO | omnimcp.agent_executor:run:... - Executing action: ...
2025-MM-DD HH:MM:SS | SUCCESS | omnimcp.agent_executor:run:... - Action executed successfully.
2025-MM-DD HH:MM:SS | DEBUG | omnimcp.agent_executor:run:... - Step N duration: Z.ZZs
... (Loop continues or finishes) ...*(注:时间、计数、IP、实例ID和具体计划等细节会有所不同)*
路线图和限制
关键限制和未来工作领域:
- 演出 减少OmniParser延迟(探索本地模型、缓存等)并优化状态管理(避免完全重新解析)。
- 稳健性: 提高LLM规划的可靠性(提示、ReAct等技术),增加行动验证/错误恢复,增强元素定位。
- 目标API/体系结构: 向更高级别的声明性API演进(例如。,
@omni.publish样式),并可能将环路逻辑与实验性MCP服务器集成(OmniMCP类)。 - 一致性: 重构
demo_synthetic.py使用AgentExecutor. - 特征: 扩展操作空间(拖放、悬停)。
- 测试: 增加E2E测试,扩大跨平台验证,定义评估指标。
- 研究: 探索微调、流程图(RAG)、框架集成。
项目状态
核心回路 cli.py/AgentExecutor 可用于基本任务。性能和鲁棒性需要显著提高。MCP集成是实验性的。
贡献
- Fork存储库
- 创建特征分支
- 实施更改并添加测试
- 确保检查通过(
uv run ruff format .,uv run ruff check . --fix,uv run pytest tests/) - 提交拉取请求
许可证
MIT许可证
联系
- 问题:
- 问题: 讨论
- 安全:security@openadapt.ai
