ResearchOS 是一个把“问题”研究成“观点”的个人深度研究工作台。
当前实现为 R1 持久化研究核心的首个可用迭代:
登录 → 工作台 → 选题池 → 创建研究项目 → 问题定义 → 研究假设 → 研究地图
- 复制
.env.example为.env,按需修改POSTGRES_DB、POSTGRES_USER和POSTGRES_PASSWORD;同时保持DATABASE_URL、DIRECT_DATABASE_URL中的连接信息一致。 - 启动 PostgreSQL 并初始化数据库:
npm install
npm run db:up
npm run db:deploy
npm run db:seed
npm run dev打开 http://localhost:3000。
研究假设和研究地图支持“AI 生成初稿 + 用户审核确认 + 手动编辑”的混合交互。首次进入空白阶段会自动尝试生成一次;已有草稿、用户编辑或确认内容时不会静默覆盖。未配置 Provider 或 Provider 调用失败时,页面保留完整的手动新增、编辑、删除和保存路径。
在 .env 中配置任意 OpenAI-compatible 服务:
AI_BASE_URL="https://api.openai.com/v1"
AI_API_KEY="your-api-key"
AI_MODEL="gpt-4o-mini"更新 Prisma Schema 后执行 npx prisma generate,数据库执行 npm run db:deploy;如果正在运行 Next.js 开发服务,重启 npm run dev 以加载新的 Prisma Client 和环境变量。
本地容器运行依赖 Podman 与 podman compose。项目使用 .podman-compose/config.json 隔离 Compose 凭据配置,避免读取已卸载 Docker Desktop 遗留的 credsStore;启动脚本设置 PODMAN_COMPOSE_WARNING_LOGS=false,不再输出外部 Compose provider 提示;PostgreSQL 镜像通过 mirror.gcr.io 获取,避免部分网络环境访问 Docker Hub 时出现 EOF。若本机没有 Podman,也可以使用 npx prisma dev --name researchos --detach。该命令返回代理连接串时,应用侧 DATABASE_URL 需要追加 &pgbouncer=true,迁移使用的 DIRECT_DATABASE_URL 保持原连接串。
npm run typecheck
npm test
npm run test:e2e
npm run buildsrc/app/:Next.js 页面和 API Route Handlers。src/app/(app)/:受会话保护的工作台、选题池和研究项目真实路由。src/server/modules/:按工作空间过滤的 Prisma 仓储。src/lib/domain.ts:研究领域类型和状态。src/server/auth/:数据库会话和当前工作空间边界。prisma/schema.prisma:PostgreSQL 核心对象模型。docs/20260812-researchos-prd.md:产品需求文档。docs/20260812-researchos-tech-design.md:技术方案文档。
按照技术方案继续实现:
- 资料、证据与安全 URL 抓取。
- 研究地图父子关系、拖拽排序和画布视图。
- 研究资料 Agent 与证据核验。
- Red Team、结论版本和 Markdown 文章生成。