omnion 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. omnion-0.1.0/LICENSE +21 -0
  2. omnion-0.1.0/PKG-INFO +453 -0
  3. omnion-0.1.0/README.md +416 -0
  4. omnion-0.1.0/pyproject.toml +73 -0
  5. omnion-0.1.0/setup.cfg +4 -0
  6. omnion-0.1.0/src/omnion/__init__.py +32 -0
  7. omnion-0.1.0/src/omnion/agent.py +514 -0
  8. omnion-0.1.0/src/omnion/cli.py +435 -0
  9. omnion-0.1.0/src/omnion/config.py +357 -0
  10. omnion-0.1.0/src/omnion/llm.py +401 -0
  11. omnion-0.1.0/src/omnion/memory.py +179 -0
  12. omnion-0.1.0/src/omnion/permissions.py +228 -0
  13. omnion-0.1.0/src/omnion/py.typed +0 -0
  14. omnion-0.1.0/src/omnion/skills/__init__.py +354 -0
  15. omnion-0.1.0/src/omnion/skills/code-review/SKILL.md +104 -0
  16. omnion-0.1.0/src/omnion/tools/__init__.py +200 -0
  17. omnion-0.1.0/src/omnion/tools/computer_tools.py +474 -0
  18. omnion-0.1.0/src/omnion/tools/context.py +96 -0
  19. omnion-0.1.0/src/omnion/tools/file_tools.py +391 -0
  20. omnion-0.1.0/src/omnion/tools/git_tools.py +154 -0
  21. omnion-0.1.0/src/omnion/tools/shell_tools.py +178 -0
  22. omnion-0.1.0/src/omnion.egg-info/PKG-INFO +453 -0
  23. omnion-0.1.0/src/omnion.egg-info/SOURCES.txt +32 -0
  24. omnion-0.1.0/src/omnion.egg-info/dependency_links.txt +1 -0
  25. omnion-0.1.0/src/omnion.egg-info/entry_points.txt +2 -0
  26. omnion-0.1.0/src/omnion.egg-info/requires.txt +11 -0
  27. omnion-0.1.0/src/omnion.egg-info/top_level.txt +1 -0
  28. omnion-0.1.0/tests/test_agent.py +312 -0
  29. omnion-0.1.0/tests/test_cli.py +84 -0
  30. omnion-0.1.0/tests/test_config.py +91 -0
  31. omnion-0.1.0/tests/test_memory.py +73 -0
  32. omnion-0.1.0/tests/test_permissions.py +73 -0
  33. omnion-0.1.0/tests/test_skills.py +117 -0
  34. omnion-0.1.0/tests/test_tools.py +186 -0
