Demiurge 0.3.2
Demiurge 是 alpha / developer-preview 软件。APIs、runtime layout 和 authoring contracts 之后仍可能变化。
概述
这个版本把本地 runtime surface 扩展到了 external gateway channels、provider setup profiles、streamed TUI output,以及更多 package-catalog 方案,包括 style、context reseeding 和 provider-backed text-to-speech。
用户可见变化
- 新增默认禁用的 gateway channel 支持,覆盖通用 webhooks、Slack、Mattermost、 Matrix 和 email,并保留现有的 Telegram gateway。
- 新增
demiurge gateway入口点,用于通过 host-owned channel gateway 运行已启用的 external channels。 - 新增 provider setup 命令和 presets,用于创建 host provider profiles、把 API keys
写入
.env、设置 core model、列出 profile 状态,以及运行显式 provider tests。 - 更新了 setup flow 使用的默认 provider presets 和 model-writing 行为。
- TUI 现在会流式展示 provider response deltas,并在 footer 中报告 provider/model 状态。
- 新增 package recipes,覆盖 conversation style hints、context reseed notes,以及 OpenAI、Gemini 和 xAI 的 text-to-speech 输出/工具集成。
- 新增一个用于检查 assembled system prompts 的 debug 命令。
- 新增 GitHub issue templates、pull-request template 和面向公开项目反馈的贡献指南。
修复
- System prompt assembly 现在会合并 system prompt messages,而不是丢弃后续 context。
- Telegram polling 能够从临时 transport failures 中恢复。
- Provider setup 会规范化 profile identifiers,并一致地写入 preset model 选择。
- TUI stream delta timers 在变旧时会被取消,因此旧 deltas 不会泄漏到后续 transcript state 中。
破坏性变更
- 本版本没有包含有意的破坏性变更。
- External channels 仍然是 host gateway 管理的声明式
agent.yaml配置;旧的实验性agent/channelsslot directories 不会被自动发现。
已知限制
- package catalog 仍然是 local-only。
- code slots 默认运行在 host-shared Python environment 中。
- external gateway channels 默认禁用,需要显式的认证相关环境变量或 token。
- Telegram 仍然只是 long-polling。
- candidate core evolution 和 automatic promotion 仍未完成。
- Provider profile tests 只有在显式调用时才会进行 live network calls。
验证
uv run pytest tests/cli/test_cli.py tests/channels tests/runtime/test_modular_io.py tests/packages/test_packages.pyuv run python -c 'import tomllib, demiurge; print(tomllib.load(open("pyproject.toml", "rb"))["project"]["version"]); print(demiurge.__version__)'git diff --check -- pyproject.toml demiurge/__init__.py uv.lock docs/releases/0.3.2.md website/docusaurus.config.ts website/i18n/zh-CN/docusaurus-theme-classic/footer.jsonrg -n "0\\.3\\.2|/docs/releases/0\\.3\\.2" pyproject.toml demiurge/__init__.py uv.lock docs/releases/0.3.2.md website/docusaurus.config.ts website/i18n/zh-CN/docusaurus-theme-classic/footer.json