Skip to main content

SpecModule

可审计、可调试、可完全掌控的 LLM 使用框架。

将 LLM 调用拆分为可组合的 Petri 网节点,每个节点是最小执行单元——翻译、审查、shell 命令、Python 函数。节点通过有向边连接(支持 AND/OR 汇合、循环),引擎以同步步进执行,所有状态集中记录。每 tick 落盘轻量快照,快照、暂停、精确回退(tick 号)都是低开销的。

架构

SpecModule/
├── tickflow                # Petri 网工作流引擎(外部 pip 依赖 tickflow-py,import 名 tickflow)
├── llm/                    # LLM 客户端(Anthropic + OpenAI 兼容)
│   ├── client.py
│   └── config.py           #   LLMConfig.from_env():配置回退链(env > 项目根 > store)
├── module_harness/        # Module 上层抽象
│   ├── module.py          #   Module 编排器(run/resume/snapshot/rollback)
│   ├── registry.py        #   HarnessRegistry(harness / script / command 注册)
│   ├── harness.py         #   Harness 类(LLM 调用节点,三层 prompt)
│   ├── command.py         #   Command 节点(shell 子进程)
│   ├── prompt.py          #   三层 prompt 渲染
│   ├── outputfmt.py       #   输出格式校验 + 自动提取
│   ├── spec.py            #   Spec, Tasklist, TasklistTemplate 数据模型
│   ├── translator.py      #   spec → tasklist 翻译 + 校验 + 模板加载
│   ├── graph_builder.py   #   tasklist → tickflow Graph
│   ├── consistency.py     #   spec + tasklist 一致性审核
│   ├── align.py           #   对齐检查 harness
│   ├── checkpoint.py      #   运行输入存档 + resume 兼容性校验
│   ├── status.py          #   跨进程运行状态查询
│   ├── submodule.py       #   类式 module 定义 + 打包发布
│   ├── loader.py          #   module 加载 + 依赖校验
│   ├── builtins.py        #   内置 harness 集
│   ├── events.py          #   EventBus + 类型化事件
│   ├── entry.py           #   ModuleEntry 入口合约 + 目录发现
│   ├── scaffold.py        #   init 脚手架生成(单文件 + --as-dir 目录形态)
│   ├── store.py           #   store 共享层(家目录/搜索路径/枚举/安装管理)
│   ├── feed.py            #   零依赖运行 feed(http.server,CLI feed 命令)
│   ├── query.py           #   共享查询层(时间线/检查点,CLI/MCP/Web 复用)
│   ├── cli.py             #   specmodule CLI(18 子命令,argparse 零依赖)
│   ├── templates/         #   内置任务模板
│   └── tests/             #   pytest 测试套件(含真实 LLM smoke)
├── examples/              # 嵌入式最小 demo(embed_minimal)+ 教程案例(tutorial)
└── docs/                  # 用户文档(guides/references/concepts)+ 内部文档(dev/)

安装依赖

# 库:pip 安装(pyproject.toml + console script `specmodule`)
pip install specmodule

# 开发(本仓库):源码 + 测试依赖
pip install -r requirements.txt
包 用途 必需
specmodule 库本体(PyPI 名;pyproject.toml 打包:llm + module_harness + CLI specmodule) ✅ 必需
tickflow-py Petri 网工作流引擎。⚠️ PyPI 包名为 tickflow-py,import 名仍为 tickflow(import tickflow,不是 import tickflow_py)。上游仓库:https://github.com/MountLynx/tickflow- ✅ 必需
anthropic Claude 后端(provider=anthropic 时) 按 provider 选装
openai OpenAI 及兼容后端(provider=openai / openai-compatible 时) 按 provider 选装
jsonschema json_schema 输出格式校验(未安装则跳过 schema 校验,仅保证是 JSON) 推荐
pytest 测试套件(python -m pytest module_harness/tests/ -q) 仅开发

快速开始

pip install specmodule
specmodule setup                    # 一次性配置 provider/model/key(写 store 级配置)
specmodule install <模块 pack 目录或 git URL>   # 获取模块(见 store-walkthrough)
specmodule run --module <名> --spec '{"text": "……"}' --mock   # --mock 免 key 冒烟
specmodule review --run-id <名>     # 审阅 tick 时间线

写第一个模块(入口声明 → harness/script 注册 → tasklist → 发布)见 从零到第一个模块(教程);store 使用闭环见 store-walkthrough;配置见 config-guide。

