1 line
39 KiB
HTML
1 line
39 KiB
HTML
<!DOCTYPE html><html lang="zh-CN" class="bg-background"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0x.pxwmy6tt~x.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0m802isop-v2v.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0rh0zxi2et9s9.js"/><script src="/_next/static/chunks/15p9tphsyp7uz.js" async=""></script><script src="/_next/static/chunks/0m3mrmu-llt6y.js" async=""></script><script src="/_next/static/chunks/0z6gt156zrha5.js" async=""></script><script src="/_next/static/chunks/turbopack-06cim.6arsvaw.js" async=""></script><script src="/_next/static/chunks/0dt3aid33ais1.js" async=""></script><script src="/_next/static/chunks/0vzzrchhavio..js" async=""></script><script src="/_next/static/chunks/0hhu-twtc7egd.js" async=""></script><script src="/_next/static/chunks/0wv1u~q3gp3dx.js" async=""></script><meta name="next-size-adjust" content=""/><title>Docs / 产品文档 — Heicode</title><meta name="description" content="Heicode product guide: quick start, resource binding, secret vault, model gateway and product demo."/><link rel="icon" href="/heicode-logo.png" media="(prefers-color-scheme: light)"/><link rel="icon" href="/heicode-logo.png" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/heicode-logo.png" type="image/png"/><link rel="apple-touch-icon" href="/heicode-logo.png"/><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body class="font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-background"><div class="sticky top-0 z-40 border-b border-border/50 bg-background/90 backdrop-blur-md"><div class="mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6 lg:px-8"><a class="flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left h-4 w-4" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>返回首页</a><div class="hidden items-center gap-6 text-sm md:flex"><a href="#product" class="text-muted-foreground hover:text-foreground transition-colors">产品说明</a><a href="#quickstart" class="text-muted-foreground hover:text-foreground transition-colors">快速上手</a><a href="#resource-binding" class="text-muted-foreground hover:text-foreground transition-colors">资源绑定</a><a href="#secret-vault" class="text-muted-foreground hover:text-foreground transition-colors">密钥保管器</a><a href="#codegw" class="text-muted-foreground hover:text-foreground transition-colors">模型网关</a><a href="#demo" class="text-muted-foreground hover:text-foreground transition-colors">产品演示</a></div><div class="flex items-center gap-3"><button class="rounded-md border border-border/60 px-2.5 py-1 font-mono text-xs text-muted-foreground transition-colors hover:border-accent/50 hover:text-foreground">EN</button><a href="https://code.xinghanlab.com/" target="_blank" rel="noreferrer" data-slot="button" class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5">开始使用<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-1.5 h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></div></div><div class="mx-auto max-w-4xl px-4 py-16 sm:px-6 lg:px-8"><div class="mb-16"><p class="text-sm font-medium uppercase tracking-widest text-accent">产品文档</p><h1 class="mt-3 text-4xl font-bold tracking-tight sm:text-5xl">Heicode 说明与指南</h1><p class="mt-4 max-w-2xl text-lg text-muted-foreground leading-relaxed">从一个想法,到可上线的软件产品。了解 Heicode 如何组织 AI 开发团队,在权限和审计边界内完成完整的软件生命周期。</p></div><section id="product" class="mb-20 scroll-mt-20"><p class="text-sm font-medium uppercase tracking-widest text-accent ">产品说明</p><h2 class="mt-3 text-2xl font-bold sm:text-3xl">Heicode 是什么</h2><p class="mt-4 text-muted-foreground leading-relaxed">Heicode 是面向全流程智能开发的 SaaS 平台。用户注册登录后,可以从一个产品想法开始,接入自己的代码仓库、项目文档、SK 技能和云资源,由平台生成 AI 开发团队,完成需求、开发、检查、部署、观测和后续维护。</p><div class="mt-8 grid gap-4 sm:grid-cols-2"><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="font-semibold">Heicode 客户端(主体验)</h3><p class="mt-2 text-sm text-muted-foreground leading-relaxed">本地对话、输入想法、任务推进、查看执行反馈、接收交付结果、审批高危操作。登录 Heicode 即可,无需配置模型或 API Key。</p></div><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="font-semibold">Heicode Manager(辅助控制台)</h3><p class="mt-2 text-sm text-muted-foreground leading-relaxed">浏览器端。账号与安全、客户端下载、Git 与云资源绑定、Agnet 部署、任务状态、模型余额与用量、审计日志。</p></div><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="font-semibold">Agnet 平台(AI 执行层)</h3><p class="mt-2 text-sm text-muted-foreground leading-relaxed">运行子 Agnet,按需求→开发→测试→修复→部署子环节持续推进任务,可调用 SK 工具,结果回传到客户端。</p></div><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="font-semibold">CodeGW(模型网关)</h3><p class="mt-2 text-sm text-muted-foreground leading-relaxed">统一路由用户模型请求,管理额度、用量和计费。普通用户无需直接接触,客户端展示的模型由 Heicode 定义。</p></div></div></section><hr class="mb-20 border-border"/><section id="quickstart" class="mb-20 scroll-mt-20"><p class="text-sm font-medium uppercase tracking-widest text-accent ">快速上手</p><h2 class="mt-3 text-2xl font-bold sm:text-3xl">五步开始使用</h2><p class="mt-4 text-muted-foreground leading-relaxed">从注册到第一个任务运行,全程不超过 10 分钟。</p><div class="mt-8 space-y-4"><div class="flex gap-5 rounded-xl border border-border bg-card/50 p-6"><div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary font-mono text-sm font-bold text-accent">01</div><div class="min-w-0"><h3 class="font-semibold">注册并登录</h3><p class="mt-1 text-sm text-muted-foreground leading-relaxed">访问 code.xinghanlab.com,完成账号注册。登录后进入 Heicode 工作区。</p><p class="mt-2 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">提示:<!-- -->平台支持邮箱登录,后续可绑定 GitHub 账号。</p></div></div><div class="flex gap-5 rounded-xl border border-border bg-card/50 p-6"><div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary font-mono text-sm font-bold text-accent">02</div><div class="min-w-0"><h3 class="font-semibold">下载客户端</h3><p class="mt-1 text-sm text-muted-foreground leading-relaxed">在控制台进入「客户端下载」,选择 macOS 或 Windows 版本下载安装。</p><p class="mt-2 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">提示:<!-- -->macOS 首次安装若出现安全提示,按平台说明操作即可正常打开。</p></div></div><div class="flex gap-5 rounded-xl border border-border bg-card/50 p-6"><div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary font-mono text-sm font-bold text-accent">03</div><div class="min-w-0"><h3 class="font-semibold">在客户端登录</h3><p class="mt-1 text-sm text-muted-foreground leading-relaxed">打开客户端,点击「登录」,跳转浏览器完成 OAuth 授权后自动返回。</p><p class="mt-2 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">提示:<!-- -->客户端不需要手动输入 API Key,登录 Heicode 即激活所有模型能力。</p></div></div><div class="flex gap-5 rounded-xl border border-border bg-card/50 p-6"><div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary font-mono text-sm font-bold text-accent">04</div><div class="min-w-0"><h3 class="font-semibold">输入第一个想法</h3><p class="mt-1 text-sm text-muted-foreground leading-relaxed">在客户端对话框描述你想做的事情:产品功能、技术栈、部署目标等。Heicode 生成需求摘要和任务草案。</p><p class="mt-2 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">提示:<!-- -->不需要写完整 PRD,用自然语言描述即可,后续可随时补充。</p></div></div><div class="flex gap-5 rounded-xl border border-border bg-card/50 p-6"><div class="flex h-10 w-10 shrink-0 items-center justify-center rounded-lg bg-secondary font-mono text-sm font-bold text-accent">05</div><div class="min-w-0"><h3 class="font-semibold">绑定资源,启动执行</h3><p class="mt-1 text-sm text-muted-foreground leading-relaxed">在 Manager 控制台绑定 Git 仓库、云账号或工具包,确认权限范围后 Agnet 开始执行。</p><p class="mt-2 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">提示:<!-- -->高危操作(生产部署、密钥访问等)会在客户端弹出审批,需明确确认。</p></div></div></div><div class="mt-8 flex justify-center"><a href="https://code.xinghanlab.com/" target="_blank" rel="noreferrer" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-9 px-4 py-2 has-[>svg]:px-3">立即开始<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a></div></section><hr class="mb-20 border-border"/><section id="resource-binding" class="mb-20 scroll-mt-20"><div class="flex items-center gap-3"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-accent/10 text-accent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-cable h-5 w-5" aria-hidden="true"><path d="M17 19a1 1 0 0 1-1-1v-2a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2a1 1 0 0 1-1 1z"></path><path d="M17 21v-2"></path><path d="M19 14V6.5a1 1 0 0 0-7 0v11a1 1 0 0 1-7 0V10"></path><path d="M21 21v-2"></path><path d="M3 5V3"></path><path d="M4 10a2 2 0 0 1-2-2V6a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2z"></path><path d="M7 5V3"></path></svg></div><p class="text-sm font-medium uppercase tracking-widest text-accent mt-0">资源绑定</p></div><h2 class="mt-3 text-2xl font-bold sm:text-3xl">Resource Binding</h2><p class="mt-4 text-muted-foreground leading-relaxed">一次授权,全流程复用。Heicode 把用户授权的 Git 仓库、云账号、SK 工具包和项目文档统一保存为资源绑定记录。Agnet 在任务执行中按需申请使用,权限有边界,操作有记录。</p><div class="mt-6 overflow-hidden rounded-xl border border-border"><table class="w-full text-sm"><thead><tr class="border-b border-border bg-card/70"><th class="px-5 py-3 text-left font-medium">资源类型</th><th class="px-5 py-3 text-left font-medium">说明</th><th class="px-5 py-3 text-left font-medium">授权方式</th></tr></thead><tbody class="divide-y divide-border"><tr class="bg-card/20"><td class="px-5 py-3 font-mono text-xs font-medium">Git 仓库</td><td class="px-5 py-3 text-muted-foreground">代码仓库,拉取、提交和 PR</td><td class="px-5 py-3 text-muted-foreground">OAuth 或 Access Token</td></tr><tr class="bg-card/20"><td class="px-5 py-3 font-mono text-xs font-medium">云账号</td><td class="px-5 py-3 text-muted-foreground">Azure / AWS / GCP 等云资源</td><td class="px-5 py-3 text-muted-foreground">服务账号或云平台 OAuth</td></tr><tr class="bg-card/20"><td class="px-5 py-3 font-mono text-xs font-medium">SK 工具包</td><td class="px-5 py-3 text-muted-foreground">行业技能包或自定义工具集</td><td class="px-5 py-3 text-muted-foreground">仓库地址 + 授权</td></tr><tr class="bg-card/20"><td class="px-5 py-3 font-mono text-xs font-medium">项目文档</td><td class="px-5 py-3 text-muted-foreground">需求、设计、规格等文档</td><td class="px-5 py-3 text-muted-foreground">文件上传或仓库路径</td></tr></tbody></table></div><div class="mt-6 rounded-xl border border-border bg-card/30 p-5 text-sm text-muted-foreground leading-relaxed"><span class="font-medium text-foreground">权限控制:</span>每次资源绑定都会记录授权范围。Agnet 只能访问任务对应的资源,不能跨任务访问。高危操作(生产环境写入、密钥轮换)需要客户端审批后才能执行。</div></section><hr class="mb-20 border-border"/><section id="secret-vault" class="mb-20 scroll-mt-20"><div class="flex items-center gap-3"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-accent/10 text-accent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-lock-keyhole h-5 w-5" aria-hidden="true"><circle cx="12" cy="16" r="1"></circle><rect x="3" y="10" width="18" height="12" rx="2"></rect><path d="M7 10V7a5 5 0 0 1 10 0v3"></path></svg></div><p class="text-sm font-medium uppercase tracking-widest text-accent mt-0">密钥保管器</p></div><h2 class="mt-3 text-2xl font-bold sm:text-3xl">Secret Vault</h2><p class="mt-4 text-muted-foreground leading-relaxed">长期凭证不存在数据库里,也不出现在日志和代码中。Heicode 把所有长期密钥保存在 OpenBao 密钥保管器中,数据库只保存不含密钥明文的引用(secret_ref)。</p><div class="mt-8 grid gap-4 sm:grid-cols-3"><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="text-sm font-semibold">长期密钥安全存放</h3><p class="mt-2 text-xs text-muted-foreground leading-relaxed">Git Token、云访问密钥、数据库连接串等长期凭证全部进入 OpenBao,不落入业务数据库。</p></div><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="text-sm font-semibold">Agnet 只拿短期凭证</h3><p class="mt-2 text-xs text-muted-foreground leading-relaxed">子 Agnet 执行任务时,按审批结果派生最小权限的短期凭证,TTL 到期或任务结束后自动失效。</p></div><div class="rounded-xl border border-border bg-card/50 p-5"><h3 class="text-sm font-semibold">前端不展示明文</h3><p class="mt-2 text-xs text-muted-foreground leading-relaxed">控制台和客户端只展示脱敏引用和状态(如「已绑定」「已过期」),不返回密钥明文。</p></div></div><div class="mt-6 rounded-xl border border-border bg-card/30 p-5"><h3 class="mb-3 text-sm font-semibold">凭证生命周期</h3><div class="space-y-2 text-sm text-muted-foreground"><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">1</span><span>用户在 Manager 完成资源授权</span></div><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">2</span><span>Heicode Secret Broker 把凭证写入 OpenBao</span></div><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">3</span><span>数据库保存 secret_ref(不含明文)</span></div><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">4</span><span>任务执行时,经客户端审批后生成短期凭证</span></div><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">5</span><span>短期凭证注入 Agnet 运行时,TTL 到期失效</span></div><div class="flex items-start gap-3"><span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full bg-secondary font-mono text-xs font-bold">6</span><span>所有访问记录写入审计日志</span></div></div></div></section><hr class="mb-20 border-border"/><section id="codegw" class="mb-20 scroll-mt-20"><div class="flex items-center gap-3"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-accent/10 text-accent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-network h-5 w-5" aria-hidden="true"><rect x="16" y="16" width="6" height="6" rx="1"></rect><rect x="2" y="16" width="6" height="6" rx="1"></rect><rect x="9" y="2" width="6" height="6" rx="1"></rect><path d="M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3"></path><path d="M12 12V8"></path></svg></div><p class="text-sm font-medium uppercase tracking-widest text-accent mt-0">模型网关</p></div><h2 class="mt-3 text-2xl font-bold sm:text-3xl">CodeGW Boundary</h2><p class="mt-4 text-muted-foreground leading-relaxed">所有模型调用统一经过 CodeGW 路由。用户在客户端看到的是 Heicode 提供的模型,不感知底层提供商。额度、用量、计费和速率限制在网关层集中管控。</p><div class="mt-6 overflow-hidden rounded-xl border border-border"><div class="bg-card/70 px-5 py-3 text-sm font-medium">请求路径</div><div class="p-6"><div class="flex flex-col items-center gap-2 text-sm"><div class="flex w-full flex-col items-center gap-2"><div class="w-full max-w-sm rounded-lg border border-border bg-secondary/40 px-4 py-3 text-center"><p class="font-medium">Heicode 客户端 / Agnet</p><p class="mt-0.5 text-xs text-muted-foreground">发起模型请求</p></div><span class="text-muted-foreground/50">↓</span></div><div class="flex w-full flex-col items-center gap-2"><div class="w-full max-w-sm rounded-lg border border-border bg-secondary/40 px-4 py-3 text-center"><p class="font-medium">CodeGW</p><p class="mt-0.5 text-xs text-muted-foreground">路由 · 鉴权 · 额度检查 · 日志</p></div><span class="text-muted-foreground/50">↓</span></div><div class="flex w-full flex-col items-center gap-2"><div class="w-full max-w-sm rounded-lg border border-border bg-secondary/40 px-4 py-3 text-center"><p class="font-medium">底层模型提供商</p><p class="mt-0.5 text-xs text-muted-foreground">Claude · GPT · 其他</p></div></div></div></div></div><div class="mt-6 grid gap-4 sm:grid-cols-2"><div class="flex gap-4 rounded-xl border border-border bg-card/50 p-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check mt-0.5 h-4 w-4 shrink-0 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><div><h3 class="text-sm font-semibold">用户不感知底层提供商</h3><p class="mt-1 text-xs text-muted-foreground leading-relaxed">客户端展示的模型名称由 Heicode 定义,不暴露底层 Claude、GPT 或其他提供商。</p></div></div><div class="flex gap-4 rounded-xl border border-border bg-card/50 p-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check mt-0.5 h-4 w-4 shrink-0 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><div><h3 class="text-sm font-semibold">额度统一管控</h3><p class="mt-1 text-xs text-muted-foreground leading-relaxed">每次调用的 token 消耗记录在 CodeGW,用户可在 Manager 查看用量和余额。</p></div></div><div class="flex gap-4 rounded-xl border border-border bg-card/50 p-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check mt-0.5 h-4 w-4 shrink-0 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><div><h3 class="text-sm font-semibold">速率限制</h3><p class="mt-1 text-xs text-muted-foreground leading-relaxed">网关层按用户等级和订阅类型设置请求速率,防止滥用。</p></div></div><div class="flex gap-4 rounded-xl border border-border bg-card/50 p-5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check mt-0.5 h-4 w-4 shrink-0 text-accent" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="m9 12 2 2 4-4"></path></svg><div><h3 class="text-sm font-semibold">用量审计</h3><p class="mt-1 text-xs text-muted-foreground leading-relaxed">所有模型调用可在 Manager 审计日志中查询,含时间、模型、token 用量。</p></div></div></div></section><hr class="mb-20 border-border"/><section id="demo" class="mb-20 scroll-mt-20"><div class="flex items-center gap-3"><div class="flex h-9 w-9 items-center justify-center rounded-lg bg-accent/10 text-accent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-play h-5 w-5" aria-hidden="true"><path d="M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z"></path><circle cx="12" cy="12" r="10"></circle></svg></div><p class="text-sm font-medium uppercase tracking-widest text-accent mt-0">产品演示</p></div><h2 class="mt-3 text-2xl font-bold sm:text-3xl">Product Demo</h2><p class="mt-4 text-muted-foreground leading-relaxed">完整演示流程,展示从登录到任务执行的全链路体验。</p><div class="mt-8 space-y-0"><div class="flex gap-5"><div class="flex flex-col items-center"><div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 border-accent/40 bg-background font-mono text-xs font-bold text-accent">1</div><div class="mt-1 h-full min-h-[2rem] w-px bg-border"></div></div><div class="mb-6 min-w-0 flex-1 pb-2"><p class="text-xs font-medium uppercase tracking-wider text-accent">第一步</p><h3 class="mt-1 text-base font-semibold">登录 Heicode</h3><ul class="mt-3 space-y-1.5"><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>打开 code.xinghanlab.com</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>输入账号密码完成登录</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>进入工作区首页,查看资源状态和模型余额</li></ul><p class="mt-3 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">用户只登录 Heicode,不需要接触 CodeGW 后台或密钥保管器。</p></div></div><div class="flex gap-5"><div class="flex flex-col items-center"><div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 border-accent/40 bg-background font-mono text-xs font-bold text-accent">2</div><div class="mt-1 h-full min-h-[2rem] w-px bg-border"></div></div><div class="mb-6 min-w-0 flex-1 pb-2"><p class="text-xs font-medium uppercase tracking-wider text-accent">第二步</p><h3 class="mt-1 text-base font-semibold">下载并打开客户端</h3><ul class="mt-3 space-y-1.5"><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>在控制台找到「客户端下载」</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>下载对应系统版本,安装后打开</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>在客户端点击登录,授权后自动进入工作区</li></ul><p class="mt-3 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">客户端登录会跳转浏览器完成 OAuth 授权,无需手动输入 API Key。</p></div></div><div class="flex gap-5"><div class="flex flex-col items-center"><div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 border-accent/40 bg-background font-mono text-xs font-bold text-accent">3</div><div class="mt-1 h-full min-h-[2rem] w-px bg-border"></div></div><div class="mb-6 min-w-0 flex-1 pb-2"><p class="text-xs font-medium uppercase tracking-wider text-accent">第三步</p><h3 class="mt-1 text-base font-semibold">输入产品想法</h3><ul class="mt-3 space-y-1.5"><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>在客户端对话框描述要做的产品</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>例如:「做一个面向小团队的任务管理工具,需要登录、项目、任务和评论,部署到 Azure」</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>Heicode 生成需求摘要和推荐资源清单</li></ul><p class="mt-3 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">描述越具体越好,包含技术偏好、规模预期和部署目标。</p></div></div><div class="flex gap-5"><div class="flex flex-col items-center"><div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 border-accent/40 bg-background font-mono text-xs font-bold text-accent">4</div><div class="mt-1 h-full min-h-[2rem] w-px bg-border"></div></div><div class="mb-6 min-w-0 flex-1 pb-2"><p class="text-xs font-medium uppercase tracking-wider text-accent">第四步</p><h3 class="mt-1 text-base font-semibold">绑定资源,授权执行</h3><ul class="mt-3 space-y-1.5"><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>根据推荐清单,在 Manager 绑定 Git 仓库和云账号</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>确认 Agnet 可使用的资源范围</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>Heicode 生成任务计划,Agnet 开始执行</li></ul><p class="mt-3 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">绑定时只需完成 OAuth 或填写 Token,凭证由平台托管。</p></div></div><div class="flex gap-5"><div class="flex flex-col items-center"><div class="flex h-9 w-9 shrink-0 items-center justify-center rounded-full border-2 border-accent/40 bg-background font-mono text-xs font-bold text-accent">5</div></div><div class="mb-6 min-w-0 flex-1 pb-2"><p class="text-xs font-medium uppercase tracking-wider text-accent">第五步</p><h3 class="mt-1 text-base font-semibold">审批与交付</h3><ul class="mt-3 space-y-1.5"><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>查看 Agnet 执行进度和中间反馈</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>生产部署时,客户端弹出审批提示,确认操作范围</li><li class="flex items-start gap-2 text-sm text-muted-foreground"><span class="mt-1.5 h-1.5 w-1.5 shrink-0 rounded-full bg-accent"></span>审批通过后,Agnet 完成部署并回传交付结果</li></ul><p class="mt-3 rounded-lg bg-secondary/60 px-3 py-2 text-xs text-muted-foreground">所有高危操作都需用户明确审批,审批记录写入审计日志。</p></div></div></div><div class="mt-4 rounded-xl border border-accent/30 bg-accent/5 p-8 text-center"><h3 class="text-xl font-bold">准备好了吗?</h3><p class="mt-2 text-sm text-muted-foreground">注册 Heicode,10 分钟内完成第一个任务。</p><div class="mt-6 flex flex-col items-center gap-3 sm:flex-row sm:justify-center"><a href="https://code.xinghanlab.com/" target="_blank" rel="noreferrer" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive bg-primary text-primary-foreground hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4">立即注册<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right ml-2 h-4 w-4" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></a><a href="https://code.xinghanlab.com/" target="_blank" rel="noreferrer" data-slot="button" class="inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-10 rounded-md px-6 has-[>svg]:px-4">打开 Manager</a></div></div></section></div></div><!--$--><!--/$--><!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><script src="/_next/static/chunks/0rh0zxi2et9s9.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[56780,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"LanguageProvider\"]\n3:I[87180,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"default\"]\n4:I[42045,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"default\"]\n5:I[91222,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"Analytics\"]\n6:I[30101,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"ClientPageRoot\"]\n7:I[6548,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\",\"/_next/static/chunks/0hhu-twtc7egd.js\",\"/_next/static/chunks/0wv1u~q3gp3dx.js\"],\"default\"]\na:I[19400,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\nd:I[19400,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"ViewportBoundary\"]\nf:I[19400,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"MetadataBoundary\"]\n11:I[89192,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0x.pxwmy6tt~x.css\",\"style\"]\n:HL[\"/_next/static/chunks/0m802isop-v2v.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"docs\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0x.pxwmy6tt~x.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0m802isop-v2v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0dt3aid33ais1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0vzzrchhavio..js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"className\":\"bg-background\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-sans antialiased\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0hhu-twtc7egd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0wv1u~q3gp3dx.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0x.pxwmy6tt~x.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0m802isop-v2v.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"zarr1ttUZL30DdFntQL0N\"}\n"])</script><script>self.__next_f.push([1,"8:{}\n9:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"12:I[18516,[\"/_next/static/chunks/0dt3aid33ais1.js\",\"/_next/static/chunks/0vzzrchhavio..js\"],\"IconMark\"]\nc:null\n10:[[\"$\",\"title\",\"0\",{\"children\":\"Docs / 产品文档 — Heicode\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Heicode product guide: quick start, resource binding, secret vault, model gateway and product demo.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/heicode-logo.png\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/heicode-logo.png\",\"media\":\"(prefers-color-scheme: dark)\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/heicode-logo.png\",\"type\":\"image/png\"}],[\"$\",\"link\",\"5\",{\"rel\":\"apple-touch-icon\",\"href\":\"/heicode-logo.png\"}],[\"$\",\"$L12\",\"6\",{}]]\n"])</script></body></html> |