Skip to content

Pling · 页灵 / Page Intelligence

让应用能力变成可控资产。

Pling 是 Web 应用的 Agent 能力层:把已有操作变成可发现、可调用、可授权、可审计的能力资产。

不用重写应用,也不让 Agent 靠截图猜下一步。

  • Apache-2.0
  • Vue · React · Vanilla
  • Agent Surface 0.1
一次可核验的操作
任务

把「预约设计评审」标记完成

页面3 条记录
待办工作台2 项未完成
检查发布清单未完成
预约设计评审未完成t2
跟进客户已完成
当前开放 3 个动作
Agent外部客户端

把「预约设计评审」标记完成

toggle{ record: "t2" }
已声明的记录级动作
页面已核验open → completed

返回的是一条执行证据,而不是一句“完成”。

读取能力 选择动作 页面执行 核验结果
1 个区域3 条记录3 个动作

谁最需要 · 得到什么

把 AI 从信息提供, 变成可交付的业务能力。

Pling 面向已经在真实业务中使用 Web 应用的团队:不推翻现有产品,也不把控制权交给模型。

已上线的 Web 产品01

让 AI 真正进入业务流程

痛点
AI 只能聊天,复杂操作仍要用户自己完成。
接入后
已有页面动作直接成为 Agent 能力,不用重做产品。
复杂后台与企业系统02

每一次操作都可定位、可确认、可核验

痛点
截图点击不知道影响哪条记录,也不敢开放高风险动作。
接入后
记录 id、风险分级、确认与执行证据进入同一条调用链。
向第三方 Agent 开放能力的平台03

开放能力,不交出系统

痛点
开放 API 太重,交出 DOM 又无法治理。
接入后
只暴露选定的能力面,权限与撤销仍由应用和后端决定。
Vue / React / 原生 JS / 旧系统04

从一两个动作开始,不推翻现有实现

痛点
为 AI 重写界面和业务层,成本和风险都不可控。
接入后
保留组件、状态、校验和权限,逐步扩大可操作范围。

问题不在模型不够聪明

它看得见按钮,却不知道这个按钮意味着什么。

同一个 DOM,可以渲染出两个外观完全相同的按钮。对页面来说,一个是“通过订单”,另一个是“拒绝订单”;对只看到标签、坐标或截图的 Agent 来说,它们几乎没有区别。

缺的不是点击能力,而是对象、语义、风险、权限和结果。Pling 把这层事实放回界面本来就有定义的地方。

只有界面
影响哪条记录?这是不是高风险操作?当前用户有权限吗?执行成功了吗?

模型需要试探、截图、再试探。

有能力面的页面
approve_orderdanger
record
order:1042
kind
danger
confirm
required
result
status → approved

对象、风险、授权点与结果,均可被模型和审计系统读取。

每个操作都带着完成一次业务动作所需的最小事实。

执行闭环

页面负责执行,契约负责说明。

Pling 不把浏览器变成一个新的自动化入口。它让 Agent 在页面声明的能力中选择,再由页面自己的事件、校验和业务函数完成操作。

01

声明

在原有控件上补充稳定 id、业务说明与风险分类。

02

投影

只向模型提供当前区域、相关记录和真正可执行的动作。

03

执行

调用沿页面原有路径运行,不绕过组件、校验或服务端权限。

04

核验

返回执行前后的可观察变化;成功必须能被验证。

在原按钮上增加一条语义声明TaskRow.tsx
const toggle = usePlingTool({
  id: `toggle@${task.id}`,
  desc: `完成「${task.text}」`,
  kind: "write",
});

没有声明,就不在能力面内。没有授权,可用也不等于可执行。

为什么是能力层

更快,不是因为动作更多,而是因为猜测更少。

精准、省 token、安全与可审计来自同一条设计约束:让 Agent 只看见完成当前任务所需的东西。

精准

面向记录与动作,不面向像素。

稳定的记录 id 与动作 id,让“第 2 条”始终指向同一条业务数据,而不是屏幕上的某个坐标。

上下文

上下文有边界,Agent 才不必反复试探。

当前区域、命中的记录、可执行的动作;没有整棵 DOM,也没有整个前端状态仓库。

安全

Agent 拿不到 click(selector),也无法执行 eval()。

Agent 不能凭空获得页面的全部操作权。能力是否出现、是否可用、是否需要确认,都由应用决定。

证据

“完成”必须能被检查。

执行记录包含动作、目标、结果、确认与变更证据。失败也能明确区分“没有执行”和“执行后未生效”。

Agent Surface

一份能力,多个 Agent。

页面内助手和页面外客户端使用同一组声明。外部 Agent 不接触 DOM、密钥或底层实现。

Agent Surface

把界面能力变成可治理的应用资产。

不是把整个应用交给 Agent。应用先决定哪些能力可以被发现、被谁调用、在什么条件下调用;协议只定义 describe 与 invoke,不提供选择器点击或脚本执行。

  • 按身份与场景限制暴露范围
  • 风险动作保留确认与人工接力
  • 委托、撤销与调用记录可供审计
了解 Agent Surface
能力暴露矩阵

同一份能力目录,按使用场景开放不同范围。

pling.surface/0.1
view_orders查看订单与状态
update_note修改订单备注
refund_order退款,需人工确认

暴露范围由应用与后端共同决定;协议本身不携带任何隐式权限。

接入

是补充,不是重写。

保留组件、状态、表单、校验和权限。只需要把已有的操作说清楚,并在入口创建一次运行时。

  • 业务状态与渲染不变
  • 动作落到真实控件
  • 未声明的能力保持关闭
阅读接入教程
已有按钮,增加一条能力声明:TaskRow.vue
<button
  @click="toggle(task.id)"
  v-tool="{
    id: `toggle@${task.id}`,
    desc: `完成「${task.text}」`
  }"
>
  {{ task.text }}
</button>
Apache-2.0Agent Surface 0.1

从第一个动作开始

给页面一份 Agent 真正能读懂的能力面。

十分钟内,让模型在一个真实页面上完成一次可验证的操作。