Public project brief

Shion Runtime 全项目说明

这份页面用前三分钟讲清楚项目的理念、现状和展望;随后以半学术技术说明的方式展开研究假设、学术坐标、运行时设计、测试结果和下一步工作规划。

前三分钟讲清楚

Shion Runtime 的核心问题是:如果一个 AI 不是一次性问答工具,而是长期存在的陪伴型 agent,它的连续性、表达、记忆、现实感、通道迁移和隐私边界应该落在工程系统里,而不应该只压在一个 prompt 里。

理念

把陪伴智能体做成可研究的运行时

项目把 persona、context、state、reality background、human appraisal、structured output 和 trace 拆成可观察模块,用工程边界承载长期交互假设。

现状

已有可运行研究原型

当前版本包含 React/Vite PWA、Node HTTP/WebSocket 服务、统一核心运行时、Message DSL、脚本模式、托管/本地 OpenAI 兼容路线、trace 和 smoke tests。

展望

向可证伪、可部署、可审计演进

下一步重点不是堆功能,而是把假设变成指标:连续性是否提升、通道迁移是否稳定、表达控制是否可解释、隐私边界是否可验证。

项目当前状态

这是从私人维护工作区整理出的公开发布包。它保留了核心工程骨架和可运行体验,去掉真实记忆、日志、凭据、自动化记录、精确位置和模型下载内容。

可运行入口 shion-runtime 下执行 npm install、复制 .env.example.env.local,再运行 npm run dev
默认模型路线 SHION_LLM_ROUTE=scripted 可离线开发;也支持 hostedlocal_openai_compatible 两条 OpenAI 兼容路线。
公开定位 面向开发者展示一个本地优先、可追踪、可替换模型、可扩展前端通道的 companion agent runtime。
已发布位置 GitHub: pelaris99-lang/shion-runtime,文档由 GitHub Pages 从 main/docs 发布。

研究假设与期待

这个项目目前更准确的定位是 research prototype,而不是已经完成的产品。它提出一组关于长期 companion agent 的工程假设,并把这些假设落到可观测的 runtime 结构里。

假设 H1

长期连续性需要外部化状态。 如果 persona、memory summary、relationship state、reality state 和 response traces 被显式建模,agent 的连续性会比单 prompt 或纯聊天历史更稳定。

期待验证:跨会话恢复、窗口重开、模型切换后,核心身份和交互策略仍保持一致;失败时 trace 能指出丢失的状态层。

假设 H2

陪伴型 agent 需要先判断人类行为信号,再生成话语。 task intent、情绪信号、connection bid、boundary test、safety route 应该在生成前进入可解释的 appraisal 层。

期待验证:同一句输入在工作模式、陪伴模式、疲劳/深夜、情绪求助等状态下得到不同但可解释的响应计划。

假设 H3

结构化回复比裸文本更适合多通道 agent。 回复应拆成 message segments、emotion、expression state、typing performance、actions 和 state patch,而不是把 UI 语义藏进自然语言。

期待验证:同一 ShionResponse 可以被 PWA、未来聊天通道、debug renderer 复用,只在渲染层降级能力。

假设 H4

“人格表现”可以被部分工程化为受限认知机制。 AttentionGate、affective residue、ExpressionGate、repair loop 不是声称模型有主观体验,而是把偏置、遗漏、抑制、修复这些现象做成可检查变量。

期待验证:当系统显得冷淡、过度迎合、误解亲密信号或丢失上下文时,trace 能定位到 attention budget、dominant bias、lost signals 或 expression gate。

假设 H5

local-first 是亲密型 agent 的前提,不是附加功能。 越多真实生活上下文进入系统,越需要把敏感记忆、日志、位置、凭据和自动化状态留在用户控制的本地边界内。

期待验证:公开代码可复现架构,私人部署可保留个人连续性,两者通过明确文件边界和配置边界分离。

可证伪标准

不是“感觉更像人”就算成功

如果结构化状态不能改善跨会话稳定性,human appraisal 不能提升交互判断,DSL 不能降低通道耦合,trace 不能帮助定位失败,那么项目的核心假设就需要被修正。

研究期待

让失败变得可诊断

很多 agent 失败不是单次模型输出差,而是上下文选择、记忆污染、通道丢语义、表达层失控、隐私边界不清共同造成。这个 runtime 优先让这些失败有名字、有位置、有记录。

项目边界

不宣称已经解决意识或情感