omnion-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Omnion(万象永恒)Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
omnion-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,453 @@
1
+ Metadata-Version: 2.4
2
+ Name: omnion
3
+ Version: 0.1.0
4
+ Summary: Omnion(万象永恒)· 永恒全能,编码与操作。免费优先的 AI Agent 命令行工具,支持云端 API 与本地模型、Skill 扩展与 Computer Use。
5
+ Author: Omnion Contributors
6
+ Maintainer: Omnion Contributors
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/omnion/omnion
9
+ Project-URL: Repository, https://github.com/omnion/omnion
10
+ Project-URL: Issues, https://github.com/omnion/omnion/issues
11
+ Keywords: ai,agent,cli,llm,coding,computer-use,skills,automation,qwen,ollama
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development :: Code Generators
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: openai>=1.40
27
+ Requires-Dist: typer>=0.12
28
+ Requires-Dist: rich>=13.0
29
+ Requires-Dist: python-dotenv>=1.0
30
+ Requires-Dist: pyautogui>=0.9.54
31
+ Requires-Dist: Pillow>=10.0
32
+ Provides-Extra: dev
33
+ Requires-Dist: pytest>=8.0; extra == "dev"
34
+ Requires-Dist: build>=1.0; extra == "dev"
35
+ Requires-Dist: twine>=5.0; extra == "dev"
36
+ Dynamic: license-file
37
+
38
+ # Omnion(万象永恒)
39
+
40
+ > **永恒全能,编码与操作。**
41
+
42
+ Omnion 是一个**免费优先、开源可扩展**的终端 AI Agent。它把大模型接进你的命令行,
43
+ 既能像 Claude Code 一样读写代码、执行命令、跑测试,也能通过 Computer Use 真实操作电脑。
44
+
45
+ - 终端命令:`omnion` PyPI 包名:`omnion` 协议:MIT
46
+ - 支持**云端 OpenAI 兼容 API**与**本地 Ollama 模型**,默认配置免费优先
47
+ - 内置文件 / Shell / Git / Computer Use 工具,全部带 JSON Schema
48
+ - **Skill 技能系统**:一个 `SKILL.md` 就能教会 Agent 你的专属工作流
49
+ - 危险操作默认需要确认,可选沙箱运行,绝不静默作恶
50
+
51
+ ---
52
+
53
+ ## 目录
54
+
55
+ - [特性](#特性)
56
+ - [安装](#安装)
57
+ - [配置模型](#配置模型)
58
+ - [快速开始](#快速开始)
59
+ - [斜杠命令](#斜杠命令)
60
+ - [内置工具](#内置工具)
61
+ - [Skill 技能系统](#skill-技能系统)
62
+ - [Computer Use 与安全](#computer-use-与安全)
63
+ - [项目结构](#项目结构)
64
+ - [从源码开发](#从源码开发)
65
+ - [打包与发布](#打包与发布)
66
+ - [路线图](#路线图)
67
+ - [许可证](#许可证)
68
+
69
+ ---
70
+
71
+ ## 特性
72
+
73
+ | 能力 | 说明 |
74
+ |------|------|
75
+ | 双模式推理 | 云端 API(Qwen3-Coder / DeepSeek / GPT / Gemini 等 OpenAI 兼容接口)+ 本地 Ollama |
76
+ | 免费优先 | 默认推荐有免费额度的 Qwen3-Coder,或完全离线的 `qwen2.5-coder:7b` |
77
+ | Agent 循环 | 系统提示词 + 工具调用 + 结果回填 + 最大循环次数 + 全链路异常兜底 |
78
+ | 优雅降级 | 仅使用原生 function calling,不做任何文本协议降级,工具照样能用 |
79
+ | 编码能力 | 读文件、写文件、精确补丁、全文搜索、执行命令、跑测试、看 diff |
80
+ | Computer Use | 截图、点击、拖拽、输入、按键、组合键、滚轮、剪贴板 |
81
+ | Skill 系统 | `SKILL.md`(YAML frontmatter + Markdown)注入系统提示词,支持内置/项目/用户三级 |
82
+ | 终端体验 | Typer + Rich,Markdown 渲染、流式输出、彩色表格、斜杠命令 REPL |
83
+ | 安全可控 | 危险命令与键鼠操作需确认;`--yes` 可跳过;路径越界拦截;密钥只从 `.env` 读 |
84
+
85
+ ---
86
+
87
+ ## 安装
88
+
89
+ ### 方式一:从 PyPI 安装(发布后)
90
+
91
+ ```bash
92
+ pip install omnion
93
+ ```
94
+
95
+ ### 方式二:从源码安装(开发推荐)
96
+
97
+ ```bash
98
+ git clone <omnion-repo-url>
99
+ cd omnion
100
+
101
+ python -m venv .venv
102
+ # Windows PowerShell
103
+ .\.venv\Scripts\Activate.ps1
104
+ # macOS / Linux
105
+ source .venv/bin/activate
106
+
107
+ pip install -e ".[dev]"
108
+ omnion --version
109
+ ```
110
+
111
+ 要求:Python ≥ 3.10。
112
+
113
+ ---
114
+
115
+ ## 配置模型
116
+
117
+ Omnion 从 `.env` 或环境变量读取配置(**永远不要把密钥提交到 Git**,`.env` 已在 `.gitignore` 中)。
118
+
119
+ ```bash
120
+ cp .env.example .env # Windows PowerShell: Copy-Item .env.example .env
121
+ ```
122
+
123
+ ### 方案 A(推荐):云端免费额度 —— Qwen3-Coder
124
+
125
+ ```dotenv
126
+ API_KEY=sk-你的百炼APIKey
127
+ BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
128
+ MODEL=qwen3-coder-plus
129
+ ```
130
+
131
+ 其他 OpenAI 兼容服务只需替换三项:
132
+
133
+ ```dotenv
134
+ # DeepSeek
135
+ API_KEY=sk-...
136
+ BASE_URL=https://api.deepseek.com/v1
137
+ MODEL=deepseek-chat
138
+
139
+ # OpenAI 官方
140
+ API_KEY=sk-...
141
+ BASE_URL=https://api.openai.com/v1
142
+ MODEL=gpt-4o-mini
143
+
144
+ # Google Gemini(OpenAI 兼容端点)
145
+ API_KEY=...
146
+ BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/
147
+ MODEL=gemini-2.0-flash
148
+ ```
149
+
150
+ ### 方案 B:本地模型,完全免费离线
151
+
152
+ ```bash
153
+ # 1) 安装 Ollama:https://ollama.com/download
154
+ ollama pull qwen2.5-coder:7b
155
+ ollama serve
156
+ ```
157
+
158
+ ```dotenv
159
+ API_KEY=ollama # Ollama 不校验,填任意非空值即可
160
+ BASE_URL=http://localhost:11434/v1
161
+ MODEL=qwen2.5-coder:7b
162
+ ```
163
+
164
+ ### 临时覆盖配置
165
+
166
+ ```bash
167
+ omnion --model qwen3-coder-plus --base-url https://... --api-key sk-...
168
+ omnion /model qwen2.5-coder:14b # 交互模式内热切换
169
+ ```
170
+
171
+ ### 可选环境变量
172
+
173
+ | 变量 | 默认值 | 说明 |
174
+ |------|--------|------|
175
+ | `OMNION_MAX_ITERATIONS` | `30` | 单次任务最大工具循环次数 |
176
+ | `OMNION_TEMPERATURE` | `0.2` | 采样温度(编码场景建议偏低) |
177
+ | `OMNION_MAX_HISTORY` | `100` | 上下文保留的最大消息条数 |
178
+ | `OMNION_WORKSPACE` | `.` | 工作区根目录 |
179
+ | `OMNION_SCREENSHOT_PATH` | `screen.png` | 截图默认保存路径 |
180
+ | `OMNION_AUTO_APPROVE` | `false` | 是否跳过危险操作确认 |
181
+ | `OMNION_STREAM` | `false` | 是否默认开启流式输出 |
182
+ | `OMNION_TIMEOUT` | `180` | 模型请求超时(秒) |
183
+
184
+ ---
185
+
186
+ ## 快速开始
187
+
188
+ ### 交互模式
189
+
190
+ ```bash
191
+ omnion
192
+ ```
193
+
194
+ ```
195
+ ┌─────────────────────────────── ● Omnion 欢迎 ───────────────────────────────┐
196
+ │ 万象永恒 Omnion(万象永恒)v0.1.0 │
197
+ │ Slogan 永恒全能,编码与操作。 │
198
+ │ 模型 qwen3-coder-plus │
199
+ │ 工作区 D:\omnion │
200
+ │ 工具 22 个已注册 · 技能 1 个 · 流式 关 │
201
+ └───────────────────────────── 终端命令:omnion ─────────────────────────────┘
202
+ 万象永恒 Omnion 已启动。永恒全能,编码与操作。
203
+ omnion ›
204
+ ```
205
+
206
+ ### 一次性执行
207
+
208
+ ```bash
209
+ omnion -p "写一个快速排序"
210
+ omnion -p "读一下 src/omnion/agent.py,用 5 句话讲清楚它的主循环"
211
+ omnion --yes -p "把 tests 全部跑一遍并总结失败原因" # 跳过确认(谨慎)
212
+ omnion --stream -p "解释这个仓库的目录结构" # 流式输出
213
+ ```
214
+
215
+ ### 常用命令行参数
216
+
217
+ | 参数 | 说明 |
218
+ |------|------|
219
+ | `-p, --prompt TEXT` | 一次性执行的任务描述(不提供则进入交互模式) |
220
+ | `-m, --model TEXT` | 模型名 |
221
+ | `--base-url TEXT` | OpenAI 兼容接口地址 |
222
+ | `--api-key TEXT` | API Key(建议改用 `.env`) |
223
+ | `-w, --workspace PATH` | 工作区目录 |
224
+ | `-y, --yes` | 跳过危险操作确认 |
225
+ | `--stream` | 流式输出 |
226
+ | `--tools` | 列出全部工具后退出 |
227
+ | `--skills` | 列出全部技能后退出 |
228
+ | `-v, --version` | 版本信息 |
229
+
230
+ ---
231
+
232
+ ## 斜杠命令
233
+
234
+ | 命令 | 说明 |
235
+ |------|------|
236
+ | `/help` | 显示帮助与可用命令 |
237
+ | `/exit` | 退出(`/quit`、`exit`、`quit` 同样有效) |
238
+ | `/clear` | 清空当前会话上下文 |
239
+ | `/model [名称]` | 查看或切换模型 |
240
+ | `/skills` | 查看已加载的技能 |
241
+ | `/tools` | 查看已注册的工具 |
242
+ | `/history` | 查看最近的会话记录 |
243
+ | `/version` | 版本信息 |
244
+
245
+ ---
246
+
247
+ ## 内置工具
248
+
249
+ | 分类 | 工具 | 说明 |
250
+ |------|------|------|
251
+ | 文件 | `read_file` | 读取文件(支持 `start_line` / `end_line` 片段读取) |
252
+ | 文件 | `write_file` | 写入/覆盖文件 |
253
+ | 文件 | `list_files` | 列目录,支持通配符与递归 |
254
+ | 文件 | `search_files` | 关键词全文搜索,返回文件 + 行号 + 片段 |
255
+ | 文件 | `apply_patch` | 精确文本替换(`old_str` → `new_str`)或整文件写入/追加 |
256
+ | Shell | `run_shell` | 执行命令(Windows 默认 PowerShell),高危命令需确认 |
257
+ | Shell | `run_python` | 执行一段 Python 代码并返回输出 |
258
+ | Git | `git_status` | 查看分支与工作区状态 |
259
+ | Git | `git_diff` | 查看 diff(支持 `staged` / `ref` / `path`) |
260
+ | Git | `git_log` | 查看最近提交 |
261
+ | 电脑 | `screenshot` | 截图保存为 PNG 并返回路径 |
262
+ | 电脑 | `mouse_position` | 当前鼠标坐标与屏幕分辨率 |
263
+ | 电脑 | `click` / `move_to` / `drag_to` | 鼠标点击 / 移动 / 拖拽 |
264
+ | 电脑 | `type_text` / `press_key` / `hotkey` | 键盘输入 / 单键 / 组合键 |
265
+ | 电脑 | `scroll` | 滚轮滚动 |
266
+ | 电脑 | `read_clipboard` / `write_to_clipboard` | 剪贴板读写 |
267
+ | 电脑 | `wait` | 等待若干秒 |
268
+
269
+ 随时用 `omnion --tools` 查看带 JSON Schema 的完整列表。
270
+
271
+ > Git 工具刻意保持**只读**:提交、推送这类决定权永远留给人类。
272
+
273
+ ---
274
+
275
+ ## Skill 技能系统
276
+
277
+ Skill 是 Omnion 的扩展机制:一个目录 + 一个 `SKILL.md`,内容会在启动时注入系统提示词。
278
+
279
+ ### 目录优先级
280
+
281
+ 1. 内置:`omnion/skills/`(随包发布)
282
+ 2. 项目级:`<工作区>/.omnion/skills/`
283
+ 3. 用户级:`~/.omnion/skills/`(对所有项目生效)
284
+
285
+ 同名 Skill 由后者覆盖前者。
286
+
287
+ ### 格式
288
+
289
+ ```markdown
290
+ ---
291
+ name: deploy
292
+ description: 项目的标准发布流程
293
+ version: 1.0.0
294
+ tags: [devops, release]
295
+ ---
296
+
297
+ # 技能:deploy
298
+
299
+ ## 执行流程
300
+
301
+ 1. 先跑 `pytest`
302
+ 2. 再 `python -m build`
303
+ 3. 用 `twine check dist/*` 校验
304
+
305
+ ## 输出格式
306
+
307
+ - 一份发布检查清单
308
+ ```
309
+
310
+ 放进 `~/.omnion/skills/deploy/SKILL.md`,重启 `omnion` 后用 `/skills` 即可看到。
311
+
312
+ ### 内置示例:`code-review`
313
+
314
+ `src/omnion/skills/code-review/SKILL.md` 是一份完整的代码审查技能:
315
+ 先用 `git_status` / `git_diff` 摸清改动范围,再按**正确性 → 安全 → 性能 → 可维护性**四层检查,
316
+ 最后按 🔴 阻断 / 🟡 重要 / 🔵 建议 / ⚪ 疑问 四级输出结论,每条都带文件行号与可直接落地的修改建议。
317
+
318
+ 试一下:
319
+
320
+ ```bash
321
+ omnion -p "用 code-review 技能审查我当前的 git 改动"
322
+ ```
323
+
324
+ ---
325
+
326
+ ## Computer Use 与安全
327
+
328
+ > ⚠️ **安全警告**
329
+ > Computer Use 能真实地点击、输入、删除文件与数据。
330
+ > **请务必在虚拟机 / 沙箱 / 测试账号中运行。** 强烈不建议在存有敏感数据的主力机上开启 `--yes`。
331
+
332
+ Omnion 的默认防线:
333
+
334
+ - 键鼠操作、剪贴板写入**逐次询问**确认(`--yes` 可跳过,请谨慎)
335
+ - 危险 Shell 命令(`rm -rf`、`format`、`curl | bash`、`git push --force`、`git reset --hard` 等)自动拦截并确认
336
+ - 直接执行 Python 代码时,命中删除文件、调用子进程、动态执行等模式会额外确认
337
+ - 写入工作区之外的路径需要确认
338
+ - `PyAutoGUI` 的 `FAILSAFE` 处于开启状态:**鼠标猛移到屏幕左上角可紧急中止**
339
+ - 截图默认写入 `screen.png`,已在 `.gitignore` 中
340
+
341
+ ### 接入多模态
342
+
343
+ `v0.1.0` 的截图工具只返回图片路径,不做视觉理解;但结构上已经打通:
344
+
345
+ ```python
346
+ from omnion.llm import LLMClient
347
+
348
+ client = LLMClient(model="qwen-vl-max") # 任意支持视觉的模型
349
+ answer = client.chat_vision("这个截图里有什么?", ["screen.png"])
350
+ ```
351
+
352
+ 把这段逻辑接进 Agent 循环,即可实现"看屏幕 → 决定下一步"的完整 Computer Use。
353
+
354
+ ---
355
+
356
+ ## 项目结构
357
+
358
+ ```text
359
+ omnion/
360
+ ├── pyproject.toml # 打包与依赖([project.scripts] omnion = "omnion.cli:main")
361
+ ├── README.md
362
+ ├── LICENSE # MIT
363
+ ├── .env.example # 配置模板(不含任何真实密钥)
364
+ ├── .gitignore
365
+ ├── src/omnion/
366
+ │ ├── __init__.py # 项目元信息:Omnion / 万象永恒 / omnion
367
+ │ ├── cli.py # Typer + Rich 入口,REPL 与斜杠命令
368
+ │ ├── agent.py # OmnionAgent 核心循环
369
+ │ ├── llm.py # OpenAI 兼容模型接入层(云端 + 本地)
370
+ │ ├── config.py # 统一配置(env / .env / 默认值)
371
+ │ ├── memory.py # 会话记忆与上下文裁剪
372
+ │ ├── permissions.py # 危险操作识别与确认机制
373
+ │ ├── tools/
374
+ │ │ ├── __init__.py # Tool / ToolRegistry 与 Schema 转换
375
+ │ │ ├── context.py # 工具运行上下文(工作区 + 权限)
376
+ │ │ ├── file_tools.py # read/write/list/search/apply_patch
377
+ │ │ ├── shell_tools.py # run_shell / run_python
378
+ │ │ ├── git_tools.py # git_status / git_diff / git_log
379
+ │ │ └── computer_tools.py # screenshot / click / type_text / press_key / scroll ...
380
+ │ └── skills/
381
+ │ └── code-review/SKILL.md
382
+ └── tests/ # pytest 测试(工具、Skill、Agent 循环、CLI)
383
+ ```
384
+
385
+ ---
386
+
387
+ ## 从源码开发
388
+
389
+ ```bash
390
+ pip install -e ".[dev]"
391
+
392
+ python -m pytest # 全部测试(不需要任何 API Key,全部用假模型)
393
+ python -m pytest -v # 查看每个用例
394
+ python -m pytest tests/test_agent.py -k skill # 只跑匹配用例
395
+ ```
396
+
397
+ 测试覆盖:配置解析、危险命令识别、会话记忆裁剪、五类工具、Skill 加载与注入、
398
+ Agent 循环(含工具调用、异常兜底、循环上限、降级协议)、CLI 参数与斜杠命令。
399
+ **所有测试都不触网**,用假模型客户端驱动。
400
+
401
+ ---
402
+
403
+ ## 打包与发布
404
+
405
+ ```bash
406
+ # 1. 构建
407
+ python -m build # 产物在 dist/
408
+
409
+ # 2. 本地校验
410
+ twine check dist/*
411
+
412
+ # 3. 上传 PyPI(需要你的 PyPI Token,请自行保管,勿写进仓库)
413
+ python -m twine upload --repository pypi dist/*
414
+ # 或用环境变量避免 Token 出现在命令历史里:
415
+ # $env:PYPI_API_TOKEN = "pypi-xxxxxxxx" (PowerShell)
416
+ # python -m twine upload dist/*
417
+
418
+ # 4. GitHub
419
+ git remote add origin <你的仓库地址>
420
+ git push -u origin main
421
+ ```
422
+
423
+ 发布前请更新 `pyproject.toml` 中的 `[project.urls]` 为真实仓库地址。
424
+
425
+ ---
426
+
427
+ ## 路线图
428
+
429
+ - [x] v0.1.0:Agent 核心循环、文件/Shell/Git 工具、Skill 系统、Computer Use 基础、CLI
430
+ - [ ] 子 Agent / 任务委派(并行执行多个子任务)
431
+ - [ ] 会话持久化与项目级记忆(`memory.json`)
432
+ - [ ] MCP(Model Context Protocol)客户端接入
433
+ - [ ] 多模态视觉回路(截图 → 视觉模型 → 决策)
434
+ - [ ] 工具并行执行与结果聚合
435
+ - [ ] 可选的网页搜索 / 浏览器自动化工具
436
+
437
+ ---
438
+
439
+ ## 参与贡献
440
+
441
+ 欢迎提交 Issue 与 PR,尤其是:**新 Skill**、**新工具**、**更多免费模型适配**。
442
+
443
+ 贡献前请确保:
444
+
445
+ ```bash
446
+ python -m pytest # 全部通过
447
+ ```
448
+
449
+ ## 许可证
450
+
451
+ [MIT](LICENSE) © 2026 Omnion(万象永恒)Contributors
452
+
453
+ > 永恒全能,编码与操作。