ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
一款开源、基于昔涟开发的桌面 AI 智能体/An open-source desktop AI agent based on Cyrene.
Translation pending
OtherTypeScript · CSSGitHub @Playa-CyreneSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Cyrene-Agent 是一个以《崩坏:星穹铁道》昔涟为核心角色的 Windows Live2D AI 桌面伴侣。
基于 Electron + TypeScript 开发的桌面端 Live2D 智能对话 Agent。
项目围绕昔涟(Cyrene)的角色设定,结合自研 CyreneHarness 引擎与 DMAE 记忆引擎,
将角色化聊天、个性化记忆、语音交互、工具调用与多平台接入整合在同一个桌面 Agent 中,
支持日常聊天(Chat)、辅助工作(Work)、代码协作(Code)、学习陪伴(Learn)四种对话模式。
npm install --global [email protected] 安装)飞书、微信 iLink、
nut-js键鼠自动化及原生截图功能依赖 Windows 环境。如果直接安装 Releases 中的打包版本,无需另外安装 Rust 和 Visual Studio Build Tools。
git clone https://github.com/Playa-Cyrene/Cyrene-Agent.git
# 或 Gitee(国内镜像):git clone https://gitee.com/playa0/cyrene-agent.git
cd Cyrene-Agent
pnpm install --frozen-lockfile
首次安装会下载 Electron、Pixi.js、Live2D 等相关依赖,具体耗时取决于网络环境。
首次从源码运行时,需要先构建 Rust 原生截图助手:
pnpm run build:screenshot-helper
pnpm run build
pnpm start
[!IMPORTANT]
原生截图助手不会以
.exe形式提交到 Git 仓库,因此首次克隆后必须执行一次pnpm run build:screenshot-helper。Windows 用户也可以直接双击项目根目录的
setup.bat完成依赖安装、构建和全局命令链接,之后双击start.bat即可启动。运行前需安装 pnpm 10.33.0。
开发模式:
pnpm run build:screenshot-helper
pnpm run dev
构建 Windows 可分发版本(自动构建 Electron 应用和 Rust 截图助手):
pnpm run package:win:dir
Cyrene 无需本地大语言模型即可正常聊天,但建议安装 BGE-M3 Embedding 模型:
[!IMPORTANT]
未安装 BGE-M3 不会影响基础聊天,依赖 Embedding 的增强功能会自动关闭或降级。
项目附带 cyrene 命令行入口,执行 pnpm run build:cli && pnpm link --global 后即可在任意目录使用,提供 version、run 等子命令,详见 cyrene --help。
pnpm run build已包含build:cli,但pnpm link --global仍需单独运行。正式安装版的cyrene desktop入口将在 1.x 提供。
pixi-live2d-display 与 Cubism Core 渲染,支持桌面置顶、鼠标交互、自然待机与嘴型同步。Cyrene 提供亮 / 暗两套界面主题,覆盖聊天、设置等主要界面:
暗色主题
亮色主题
下面各会话模式是 Harness 的"消费者":
.. 与符号链接逃逸)会被直接拒绝。stdio: "pipe" 启动,shell: false,cwd 强制为绑定工作目录;模型不能指定命令、服务 ID 或工作目录。内置支持的语言 — TypeScript / JavaScript / JSON、Python、Go、Rust、C / C++、Java、C#、PHP、Ruby、Kotlin、Lua、Vue、YAML(13 种,详见 src/main/lsp/server-catalog.ts)。
启动顺序 — 先按命令是否为绝对路径定位,否则在工作区 node_modules/.bin 中查找,最后回退到系统 PATH 逐目录遍历(Windows 还会按 PATHEXT 追加 .exe / .cmd 等扩展名)。
安装与排障 — 常见服务如 typescript-language-server、pyright-langserver、gopls、rust-analyzer、clangd、jdtls、OmniSharp、intelephense、ruby-lsp、kotlin-language-server、lua-language-server、vue-language-server、yaml-language-server;Windows 可用 where pyright-langserver,macOS/Linux 可用 which pyright-langserver 检查是否可发现。
自定义服务命令 — 在应用数据目录的 general-settings.json 中配置 lspServerOverrides,只覆盖 builtin 服务的 command / args / extensions / initializationOptions,不接受模型在对话中传入的启动命令。例如:
{
"lspServerOverrides": [
{
"id": "python-pyright",
"command": "basedpyright-langserver",
"args": ["--stdio"]
}
]
}
进程复用与释放 — 同一 serverId 的 LSP 进程在同一工作区内复用,避免反复冷启动;应用退出时统一释放。
materials/、notes/、exercises/、templates/ 与 learn/progress.md 目录结构,详见 Learn 模式指南。NeteaseOpenapiProvider 调用网易云 OpenAPI,提供搜索歌曲 / 艺人 / 专辑、每日推荐、我的歌单与收藏等能力。MpvController 控制打包内置的 mpv 进程,实现加载、播放、暂停、跳转、音量、停止等控制,无需唤起外部客户端。Work / Learn 模式中可与其他工具(联网搜索、文件、文档等)组合完成「搜歌 → 加入歌单 → 播放」等连续任务。LISTENING → THINKING → SPEAKING 状态流完成连续语音交流。Cyrene 内置和扩展的工具较多,主要覆盖以下类别:
txt、md、pdf、docx、xlsx、pptx、csv、json 等格式导入。stdio、SSE 与 HTTP Transport。invoke_skill、参考资料读取与 Slash Command。manifest.json + JS 入口文件)就是一个插件,在设置页统一管理启停;支持 ZIP 导入,安装走 staging 隔离校验 + 原子替换 + 失败自动回滚,内置路径穿越与压缩炸弹防护。@playa0v0/cyrene-plugin-sdk 提供全部公开类型、Manifest 校验与 Mock Context 测试工具,运行时仅依赖 ajv;配套《插件开发指南》与 cyrene-plugin-dev Skill,无需阅读宿主源码即可完成开发。examples/ 提供天气查询、长期记忆、定时自动化、系统状态与本地 ASR 契约五个示例,均可直接作为开发起点。pnpm test 一次性 / pnpm run test:watch 监听模式。pnpm run check:plugin-sdk 校验 SDK 打包,pnpm run test:plugin-examples 端到端验证官方示例。pnpm run sim 默认场景,sim:coffee / sim:mix / sim:rescue 单场景调试,产物输出到 sim-result/。pnpm run sim:sweep --rewardGain=3,5,7,10 跑 Worldbook 评分参数 sweep。| 层级 | 技术 |
|---|---|
| 运行环境 | Node.js 24 LTS + Electron 44 |
| 开发语言 | TypeScript 6.0 |
| 构建工具 | Vite 8 |
| 数据存储 | Node.js 24 内置 node:sqlite(DatabaseSync,无第三方驱动)— 主库 cyrene.sqlite 存会话轨迹 / 任务 / 动态 / token 用量;wiki.sqlite、search.sqlite 分别作为记忆与知识库检索索引;Embedding 向量以 JSON 文件落盘(JsonVectorStore,写入防抖) |
| 界面渲染 | HTML / CSS + React 19 + Tailwind CSS 4 + Pixi.js 7 + Ant Design X / Mantine + Chart.js |
| Live2D | pixi-live2d-display 0.5.0-beta + Cubism Core |
| Agent 核心 | CyreneHarness 主循环 + CTA 会话轨迹 + Structured Output / Native Function Calling |
| Agent 事件协议 | AG-UI(@ag-ui/core、@ag-ui/client)— 通过 RUN_STARTED / STEP_* / TEXT_MESSAGE_* / TOOL_CALL_* / RUN_FINISHED 等事件与渲染进程解耦 |
| 工具与沙箱 | 自研工具调度 + 副作用记账 + 重试策略 + 权限审批;Windows 命令沙箱 @anthropic-ai/sandbox-runtime |
| 代码协作 | 自研 LspManager + vscode-jsonrpc(LSP 客户端)、@ast-grep/napi(结构化代码搜索)、simple-git(git 集成) |
| 工具扩展 | @modelcontextprotocol/sdk(stdio / SSE / HTTP Transport) |
| 插件系统 | @playa0v0/cyrene-plugin-sdk(公开类型 + Manifest Schema 校验 + Mock Context 测试工具) |
| 记忆与检索 | Embedding(@xenova/transformers)+ BM25 + 自研 Cross-Encoder Reranker + DMAE V5.1(关键词命中召回 + 激活度衰减 + 三态可逆)+ @node-rs/jieba |
| 浏览器与桌面自动化 | Playwright + @nut-tree-fork/nut-js |
| 富文本渲染 | Streamdown + Shiki + KaTeX(Markdown / 代码高亮 / 公式) |
| 语音与媒体 | 多引擎 TTS / ASR + silk-wasm |
| 原生截图助手 | Rust + DXGI Desktop Duplication / Direct2D + WIC PNG + NDJSON IPC |
models/ # 本机 AI 模型(用户放置,见 MODEL_LICENSE.md)
└── Xenova/bge-m3/ # Embedding 模型(贴纸语义 + 场景识别,~570MB)
src/
├── cli/ # 命令行入口(cyrene 命令)
├── main/ # Electron 主进程
│ ├── orchestrator/ # Agent 核心:CyreneHarness 主循环 + CTA 会话轨迹 + 工具调度 + 权限审批
│ │ ├── harness/ # CyreneHarness(while 循环 + compaction + retry + uncertainty)
│ │ ├── tools/ # 工具注册表与内置工具(含 Code 模式工具、ast-grep 搜索)
│ │ ├── vendors/ # 多模型厂商适配(分级 Structured Output + Function Calling)
│ │ ├── sandbox/ # Windows 命令执行沙箱
│ │ ├── review/ # 计划审批(plan review)
│ │ └── structured-output/ # 统一 Structured Output 管线
│ ├── channels/ # 外部渠道适配(飞书 / 微信 iLink / QQ OneBot 11)
│ ├── memory/ # L0/L1/L2 记忆引擎 + DMAE Worldbook + 实体关系图
│ ├── rag/ # 检索增强生成 + Worldbook 注入
│ ├── lsp/ # LSP 客户端(manager / client / server-catalog)
│ ├── code-git/ # Code 模式 git 服务(status / commit / branch / push)
│ ├── learn/ # Learn 模式(Obsidian Vault 绑定 + 进度总览)
│ ├── tasks/ # 任务面板(任务执行 / 委派 / 子 Agent 运行时)
│ ├── music/ # 音乐陪伴(播放 / 推荐 / 会话)
│ ├── moments/ # 动态 / 社交信息流
│ ├── news/ # 消息公告
│ ├── permission/ # 权限审批(checkPermission / risk 等级)
│ ├── plugin-host/ # 插件宿主服务
│ ├── proactive/ # 主动对话(模型 / 策略 / 路由)
│ ├── skills/ # Skill 系统(内置 + 用户自定义)
│ ├── asr/ tts/ call/ # 语音识别 / 合成 / 通话
│ ├── cita/ # CITA 上下文理解与建议引擎
│ ├── relationship/ social-context/ # 用户关系画像 / 社交上下文
│ ├── scheduler/ # 定时任务(提醒 / 日程)
│ ├── updater/ # 应用自动更新
│ └── ... # prompts / protocols / services / settings / startup / windows 等
├── plugins/ # 插件系统核心(manifest 校验 / 加载器 / 生命周期)
├── preload/ # Electron preload 桥接
├── renderer/ # Vite 渲染层(React 19 组件库 + Live2D 渲染 + 各窗口入口)
└── shared/ # 主进程与渲染进程共享代码
examples/ # 插件开发示例(weather-tool / long-term-memory / system-status / ...)
packages/plugin-sdk/ # @playa0v0/cyrene-plugin-sdk 源码
静态资源源文件见
src/renderer/public/(音频 / 头像 / Cubism Core / 贴纸等), Live2D 模型见 MODEL_LICENSE.md。
pnpm run release 从提交记录自动生成。本项目为非官方粉丝同人作品,与 HoYoverse / 米哈游无任何关联、 背书或赞助关系。
《崩坏:星穹铁道》、"昔涟"角色及其相关美术,世界观、商标等知识产权 归 HoYoverse / 米哈游所有。
关于授权范围的说明:
本仓库的源代码遵循 MIT License,Copyright (c) 2026 Playa。 MIT 仅约束本仓库的源代码,不适用于角色、Live2D 模型与美术资产。
角色 IP(《崩坏:星穹铁道》"昔涟" 等)、Live2D 模型(models/cyrene/)、
美术资产遵循各自对应的授权:
特别感谢模型原作者慷慨授权本项目使用、修改并再分发其作品。
同样感谢组织成员与维护者与每一位贡献者——谢谢你们在业余时间无偿承担分诊、审查、适配与答疑,为这个项目省下了大量琐碎而必要的工作。排名不分先后,每一份投入都算数。
欢迎通过 GitHub Issues / PR 交流。请保持讨论的礼貌与主题相关性。
本项目由个人独立开发,所有功能免费开放。
如果 Cyrene 陪伴你的日子还不错,可以扫码请作者喝杯咖啡 —— 完全随缘,不支持也完全不影响使用。
你的支持会帮助我承担项目开发和维护中的一些开销(模型 API、测试、社群维护等),让 Cyrene 能够持续迭代。
不方便扫码也没关系 —— 随手点一个 Star,或者把 Cyrene 分享给同样喜欢音游的朋友,就已经是很好的支持了。
如果你喜欢这个项目,欢迎点一个 Star。这会帮助更多喜欢昔涟的人发现它。
| 文档与邮件 | ExcelJS、docx、PDFKit、Nodemailer |
| 测试 | Vitest 5 |