{"id":51492313,"url":"https://github.com/citrus-bit/anaxa","last_synced_at":"2026-07-26T08:01:27.692Z","repository":{"id":347955531,"uuid":"1195714375","full_name":"Citrus-bit/Anaxa","owner":"Citrus-bit","description":"Anaxa 是一个面向科研工作流的开源智能体系统。它不是单纯的聊天机器人，也不是无人监管的自动发论文机器，而是把文献检索、证据审计、实验执行、论文写作、同行评审式检查和最终产物打包放进同一个可追踪的研究生命周期中。","archived":false,"fork":false,"pushed_at":"2026-05-10T12:49:20.000Z","size":28413,"stargazers_count":121,"open_issues_count":0,"forks_count":12,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-05-10T13:25:00.548Z","etag":null,"topics":["agent","agents","css","deepresearch","fastapi","harness","langchain","langgraph","llm","multi-agent","nextjs","nginx","python","react","research","sandbox","subagents","superagent","typescript","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Citrus-bit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-30T01:47:17.000Z","updated_at":"2026-05-10T12:49:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Citrus-bit/Anaxa","commit_stats":null,"previous_names":["citrus-bit/medrix-flow","citrus-bit/anaxa"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Citrus-bit/Anaxa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citrus-bit%2FAnaxa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citrus-bit%2FAnaxa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citrus-bit%2FAnaxa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citrus-bit%2FAnaxa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Citrus-bit","download_url":"https://codeload.github.com/Citrus-bit/Anaxa/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Citrus-bit%2FAnaxa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35905913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-26T02:00:06.503Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agents","css","deepresearch","fastapi","harness","langchain","langgraph","llm","multi-agent","nextjs","nginx","python","react","research","sandbox","subagents","superagent","typescript","workflow"],"created_at":"2026-07-07T12:02:11.382Z","updated_at":"2026-07-26T08:01:27.684Z","avatar_url":"https://github.com/Citrus-bit.png","language":"Python","funding_links":[],"categories":["Suites, Systems \u0026 Meta"],"sub_categories":["Autonomous Research Systems"],"readme":"# Anaxa 1.0\n\n[English](./README_en.md) | **中文**\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./Anaxa%20logo.jpg\" alt=\"Anaxa\" width=\"180\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Version-1.0-111827?style=for-the-badge\" alt=\"Version 1.0\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Orchestration-LangGraph-blue?style=for-the-badge\u0026logo=python\" alt=\"LangGraph\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Frontend-Next.js%2016-black?style=for-the-badge\u0026logo=next.js\" alt=\"Next.js\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/React-19-61DAFB?style=for-the-badge\u0026logo=react\" alt=\"React 19\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.12-3776AB?style=for-the-badge\u0026logo=python\" alt=\"Python 3.12\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-green?style=for-the-badge\" alt=\"License\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e可审计、可暂停、可接管的科研智能体工作台\u003c/b\u003e\u003cbr/\u003e\n  文献检索 · 证据映射 · 实验闭环 · LaTeX/PDF 成稿 · 人工把关\n\u003c/p\u003e\n\n---\n\n## Anaxa 是什么\n\nAnaxa 是一个面向科研工作流的开源智能体系统。它不是普通聊天机器人，也不是无人监管的论文生成器，而是把文献检索、证据审计、实验执行、论文写作、同行评审式检查和最终产物整理串联到同一个可追踪的研究生命周期中。\n\n系统的核心目标，是把科研任务从“在对话里临时生成一段文字”推进到“每一步都有来源、产物、状态和人工接管点”的工作台。普通聊天仍然是入口，但复杂研究任务会被路由到后端的学术检索、实验、论文导出和研究编排工具。\n\n适合的场景包括：\n\n- 系统综述、相关工作、课题背景调研和参考文献整理。\n- 需要 claim-level 证据绑定的论文草稿、实验报告和研究备忘录。\n- CS/AI、数据科学、生物信息和实证研究中的可复现实验分析。\n- LaTeX 论文 bundle、BibTeX、citation audit 和 PDF 的一次性导出。\n- 长任务、阶段性科研项目和需要人工批准的自动化研究流程。\n\n## 论文产物示例\n\n以下图片为论文/报告生成流程中的产物示例，仅用于展示 Anaxa 可整理的论文级表格、图表、公式和分析页面形态。示例内容只供参考，不构成本项目的正式实验结论、性能承诺或领域事实声明。\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/paper-products/regression-metrics-predicted-actual.svg\" alt=\"论文产物示例：回归指标表与预测值对真实值散点图\" width=\"760\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/paper-products/scfm-vcfm-evaluation.svg\" alt=\"论文产物示例：scFM 与 VCFM 评估要求对比页面\" width=\"760\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/paper-products/hybrid-template-mlp-limits.svg\" alt=\"论文产物示例：混合模型公式与 MLP 结构限制分析页面\" width=\"760\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/assets/paper-products/ablation-study-results.svg\" alt=\"论文产物示例：消融实验结果表\" width=\"760\"\u003e\n\u003c/p\u003e\n\n## 核心科研流程\n\nAnaxa 的研究链路围绕 `ResearchQuest` 展开。它把一个科研任务拆成可检查、可恢复的阶段：\n\n```text\nintake\n  -\u003e literature\n  -\u003e novelty_check\n  -\u003e evidence_verified\n  -\u003e experiment_planned\n  -\u003e experiment_running\n  -\u003e results_synthesized\n  -\u003e manuscript_draft\n  -\u003e review\n  -\u003e revision\n  -\u003e final_bundle\n```\n\n每个阶段都会把输入、输出、工具调用、产物、失败原因和 gate 决策写入研究 ledger。对于风险较高的步骤，例如外部代码执行、长实验、自动修改实验代码和最终论文发布，系统默认要求人工确认，而不是直接放任模型继续推进。\n\n论文生成默认采用“两段式”交付：`research_assistant action=\"run_pipeline\"` 会先在 `manuscript_draft` 阶段返回可编辑初稿和 fast draft `.tex`，并记录 `draft_ready_at`；随后创建可跟踪的后台 finalization run，继续完成审稿、修复、citation audit、质量审计、PDF 编译和最终 bundle。章节草稿会按 `research.manuscript_section_concurrency` 并发生成，且可通过 `fast_draft_model` / `finalization_model` 区分首版速度和最终质量模型。\n\n## 关键能力\n\n### 学术检索与引用体系\n\n- `academic_research` 负责多源文献检索、元数据规范化、去重、证据卡生成、参考文献导出和 coverage audit。\n- 支持 Semantic Scholar、OpenAlex、Crossref、arXiv、DBLP、OpenReview、ACL Anthology 等来源组合。\n- 参考文献可按用户选择的格式输出，支持 APA 7、MLA 9、Chicago、GB/T 7714、plain text 和 BibTeX。\n- 综述、survey、manuscript 类任务会启用更严格的质量配置：更高的 reference 目标、正文引用密度检查、离题文献过滤和自动补检索。\n\n### Claim-Level Evidence Map\n\nAnaxa 不把“文末列了参考文献”视为合格引用。核心论断需要绑定到具体证据：\n\n```text\nclaim -\u003e paper_id -\u003e citation_key -\u003e snippet/page/abstract evidence -\u003e support_status -\u003e confidence\n```\n\n没有全文 PDF 时，系统会降级使用标题、摘要和元数据，但会在 audit 中把这类证据标记为弱证据。缺失 citation key、滥用 `\\nocite{*}`、正文缺少段落级引用、unsupported claim 或作者过程说明残留，都会在 `citation_audit.json` 中暴露，并可阻断最终 PDF release。\n\n### 实验闭环\n\n- `experiment_lab` 提供 Python-first 的实验执行、指标记录、图表生成和结果 bundle 导出能力。\n- 支持 baseline、ablation、seed、metric、failure summary、branch ranking 和 reproducibility ledger。\n- CS/AI 任务可覆盖回归、分类、聚类、降维、诊断图、模型评估和论文级结果摘要。\n- 生物信息学任务可覆盖 bulk 表达、差异分析、富集分析、单细胞起步流程和常见科研图。\n- 实证研究方法 skill 可把 DID、IV、RDD、PSM/IPW、DML、target trial、TMLE 等方法要求转换为实验 metadata 和 gate。\n\n### 论文成稿与 PDF 导出\n\n论文、综述、实验论文和正式研究报告默认生成 LaTeX bundle：\n\n- `manuscript.tex`\n- `references.bib`\n- `citation_audit.json`\n- `manuscript.pdf`\n\n高层工具 `manuscript_export` 会统一完成文件写入、citation audit、LaTeX 编译和 artifacts 展示。底层仍保留 `write_file`、`citation_audit` 和 `present_files`，但正式论文交付优先使用高层出口，避免文件生成停留在临时聊天回答里。\n\n当前 PDF 链路优先使用 `tectonic`。如果编译器缺失或 LaTeX 编译失败，系统会返回明确的工具错误，并保留 `.tex`、`.bib` 和 audit 文件，便于继续修复。\n\n### 质量审计与自动修复\n\n`ResearchQualityAudit` 覆盖投稿前常见质量风险：\n\n- 文献覆盖不足。\n- 正文引用密度过低。\n- 离题或跨领域外围文献混入。\n- 定量证据、benchmark、case study 或实验结果不足。\n- 评估框架缺少实施挑战与解决方案。\n- 重复表达、绝对化措辞、过渡缺失和过程说明残留。\n\n默认策略是先自动补检索、补证据、补 benchmark、重写薄弱章节；修复预算耗尽后，再进入人工 gate，并返回具体的补救报告。\n\n### Thread Artifacts 与对话级记忆\n\n- 每个 chat/thread 都有独立的 `workspace`、`uploads`、`outputs` 和 `memory.json`。\n- 新建对话从空记忆开始，不会继承其他对话的用户画像或研究状态。\n- 当前对话的报告、BibTeX、PDF、图表、表格和审计文件会写入 thread-scoped outputs，并可在 artifact 面板中发现、预览和下载。\n- 后端保留旧 memory API 作为兼容层，但前端不再提供全局记忆设置页面。\n\n### 功能配置只读展示\n\n前端设置中的“功能”页集中展示当前后端配置：\n\n- Agents：默认编排器、系统 agent、自定义 agent 和 subagent。\n- Tools：MCP server、transport、enabled 状态、命令或 URL 摘要、redacted env/header keys。\n- Skills：公共和自定义 skill 的名称、描述、分类、启用状态和 license。\n\n这个页面是只读清单，不提供新增、删除、编辑、启用、停用或测试连接操作。底层管理 API 仍然保留，用于脚本化管理和兼容场景。\n\n## 系统架构\n\n```text\n                  http://localhost:6200\n                          |\n                          v\n                  +----------------+\n                  |     Nginx      |\n                  | reverse proxy  |\n                  +---+--------+---+\n                      |        |\n      /api/langgraph/*|        |/api/*\n                      v        v\n        +----------------+   +------------------+\n        | LangGraph      |   | Gateway API      |\n        | Server :6203   |   | FastAPI :6202    |\n        |                |   |                  |\n        | Lead agent     |   | models/setup     |\n        | middleware     |   | features         |\n        | tools          |   | academic         |\n        | subagents      |   | research         |\n        +-------+--------+   | experiments      |\n                |            | artifacts/runs   |\n                |            +---------+--------+\n                |                      |\n                v                      v\n        +----------------+   +------------------+\n        | Sandbox / VFS  |   | SQLite / files   |\n        | /mnt/user-data |   | .medrix-flow     |\n        +----------------+   +------------------+\n\n        +----------------------------------------+\n        | Frontend :6201                         |\n        | Next.js 16 / React 19 / Tailwind CSS 4 |\n        +----------------------------------------+\n```\n\n请求路由：\n\n- `/api/langgraph/*` -\u003e LangGraph Server：agent 交互、thread、SSE streaming、long-running run。\n- `/api/*` -\u003e Gateway API：配置、features、academic、research、experiments、uploads、artifacts、runs。\n- `/` -\u003e Frontend：Next.js Web UI。\n\n运行时数据主要存储在 `backend/.medrix-flow` 或 `MEDRIX_FLOW_HOME` 指向的目录中。每个 thread 的虚拟文件系统会映射为 `/mnt/user-data/{workspace,uploads,outputs}`。\n\n## 快速开始\n\nAnaxa 1.0 默认以开源开发版发布：下载源码后，在本地初始化、运行服务，并通过前端配置模型，便于直接使用和二次开发。默认不启用 UI 密码；该模式适合本机或可信局域网环境，不适合作为公网生产部署。\n\n### 1. 安装基础工具\n\n你只需要先安装这些系统工具：\n\n- Python 3.12+\n- Node.js 22+\n- pnpm\n- uv\n- nginx\n\n如果不确定是否装好了，先运行：\n\n```bash\nmake check\n```\n\n缺少的工具会在检查结果里给出安装提示。`tectonic` 是可选项，只影响 LaTeX PDF 生成的稳定性。\n\n### 2. 下载并初始化\n\n```bash\ngit clone \u003crepo-url\u003e\ncd \u003crepo-folder\u003e\nmake bootstrap\n```\n\n`make bootstrap` 会完成三件事：\n\n- 检查本机依赖是否可用。\n- 创建本地配置文件：`config.yaml`、`.env`、`frontend/.env`、`extensions_config.json`。\n- 安装后端和前端依赖。\n\n生成的配置文件都在 `.gitignore` 中，不会随源码提交。真实 API Key 不需要手动写入文件，后续在前端配置即可。\n\n### 3. 启动\n\n```bash\nmake dev\n```\n\n启动后访问：\n\n```text\nhttp://localhost:6200\n```\n\n首次进入页面后，打开左下角“设置和更多 -\u003e 配置”，添加至少一个聊天模型和 API Key，保存后即可开始新对话。\n\n本地开发服务会同时启动：\n\n- Frontend: `http://localhost:6201`\n- Gateway API: `http://localhost:6202`\n- LangGraph Server: `http://localhost:6203`\n- Nginx unified entry: `http://localhost:6200`\n\n### Docker 可选路径\n\n如果你不想在本机安装 Python/Node/nginx，可以使用 Docker 开发模式：\n\n```bash\nmake docker-init\nmake docker-start\n```\n\n访问地址同样是：\n\n```text\nhttp://localhost:6200\n```\n\n停止 Docker 开发环境：\n\n```bash\nmake docker-stop\n```\n\n### 常用命令\n\n| 命令 | 说明 |\n|---|---|\n| `make bootstrap` | 第一次使用：检查依赖、创建本地配置、安装依赖 |\n| `make check` | 检查 Node.js、pnpm、uv、nginx 是否安装 |\n| `make install` | 安装 backend 与 frontend 依赖 |\n| `make dev` | 启动开发模式，支持热重载 |\n| `make dev-daemon` | 后台启动开发服务 |\n| `make stop` | 停止本地服务 |\n| `make docker-start` | 启动 Docker 开发模式 |\n| `make docker-stop` | 停止 Docker 开发模式 |\n| `make verify` | 跑 backend lint/test、frontend lint/typecheck/unit/build |\n| `make release-check` | 发布前检查本地 secrets、缓存、记忆和运行数据是否被 Git 跟踪 |\n\n## 配置\n\n### 普通用户：在前端配置\n\n启动后进入 `http://localhost:6200`，打开“设置和更多 -\u003e 配置”：\n\n- 添加模型 provider、模型名和 API Key。\n- 配置网络搜索、网页抓取、学术检索增强等工具 API Key。\n- 如需图像生成，配置 Google AI Studio 或 OpenAI-compatible 图像接口。\n- 保存后配置会写入本地文件并热重载。\n\n前端“功能”页只读展示当前可用的 Agents、MCP tools 和 Skills，不提供新增、删除、编辑、启用或停用入口。\n\n### 高级用户：配置文件\n\n`config.yaml` 和 `extensions_config.json` 仍然可用，适合脚本化管理或深度定制：\n\n- `config.yaml`：模型、工具组、沙箱 provider、checkpointer、memory、research gate 和质量策略。\n- `extensions_config.json`：MCP server 和 skills 的启用状态。\n- `make config-upgrade`：把新字段合并到已有 `config.yaml`。\n\n### 发布前安全检查\n\n你的本地 `.env`、数据库、记忆、上下文、上传文件、输出文件、缓存和日志不应该随项目公开。发布前运行：\n\n```bash\nmake release-check\n```\n\n如果检查失败，先处理输出中列出的路径，再 push 到公开仓库。该命令不会删除任何本地文件。\n\n### 公网部署密码\n\n开源开发版默认不设置 UI 密码。如果要把服务暴露到公网，请设置 `MEDRIX_FLOW_ENV=production`、`MEDRIX_FLOW_UI_PASSWORD`，以及可选的 `MEDRIX_GATEWAY_ADMIN_TOKEN`。\n\n### 兼容技术标识\n\nAnaxa 1.0 已完成面向用户的品牌迁移。为避免破坏已有脚本、数据目录、环境变量和 import 路径，以下技术标识仍然保留：\n\n- Python import package: `medrix_flow`\n- Python distribution / workspace package names 中的兼容命名\n- Environment variables: `MEDRIX_FLOW_*`\n- Runtime directory: `.medrix-flow`\n- Admin header: `x-medrix-admin-token`\n- 部分 Docker container、Compose project 和 cleanup prefix\n\n这些名称属于兼容层，不代表新的产品品牌。\n\n## 内置工具与 Skills\n\n内置工具：\n\n- `academic_research`：文献检索、证据卡、references 和 audit。\n- `research_assistant`：研究生命周期、ledger、gate、quality audit 和 `run_pipeline`。\n- `experiment_lab`：实验执行、图表、指标和 reproducibility bundle。\n- `manuscript_export`：LaTeX/BibTeX/audit/PDF 一键导出。\n- `citation_audit`：LaTeX citation key、正文引用和 claim 支持检查。\n- `present_files`：展示 artifacts，并尝试为 `.tex` 生成 PDF 预览。\n- `ask_clarification`：需要用户确认时生成结构化选项。\n- `visual_quality_check` / `visual_refinement_check`：视觉产物质量门控。\n- sandbox tools：`bash`、`ls`、`read_file`、`write_file`、`str_replace`。\n\nSkills 会从 `skills/public` 和 `skills/custom` 中发现，并根据 `extensions_config.json` 注入。当前公共 skills 覆盖学术写作、文献整理、实证研究方法、科研图、数据分析、技术图示、PPT、PDF、插件/技能创建等场景。\n\n## 安全与部署\n\n- 生产环境应设置 `MEDRIX_FLOW_ENV=production`。\n- 通过 Nginx 暴露 UI/API 时，应设置 `MEDRIX_FLOW_UI_PASSWORD`；否则受保护页面和 API 会以 fail-closed 方式拒绝访问。\n- 脚本化管理可设置 `MEDRIX_GATEWAY_ADMIN_TOKEN`，通过 `x-medrix-admin-token` 请求头访问受保护接口。\n- 本地沙箱适合可信开发环境；生产或不可信代码执行应切换到 `AioSandboxProvider` 或 provisioner/Kubernetes 模式。\n- Bash 工具调用会经过安全审计和路径隔离；thread 虚拟路径限制在 `/mnt/user-data`。\n- 外部代码执行、长实验、自动修改实验代码和最终论文 release 默认应经过 human gate。\n\n## 项目结构\n\n```text\n.\n├── backend/\n│   ├── app/gateway/                 # FastAPI Gateway API\n│   ├── packages/harness/medrix_flow/ # LangGraph agents, tools, research, sandbox\n│   └── tests/                        # backend tests\n├── frontend/\n│   ├── src/app/                      # Next.js app routes\n│   ├── src/components/               # workspace, settings, artifact UI\n│   └── test/                         # frontend tests\n├── skills/\n│   ├── public/                       # bundled skills\n│   └── custom/                       # user skills\n├── docker/\n│   ├── nginx/                        # local and production reverse proxy config\n│   └── provisioner/                  # optional sandbox provisioner\n├── scripts/                          # setup, serve, deploy, doctor helpers\n├── config.example.yaml               # app config template\n└── extensions_config.example.json    # MCP and skills config template\n```\n\n## 开发与验证\n\n后端：\n\n```bash\ncd backend\nmake lint\nmake test\n```\n\n前端：\n\n```bash\ncd frontend\npnpm lint\npnpm typecheck\npnpm test:unit\nBETTER_AUTH_SECRET=local-dev-secret pnpm build\n```\n\n全量本地验证：\n\n```bash\nmake verify\n```\n\n## 许可证与致谢\n\n本项目使用 MIT License。Anaxa 的工程基础吸收了 LangGraph、Next.js、FastAPI、开源 agent 工具生态和多个科研自动化项目中的思想，但项目目标始终是“科研副驾驶”：让模型参与研究工作，而不是替代研究者的判断、证据责任和最终署名责任。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitrus-bit%2Fanaxa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcitrus-bit%2Fanaxa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcitrus-bit%2Fanaxa/lists"}