表达状态和受限认知机制是交互建模与系统控制变量,不是主观体验证明。项目目标是建出可运行、可观察、可讨论的 companion-agent architecture。

学术与工程基础

Shion Runtime 不是孤立的幻想式设计,它更像把近几年 language agents、memory-augmented agents、cognitive architectures、affective computing 和 agent-computer interface 的若干线索合并到一个本地优先 companion-agent 原型里。

认知架构线索

CoALA 与模块化 language agent

CoALA 把 language agent 放进认知架构视角:模块化记忆、结构化 action space、与内部记忆和外部环境交互的决策过程。Shion Runtime 对应地把 persona/context、state store、runtime actions、renderer capabilities 和 trace 拆成明确组件。

推理与行动线索

ReAct、ACI 与可操作接口

ReAct 强调 reasoning traces 与 actions 交错;SWE-agent 的 ACI 思路说明 agent 能力会受到接口形状强烈影响。本项目把“前端聊天”降级为 transport,把核心交互能力放在 ShionEventShionResponse 和 tool/action-like payload 的接口设计上。

记忆与反思线索

Generative Agents、MemGPT、Reflexion

Generative Agents 展示了记忆记录、反思和检索对 believable behavior 的价值;MemGPT 从虚拟上下文管理角度处理有限 context;Reflexion 用语言反馈改进后续行为。Shion Runtime 当前对应为显式状态、context activation、reflection check、reroute 和 trace-first debugging。

情感计算线索

Affective Computing 与交互情绪建模

Affective computing 的重点不是让机器“真的有情绪”,而是识别、建模、表达和回应 affective signals。项目中的 human appraisal、emotion、companion state、relationship move、expression state 属于这一脉络下的交互变量。

与传统 chatbot 的差异

传统 chatbot 常把人格、记忆、风格和安全策略压在 system prompt 与聊天历史里。Shion Runtime 把这些拆到 runtime control plane:输入事件、上下文激活、状态补丁、回复 DSL、trace、renderer 降级。

与 task agent 的差异

task agent 优先优化任务完成率。companion agent 还要优化连续性、关系语境、表达节奏、现实感、边界感和不打扰策略,因此需要不同的 evaluation surface。

与虚拟角色系统的差异

虚拟角色系统常强调视觉和剧情设定。这里的关键不是角色皮肤,而是长期运行时:persona source of truth、state evolution、model-provider abstraction、privacy boundary 和 traceability。

参考脉络

关联研究与工程论文

  1. Cognitive Architectures for Language Agents / CoALA: 模块化记忆、结构化动作空间、通用决策过程。
  2. ReAct: Synergizing Reasoning and Acting in Language Models: 推理轨迹与外部行动交错。
  3. Generative Agents: Interactive Simulacra of Human Behavior: 记忆、反思、检索对可信行为模拟的重要性。
  4. MemGPT: Towards LLMs as Operating Systems: 有限上下文窗口下的虚拟上下文和多层记忆管理。
  5. Reflexion: Language Agents with Verbal Reinforcement Learning: 通过语言反馈和自我反思改善 agent 行为。
  6. Voyager: An Open-Ended Embodied Agent with Large Language Models: 长期探索、技能库、环境反馈和自验证循环。
  7. SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering: agent 能力依赖接口设计,ACI 是能力边界的一部分。
  8. Rosalind Picard, Affective Computing: 情感信号的识别、建模、表达和人机交互基础。

工程实现

核心思路是让每个前端或未来通道都归一化成同一种事件,再走同一条运行时路径。这样人格、状态、模型、表达和调试不会被散落到不同 UI 里。

输入归一化

PWA 或未来 transport 把用户输入转成 ShionEvent

上下文与状态

核心运行时加载 persona/context 文件、关系状态、背景现实状态和历史状态。

生成与整形

脚本或 OpenAI 兼容模型生成内容,再经过反思、表达状态和 DSL 约束。

结构化渲染

输出 ShionResponse、Message DSL、CharacterState 和 trace,前端按结构渲染。

核心运行时

core/

负责事件处理、上下文加载、状态存储、Message DSL、trace、LLM provider、human behavior appraisal、reflection loop、expression shaping 和 reality background。

服务层

server/

提供 HTTP/WebSocket 服务、认证配置、运行时配置和前端连接点。公开版保留通用配置,移除了私有部署路径。

PWA 前端

frontends/pwa/

React/Vite 应用负责登录、聊天体验、角色视觉资产、表达状态、debug 面板和 trace 查看。它不直接持有人格逻辑。

通道边界

transports/renderers/

通道和渲染器是适配层。未来 WeChat、桌面端或其他前端应该接入同一套 runtime,而不是复制一份人格系统。

人格来源

人格和交互规则是显式文件,可版本化、可审查、可替换。

状态连续性

运行时维护本地状态,支撑长期互动,而不是只依赖模型上下文窗口。

表达 DSL

回复不是裸文本,可包含分段、动作、表达状态和调试元数据。

可观察性

trace 是一等输出,方便排查生成、状态、上下文和路由问题。

技术机制展开

这一层面向 agent 开发者:重点不是“用了哪个模型”,而是模型前后的控制面怎么设计。Shion Runtime 把 LLM 当作可替换生成器,核心能力来自事件协议、状态演化、上下文激活、表达约束和 trace。

Transport / PWA -> ShionEvent -> deterministic triage -> HumanBehaviorEngine appraisal -> context activation from persona/context modules -> constrained cognition dry run - AttentionGate - perceived context - affective residue - ExpressionGate preview - repair path -> LLM provider or scripted fallback -> ExpressionGate application -> HumanBehaviorReflection check / optional reroute -> MessageDSL schedule -> CharacterState patch -> ShionResponse + TraceRecorder output
事件协议

ShionEvent 是所有通道的入口

它包含 sourceconversationIduserText、attachments、RealityContextChannelCapabilities、session metadata 和 client state。这样 PWA、WeChat、Codex、automation 不需要各自发明一套人格逻辑。

回复协议

ShionResponse 不只是文本

输出包含 dialogueemotionexpressionStateinteractionModecompanionStaterelationshipMovestatePatch 和 actions。自然语言只是其中一个字段。

Message DSL

把表达层从模型文本中拿出来

MessageDSL 支持 dialogue/system/scene,content 可包含 text、small_text、status_card、button;performance 可描述 typing、pause、send gap;emotion 和 sticker/live2d 字段服务前端表达。

状态补丁

CharacterState 是长期交互的低维投影

状态包含 emotion、mode、interactionMode、companionState、relationshipMove、memorySummary、cognition、lastInteractionAt、lastSource。它不是完整记忆库,而是每轮交互后的 runtime control state。

HumanBehaviorEngine

生成前的人类信号建模

当前实现以 deterministic triage 为主,输出 surfaceIntent、emotionalSignal、relationshipDelta、safetyRoute、bidForConnection、stanceTest、confidence、evidence。它的作用是让系统先形成交互判断,再决定生成路线。

Context Activation

按交互情境激活上下文模块

runtime 会根据 appraisal、用户输入、work-like signals、是否询问 Shion、现实相关信号等决定激活哪些 persona/context 模块。目标是避免每轮都塞入全部背景,同时让上下文选择可解释。

Constrained Cognition

把错觉、遗漏和偏置变成 trace 变量

AttentionGate 会估计 attentionQuality、attentionBudget、dominantBias、intentDetection、salienceWeights;perceivedContext 记录 noticed/lost/distorted signals;affectiveResidue 带 charge、suppression、decay。

ExpressionGate

表达约束不是最后润色

ExpressionGate 会根据 safety override、work/companion mode、attention state、residue pressure 决定 preferredOutput 和 blockedOutputs,再对 draft 施加约束,避免模型把表达风格和任务目标混在一起。

Reflection / Reroute

生成后还要对照 appraisal 检查

如果 draft 与 human appraisal、context activation 或 safety route 不一致,runtime 可以记录 reflection issues 并触发 reroute/revision。这个机制接近语言反馈式改错,而不是单次采样定生死。

TraceRecorder

每轮交互都能被还原

trace 记录 inbound_received、triage、state_before、human_appraisal、context_loaded、attention_gate、expression_gate、llm_route、reflection、state_patch、response_ready、state_after 等节点。

LLM Provider Abstraction

模型是可替换部件

公开版保留三条路线:scripted 用于离线开发和确定性测试,hosted 面向托管 OpenAI-compatible endpoint,local_openai_compatible 面向本地模型服务。provider 负责把 runtime context 编码成结构化 JSON 生成任务,并从不完美 JSON 中恢复可用 reply。

Channel Capability Degradation

富表达要能降级

ChannelCapabilities 显式声明 richDsl、stickers、buttons、stateCards、live2d、cameraSignals。PWA 可以显示完整 DSL;弱通道可以只渲染文本和少量状态。这让多通道扩展不破坏核心协议。