文档导航

你是 入口
用 module(CLI 用户) store-walkthrough → cli-usage 参考
写 module(开发者) 教程:从零到第一个模块 → tasklist 执行语义 → 语法参考
理解框架(概念) concepts/SpecModule.md
嵌入宿主项目 embedding.md(demo:examples/embed_minimal/)
完整索引 docs/README.md

核心概念

三种节点类型

类型 用途 注册方式
harness LLM 调用 — 三层 prompt、输出校验、流式 token reg.harness("name", config)
script 纯 Python 函数 — 处理、计算、IO @reg.script("name")
command Shell 命令 — 一行字符串即节点 reg.command("name", CommandConfig(...))

spec 与 tasklist

  • spec — 结构化键值对,描述"想要什么"。无预定义 schema,字段由模板设计者定义。
  • tasklist — {Tasks: {A: {...}, B: {...}}, Flow: "A --> B"}。描述"如何做",每个 Task 映射为一个 tickflow 节点。
  • 两种输入:① 只传 spec(通过模板翻译为 tasklist)② 传 spec + tasklist(一致性审核后直入 graph builder)。选择依据与模板通道见 concepts。

快照与回滚

每 tick 轻量快照(persist=True 时逐 tick 落盘),任意 tick 可精确回退(resume(tick) / rollback);手动检查点 checkpoint("label") 永久保留;进程内 snapshot() / restore() 支持任意分支。持久化约定与敏感数据注意见 concepts。

submodule — 类式 module + 打包发布

SubModule 类式声明(含 spec_schema 输入契约)→ pack() 导出可发布清单(module.json + harnesses/ + scripts/ + commands/)→ ModuleLoader 加载(requires 依赖校验)。mode = "fast" 零落盘运行。

当前状态

库核心框架能力已完成(18 项);库自身主线已完成(2026-08-22):打包接线、module-user-store 全系列(store 家目录 / 配置回退链 / 统一枚举 run / CLI 管理面)、独立线(嵌入式验证 demo + stdlib 可视化 feed);0.1.1(2026-08-23)init 脚手架修复 + git 来源安装完善。待做:M2 实践线、收口 API 稳定化、生态项目(TUI/MCP/Web)。完整进度与路线图见 docs/dev/progress/module-roadmap.md(内部文档)。

开发原则

  • tickflow 零修改(有条件的) — tickflow 是外部依赖(PyPI 包 tickflow-py,import 名 tickflow,上游仓库 https://github.com/MountLynx/tickflow-),仓库内无 tickflow 代码。修改前先判断:改动是否有普适性、是否真正有助于优化 tickflow 本身?没有 → 不碰(模块层功能一律通过 Registry 子类扩展);有 → 在上游改,发布新版 tickflow-py 并升级安装版本
  • 两级用户定位 — 框架服务两类用户:开发者用户(写 module 并发布)与使用者用户(只写 spec/tasklist)。边界不硬——开发者也是使用者,使用者也能按需修改。本质是两个使用场景(开发场景 vs 使用场景)
  • 完全掌控 — 无隐式行为,promptmode 选错直接 KeyError,框架不兜底

许可证

MIT

Metadata

Release files for specmodule 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for specmodule 0.1.3
File Size Uploaded
specmodule-0.1.3.tar.gz 98.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for specmodule 0.1.3
File Interpreter ABI Platform
specmodule-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 209.4 kB

Release files / specmodule-0.1.3.tar.gz

Download URL specmodule-0.1.3.tar.gz
Size 98.0 kB
Tags Source
SHA-256 checksum
How to use checksums
94356b0251c6312c7a7a3e523c37c06dc784809a2fdb01c7828abafbbd109e67
BLAKE2b-256 checksum
How to use checksums
8c3413427936b08ff777fc5b2a01ece51da72b09325084e8993f720a4f79485f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.7

Release files / specmodule-0.1.3-py3-none-any.whl

Download URL specmodule-0.1.3-py3-none-any.whl
Size 111.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
780b0d5cf7dcb6a8ece44c07f6546b00efd205a1c82cb97da0f4bce8a5f8cd0e
BLAKE2b-256 checksum
How to use checksums
6101820a57af13cef999a38bb9127cff94bc218665c696ca1ab29a5b1cc8f930
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.7

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page