ANIMA V0.1.0 — 首个参考实现落地
过去两周,ANIMA 这个独立仓一直是个占位骨架:一个 7 行的 Python 文件,__version__ = "0.0.0",模块边界画好了但真正可运行的代码几乎没有。同一时间,在一个 BCI 医疗护理研究原型(human-brain-interface-demo)里,L0–L5 六层 + 五因素 + LLM-as-Parser 的一套参考实现长了出来——11 个文件、1037 行代码、pytest 全绿、pip 可装。
2026-04-21 把这两件事合了:参考实现从原型仓搬进 ANIMA 主仓,剥离 BCI 专属术语后通用化,版本从 0.0.0 直接跳到 v0.1.0。
六层 L0–L5 全部有代码
上游信号(BCI / 语音 / 视觉 / 文本)
↓
┌─────────────────────────────┐
│ L0 Signal │ signal → intent token + confidence + drift
├─────────────────────────────┤
│ L1 Parser (LLM) │ instruction → TaskSpec(强制 tool-calling)
├─────────────────────────────┤
│ Test-and-Check(六门守卫) │ JSON / intent / skill / params / safety / preconds
├─────────────────────────────┤
│ L2 Planner │ TaskSpec → py_trees 行为树
├─────────────────────────────┤
│ L3 Skill │ Function-Calling + Affordance Scoring
├─────────────────────────────┤
│ L4 Adapter │ 设备无关执行(机械臂 / 底盘 / ...)
├─────────────────────────────┤
│ L5 Assessment │ ITA · MQA · SQA · GOA · PEA(Pre / Runtime / Post)
└─────────────────────────────┘
每一层都有实际源码文件(src/anima/l0_signal.py 到 src/anima/l5_assessment.py),不再是 docstring 占位。
五因素公式落地
v0.0.0 只定义了五因素的名字;v0.1.0 给了它们具体公式:
- ITA 意图对齐度,吸收上游 drift:
MQA_ita = 1 − drift_score - MQA 动作质量:轨迹平滑度 / 接触力包络 / 抓取余量
- SQA 技能胜任度:Beta 先验从历史
pea_log.jsonl滑窗更新 - GOA 目标达成:乘法组合
P(success) = ∏ Pᵢ,不做平均 - PEA 偏好-经验检索:三因素加权
recency × 0.5 + relevance × 3.0 + importance × 2.0
这些不是占位符——是从研究原型里跑通过的实现。
LLM-as-Parser,LLM-agnostic
L1 通过 LLMToolCaller 协议接 LLM,不绑任何厂商。当前参考实现同时支持 DeepSeek 和 OpenAI(100% OpenAI SDK 兼容)。核心约束是强制 tool-calling——LLM 只能输出结构化 TaskSpec JSON,不能自由生成低层命令。
剥离 BCI 独有术语
原始参考实现是从一个 BCI 研究原型里长出来的,所以里面带不少 BCI 独有语义。这次合进主仓时把这些通用化:
drift_score不再专指神经信号漂移,docstring 改成"upstream signal uncertainty, e.g. BCI drift or ASR confidence"IntentToken的 35 词词表保留,但标注"example vocabulary; extend per application"- README / docstring 里的 "BCI" / "neural" / "patient" / "clinician" 字样换成通用语言
EmbodiedAdapter协议本来就通用,这次在 README 里说清楚能接 manipulator / mobile base / wheelchair / humanoid
关键词从 bci / assistive-robotics 换成 cognitive-architecture / embodied-ai / behavior-tree / llm-tool-use / intent-to-action / self-assessment。
开源脚手架就位
之前只有 LICENSE 和 README。v0.1.0 带来了:
pyproject.toml—pip install -e .可装tests/test_pipeline.py— 6/6 绿CONTRIBUTING.md/SECURITY.md/CODE_OF_CONDUCT.md/CHANGELOG.md- PR 模板
安装方式:
pip install git+https://github.com/jeffliulab/anima.git@main
下游应用(soma-care)就是这样依赖的,不再内嵌副本。
两条应用分支同步就位
同一天把 SOMA Care 作为独立仓(jeffliulab/soma-care)开出来,从 human-brain-interface-demo/demo/ 搬过来作为 v0.4 起点。它的 core/pyproject.toml 已经改成 anima @ git+https://github.com/jeffliulab/anima.git@main,测试 17/17 绿,import 链从 anima 框架一路到 soma-care 的 FastAPI main.py 通。
加上原来的 SOMA Arm(棋类操作),ANIMA 现在有两条活跃的应用分支:
| 分支 | 仓 | 做什么 |
|---|---|---|
| SOMA Care | jeffliulab/soma-care |
仿真病房护理意图-行动闭环 |
| SOMA Arm | jeffliulab/soma-arm |
桌面棋盘操作(真机) |
领域特定的 skill(抓杯子 / 走棋 / 翻身)都留在各自应用仓的 L4 adapter 层,不进框架。
Status:Alpha
v0.1.0 是 Alpha 发布。API 在 v1.0 正式发布前还可能变动——破坏性改动会在 commit message 前缀带 !,并在 CHANGELOG 里明确列出。
下一个 anima 路线图节点是扩展 skill 库 + 稳定 v0.2 API(配合 soma-care v0.4 的接触密集技能),再往后是 v1.0 稳定发布(API 冻结、文档完整、PyPI)。
署名
ANIMA Framework © Jeff Liu Lab。Apache-2.0 许可证。