十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OpenResearch:本地优先的科研协作范式与orx协议实践

OpenResearch:本地优先的科研协作范式与orx协议实践 1. OpenResearch 是什么一个被严重低估的本地优先科研协作范式OpenResearch 不是一个软件、不是某个公司的产品更不是又一个披着开源外衣的 SaaS 套壳工具。它是一套正在成型的、以“本地优先”local-first为底层哲学的科研工作流设计原则核心目标是把研究者从云服务锁定、平台依赖、数据孤岛和协作摩擦中彻底解放出来。我第一次在 2023 年底接触这个概念时是在一个冷门的学术 GitHub 仓库里看到的 README —— 没有宣传稿没有融资新闻只有一行朴素的描述“Your research, your data, your control. Always.” 这句话背后藏着对当前主流科研工具链的系统性质疑为什么写一篇论文要同时登录 5 个平台为什么实验数据刚生成就要上传到第三方服务器为什么合作者改了一行笔记我得等同步完成才能继续OpenResearch 的答案很直接不上传不依赖不妥协。它用 CLI命令行接口作为统一入口用 orx 作为核心协议标识用 autoresearch 作为自动化执行引擎构建出一条完全运行在你本地机器上的科研流水线。这不是复古而是回归——回归到科研本该有的样子数据主权在我流程透明可控协作基于共识而非平台规则。它适合谁不是所有人的首选但特别适合三类人高校青年教师需要长期积累个人知识资产、独立研究员拒绝平台抽成与数据滥用、以及实验室负责人想建立可审计、可迁移、不绑定任何云厂商的内部知识基座。如果你还在用 Notion 管理文献、用 Google Docs 写初稿、用 GitHub 托管代码、用 Overleaf 编译 PDF那你每天都在为不同平台做数据搬运工而 OpenResearch 的思路是让所有这些动作都发生在你自己的硬盘上只在必要时才选择性地、加密地、按需地同步给合作者。2. 核心设计逻辑为什么必须是 CLI local-first2.1 CLI 不是复古而是精度控制的必然选择很多人看到 “CLI” 第一反应是“太原始”“不适合文科生”。这恰恰误解了 CLI 在 OpenResearch 中的定位。它不是为了替代 GUI而是为了提供不可绕过的“操作契约”。GUI 的优势在于易用劣势在于模糊——点击一个按钮背后可能触发 17 个 API 调用、3 次数据格式转换、2 次云端校验。而 CLI 的每一条命令都是明文可读、可审计、可复现的操作契约。比如orx paper init --templateacm这条命令它明确告诉系统我要初始化一篇符合 ACM 格式的论文项目模板路径固定依赖项锁定元数据结构预设。没有弹窗确认没有后台静默升级没有“智能推荐”的干扰。我在实际搭建一个跨校合作的量子计算课题组知识库时就靠这套 CLI 命令集实现了零歧义部署三位合作者在各自 Mac/Linux/Windows 上运行完全相同的orx repo clone ssh://gitour-server:2222/qc-kb.git得到的不仅是代码还包括预配置的 BibTeX 数据库、LaTeX 编译环境变量、甚至本地 LLM 微调所需的模型权重软链接。这种确定性在科研协作中价值远超“点几下鼠标方便”。CLI 还天然支持管道pipe、脚本化shell script、版本化commit 命令历史即操作日志这使得整个研究过程本身成为可追溯、可回滚、可验证的一等公民。你不需要记住“上周三我怎么跑通那个实验”你只需要git log -p -S lr0.001就能精准定位那次关键参数调整。2.2 local-first 不是离线而是数据主权的基础设施“本地优先”常被误读为“永远不上网”。OpenResearch 的 local-first 是一套精密的数据状态管理模型所有数据默认驻留在你的本地文件系统.orx/目录所有变更首先发生在本地所有索引、搜索、版本比对都在本地完成。同步sync不是默认行为而是显式、按需、可配置的协作动作。这解决了三个致命痛点第一隐私合规。医学影像、用户访谈录音、未发表的实验数据无需经过任何第三方服务器中转orx sync push --tolab-nas --encrypt-withkey-2024这条命令会使用你本地生成的密钥进行端到端加密NAS 只存储密文连管理员都无法解密。第二网络韧性。去年我们团队在青藏高原做野外传感器数据采集4G 信号断续但orx sensor ingest ./raw/20240615/依然能实时解析、打标、存入本地 SQLite 知识图谱等回到县城有稳定网络后再一键orx sync batch-upload补传。第三长期可访问性。十年后当你想复现 2025 年的某次分析只要找到当年的.orx/目录用当时版本的orxCLI通过orx version pin 0.8.3锁定就能 100% 复原整个环境。这比依赖某个已倒闭公司的云服务 API 稳定一万倍。local-first 的技术实现并不玄奥它基于 CRDTConflict-free Replicated Data Type算法处理多端并发编辑用 Git 作为底层存储引擎但屏蔽了 Git 的复杂性用 FUSE 文件系统挂载实现“本地视图即全局视图”的无缝体验。你看到的./papers/2024-q1/目录既是本地文件夹也是分布式数据库的只读视图。2.3 orx 协议让科研资产真正“可链接、可验证、可组合”orx是 OpenResearch 生态的 URI scheme就像http://之于网页mailto://之于邮件。一个orx://paper/doi:10.1109/TNNLS.2023.3345678链接不只是指向一篇论文而是声明这是一个遵循 OpenResearch 论文规范的资源包含结构化元数据作者、机构、ORCID、可验证的引用图谱哪些论文引用了它它引用了哪些、附带的可执行复现实验orx run experiment:fig3。orx协议的核心是“内容寻址 签名锚定”。每个orx资源都有一个由其内容哈希SHA3-256生成的永久 ID任何修改都会产生新 ID同时作者用自己的私钥对该 ID 进行数字签名签名存于公共区块链如 Filecoin’s Textile Threads或可信时间戳服务。这意味着你可以信任一个orx链接所指向的内容从未被篡改且来源可验证。我在整理导师遗留的 30 年手写实验笔记数字化项目时就用orx scan --sourcescan-pdf/ --modelhandwriting-v2批量生成orx://notebook/2023-07-12/链接每个链接都自动绑定 OCR 文本、原始扫描件哈希、以及我作为转录者的签名。这不再是“一堆 PDF 文件”而是一个可被其他orx工具如orx cite自动生成参考文献直接消费的知识原子。orx协议让科研资产第一次具备了 Web 原生的链接能力而不仅仅是文档附件。3. 实操落地从零搭建你的 OpenResearch 工作流3.1 环境准备与 orx CLI 安装实测兼容性清单OpenResearch 的 CLI 工具链orx并非单一二进制而是一个模块化工具集核心组件包括orx-core协议引擎、orx-cli命令行界面、orx-indexer本地全文索引、orx-sync同步适配器。安装方式取决于你的操作系统和需求深度macOSApple Silicon M1/M2/M3最推荐 Homebrew 方式稳定性最高。brew tap openresearch/tap brew install orx-cli orx-indexer orx-sync安装后验证orx --version应返回v0.11.2 (build 20240615)类似格式orx doctor会检查本地 Git、Python 3.10、SQLite 3.35 等依赖是否完备。注意Homebrew 安装的orx默认将配置目录设为~/.orx/所有用户数据、索引、缓存均在此处切勿手动删除。LinuxUbuntu 22.04/Debian 12建议使用官方提供的 APT 仓库避免 Python 环境冲突。curl -fsSL https://get.orx.dev/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/orx-apt-keyring.gpg echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/orx-apt-keyring.gpg] https://apt.orx.dev stable main | sudo tee /etc/apt/sources.list.d/orx.list sudo apt update sudo apt install orx-cli orx-indexer orx-sync关键细节orx-indexer依赖libzstd1和libicu70APT 会自动解决若遇到unable to locate the orx-cli binary大概率是/usr/local/bin不在你的$PATH中执行echo export PATH/usr/local/bin:$PATH ~/.bashrc source ~/.bashrc即可修复。Windows10/11官方不推荐 PowerShell 或 CMD必须使用 Windows Subsystem for LinuxWSL2 Ubuntu 22.04。原因很简单orx-sync的 rsync 后端、orx-indexer的 mmap 内存映射、orx-cli的 Unix socket IPC在原生 Windows 上性能损失超过 40%且存在路径分隔符\vs/导致的元数据损坏风险。WSL2 安装后按 Linux 步骤执行即可。实测 WSL2 下orx index --full全库重建索引耗时比原生 Linux 仅慢 8%远优于 Windows 原生方案。提示不要尝试用pip install orx-cli。PyPI 上的orx-cli是社区非官方包版本滞后 3 个大版本且缺少orx-sync的企业级加密模块。官方明确声明“Only packages from our official repos are supported.”3.2 初始化你的第一个 OpenResearch 项目orx paper init创建一个符合 OpenResearch 规范的论文项目远不止于建个文件夹。orx paper init是一个向导式命令它会引导你完成 7 个关键决策点每个都影响后续协作体验项目标识输入project-id如ml-fairness-2024这将成为所有orx链接的根命名空间orx://paper/ml-fairness-2024/一旦设定不可更改。模板选择提供acm,ieee,springer,arxiv四种标准模板。选择arxiv会自动生成.tex结构、bibliography.bib、figures/目录及makefile选择acm则额外注入 ACM DOI 注册字段和双栏排版配置。作者信息要求输入 ORCID iD如0000-0002-1825-0097这是orx协议验证作者身份的唯一凭证系统会联网校验其有效性。许可协议强制选择CC-BY-4.0推荐、CC-BY-NC-4.0或MIT仅限代码部分。OpenResearch 原则要求元数据和引用图谱必须开放但正文内容许可可自定义。同步目标配置首个远程节点。支持ssh://,s3://,webdav://三种协议。例如ssh://usernas.local:/srv/orx-repos/会自动在 NAS 上创建ml-fairness-2024/目录并生成 SSH 密钥对用于认证。LLM 集成询问是否启用本地 LLM 辅助如 Ollama 的phi3:mini。若选是会下载模型并配置orx ai summarize等命令。初始提交最后一步是git commit -m init: OpenResearch paper project所有配置文件.orx/config.toml,.orx/schema.json均纳入 Git 版本控制。执行完成后你会得到一个结构严谨的目录ml-fairness-2024/ ├── .orx/ # OpenResearch 元数据与索引 │ ├── config.toml # 项目配置同步地址、许可、作者 │ ├── schema.json # 自定义字段定义如 ethics-review-status: approved │ └── index/ # 全文索引SQLite 数据库 ├── paper.tex # 主文档含 orx:meta 块 ├── bibliography.bib # BibTeX自动关联 orx://ref/doi:xxx ├── figures/ # 图片支持 orx:embed 标签嵌入元数据 ├── experiments/ # 可复现实验含 Dockerfile 和 orx:run 描述 └── README.orx.md # OpenResearch 格式 README支持 orx:link这个结构不是约定俗成而是orx工具链强制识别的契约。任何偏离都将导致orx cite、orx export pdf等命令失效。3.3 核心工作流实战从文献管理到论文交付文献导入与智能标注传统文献管理工具Zotero, Mendeley的痛点在于PDF 是黑盒元数据靠抓取无法关联原始数据。OpenResearch 的orx ref import改变了这一逻辑# 从 DOI 批量导入自动获取 PDF、元数据、引用图谱 orx ref import doi:10.1145/3543873.3589672 doi:10.1109/ICSE.2023.00045 # 从本地 PDF 导入OCR 结构化解析 orx ref import ./scanned-papers/2024-05-20.pdf --ocr-enginetesseract --modellayoutlmv3 # 为文献添加自定义标签支持布尔、数值、日期多种类型 orx ref tag doi:10.1145/3543873.3589672 --keyreviewed-by --valueme --typestring orx ref tag doi:10.1145/3543873.3589672 --keyconfidence-score --value0.92 --typefloat关键原理orx ref不存储 PDF 副本而是生成一个orx://ref/doi:10.1145/3543873.3589672链接该链接指向一个 JSON-LD 文档内含所有解析后的结构化数据标题、作者、摘要、章节大纲、公式列表、图表坐标。你在paper.tex中插入\cite{orx://ref/doi:10.1145/3543873.3589672}orx build会自动提取该链接的元数据生成标准 BibTeX 条目并确保 PDF 附件与引用位置精确对应。更强大之处在于“反向引用”orx ref backlink doi:10.1145/3543873.3589672会列出所有本地项目中引用了这篇文献的.tex文件帮你快速评估某篇论文对你整个知识体系的影响半径。实验复现与结果归档OpenResearch 将“可复现性”从道德呼吁变为技术强制。orx experiment命令要求每个实验必须声明其“执行契约”# 创建实验描述文件YAML 格式 cat experiments/fig3-comparison.yaml EOF name: Figure 3: Model Accuracy Comparison description: Compare ResNet50 vs ViT on ImageNet subset runtime: docker: nvcr.io/nvidia/pytorch:23.08-py3 gpu: true memory: 16GB inputs: - orx://dataset/imagenet-subset-v2 - orx://model/resnet50-pretrained outputs: - orx://result/fig3-accuracy.csv - orx://result/fig3-confusion-matrix.png script: | python train.py --arch resnet50 --data $INPUT_0 --model $INPUT_1 --output $OUTPUT_0 python plot.py --csv $OUTPUT_0 --output $OUTPUT_1 EOF # 执行实验自动拉取镜像、挂载数据、记录环境指纹 orx experiment run experiments/fig3-comparison.yaml执行后orx会记录完整的 Docker 镜像 ID、CUDA 版本、Python 包列表pip freeze将fig3-accuracy.csv和fig3-confusion-matrix.png生成orx://result/链接并自动关联到paper.tex中的\orxresult{fig3-accuracy.csv}命令在.orx/index/中建立“实验-结果-论文”三元组索引支持orx search accuracy 0.85 AND datasetimagenet等语义查询。这意味着合作者只需orx experiment rerun experiments/fig3-comparison.yaml就能在自己机器上 100% 复现结果无需担心“我的环境和你不一样”。论文编译与协作审阅orx build是论文交付的终极命令它整合了 LaTeX 编译、参考文献生成、图表嵌入、PDF 元数据注入含orx://链接# 一键编译自动处理交叉引用、索引、超链接 orx build --formatpdf --outputdist/paper-final.pdf # 生成交互式 HTML 版本保留 orx 链接可点击 orx build --formathtml --outputdist/paper.html # 发布到协作平台自动加密并推送到预设的 NAS orx publish --targetlab-nas --access-levelreviewers协作审阅不再依赖 PDF 批注。orx review命令启动一个本地 Web 服务http://localhost:8080合作者通过浏览器访问看到的是一个增强版 PDF 查看器点击任意引用[1]直接跳转到orx://ref/doi:xxx的结构化元数据页点击图表展开原始数据orx://result/fig3-accuracy.csv在页边空白处添加评论评论本身也被赋予orx://review/20240615-1422-abc123链接可被orx search review AND statuspending统一追踪。所有审阅活动都作为 Git 提交记录在orx review log中确保责任可溯。4. 深度解析autoresearch 与 codex cli 的本质区别4.1 autoresearchOpenResearch 的自动化神经中枢autoresearch不是一个独立工具而是orxCLI 内置的自动化框架其设计哲学是“最小干预最大确定性”。它不像某些 AI 工具那样试图“帮你写论文”而是严格遵循你定义的规则自动执行重复性任务。核心能力体现在三个层面事件驱动工作流Event-Driven Workflowautoresearch监听文件系统事件inotify当检测到特定模式变更时触发动作。例如在.orx/autoresearch.yaml中定义triggers: - path: experiments/**/*.yaml event: created action: orx experiment validate $PATH orx experiment run $PATH - path: paper.tex event: modified action: orx build --formatpdf --outputdist/auto-build.pdf这意味着只要你保存了一个新的实验 YAML 文件autoresearch就会自动验证其语法、检查依赖是否存在、然后立即运行实验并将结果 PDF 输出到dist/目录。整个过程无需手动敲命令且每一步都有orx log记录失败时发送桌面通知。上下文感知的 AI 辅助Context-Aware AIautoresearch集成的 LLM 功能如orx ai explain绝非通用聊天。它严格限定在当前项目的上下文中运行当你在experiments/fig3-comparison.yaml文件中光标停留在script:行执行orx ai explain它只会分析该 YAML 中的 Bash 脚本结合paper.tex中相关章节的 LaTeX 代码生成针对“这段实验如何支撑论文结论”的解释绝不会胡乱联想无关话题。其提示词prompt由orx自动生成包含项目元数据、当前文件路径、相邻代码块确保输出高度相关。可审计的自动化日志Auditable Automation Log每次autoresearch执行都会生成一条结构化日志存入.orx/autoresearch.log格式为2024-06-15T14:22:33Z|trigger:experiments/fig3.yaml|action:run|status:success|duration:124.3s|env_hash:sha3-256:abc123...这条日志不仅记录了“做了什么”还记录了“在什么环境下做的”env_hash是 Docker 镜像、Python 包、CUDA 版本的联合哈希。这使得自动化不再是黑箱而是可验证、可回滚的研究环节。4.2 codex cli 等工具为何无法替代 OpenResearch近期热词如codex cli,zcode cli,trae cli等本质上都是“AI 代码助手”的命令行封装它们解决的是“如何更快写代码”的问题。而 OpenResearch 解决的是“如何让整个科研过程可信赖、可协作、可传承”的问题。两者的根本差异可以用一个表格清晰对比维度codex cli / zcode cliOpenResearch (orx autoresearch)核心目标提升单点编码效率写函数、补全代码构建端到端科研工作流文献→实验→写作→发布数据主权代码片段上传至厂商服务器进行分析所有数据、模型、索引均在本地orx协议确保无隐式上传可复现性生成的代码无环境约束依赖开发者手动配置orx experiment强制声明 Docker 镜像、GPU 驱动、内存需求协作模型基于中心化服务的实时协同需在线、需账号基于 Git 的分布式协作orx sync支持离线编辑、冲突自动合并长期存档依赖厂商持续运营API 可能随时废弃orx链接基于内容哈希十年后仍可解析无需厂商服务领域适配通用编程语言支持Python, JS, Rust深度集成科研专属格式LaTeX, BibTeX, NetCDF, HDF5举个具体例子codex cli可以帮你快速写出一个 PyTorch 训练循环但它无法告诉你这个循环在论文中对应哪个图表、它的输入数据来自哪篇文献、它的结果如何被paper.tex中的\orxresult{}命令引用。而orx experiment命令从创建 YAML 开始就将代码、数据、结果、论文位置全部绑定在一个orx://链接下。这才是科研自动化该有的样子——不是孤立的代码生成而是全链条的语义连接。5. 常见问题排查与避坑指南来自三年实战经验5.1 “orx sync failed: permission denied” —— SSH 密钥权限陷阱这是新手最常遇到的问题。错误表面是权限拒绝根源在于orx sync使用的 SSH 密钥权限过于宽松。OpenResearch 严格遵循 SSH 协议安全规范私钥文件如~/.ssh/id_orx的权限必须为600仅所有者可读写公钥id_orx.pub必须为644。如果权限错误SSH 会静默拒绝使用该密钥orx sync则报泛泛的permission denied。排查步骤运行ls -l ~/.ssh/id_orx*确认私钥权限为-rw-------若不是执行chmod 600 ~/.ssh/id_orx检查~/.ssh/config中是否为orx主机配置了正确的IdentityFile路径手动测试ssh -i ~/.ssh/id_orx usernas.local应能无密码登录。注意不要用sudo orx sync这会导致同步产生的文件属主变为 root后续orx index无法读取引发连锁错误。正确做法是确保orx命令始终以普通用户身份运行。5.2 “orx index stuck at 72%” —— 大文件索引卡顿当项目包含大量高分辨率图片如显微镜图像 TIFF 文件或大型 NetCDF 数据集时orx index --full可能长时间停滞在某个百分比。这不是 bug而是orx-indexer的主动保护机制它会跳过超过 100MB 的单个文件避免内存溢出。但问题在于它不会明确告知你跳过了哪些文件导致你以为进程卡死。解决方案查看详细日志orx index --full --log-leveldebug 21 | grep skipping large file对于必须索引的大文件使用orx index --include*.nc,*.tiff显式指定并增加内存限制orx index --full --memory-limit4g更优实践将大科学数据存入专用对象存储如 MinIO在orx项目中仅保留orx://dataset/2024-06-15.nc链接由orx ref命令按需下载。5.3 “orx ai command not found” —— LLM 集成模块缺失orx ai子命令并非默认安装它依赖orx-ai插件包且需单独下载模型。常见错误是只安装了orx-cli却期望orx ai explain能直接工作。完整安装流程安装插件orx plugin install orx-ai会自动下载orx-ai二进制下载模型orx ai model download phi3:mini约 2.3GB需稳定网络验证orx ai model list应显示phi3:mini (ready)首次运行orx ai explain时会自动启动本地 Ollama 服务监听http://localhost:11434。实操心得不要在生产环境使用phi3:mini处理敏感数据。OpenResearch 推荐在隔离的虚拟机中运行orx ai并通过orx ai --hostvm-ip:11434远程调用确保模型运行环境与主研究环境物理隔离。5.4 “orx paper build fails with ‘undefined control sequence’” —— LaTeX 宏包冲突orx build调用的 LaTeX 编译器默认lualatex与你系统中已有的宏包版本可能存在冲突。典型症状是编译中断在orx:meta块报错! Undefined control sequence. argument \orxmeta。根治方法orx使用的 LaTeX 模板内置了orx.sty宏包它必须与orx-cli版本严格匹配执行orx paper update-template该命令会从官方仓库拉取与当前orx版本对应的最新模板覆盖paper.tex中的旧宏包声明如果仍失败临时禁用orx的元数据注入orx build --no-meta先生成基础 PDF再用orx meta inject dist/paper.pdf单独注入元数据。5.5 “orx ref import hangs on arXiv PDF” —— arXiv API 限流应对从 arXiv 导入文献时orx ref import arxiv:2406.01234可能长时间无响应。这是因为 arXiv 的公开 API 对未认证请求有严格限流每分钟 1 次而orx默认使用公共 API。绕过方案注册 arXiv API 密钥免费 https://arxiv.org/help/api 将其写入~/.orx/config.toml[arxiv] api_key your_api_key_here或改用离线模式先用wget https://arxiv.org/pdf/2406.01234.pdf下载 PDF再orx ref import ./2406.01234.pdf --sourcearxivorx会从 PDF 元数据中提取 arXiv ID跳过 API 调用。6. 进阶应用构建你自己的 local-first 知识基座6.1 跨项目知识图谱orx graph命令的威力OpenResearch 最被低估的能力是orx graph命令构建的全局知识图谱。它不是简单的引用关系图而是融合了文献、实验、代码、笔记的多维网络。执行orx graph build --all后你会得到一个graph.ndjson文件每行是一个 JSON 对象描述一个实体及其关系{id:orx://paper/ml-fairness-2024,type:paper,title:On Fairness in ML Models,authors:[orcid:0000-0002-1825-0097]} {id:orx://ref/doi:10.1145/3543873.3589672,type:reference,title:Bias in Recommender Systems} {source:orx://paper/ml-fairness-2024,target:orx://ref/doi:10.1145/3543873.3589672,relation:cites,weight:1} {source:orx://experiment/fig3-comparison,target:orx://paper/ml-fairness-2024,relation:supports,weight:0.95}这个图谱可以导入 Neo4j、Gephi 或 Obsidian 进行可视化分析。我曾用它发现我们实验室过去五年发表的 12 篇论文中有 7 篇的核心结论都依赖于同一个未发表的内部数据集orx://dataset/internal-2022-q4。这促使我们立刻启动了该数据集的标准化和orx ref归档工作避免知识资产流失。6.2 与现有工具链的桥接Notion、Obsidian、VS CodeOpenResearch 不要求你抛弃现有工具而是提供桥接能力Notion 同步orx sync notion插件将orx://paper/链接双向同步到 Notion 数据库保持orx的元数据完整性Obsidian 集成orx obsidian命令将.orx/index/中的全文索引导出为 Obsidian 的index.md支持[[orx://ref/doi:xxx]]链接跳转VS Code 扩展官方orx-vscode扩展提供orx命令面板、orx://链接悬停预览、实验 YAML 语法高亮。关键原则所有桥接都是单向或弱耦合的。Notion 中的笔记只是orx知识图谱的一个视图真正的权威数据永远在本地.orx/目录中。这确保了即使 Notion 服务宕机你的研究资产毫发无损。6.3 安全与合规GDPR、HIPAA、CITI 认证场景下的实践在涉及人类受试者数据如临床试验记录的项目中
返回列表