Skip to content

Repository files navigation

ResearchOS

ResearchOS 是一个把“问题”研究成“观点”的个人深度研究工作台。

当前实现为 R1 持久化研究核心的首个可用迭代:

登录 → 工作台 → 选题池 → 创建研究项目 → 问题定义 → 研究假设 → 研究地图

本地运行

  1. 复制 .env.example.env,按需修改 POSTGRES_DBPOSTGRES_USERPOSTGRES_PASSWORD;同时保持 DATABASE_URLDIRECT_DATABASE_URL 中的连接信息一致。
  2. 启动 PostgreSQL 并初始化数据库:
npm install
npm run db:up
npm run db:deploy
npm run db:seed
npm run dev

打开 http://localhost:3000

混合 Agent 配置

研究假设和研究地图支持“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 build

当前工程结构

  • src/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:技术方案文档。

下一阶段

按照技术方案继续实现:

  1. 资料、证据与安全 URL 抓取。
  2. 研究地图父子关系、拖拽排序和画布视图。
  3. 研究资料 Agent 与证据核验。
  4. Red Team、结论版本和 Markdown 文章生成。

About

ResearchOS 是一个把“问题”研究成“观点”的个人深度研究工作台。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages