01 / THE SIGNAL

我们发现了什么

crane-in-clear-sky/WorkWit-AI-Agent. WorkWit: a self-hosted, open-source (MIT) enterprise AI Agent platform for office automation — built-in contract review & resume screening, 40+ skills, M

  • 来源:GitHub(发现于 2026-08-22)
  • 证据等级:C · 存在定价或订阅线索;有收费设计不等于已有收入。
  • 商业模式:待核验
  • 主题:AI Agent
  • 初筛评分:14.3/100 · 收录 1 次
#工作流自动化#付费线索#开源
02 / SOURCE & EVIDENCE

证据,比故事更重要。

存在定价或订阅线索;有收费设计不等于已有收入。

规则清洗与初筛,未经人工商业核验。原文语境、实际客户和付费情况仍需自行验证。

引用与数字披露

来源类型(原作者自述/第三方测算/媒体转引)需采集端标注,本版尚未落字段。

短句引用
作者
未标注
抓取日期
来源类型
未标注
数字口径
币种
未标注
口径
未标注
披露主体
未标注
披露日期
未标注

中文辅助译文(节选·触顶截断)

WorkWit - 企业 AI 办公助手

一个面向企业的、可私有化部署的 AI Agent 平台。后端基于 FastAPI + SQLite 构建,前端是一个零依赖的原生 JS 单页应用。整个技术栈通过 Docker Compose 一条命令部署。

它远不止是一个"合同审核小工具"——而是一个统一的办公智能体基础平台,集成了多模型推理、可扩展的技能(Skills)、工具(Tools)、MCP 连接器、沙箱执行、多租户访问控制、定时自动化和长期记忆。合同审核和简历筛选等办公场景开箱即用,并且可以通过"技能 + 工具"持续扩展新能力。

为什么选择 WorkWit

WorkWit 是一个自托管、企业级的 AI Agent 平台,旨在让组织的办公工作更智能——同时不放弃对数据的控制权。· 完全开源且自托管(MIT)。无订阅、无按席位收费、无厂商锁定。运行在你自己的基础设施上;数据永不离开你的服务器。· 为组织而设计,而非仅为个人。真正的多租户 RBAC(组织 / 部门 / 用户),权限位以 FEATURE_REGISTRY 作为单一真相源。· 办公场景开箱即用。合同审核(支持甲方 / 乙方立场)和简历筛选(岗位画像匹配评分)作为内置模块提供——无需自行组装。· 部署和审计极其简单。一条 docker compose up、单一后端容器、SQLite 存储和零依赖前端。无构建步骤;易于阅读、fork 和加固。· 统一能力目录。技能、工具和 MCP 连接器合并为一个目录并自动保持同步,因此添加一项能力只需一次注册,而非三次集成。· 默认安全。用户提供的代码在受限沙箱中运行(AST 扫描 + CPU/内存/进程/超时限制 + 权限降级);密钥保留在 .env / data/ 中,这些目录已被 git 忽略。· 为扩展而设计。40+ 内置技能、技能市场、工具库以及 MCP 连接器框架,让你可以持续扩展能力。核心功能 · 通用 Agent 内核:ReAct(规划-执行)循环,支持工具调用、流式 SSE 输出以及多步任务的自动拆解/执行。当模型"声称已生成文件"但实际未调用工具时,会主动发出警告(防幻觉)。

· 技能市场:基于文件的技能(SKILL.md),内置 40+ 技能(PPT 生成、Word 排版、微信公众号/小红书写作、合同/法务、研报、地图合规、3D/视频、腾讯文档等)。支持版本管理、回滚、可见性控制和安装/卸载。· 工具库:内置工具(联网搜索、网页抓取、图表、邮件、文生图/视频、PPT/Word 生成、合同风险分析等)+ 用户自定义工具(沙箱执行)+ 外部 MCP 连接器。· MCP 连接器框架:通过 data/mcp.json 连接标准 MCP 服务器(支持 streamable-http 和 stdio 两种传输);外部工具自动同步到统一能力目录中。· 沙箱执行:用户上传的 Python 代码在受限子进程中运行(AST 静态扫描 + CPU/内存/进程/超时限制 + 权限降级 + 模块和文件访问护栏)。· 多租户与 RBAC:组织 / 部门 / 用户三级结构,具有细粒度的功能权限位(FEATURE_REGISTRY);管理员可以集中管理模型、导航、SMTP、MCP 等。· 多模型接入:OpenAI 兼容接口,分为 chat / vision / embed / rerank 四种角色。可直接连接 vLLM / Ollama,或使用 LiteLLM 作为统一网关(附带参考的 litellm_config.yaml)。· 自动化:后台调度器支持定时 / 周期性任务。· 长期记忆与会话历史:用户级长期记忆和跨会话历史检索。· 办公场景开箱即用:合同审核(可选立场)、简历筛选(岗位画像匹配评分)等。

技术栈

| 层 | 选型 | | --- | --- | | 后端 | FastAPI(异步)、SQLite、Uvicorn | | 前端 | 原生 HTML/JS 单页应用(backend/static/index.html,零构建依赖) | | 模型接入 | OpenAI 兼容 API(直连或通过 LiteLLM 网关) | | 部署 | Docker Compose(单后端容器,端口 4001:8000) | | 执行隔离 | subprocess 沙箱(资源限制 + AST 扫描) |

目录结构

快速开始 前置条件 · 一台 Linux 服务器(推荐 Ubuntu 22.04),已安装 Docker(包括 docker compose 插件)。 · 4 个 OpenAI 兼容模型端点(地址 + 密钥),用于 chat / vision / embed / rerank。可以是本地推理服务(vLLM / Ollama),也可以前置 LiteLLM 网关。 部署步骤

启动后,在浏览器中打开 http:// :4001。默认管理员账户:admin / admin123(生产环境中请更改 - 入口:"系统管理 -> 用户管理")。 如果你想使用 LiteLLM 聚合多个模型后端,可以参考 litellm_config.yaml 自行启动一个 LiteLLM 容器,并将 .env 中的 MODEL_*_BASE 值指向它;docker-compose.yml 目前仅编排单一后端服务。 升级 / 重建

代码更改后:

配置(.env)

| 变量 | 描述 | | --- | --- | | MODEL_30B_BASE / MODEL_30B_KEY | 主推理模型(chat 角色)的 OpenAI 兼容地址和密钥 | | MODEL_VLM_BASE / MODEL_VLM_KEY | 多模态模型(vision 角色)的地址和密钥 | | MODEL_EMBED_BASE / MODEL_EMBED_KEY | 嵌入模型(embed 角色)的地址和密钥 | | MODEL_RERANK_BASE / MODEL_RERANK_KEY | 重排序模型(rerank 角色)的地址和密钥 | 首次启动时,4 个模型会从 .env 作为种子数据写入 app.db;之后以数据库为唯一真相源,可以在"系统管理 -> 模型配置"下进行调整。

其他可覆盖的环境变量(用于运维调优):DB_PATH、SKILL_CPU_SEC、SKILL_MEM_MB、SKILL_NPROC、SKILL_TIMEOUT、SKILL_ARTIFACT_ROOT、MCP_CONFIG_PATH。

功能模块 · 合同审核:上传 txt / docx / pdf,选择你的立场(甲方 / 乙方),获取结构化的风险点和修改建议(解析失败时具有截断 JSON 修复回退机制)。 · 简历筛选:上传简历 + 岗位画像,获取候选人的关键字段、匹配评分和推荐结论。 · Agent:以自然语言下达任务;它会自动规划并调用技能 / 工具完成任务。支持草图规划、用户澄清和子 Agent 委派。 · 技能市场 / 工具库:查看、启用和管理技能和工具;支持创建用户私有技能和工具(沙箱执行)。 · 自动化:配置定时 / 周期性任务,由后台调度器执行。 · 我的记忆 / 会话历史:用户级长期记忆和跨会话检索。 · 系统管理:模型、组织、部门、用户、权限、日志、SMTP、MCP、导航和基础信息。

安全说明 · 密钥隔离:.env(包含模型密钥)和 data/(包含运行时数据库和 MCP 令牌)已被 git 忽略 - 不要将其提交到仓库。 · 沙箱:用户定义的代码在受限子进程中运行,具有 AST 静态扫描、CPU / 内存 / 进程 / 超时限制、降级到 nobody 用户的权限、模块和文件访问护栏。 · 权限:功能级 RBAC;管理员默认拥有所有权限,普通用户获得最小权限位;添加新的导航/功能只需在 db.FEATURE_REGISTRY 中注册一行即可自动生效。 · 生产建议:更改默认管理员密码;启用 HTTPS(反向代理);将 MCP 令牌等敏感配置保存在 data/mcp.json 中(而非仓库中)。

贡献

欢迎提交 Issue / PR。提交前,请确保: · 已应用 .gitignore 规则,且 .env / data/ 未被意外提交; · 如果新功能引入了导航条目,请在 backend/db.py 的 FEATURE_REGISTRY 中注册其权限位; · 新的内置技能应放在 backend/builtin_skills/ /SKILL.md 下,遵循现有的 when_to_use 语义字段约定。

许可证

本项目采用 MIT 许可证。对于其他许可证(例如 Apache-2.0 或专有/闭源),请单独说明。

路线图(可选方向) · 子 Agent 编排的可视化和监控; · 更多内置技能 / 工具(电子表格、数据库、BI 等); · 多实例水平扩展(当前为单数据库;已预留数据库持久化和热缓存扩展点); · 前端构建工具链(当前零依

……(正文超出本站单页篇幅上限,此处截断;完整表述请见下方原文入口。)

译文由上游机器翻译生成,可能有误;判断请以英文原文为准。

英文原文(来源本站未改写)

English | WorkWit - Enterprise AI Office Assistant

An enterprise-oriented, privately deployable AI Agent platform. The backend is built on FastAPI + SQLite, and the frontend is a zero-dependency, vanilla-JS single-page application. The whole stack is deployed with one command via Docker Compose.

It is far more than a "contract-review gadget" - it is a unified office-agent foundation that integrates multi-model inference, extensible Skills, Tools, MCP connectors, sandboxed execution, multi-tenant access control, scheduled automation, and long-term memory. Office scenarios such as contract review and resume screening work out of the box, and new capabilities can be continuously extended through "skills + tools".

Why WorkWit

WorkWit is a self-hosted, enterprise-grade AI Agent platform built to make an organization's office work smarter - without giving up control of your data. · Fully open source and self-hosted (MIT).No subscription, no per-seat fees, no vendor lock-in.Run it on your own infrastructure;your data never leaves your servers. · Built for organizations, not just individuals.Real multi-tenant RBAC (Organization / Department / User) with a single source of truth for permission bits (FEATURE_REGISTRY). · Office scenarios out of the box.

Contract review (with Party A / Party B stance) and resume screening (job-profile matching score) ship as built-in modules - no assembly required. · Trivial to deploy and audit.One docker compose up, a single backend container, SQLite storage, and a zero-dependency frontend.No build step;easy to read, fork, and harden. · Unified capability catalog.Skills, tools, and MCP connectors are merged into one catalog and kept in sync automatically, so adding a capability is one registration, not three integrations. · Safe by default.User-supplied code runs in a restricted sandbox (AST scan + CPU/memory/process/timeout limits + privilege drop);

secrets stay in .env / data/ that are git-ignored. · Extensible by design. 40+ built-in skills, a Skills Marketplace, a Tool Library, and the MCP connector framework let you grow capabilities continuously.Core Features · General-purpose Agent core: a ReAct (plan-act) loop supporting tool calls, streaming SSE output, and automatic decomposition/execution of multi-step tasks.

The model proactively warns when it "claims a file was generated" but never actually invoked a tool (hallucination guard). · Skills Marketplace: file-based skills (SKILL.md), with 40+ built-in skills (PPT generation, Word typesetting, WeChat official-account / Xiaohongshu writing, contract/legal, research reports, map compliance, 3D/video, Tencent Docs, and more).

Supports versioning, rollback, visibility control, and install/uninstall. · Tool Library: built-in tools (web search, web fetch, charts, email, text-to-image/video, PPT/Word generation, contract risk analysis, and more) + user-defined tools (sandboxed execution) + external MCP connectors. · MCP Connector Framework: connect to standard MCP servers via data/mcp.json (supporting both streamable-http and stdio transports);

external tools are auto-synced into the unified capability catalog. · Sandboxed Execution: user-uploaded Python code runs in a restricted subprocess (AST static scanning + CPU/memory/process/timeout limits + privilege drop + module and file guards). · Multi-tenancy and RBAC: a three-tier structure of Organization / Department / User, with fine-grained feature permission bits (FEATURE_REGISTRY);admins can centrally manage models, navigation, SMTP, MCP, and more. · Multi-model Access: OpenAI-compatible interfaces, with four roles - chat / vision / embed / rerank.

Can connect directly to vLLM / Ollama, or use LiteLLM as a unified gateway (a reference litellm_config.yaml is included). · Automation: a background scheduler supports scheduled / recurring tasks. · Long-term Memory and Conversation History: user-level long-term memory and cross-session history retrieval. · Office scenarios out of the box: contract review (selectable stance), resume screening (job-profile matching score), and more.

Tech Stack

| Layer | Choice | | --- | --- | | Backend | FastAPI (async), SQLite, Uvicorn | | Frontend | Vanilla HTML/JS SPA (backend/static/index.html, zero build dependencies) | | Model Access | OpenAI-compatible API (direct or via LiteLLM gateway) | | Deployment | Docker Compose (single backend container, port 4001:8000) | | Execution Isolation | subprocess sandbox (resource limits + AST scanning) |

Directory Structure

Quick Start Prerequisites · A Linux server (Ubuntu 22.04 recommended) with Docker (including the docker compose plugin) installed. · 4 OpenAI-compatible model endpoints (address + key) for chat / vision / embed / rerank. These can be local inference services (vLLM / Ollama) or fronted by a LiteLLM gateway. Deployment Steps

After startup, open http:// :4001 in a browser. Default admin account: admin / admin123 (change it in production - entry: "System Management -> User Management"). If you want to aggregate multiple model backends with LiteLLM, you can spin up a LiteLLM container yourself referencing litellm_config.yaml and point the MODEL_*_BASE values in .env to it; docker-compose.yml currently only orchestrates the single backend service. Upgrade / Rebuild

After code changes:

Configuration (.env)

| Variable | Description | | --- | --- | | MODEL_30B_BASE / MODEL_30B_KEY | OpenAI-compatible address and key for the main inference model (chat role) | | MODEL_VLM_BASE / MODEL_VLM_KEY | Address and key for the multimodal model (vision role) | | MODEL_EMBED_BASE / MODEL_EMBED_KEY | Address and key for the embedding model (embed role) | | MODEL_RERANK_BASE / MODEL_RERANK_KEY | Address and key for the rerank model (rerank role) | On first start the 4 models are written to app.db as seed data from .env; afterwards the database is the source of truth and can be adjusted under "System Management -> Model Configuration".

Other overridable env vars (for ops tuning): DB_PATH, SKILL_CPU_SEC, SKILL_MEM_MB, SKILL_NPROC, SKILL_TIMEOUT, SKILL_ARTIFACT_ROOT, MCP_CONFIG_PATH.

Feature Modules · Contract Review: upload txt / docx / pdf, select your stance (Party A / Party B), and get structured risk points and revision suggestions (with truncated-JSON repair fallback when parsing fails). · Resume Screening: upload a resume + a job profile, and get the candidate's key fields, a match score, and a recommendation. · Agent: issue tasks in natural language;it auto-plans and invokes skills / tools to complete them.Supports sketch planning, user clarification, and sub-agent delegation. · Skills Marketplace / Tool Library: view, enable, and manage skills and tools;

supports creating user-private skills and tools (sandboxed execution). · Automation: configure scheduled / recurring tasks, executed by the background scheduler. · My Memory / Conversation History: user-level long-term memory and cross-session retrieval. · System Management: models, organizations, departments, users, permissions, logs, SMTP, MCP, navigation, and basic info.

Security Notes · Secret isolation: .env (contains model keys) and data/ (contains the runtime DB and MCP tokens) are git-ignored - do not commit them to the repo. · Sandbox: user-defined code runs in a restricted subprocess, with AST static scanning, CPU / memory / process / timeout limits, privilege drop to nobody, and module and file-access guards. · Permissions: feature-level RBAC;admins are allowed by default, regular users get least-privilege permission bits;adding a new nav/feature only requires registering one line in db.FEATURE_REGISTRY and it takes effect automatically. · Production recommendations: change the default admin password;enable HTTPS (reverse proxy);

keep sensitive config such as MCP tokens in data/mcp.json (not in the repo).

Contributing

Issues / PRs are welcome. Before submitting, please ensure: · The .gitignore rules are applied and .env / data/ are not accidentally committed; · If a new feature introduces a nav entry, register its permission bit in backend/db.py's FEATURE_REGISTRY; · New built-in skills go under backend/builtin_skills/ /SKILL.md, following the existing when_to_use semantic-field convention.

License

This project is licensed under the MIT License. For other licenses (e.g., Apache-2.0, or proprietary/closed-source), please specify separately.

Roadmap (optional directions) · Visualization and monitoring for sub-agent orchestration; · More built-in skills / tools (spreadsheets, databases, BI, and more); · Multi-instance horizontal scaling (currently single-DB; DB persistence and hot-cache extension points are already reserved); · Frontend build tooling (currently zero-de 中文版 | 企业 AI 办公智慧助手(WorkWit)

一个面向企业的、可私有化部署的 AI Agent(智能体)平台。后端基于 FastAPI + SQLite,前端是一个零依赖的原生 JS 单页应用,整体用 Docker Compose 一键部署。

它不只是一个「合同审核小工具」——而是一个把 多模型推理、可扩展技能(Skills)、工具(Tools)、MCP 连接器、沙箱执行、多租户权限、定时自动化、长期记忆 整合在一起的统一办公智能体底座。开箱内置合同审核、简历筛选等办公场景,也支持通过「技能 + 工具」不断扩展新能力。

为什么选 WorkWit

WorkWit 是一个私有化、企业级的 AI 智能体平台,目标是让组织的办公更高效,同时不交出数据的控制权。· 完全开源 + 私有化部署(MIT)。无订阅、无按席位收费、无厂商锁定。部署在你自己的服务器上,数据始终留在你自己的基础设施内。· 为组织而生,而非仅面向个人。真正的多租户 RBAC(组织 / 部门 / 用户),权限位集中登记于 FEATURE_REGISTRY 单一真相源。· 办公能力开箱即用。合同审核(支持甲方 / 乙方立场)与简历筛选(岗位画像匹配评分)作为内置模块随平台提供,无需自己拼装。· 部署与审计极简。一条 docker compose up、单个后端容器、SQLite 存储、零依赖前端 —— 无构建步骤,易于阅读、fork 与加固。· 统一能力目录。技能、工具与 MCP 连接器合并为一张目录并自动同步,新增一项能力只需一次登记,而非三次集成。· 默认安全。用户代码在受限沙箱中执行(静态扫描 + 资源限额 + 降权),密钥留在 .env / data/(已被 .gitignore 忽略)。· 为扩展而生。40+ 内置技能 + 技能广场 + 工具库 + MCP 连接器框架,让能力可持续生长。✨ 核心特性 · 通用 Agent 内核:ReAct(规划—执行)循环,支持工具调用、流式 SSE 输出、多步任务自动拆解与执行;模型「声称已生成文件」但实际未调用工具时会主动提示(防幻觉)。

· 技能广场(Skills):文件化的技能(SKILL.md),内置 40+ 技能(PPT 生成、Word 排版、公众号/小红书写作、合同/法务、研报、地图合规、3D/视频、文档等);支持版本管理、回滚、可见性控制、安装/卸载。· 工具库(Tools):内置工具(联网搜索、网页抓取、图表、邮件、文生图/视频、PPT/Word 生成、合同风险分析等)+ 用户自定义工具(沙箱执行)+ 外部 MCP 连接器。· MCP 连接器框架:通过 data/mcp.json 接入标准 MCP 服务(支持 streamable-http 与 stdio 两种传输),外部工具自动同步进统一能力目录。· 沙箱执行:用户上传的 Python 代码在受限子进程中运行(AST 静态扫描 + CPU/内存/进程/超时限额 + 降权 + 模块与文件护栏)。· 多租户 & RBAC:组织 / 部门 / 用户三级结构,细粒度功能权限位(FEATURE_REGISTRY),管理员可集中管控模型、导航、SMTP、MCP 等。· 多模型接入:面向 OpenAI 兼容接口,区分 chat / vision / embed / rerank 四种角色;可直连 vLLM / Ollama,或用 LiteLLM 做统一网关(仓库附 litellm_config.yaml 参考配置)。· 自动化(Automations):后台调度器支持定时 / 周期性任务。· 长期记忆 & 历史对话:用户级长期记忆、跨会话历史检索。· 办公场景开箱即用:合同审核(可选立场)、简历筛选(岗位画像匹配评分)等。

🧱 技术栈

| 层 | 选型 | | --- | --- | | 后端 | FastAPI(异步)、SQLite、Uvicorn | | 前端 | 原生 HTML/JS 单页(backend/static/index.html,零构建依赖) | | 模型接入 | OpenAI 兼容 API(直连或经 LiteLLM 网关) | | 部署 | Docker Compose(单后端容器,端口 4001:8000) | | 执行隔离 | subprocess 沙箱(资源限额 + AST 扫描) |

📂 目录结构

🚀 快速开始 前置条件 · 一台 Linux 服务器(推荐 Ubuntu 22.04)并已安装 Docker(含 docker compose 插件)。 · 4 个 OpenAI 兼容模型端点的 地址与密钥(chat / vision / embed / rerank)。可以是本地推理服务(vLLM / Ollama),也可以前置 LiteLLM 网关。 部署步骤

启动后浏览器访问 http://服务器IP:4001。默认管理员账号:admin / admin123(生产环境务必修改,入口在「系统管理 → 用户管理」)。 若想用 LiteLLM 统一聚合多个模型后端,可参考 litellm_config.yaml 自行起一个 LiteLLM 容器,并把 .env 里的 MODEL_*_BASE 指向它;docker-compose.yml 当前只编排 backend 一个服务。 升级 / 重建 代码改动后:

⚙️ 配置说明(.env)

| 变量 | 说明 | | --- | --- | | MODEL_30B_BASE / MODEL_30B_KEY | 主推理模型(chat 角色)的 OpenAI 兼容地址与密钥 | | MODEL_VLM_BASE / MODEL_VLM_KEY | 多模态模型(vision 角色)地址与密钥 | | MODEL_EMBED_BASE / MODEL_EMBED_KEY | 嵌入模型(embed 角色)地址与密钥 | | MODEL_RERANK_BASE / MODEL_RERANK_KEY | 重排序模型(rerank 角色)地址与密钥 | 首次启动会按 .env 把 4 个模型写入 app.db 作为种子;之后以数据库为准,可在「系统管理 → 模型配置」里调整。

其他可覆盖的环境变量(运维调参):DB_PATH、SKILL_CPU_SEC、SKILL_MEM_MB、SKILL_NPROC、SKILL_TIMEOUT、SKILL_ARTIFACT_ROOT、MCP_CONFIG_PATH。

🧩 功能模块 · 合同审核:上传 txt / docx / pdf,选择我方立场(甲方 / 乙方),输出结构化的风险点与修改建议(JSON 解析失败时具备截断修复兜底)。 · 简历筛选:上传简历 + 岗位画像,输出候选人关键字段、匹配评分与推荐结论。 · 智能体(Agent):自然语言下达任务,自动规划并调用技能 / 工具完成;支持草图规划、用户澄清、子 Agent 委派。 · 技能广场 / 工具库:查看、启用、管理技能与工具;支持创建用户私有技能与工具(沙箱执行)。 · 自动化:配置定时 / 周期任务,由后台调度器执行。 · 我的记忆 / 历史对话:用户级长期记忆与跨会话检索。 · 系统管理:模型、组织、部门、用户、权限、日志、SMTP、MCP、导航、基础信息。

🔒 安全说明 · 密钥隔离:.env(含模型密钥)与 data/(含运行库、MCP 令牌)已被 .gitignore 忽略,请勿提交到仓库。 · 沙箱:

... (truncated at the site's per-page length limit; see the source link below for the full text.)

出处https://github.com/crane-in-clear-sky/WorkWit-AI-Agent抓取日期 · 采集源 GitHub

03 / EVIDENCE GAPS

这条还缺什么证据?

下面每条都由本条已有字段推出(等级、理由、商业模式、来源次数、是否演示), 本站不生成推测性结论;通用验证方法放在方法论页。

  • 可核验的收入或付费证据查官网定价页与付费口径;第三方数据源(如 GetLatka)只作旁证,需标注来源与时点。
  • 商业模式未定确认按席位/按用量/授权还是开源托管版收费;开源项目另查 LICENSE 与是否存在付费版。
  • 只有单一来源找一手站点或其他渠道是否重复出现同一产品;社区热帖数量不等于商业进展。

通用验证清单(谁有这个问题/谁愿意付费/一个人能交付哪一小步)见我们的筛选方法。

04 / SIGNAL HISTORY

发现时间线