[{"data":1,"prerenderedAt":806},["ShallowReactive",2],{"navigation":3,"\u002Fzh\u002Fintroduction":129,"\u002Fzh\u002Fintroduction-surround":801},[4,68],{"title":5,"path":6,"stem":7,"children":8,"page":22},"En","\u002Fen","en",[9,13,23],{"title":10,"path":11,"stem":12},"Product Overview","\u002Fen\u002Fintroduction","en\u002F0.introduction",{"title":14,"path":15,"stem":16,"children":17,"page":22},"Tutorials","\u002Fen\u002Ftutorials","en\u002F1.tutorials",[18],{"title":19,"path":20,"stem":21},"Quick Start","\u002Fen\u002Ftutorials\u002Fquickstart","en\u002F1.tutorials\u002Fquickstart",false,{"title":24,"path":25,"stem":26,"children":27,"page":22},"How To","\u002Fen\u002Fhow-to","en\u002F2.how-to",[28,32,36,40,44,48,52,56,60,64],{"title":29,"path":30,"stem":31},"Canvas Workspace","\u002Fen\u002Fhow-to\u002Fcanvas","en\u002F2.how-to\u002Fcanvas",{"title":33,"path":34,"stem":35},"Configuration","\u002Fen\u002Fhow-to\u002Fconfigure","en\u002F2.how-to\u002Fconfigure",{"title":37,"path":38,"stem":39},"Scheduled Tasks","\u002Fen\u002Fhow-to\u002Fcron-jobs","en\u002F2.how-to\u002Fcron-jobs",{"title":41,"path":42,"stem":43},"Configuring System Service","\u002Fen\u002Fhow-to\u002Finstall","en\u002F2.how-to\u002Finstall",{"title":45,"path":46,"stem":47},"Managing Instructions","\u002Fen\u002Fhow-to\u002Finstructions","en\u002F2.how-to\u002Finstructions",{"title":49,"path":50,"stem":51},"MCP Servers","\u002Fen\u002Fhow-to\u002Fmcp-servers","en\u002F2.how-to\u002Fmcp-servers",{"title":53,"path":54,"stem":55},"Managing Profiles","\u002Fen\u002Fhow-to\u002Fprofiles","en\u002F2.how-to\u002Fprofiles",{"title":57,"path":58,"stem":59},"Configuring Runtimes","\u002Fen\u002Fhow-to\u002Fruntimes","en\u002F2.how-to\u002Fruntimes",{"title":61,"path":62,"stem":63},"Managing Skills","\u002Fen\u002Fhow-to\u002Fskills","en\u002F2.how-to\u002Fskills",{"title":65,"path":66,"stem":67},"VS Code Integration","\u002Fen\u002Fhow-to\u002Fvscode","en\u002F2.how-to\u002Fvscode",{"title":69,"path":70,"stem":71,"children":72,"page":22},"Zh","\u002Fzh","zh",[73,77,85],{"title":74,"path":75,"stem":76},"产品概述","\u002Fzh\u002Fintroduction","zh\u002F0.introduction",{"title":14,"path":78,"stem":79,"children":80,"page":22},"\u002Fzh\u002Ftutorials","zh\u002F1.tutorials",[81],{"title":82,"path":83,"stem":84},"快速开始","\u002Fzh\u002Ftutorials\u002Fquickstart","zh\u002F1.tutorials\u002Fquickstart",{"title":24,"path":86,"stem":87,"children":88,"page":22},"\u002Fzh\u002Fhow-to","zh\u002F2.how-to",[89,93,97,101,105,109,113,117,121,125],{"title":90,"path":91,"stem":92},"Canvas 工作区","\u002Fzh\u002Fhow-to\u002Fcanvas","zh\u002F2.how-to\u002Fcanvas",{"title":94,"path":95,"stem":96},"配置","\u002Fzh\u002Fhow-to\u002Fconfigure","zh\u002F2.how-to\u002Fconfigure",{"title":98,"path":99,"stem":100},"定时任务","\u002Fzh\u002Fhow-to\u002Fcron-jobs","zh\u002F2.how-to\u002Fcron-jobs",{"title":102,"path":103,"stem":104},"配置系统服务","\u002Fzh\u002Fhow-to\u002Finstall","zh\u002F2.how-to\u002Finstall",{"title":106,"path":107,"stem":108},"管理指令文件","\u002Fzh\u002Fhow-to\u002Finstructions","zh\u002F2.how-to\u002Finstructions",{"title":110,"path":111,"stem":112},"MCP 服务器","\u002Fzh\u002Fhow-to\u002Fmcp-servers","zh\u002F2.how-to\u002Fmcp-servers",{"title":114,"path":115,"stem":116},"管理 Profile","\u002Fzh\u002Fhow-to\u002Fprofiles","zh\u002F2.how-to\u002Fprofiles",{"title":118,"path":119,"stem":120},"配置 Runtime","\u002Fzh\u002Fhow-to\u002Fruntimes","zh\u002F2.how-to\u002Fruntimes",{"title":122,"path":123,"stem":124},"管理 Skill","\u002Fzh\u002Fhow-to\u002Fskills","zh\u002F2.how-to\u002Fskills",{"title":126,"path":127,"stem":128},"VS Code 集成","\u002Fzh\u002Fhow-to\u002Fvscode","zh\u002F2.how-to\u002Fvscode",{"id":130,"title":74,"body":131,"description":794,"extension":795,"links":796,"meta":797,"navigation":798,"path":75,"seo":799,"stem":76,"__hash__":800},"docs\u002Fzh\u002F0.introduction.md",{"type":132,"value":133,"toc":766},"minimark",[134,139,144,148,151,180,183,187,190,217,219,222,227,230,233,259,263,266,292,295,299,302,322,325,329,332,352,355,366,370,373,398,402,405,424,427,431,434,448,450,453,457,480,483,494,498,513,523,527,530,536,539,550,554,557,577,579,599,603,606,626,628,631,635,641,673,677,682,710,714,719,733,735,737,740,762],[135,136,138],"h1",{"id":137},"sink-产品概述","Sink 产品概述",[140,141,143],"h2",{"id":142},"什么是-sink","什么是 Sink？",[145,146,147],"p",{},"SecFlow is an AI-powered security testing platform that automates\npenetration testing, code audits, and security validation by letting AI\nagents (such as Claude Code, Codex, Goose, etc.) interact with your\nsystems.",[145,149,150],{},"核心特点：",[152,153,154,162,168,174],"ul",{},[155,156,157,161],"li",{},[158,159,160],"strong",{},"Web UI + CLI","：既能通过浏览器交互式操作，也能通过命令行自动化执行",[155,163,164,167],{},[158,165,166],{},"多 Agent 支持","：不绑定单一 AI 服务商，通过标准 ACP 协议（Agent\nClient Protocol）接入 Claude Code、Codex、Factory Droid 等多种 Agent",[155,169,170,173],{},[158,171,172],{},"实时协作","：看到 Agent\n的每一步思考、工具调用和决策，随时可以审批或终止",[155,175,176,179],{},[158,177,178],{},"工作区隔离","：每个项目是独立的工作区，拥有自己的配置、技能库和执行历史",[181,182],"hr",{},[140,184,186],{"id":185},"解决什么问题","解决什么问题？",[145,188,189],{},"许多知识密集型工作仍然高度依赖人工。Sink 把 AI Agent\n的通用推理能力和执行能力结合起来：",[191,192,193,199,205,211],"ol",{},[155,194,195,198],{},[158,196,197],{},"快速定义任务","：一句话描述你想完成什么，AI Agent\n自动分解为具体步骤",[155,200,201,204],{},[158,202,203],{},"透明的执行过程","：不是黑盒结果，而是实时看到 Agent\n如何思考、调用了哪些工具、做了什么决策",[155,206,207,210],{},[158,208,209],{},"人机协作","：当 Agent\n需要执行敏感操作（如修改文件、执行命令）时，必须经过你的审批",[155,212,213,216],{},[158,214,215],{},"跨项目复用","：把通用的工作流程、经验和技巧保存为”Skill”（Agent\n的能力库），在多个项目间共用",[181,218],{},[140,220,221],{"id":221},"核心概念",[223,224,226],"h3",{"id":225},"task任务","Task（任务）",[145,228,229],{},"一个 Task 是 AI Agent 的一次执行会话。你描述一个目标或问题，Agent\n就开启一个 Task 来完成它。",[145,231,232],{},"每个 Task 包含：",[152,234,235,241,247,253],{},[155,236,237,240],{},[158,238,239],{},"目标描述","：你对 Agent 的指示",[155,242,243,246],{},[158,244,245],{},"执行状态","：Agent 当前在做什么（分析中、等待审批、已完成等）",[155,248,249,252],{},[158,250,251],{},"会话历史","：用户和 Agent 的交互记录",[155,254,255,258],{},[158,256,257],{},"工具调用","：Agent 执行的具体操作（代码执行、文件操作等）",[223,260,262],{"id":261},"profileagent-人格","Profile（Agent 人格）",[145,264,265],{},"Profile 定义了一个 AI Agent 在你的平台上的”人格”和”能力”。它包括：",[152,267,268,274,280,286],{},[155,269,270,273],{},[158,271,272],{},"System Prompt","：告诉 Agent 它是什么、应该怎样思考和行动",[155,275,276,279],{},[158,277,278],{},"Runtime","：如何启动这个 Agent 进程（使用哪个 AI 服务、什么参数）",[155,281,282,285],{},[158,283,284],{},"Skills","：这个 Agent 有权访问哪些能力和工具库",[155,287,288,291],{},[158,289,290],{},"MCP 配置","：这个 Agent 能调用哪些外部工具和数据源",[145,293,294],{},"一个 Profile 就像一个”角色模板”。你可以为不同的任务场景创建不同的\nProfile——比如”代码审查员”Profile 专注于代码质量分析，“DevOps\n工程师”Profile 专注于基础设施和部署流程。",[223,296,298],{"id":297},"runtime运行时","Runtime（运行时）",[145,300,301],{},"Runtime 定义了如何启动一个 AI Agent 进程。它包括：",[152,303,304,310,316],{},[155,305,306,309],{},[158,307,308],{},"Agent 类型","：是 Claude Code、Codex、Factory Droid 还是 OpenCode",[155,311,312,315],{},[158,313,314],{},"启动命令","：运行什么命令来启动 Agent",[155,317,318,321],{},[158,319,320],{},"环境变量和参数","：传给 Agent 进程的配置",[145,323,324],{},"多个 Profile 可以共享同一个 Runtime，但使用不同的 System Prompt 来改变\nAgent 的行为。",[223,326,328],{"id":327},"skill能力","Skill（能力）",[145,330,331],{},"Skill 是 AI Agent 能够使用的一个特定功能或工具库。每个 Skill 包含：",[152,333,334,340,346],{},[155,335,336,339],{},[158,337,338],{},"说明文档","：告诉 Agent 这个 Skill 是什么、怎样使用",[155,341,342,345],{},[158,343,344],{},"参考资料","：Skill 的技术细节和选项文档",[155,347,348,351],{},[158,349,350],{},"自定义工具","（可选）：Skill 可以定义 MCP 工具供 Agent 调用",[145,353,354],{},"你可以：",[152,356,357,360,363],{},[155,358,359],{},"使用 Sink 内置的 Skills（如代码执行、文件操作等）",[155,361,362],{},"从技能库下载社区 Skills",[155,364,365],{},"为特定项目或团队编写自己的 Skills",[223,367,369],{"id":368},"mcp-server工具集","MCP Server（工具集）",[145,371,372],{},"MCP（Model Context Protocol）是一个开放标准，允许 AI Agent\n调用外部工具和访问数据。Sink 可以接入任何兼容 MCP 的工具：",[152,374,375,381,387,393],{},[155,376,377,380],{},[158,378,379],{},"代码工具","：语言服务器、编译器、代码分析工具",[155,382,383,386],{},[158,384,385],{},"系统工具","：shell 命令、文件操作、进程管理",[155,388,389,392],{},[158,390,391],{},"API 工具","：数据库查询、网络请求、第三方服务调用",[155,394,395,397],{},[158,396,350],{},"：你自己编写的工具",[223,399,401],{"id":400},"workspace工作区","Workspace（工作区）",[145,403,404],{},"一个 Workspace 就是一个项目目录。它包含：",[152,406,407,412,418],{},[155,408,409],{},[158,410,411],{},"项目代码和文件",[155,413,414,417],{},[158,415,416],{},"Sink 的本地配置","：这个工作区用哪些 Profile、Skill、MCP Server",[155,419,420,423],{},[158,421,422],{},"执行历史","：在这个工作区执行过的所有 Task 和结果",[145,425,426],{},"多个工作区可以共享用户级的配置（如 Agent Runtime、通用\nSkills），但每个工作区有独立的 Profile 定义、本地 Skills 和执行历史。",[223,428,430],{"id":429},"gateway网关","Gateway（网关）",[145,432,433],{},"Gateway 是 Sink 的服务进程。它：",[152,435,436,439,442,445],{},[155,437,438],{},"提供网页 UI 和 REST API",[155,440,441],{},"管理用户身份和权限",[155,443,444],{},"协调多个工作区间的 Agent 执行",[155,446,447],{},"处理 Task 的实时状态推送（用 Server-Sent Events）",[181,449],{},[140,451,452],{"id":452},"基本工作流程",[223,454,456],{"id":455},"_1-初始化平台","1. 初始化平台",[458,459,464],"pre",{"className":460,"code":461,"language":462,"meta":463,"style":463},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sink init\n","bash","",[465,466,467],"code",{"__ignoreMap":463},[468,469,472,476],"span",{"class":470,"line":471},"line",1,[468,473,475],{"class":474},"sBMFI","sink",[468,477,479],{"class":478},"sfazB"," init\n",[145,481,482],{},"首次使用时运行这个命令，它会：",[152,484,485,488,491],{},[155,486,487],{},"检测本地已安装的 Agent Runtime（Claude Code、Codex、Factory\nDroid、OpenCode）",[155,489,490],{},"交互式配置默认 Profile（名称、模型、系统提示词）",[155,492,493],{},"创建配置文件（settings.json、gateway.json、runtimes.json、mcp.json、默认\nProfile）",[223,495,497],{"id":496},"_2-启动网关服务","2. 启动网关服务",[458,499,501],{"className":460,"code":500,"language":462,"meta":463,"style":463},"sink gateway start\n",[465,502,503],{"__ignoreMap":463},[468,504,505,507,510],{"class":470,"line":471},[468,506,475],{"class":474},[468,508,509],{"class":478}," gateway",[468,511,512],{"class":478}," start\n",[145,514,515,516,522],{},"启动 Gateway 进程，打开网页界面（通常在\n",[517,518,521],"a",{"rel":519},[520],"nofollow","http:\u002F\u002Flocalhost:5000）。现在可以开始创建"," Task 了。",[223,524,526],{"id":525},"_3-创建一个-task","3. 创建一个 Task",[145,528,529],{},"在网页上或通过 CLI，描述你的目标。比如：",[531,532,533],"blockquote",{},[145,534,535],{},"“审查这个 Node.js 应用的认证模块，检查错误处理和最佳实践的遵循情况”",[145,537,538],{},"Sink 会：",[152,540,541,544,547],{},[155,542,543],{},"根据你的工作区配置选择合适的 Profile（比如”代码审查员”）",[155,545,546],{},"启动对应的 Agent",[155,548,549],{},"把你的描述发给 Agent 作为初始指示",[223,551,553],{"id":552},"_4-实时监督","4. 实时监督",[145,555,556],{},"网页 UI 实时显示：",[152,558,559,565,571],{},[155,560,561,564],{},[158,562,563],{},"Agent 的思考过程","：Agent 现在在做什么、想到了什么",[155,566,567,570],{},[158,568,569],{},"待审批的操作","：当 Agent 要执行敏感操作时，UI 会弹出审批框",[155,572,573,576],{},[158,574,575],{},"工具调用历史","：Agent 执行了哪些命令、文件操作等",[145,578,354],{},[152,580,581,587,593],{},[155,582,583,586],{},[158,584,585],{},"继续对话","：输入新的指示、提问或提醒",[155,588,589,592],{},[158,590,591],{},"审批\u002F拒绝","：对敏感操作做出决定",[155,594,595,598],{},[158,596,597],{},"停止任务","：觉得不对时可以随时中止",[223,600,602],{"id":601},"_5-查看结果","5. 查看结果",[145,604,605],{},"Task 完成后，网页会显示：",[152,607,608,614,620],{},[155,609,610,613],{},[158,611,612],{},"执行总结","：Agent 做了什么、发现了什么",[155,615,616,619],{},[158,617,618],{},"详细报告","：包括代码、日志、截图等具体结果",[155,621,622,625],{},[158,623,624],{},"下载","：可以导出报告或中间产物",[181,627],{},[140,629,630],{"id":630},"典型使用场景",[223,632,634],{"id":633},"场景-1自动化代码审查","场景 1：自动化代码审查",[145,636,637,640],{},[158,638,639],{},"任务","：定期审查新提交的代码，检查正确性、可维护性和编码规范的遵循情况。",[191,642,643,646,653,670],{},[155,644,645],{},"创建一个”代码审查员” Profile，配置好代码读取、静态分析等 Skills",[155,647,648,649,652],{},"创建 Task，指示 Agent 审查 ",[465,650,651],{},"src\u002F"," 目录的代码",[155,654,655,656],{},"Agent 会自动：\n",[152,657,658,661,664,667],{},[155,659,660],{},"读取代码文件",[155,662,663],{},"运行 linter、类型检查和测试套件",[155,665,666],{},"识别潜在问题和反模式",[155,668,669],{},"指出具体行号和修复建议",[155,671,672],{},"你审批 Agent 的建议，生成审查报告",[223,674,676],{"id":675},"场景-2项目工作流自动化","场景 2：项目工作流自动化",[145,678,679,681],{},[158,680,639],{},"：搭建好新服务后，需要验证其配置、测试和部署就绪状态。",[191,683,684,687,690,707],{},[155,685,686],{},"创建一个”DevOps 工程师” Profile，配置好文件系统、命令执行等 Skills",[155,688,689],{},"创建 Task，指示 Agent 验证服务搭建和部署就绪状态",[155,691,692,693],{},"Agent 会：\n",[152,694,695,698,701,704],{},[155,696,697],{},"检查配置文件和环境设置",[155,699,700],{},"运行测试，检查常见的配置错误",[155,702,703],{},"验证部署清单和 CI\u002FCD 流水线",[155,705,706],{},"生成包含可操作建议的就绪报告",[155,708,709],{},"你审批高风险操作，收集验证报告",[223,711,713],{"id":712},"场景-4重复性任务","场景 4：重复性任务",[145,715,716,718],{},[158,717,639],{},"：每次发版前都要跑一遍相同的检查清单。",[191,720,721,724,727,730],{},[155,722,723],{},"把常用的检查流程保存为一个 Skill",[155,725,726],{},"创建一个参数化的 Profile，引用这个 Skill",[155,728,729],{},"每次发版时，只需创建 Task 并传入参数（比如要检查的模块）",[155,731,732],{},"Agent 自动执行标准化流程，生成可对比的报告",[181,734],{},[181,736],{},[140,738,739],{"id":739},"后续步骤",[152,741,742,749,755],{},[155,743,744,745,748],{},"阅读 ",[517,746,102],{"href":747},".\u002Fhow-to\u002Finstall"," 了解如何将 Sink\n配置为开机自启的系统服务",[155,750,744,751,754],{},[517,752,82],{"href":753},".\u002Ftutorials\u002Fquickstart"," 完成第一个 Task",[155,756,744,757,761],{},[517,758,760],{"href":759},".\u002Fhow-to\u002Fconfigure","配置网关"," 了解如何定制 Agent 和 Skills",[763,764,765],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":463,"searchDepth":471,"depth":767,"links":768},2,[769,770,771,781,788,793],{"id":142,"depth":767,"text":143},{"id":185,"depth":767,"text":186},{"id":221,"depth":767,"text":221,"children":772},[773,775,776,777,778,779,780],{"id":225,"depth":774,"text":226},3,{"id":261,"depth":774,"text":262},{"id":297,"depth":774,"text":298},{"id":327,"depth":774,"text":328},{"id":368,"depth":774,"text":369},{"id":400,"depth":774,"text":401},{"id":429,"depth":774,"text":430},{"id":452,"depth":767,"text":452,"children":782},[783,784,785,786,787],{"id":455,"depth":774,"text":456},{"id":496,"depth":774,"text":497},{"id":525,"depth":774,"text":526},{"id":552,"depth":774,"text":553},{"id":601,"depth":774,"text":602},{"id":630,"depth":767,"text":630,"children":789},[790,791,792],{"id":633,"depth":774,"text":634},{"id":675,"depth":774,"text":676},{"id":712,"depth":774,"text":713},{"id":739,"depth":767,"text":739},"Sink 是什么、解决什么问题、核心概念和典型使用场景","md",null,{},true,{"title":74,"description":794},"NiDqhsL5EA5mqXduG7b5YbdBS7y01CN5IF2-lRtV-eM",[802,804],{"title":65,"path":66,"stem":67,"description":803,"children":-1},"Use the built-in VS Code for Workspace development",{"title":82,"path":83,"stem":84,"description":805,"children":-1},"初始化 Sink 并运行第一个 AI 任务",1778225993516]