简介
PKU harness 是一个开源的北大校园生活 App,核心是一个 AI 助手。这份文档写给为它开发插件的同学和 AI 助手。
PKU harness 是一个帮北大同学处理校园事务的 Android 应用。你用校园账号登录一次,就能在 App 里使用课表、校园卡、网费、树洞、教学网、财务、场地预约等校园系统。登录走的是学校的统一身份认证系统 IAAA。插件还可以接入更多服务。
App 的核心是一个 AI 助手。你在对话里提出需求,助手会替你操作这些系统。助手能用的每一项功能,在 App 的原生界面里也有对应的按钮,你可以自己点。
App 与插件的关系
App 本身只提供三样基础设施:一个 Agent 循环(让 AI 助手反复思考、调用工具、再回答的那段程序),一套界面设计系统,以及一组宿主服务(例如校园登录、定时任务、小组件和待办)。我们把这一层叫作 harness(框架)。
除此之外的功能都由插件(plugin)提供。每个校园服务、看板、提醒,甚至 AI 模型的服务商,都是一个插件。随 App 一起发布的插件和同学自己在服务器上运行的插件遵循同一套接口,显示在同一个插件列表里,也受同一套权限系统管理。
这种结构带来两条规则,后面的文档会经常提到。
- 你和助手能做的事情完全相同。 每项功能都是一个有类型的工具(tool)。你在界面上点按钮时,界面调用这个工具;你在对话里提出需求时,助手调用同一个工具。
- 凭据不离开手机。 校园服务由框架自己登录。插件只拿到服务返回的结果,看不到你的密码和会话令牌。
这份文档写给谁
学生开发者
把 App 还没覆盖的校园服务接进来。你可以写一份插件文档,用任意语言搭一个远程 MCP 服务器,或者写一个内置的 TypeScript 插件。
AI 助手
正在写插件的 Claude Code、Codex 或 App 内置助手。请先看检查清单,再按需阅读其中链接的页面。
普通用户
使用手册:安装 App、完成首次设置,以及各个标签页和设置项的用法。
服务器运维
运行一个 PKU harness Cloud 服务。它是一个可选的后端,为插件提供端到端加密的存储和同步。
接下来读什么
| 你想要 | 阅读 |
|---|---|
| 了解 App 的整体结构 | 先读架构,再读核心概念里的其他页面 |
| 不改动 App,今天就发布一个插件 | 快速上手:远程插件 |
| 写一个随 App 发布的插件 | 内置插件和 SDK 参考 |
| 把插件上架到插件市场 | 插件市场 |
| 在服务器上存数据或实时共享 | PKU harness Cloud 及其 API 参考 |
| 查看所有仓库和路线图 | 生态 |
把文档交给 AI 助手
每个页面都有 Markdown 版本。这样你可以只把需要的内容交给 AI 助手,不必让它读整个网站。文档有简体中文和英文两种语言。中文是默认语言,路径以 /docs 开头;英文路径以 /en/docs 开头。
| URL | 内容 |
|---|---|
/llms.txt | 两种语言所有页面的索引,每页附一句简介 |
/llms-full.txt | 所有英文页面合成的一个文件 |
/llms-full.zh.txt | 所有中文页面合成的一个文件 |
/docs/<page>.md | 单个中文页面,例如 /docs/sdk/plugin.md |
/en/docs/<page>.md | 同一页面的英文版 |
/docs/<page>,请求头带 Accept: text/markdown | 与 .md 相同 |
最后一行利用的是 HTTP 的内容协商:服务器根据请求头决定返回 HTML 还是 Markdown。
每页标题下方有 Copy Markdown 和 Open in… 两个按钮。Cloud API 参考页的 Markdown 版本会把接口和数据结构以纯文本列出。
# 把插件检查清单和 SDK 约定交给 Claude Code
curl -s https://<this-site>/docs/for-agents.md https://<this-site>/docs/sdk/plugin.md > plugin-context.md当前状态
PKU harness 1.0.0 已发布 Android 版,iOS 版正在准备中。
JavaScript 代码的修复通过签名的空中更新(over-the-air update,简称 OTA)推送到已安装的 App。原生代码的改动则需要发布新的 APK。
这里描述的 SDK 和通信协议与 pkuinfo/pku-harness 和 pkuinfo/pku-harness-plugins 两个仓库的默认分支一致。插件和 SDK 直接从 GitHub 仓库获取,不通过 npm 发布。大多数校园服务以插件文档(PLUGIN.md)的形式提供,通过链接安装。