[{"data":1,"prerenderedAt":677},["ShallowReactive",2],{"integrations-zh:/zh/integrations/pi":3},{"id":4,"title":5,"active":6,"body":7,"description":663,"extension":664,"eyebrow":69,"icon":665,"image":666,"meta":667,"name":668,"navTitle":668,"navigation":6,"order":669,"path":670,"seo":671,"slug":672,"status":673,"stem":674,"summary":675,"toc":665,"__hash__":676},"integrations_zh/zh/integrations/pi.md","Pi + OpenPets",true,{"type":8,"value":9,"toc":647},"minimark",[10,120,174,271,475,553,580,631],[11,12,16,17,16,21,16,30,16,117],"section",{"id":13,"className":14},"overview",[15],"docs-section","\n  ",[18,19,20],"h2",{"id":20},"这个集成做什么",[22,23,24,25,29],"p",{},"\n    Pi 集成是一个扩展包，而不是 MCP 配置。它在 Pi 内部加载，直接监听 Pi 的\n    会话和工具事件，并通过 ",[26,27,28],"code",{},"@open-pets/client"," 将一小组安全反应转\n    发到正在运行的 OpenPets 桌面应用。\n  ",[31,32,35,36,16],"div",{"className":33},[34],"docs-table-wrap","\n    ",[37,38,39,40,39,57,35],"table",{},"\n      ",[41,42,43,44,39],"thead",{},"\n        ",[45,46,47,51,54],"tr",{},[48,49,50],"th",{},"组成部分",[48,52,53],{},"作用",[48,55,56],{},"意义",[58,59,43,60,43,76,43,89,39],"tbody",{},[45,61,62,63,62,70,62,73,43],{},"\n          ",[64,65,66],"td",{},[67,68,69],"strong",{},"Pi 扩展",[64,71,72],{},"订阅 Pi 的会话、代理和工具事件。",[64,74,75],{},"当 Pi 思考、编辑、执行命令、成功或出错时，宠物会自动作出反应。",[45,77,62,78,62,83,62,86,43],{},[64,79,80],{},[67,81,82],{},"OpenPets IPC 客户端",[64,84,85],{},"通过本地 IPC 发送反应和简短的状态消息。",[64,87,88],{},"运行完全本地化。Pi 永远不需要远程服务来控制宠物。",[45,90,62,91,62,96,62,114,43],{},[64,92,93],{},[67,94,95],{},"/openpets 命令",[64,97,98,99,102,103,102,106,109,110,113],{},"添加 ",[26,100,101],{},"status","、",[26,104,105],{},"test",[26,107,108],{},"react"," 和 ",[26,111,112],{},"say"," 子命令。",[64,115,116],{},"用户可以在 Pi 内验证连接并触发手动反应。",[22,118,119],{},"\n    运行时控制是尽力而为的。如果 OpenPets 桌面应用关闭，Pi 会继续正常工作；扩展\n    会安静地跳过宠物更新，直到桌面应用再次可达。\n  ",[11,121,16,124,16,127,16,130,16,151,16,167],{"id":122,"className":123},"install",[15],[18,125,126],{"id":126},"安装",[22,128,129],{},"\n    保持 OpenPets 桌面应用运行，然后使用 Pi 安装扩展包。可以选择对当前机器进行\n    全局安装，或对单个仓库进行项目本地安装。\n  ",[31,131,35,134,35,145,16],{"className":132},[133],"docs-code",[31,135,138,142],{"className":136},[137],"docs-code-bar",[139,140,141],"span",{},"全局安装",[139,143,144],{},"bash",[146,147,148],"pre",{},[26,149,150],{},"pi install npm:@open-pets/pi",[31,152,35,154,35,162,16],{"className":153},[133],[31,155,157,160],{"className":156},[137],[139,158,159],{},"项目本地安装",[139,161,144],{},[146,163,164],{},[26,165,166],{},"pi install -l npm:@open-pets/pi",[22,168,169,170,173],{},"\n    全局安装会写入 Pi 的全局包设置。项目本地安装会写入\n    ",[26,171,172],{},".pi/settings.json","，适合需要让仓库显式携带 OpenPets 行为的场景。\n    修改包设置后，请重新加载或重启 Pi，以便新扩展生效。\n  ",[11,175,16,178,16,182,16,185,16,266],{"id":176,"className":177},"commands",[15],[18,179,181],{"id":180},"slash-命令","Slash 命令",[22,183,184],{},"\n    扩展只注册一个面向用户的命令命名空间，让你无需添加额外的 Pi 工具就能测试\n    和控制集成。这些命令都不会转发 prompt 或工具输出。\n  ",[31,186,35,188,16],{"className":187},[34],[37,189,39,190,39,200,35],{},[41,191,192],{},[45,193,194,197],{},[48,195,196],{},"命令",[48,198,199],{},"用途",[58,201,43,202,43,212,43,222,43,246,43,256,39],{},[45,203,204,209],{},[64,205,206],{},[26,207,208],{},"/openpets status",[64,210,211],{},"检查 OpenPets 桌面应用是否可达，以及当前目标宠物。",[45,213,214,219],{},[64,215,216],{},[26,217,218],{},"/openpets test",[64,220,221],{},"发送一个简短的测试反应和挥手消息。",[45,223,224,229],{},[64,225,226],{},[26,227,228],{},"/openpets react \u003Creaction>",[64,230,231,232,102,235,102,238,241,242,245],{},"手动设置安全反应，例如 ",[26,233,234],{},"thinking",[26,236,237],{},"testing",[26,239,240],{},"success"," 或 ",[26,243,244],{},"error","。",[45,247,248,253],{},[64,249,250],{},[26,251,252],{},"/openpets say \u003Cmessage>",[64,254,255],{},"显示一条经过校验的简短气泡消息。",[45,257,258,263],{},[64,259,260],{},[26,261,262],{},"/openpets help",[64,264,265],{},"在 Pi 内打印可用的子命令列表。",[22,267,35,268,270],{},[26,269,112],{}," 的输入会经过与桌面应用相同的 OpenPets 校验器：简短、单\n    行、面向用户，绝不能包含代码、日志、路径、URL、prompt 或密钥。\n  ",[11,272,16,275,16,278,16,281,16,472],{"id":273,"className":274},"event-reactions",[15],[18,276,277],{"id":277},"自动事件反应",[22,279,280],{},"\n    扩展会把 Pi 的生命周期事件映射为宠物反应，无需模型主动调用工具。大多数事件\n    只更新反应、不说话；只有出错时可能发送一条固定的安全消息。\n  ",[31,282,35,284,16],{"className":283},[34],[37,285,39,286,39,302,35],{},[41,287,43,288,39],{},[45,289,290,293,296,299],{},[48,291,292],{},"Pi 事件",[48,294,295],{},"条件",[48,297,298],{},"反应",[48,300,301],{},"语音",[58,303,43,304,43,322,43,339,43,356,43,373,43,388,43,404,43,419,43,439,43,455,39],{},[45,305,306,311,314,319],{},[64,307,308],{},[26,309,310],{},"session_start",[64,312,313],{},"Pi 启动、恢复或重新加载。",[64,315,316],{},[26,317,318],{},"waving",[64,320,321],{},"默认无。",[45,323,324,329,332,336],{},[64,325,326],{},[26,327,328],{},"agent_start",[64,330,331],{},"代理循环开始。",[64,333,334],{},[26,335,234],{},[64,337,338],{},"无。",[45,340,341,346,349,354],{},[64,342,343],{},[26,344,345],{},"turn_start",[64,347,348],{},"新的对话回合开始。",[64,350,351],{},[26,352,353],{},"working",[64,355,338],{},[45,357,358,363,366,371],{},[64,359,360],{},[26,361,362],{},"tool_execution_start",[64,364,365],{},"工具像 edit/write/patch/apply。",[64,367,368],{},[26,369,370],{},"editing",[64,372,338],{},[45,374,375,379,382,386],{},[64,376,377],{},[26,378,362],{},[64,380,381],{},"工具或 shell 命令像测试。",[64,383,384],{},[26,385,237],{},[64,387,338],{},[45,389,390,394,397,402],{},[64,391,392],{},[26,393,362],{},[64,395,396],{},"非测试的 shell/bash 命令。",[64,398,399],{},[26,400,401],{},"running",[64,403,338],{},[45,405,406,410,413,417],{},[64,407,408],{},[26,409,362],{},[64,411,412],{},"其它工具。",[64,414,415],{},[26,416,353],{},[64,418,338],{},[45,420,421,426,432,436],{},[64,422,423],{},[26,424,425],{},"tool_execution_end",[64,427,428,431],{},[26,429,430],{},"isError"," 为 true。",[64,433,434],{},[26,435,244],{},[64,437,438],{},"固定错误池消息，已限频。",[45,440,441,446,449,453],{},[64,442,443],{},[26,444,445],{},"agent_end",[64,447,448],{},"代理循环结束，且最近未发生工具错误。",[64,450,451],{},[26,452,240],{},[64,454,338],{},[45,456,457,462,465,470],{},[64,458,459],{},[26,460,461],{},"session_shutdown",[64,463,464],{},"Pi 退出、重新加载、切换或 fork。",[64,466,467],{},[26,468,469],{},"idle",[64,471,338],{},[22,473,474],{},"\n    扩展只会读取有限的工具名和命令片段用于分类反应。它不会把原始命令、输出、\n    prompt 或文件路径写入语音气泡。与 OpenPets 相关的命令会被忽略，避免宠物自\n    触发循环。\n  ",[11,476,16,479,16,482,16,485],{"id":477,"className":478},"safety",[15],[18,480,481],{"id":481},"安全与行为",[22,483,484],{},"\n    Pi 扩展遵循与 Claude Code、OpenCode 和 MCP 服务器相同的安全模型。它的目标\n    只是提供环境状态显示。\n  ",[31,486,35,488,16],{"className":487},[34],[37,489,39,490,39,500,35],{},[41,491,492],{},[45,493,494,497],{},[48,495,496],{},"保护",[48,498,499],{},"行为",[58,501,43,502,43,510,43,521,43,529,43,537,43,545,39],{},[45,503,504,507],{},[64,505,506],{},"不转发对话内容",[64,508,509],{},"自动事件绝不会发送 prompt、助手文本、工具输入、工具输出、文件内容、URL、路径或密钥。",[45,511,512,515],{},[64,513,514],{},"校验手动语音",[64,516,517,520],{},[26,518,519],{},"/openpets say"," 会拒绝多行、过长、像代码、像 URL/路径或像密钥的文本。",[45,522,523,526],{},[64,524,525],{},"尽力而为的运行时",[64,527,528],{},"OpenPets 故障绝不会阻塞 Pi 的模型调用或工具执行。",[45,530,531,534],{},[64,532,533],{},"MVP 不注册 Pi 工具",[64,535,536],{},"扩展只注册一个用户 slash 命令，不暴露模型可调用的 Pi 工具。",[45,538,539,542],{},[64,540,541],{},"包信任边界",[64,543,544],{},"Pi 扩展以本地系统权限运行，请只安装你信任的包。",[45,546,547,550],{},[64,548,549],{},"自触发防护",[64,551,552],{},"与 OpenPets 相关的工具调用会被事件映射器忽略。",[11,554,16,557,16,560,16,563],{"id":555,"className":556},"pet-targeting",[15],[18,558,559],{"id":559},"宠物路由",[22,561,562],{},"\n    默认情况下，自动反应和手动命令都指向桌面默认宠物。每扩展级别的显式宠物路由\n    会留到后续 Pi 子阶段，让当前的运行时契约保持简洁。\n  ",[31,564,35,566,35,575,16],{"className":565},[133],[31,567,569,572],{"className":568},[137],[139,570,571],{},"运行路径",[139,573,574],{},"text",[146,576,577],{},[26,578,579],{},"Pi\n  -> @open-pets/pi 扩展\n  -> @open-pets/client\n  -> OpenPets 桌面本地 IPC\n  -> 默认宠物",[11,581,16,584,16,587,16,591,16,609,16,612,16,628],{"id":582,"className":583},"troubleshooting",[15],[18,585,586],{"id":586},"故障排查",[588,589,590],"h3",{"id":590},"宠物没有反应",[592,593,35,594,35,598,35,603,35,606,16],"ul",{},[595,596,597],"li",{},"确认 OpenPets 桌面应用正在运行。",[595,599,600,601,245],{},"在 Pi 中运行 ",[26,602,208],{},[595,604,605],{},"安装或移除包之后重新加载或重启 Pi。",[595,607,608],{},"记住：大多数自动事件是纯反应，本来就是静默的。",[588,610,611],{"id":611},"移除扩展包",[31,613,35,615,35,623,16],{"className":614},[133],[31,616,618,621],{"className":617},[137],[139,619,620],{},"移除全局安装",[139,622,144],{},[146,624,625],{},[26,626,627],{},"pi remove npm:@open-pets/pi",[22,629,630],{},"\n    对项目本地安装，请在原始安装的项目目录下运行 remove 命令，并遵循 Pi 的项\n    目设置行为。\n  ",[11,632,16,634,16,637],{"id":101,"className":633},[15],[18,635,636],{"id":636},"状态",[22,638,35,639,642,643,646],{},[26,640,641],{},"@open-pets/pi"," 包已发布到 npm，并遵循与其他 OpenPets 集成相同的\n    安全模型。当前版本基于 ",[26,644,645],{},"@earendil-works/pi-coding-agent"," 的 Pi\n    包 API 构建；请按你日常更新 Pi 的方式来固定或升级它。\n  ",{"title":648,"searchDepth":649,"depth":649,"links":650},"",2,[651,652,653,654,655,656,657,662],{"id":20,"depth":649,"text":20},{"id":126,"depth":649,"text":126},{"id":180,"depth":649,"text":181},{"id":277,"depth":649,"text":277},{"id":481,"depth":649,"text":481},{"id":559,"depth":649,"text":559},{"id":586,"depth":649,"text":586,"children":658},[659,661],{"id":590,"depth":660,"text":590},3,{"id":611,"depth":660,"text":611},{"id":636,"depth":649,"text":636},"通过 @open-pets/pi 扩展包将 Pi 连接到 OpenPets，支持自动安全反应、手动 slash 命令，并且不转发任何 prompt 或工具输出。","md",null,"/integrations/pi.svg",{},"Pi",4,"/zh/integrations/pi",{"title":5,"description":663},"pi","已支持","zh/integrations/pi","使用 @open-pets/pi 扩展包，将 Pi 编程代理活动转化为本地桌面宠物反应，无需转发 prompt 或工具输出。","_7qb2woNf0tOxv45CtYb3YUFBTN3Lu7bse5GKIOLU8Q",1779284858706]