当前技术贡献

这个原型真正想证明什么

Shion Runtime 的贡献点不在单个模型能力,而在一套 companion-agent runtime decomposition:把长期人格系统拆成显式协议、状态机、上下文选择器、情绪/关系 appraisal、表达 DSL、可替换模型 route 和调试 trace。它使“陪伴感”从纯 prompt craft 迁移到可测试、可审查、可迭代的工程对象上。

当前测试结果

公开发布前已在本地完成一次工程检查。这里列的是这份公开包当前可复现的检查点,不包含私人工作区的敏感测试材料。

检查项 命令或范围 结果 说明
TypeScript 类型检查 npm run typecheck 通过 确认公开包的 TypeScript 编译约束没有被整理过程破坏。
生产构建 npm run build 通过 Vite PWA 可完成生产构建,静态前端资产生成正常。
运行时 smoke suite npm run smoke 与各专项 smoke 脚本 通过 覆盖 context、human appraisal、LLM parse、reflection、world reroute、reality background 等路径。
GitHub Pages main/docs 已构建 文档站点已配置为从仓库 docs 目录发布。
公开边界检查 手动整理与文件范围审查 通过 真实记忆、原始聊天记录、凭据、自动化记录、精确位置、日志和模型下载内容已从公开包移除。
测试方法论

当前测试主要验证 runtime invariants

这些 smoke tests 不是在证明“人格真实”或“长期关系成功”,而是在检查协议、上下文激活、LLM 解析、human appraisal、reflection、world-context reroute、reality background 等关键路径不会在公开包中断裂。

下一步评估

需要从工程测试走向交互评估

后续应该增加 longitudinal conversation sets、cross-channel replay、state recovery tests、privacy boundary tests、expression consistency scoring,以及人工标注的 interaction-quality rubric。

可继续补强

CI 结果展示

仓库已有 GitHub Actions 配置,后续可以在 README 与本页加入 CI badge,降低读者判断成本。

可继续补强

端到端截图

下一步建议补一组 PWA 首页、聊天界面、trace 面板截图,让项目理解速度更快。

可继续补强

安装容错

可以补充 Windows/macOS/Linux 的安装差异说明,以及常见 npm、Node、环境变量问题排查。

公开边界

这个项目最重要的发布原则是:展示系统设计,不展示真实用户生活。公开仓库应该只包含可复用工程、示例人格、示例配置和非敏感资产。

公开保留

可以让别人理解和运行的部分

  • PWA 前端源码、公共角色视觉资产
  • 核心 runtime、server、transport、renderer
  • 示例 persona/context 文件
  • deterministic smoke tests 和开发脚本
  • .env.example 与公开文档
公开排除

不能进入公开仓库的部分

  • 真实记忆、原始聊天记录、用户偏好细节
  • API key、token、cookie、登录状态和本地密钥
  • 精确或当前地理位置、私人日程、自动化注册表
  • 运行日志、trace、报告、下载模型、私有安装器
  • 任何描述真实个人生活习惯的文件

下一步工作规划

路线图按对外展示、工程成熟度、研究评估、长期生态四层推进。短期让别人更快看懂和跑起来,中期让 runtime 更稳定,长期把假设变成可复现实验。

短期:1 到 2 周

降低理解和试运行成本

补 README 截图、3 分钟 demo、CI badge、常见问题、首次运行检查脚本、GitHub issue labels、public trace examples,以及一个清晰的 “good first issue” 列表。

中期:1 到 2 个月

把本地部署和实验协议做稳

补 setup wizard、跨平台环境检查、记忆导入导出、隐私审计脚本、adapter API 文档、trace 浏览器、可配置模型路由、cross-channel replay 和 state recovery tests。

研究线:2 到 3 个月

建立 companion-agent evaluation surface

构建带人工标注的对话集,评估 continuity、attunement、boundary handling、task/companion mode switch、reality grounding、expression consistency、privacy leakage risk。

长期:3 个月以上

形成可扩展生态

形成版本化 persona packs、更多 transport 插件、本地模型优化路线、可复现 benchmark、长期记忆安全策略,以及稳定 release tag 策略。

对产品交流

最适合先讲的故事

长期陪伴智能体需要工程化边界:人格、记忆、表达、状态、隐私和调试都应该可维护。

对技术交流

最适合展示的亮点

统一事件模型、Message DSL、expression state、trace-first debugging、local-first privacy boundary。