01 / ECOSYSTEM
先认识五项目协同关系
技能仓库是能力编排和治理中心;统一身份、业务域和模型基座由其他项目提供。跨项目调用始终经过服务端连接器,前端不会持有服务凭证。
| 项目 | 职责 | 常用入口 |
|---|---|---|
opcjinengcangku | 技能目录、需求分流、编译/沙箱、发布、运行、记忆和反馈治理 | 本站、/pc/、/admin/、/uniapp/ |
aiopcshequ | 统一身份、主体/租户/工作空间、社区知识和空间能力 | 社区统一身份源 |
bangong | 办公任务、文档和审批等业务执行能力 | 办公业务端 |
opcshangshi | 商事主体、操作、交易和对账等受控能力 | 商事业务端 |
opcdamoxing | 模型、知识检索和 Harness Gateway 基础能力 | 模型/网关服务 |
PC、UniApp 和管理后台只调用同源 /web-api/v1。会话由 HttpOnly cookie 承载;社区 refresh token、Harness service token 和供应商密钥只在服务端交换、加密和轮换。
02 / START HERE
入口与首次登录
未登录可以只读浏览公开技能和 readiness;需求、运行、记忆、通知和治理数据必须按当前主体和工作空间登录后读取。
同意协议
打开工作台登录窗口,确认用户协议和隐私政策后再选择认证方式。
选择认证
账号密码是回退方式;PC 微信扫码和移动微信渠道只在服务端返回 ready 时显示。
完成 MFA
收到 MFA_REQUIRED 时输入动态码或恢复码;验证码错误不会清除账号。
核对范围
登录后确认用户名、租户和工作空间。缺少 workspace_id 的会话会被拒绝。
H5 OAuth、小程序/App code 和 PC 二维码默认关闭。真实 AppID、回跳白名单、包签名、真机/账号 UAT 和审批完成前,不要把 mock 或探针结果当作可发布能力。
03 / FIRST RUN
五分钟完成第一次调用
以公开的 A0 只读技能为例。A0 没有业务副作用,但仍受身份、租户、数据等级和 readiness 约束。
- 进入 PC“技能市场”,按关键词或业务域筛选并打开详情。
- 阅读输入/输出契约、风险等级、数据等级、权限、依赖和 release 通道。
- 点击“调用”。有 JSON Schema 时用结构化表单,否则使用 JSON 模式,只提交契约规定字段。
- 点击“预检并执行”,等待服务端完成会话、范围、版本、readiness、审批和幂等校验。
- 在“运行记录”查看 invocation 状态、技能版本、trace、结果摘要和记忆命中数。
- 对自己已结束的运行评分 1-5 分;评分进入指标样本,不会直接修改技能版本。
{
"workspace_id": "workspace-demo"
}
unknown、reconciliation_required、blocked_by_policy 和 failed_terminal 都不是成功。遇到外部操作未知状态,先对账再决定是否补偿。
04 / DEMAND LOOP
从业务需求生成技能
提交前写清楚目标
在 PC“我的需求”或移动“需求”页,用业务语言说明目标、范围、期望输出和数据授权:
汇总本周工作空间内已授权的任务和会议,生成一份带来源引用的周报;只读取 D0 数据,不发送通知。
- 确认工作空间和风险上限,不能用文字参数覆盖服务端绑定的租户/主体/工作空间。
- 创建、修改、付款、通信或提交外部表单等副作用必须明确写出。
- 不要在需求文本中放密码、验证码、access token、银行卡号或完整个人敏感信息。
- 重复提交先刷新原需求,不要并发连点;客户端和服务端都保留幂等语义。
理解三分流
| 决策 | 判定 | 下一步 |
|---|---|---|
reuse 直接复用 | 相似度默认 ≥ 0.86、契约兼容且已有 active 版本 | 核对版本和授权后调用/安装 |
iterate 补丁迭代 | 相似度默认 ≥ 0.62,但需要补充能力 | 查看版本链和差异,等待生成、编译、审核 |
create 新建技能 | 没有合格候选或契约不兼容 | 技能作者完善候选包,再走编译和发布 |
决策会持久化 resolution_strategy、resolution_score、resolution_reason 和目标版本链。常见时间线为 received → matched → generation_requested → generated → compiled → staged/installed。
05 / SKILL PACKAGE
技能包学习卡
技能包遵循 opc.ai/v1 的 Skill 合同。学习时先理解“输入和承诺”,再检查“依赖和边界”,最后验证“证据和反馈”。
最小结构示例
{
"apiVersion": "opc.ai/v1",
"kind": "Skill",
"metadata": {
"skill_id": "community.space.catalog.read",
"skill_name": "社区空间目录读取",
"version": "1.0.0",
"owner": "opc-community",
"market_demand_source": {"type": "seed", "reference_id": "example"}
},
"spec": {
"input_schema": {"type": "object", "required": ["workspace_id"]},
"output_schema": {"type": "object", "required": ["spaces"]},
"tool_dependencies": [],
"long_memory_binding": {"mode": "dedicated", "memory_space_id": "auto:skill", "cross_skill_read": []},
"execution_flow": [{"id": "return", "type": "return"}],
"test_cases": [{"id": "normal", "expected": {"status": "pass"}}]
},
"security": {"risk_level": "A0", "side_effects": "none", "data_classes": ["D0"], "idempotency": "required"}
}身份与来源
检查 skill_id、版本、owner、publisher 和需求来源能否追溯。
契约与依赖
核对 input/output Schema、服务依赖、版本范围、允许操作和循环依赖。
记忆与流程
确认记忆空间、保留期、抽取规则、cross_skill_read、写入模式和执行顺序。
安全与证据
核对 A0-A4、D0-D4、权限、网络、沙箱、签名、幂等、测试和反馈指标。
缺失字段、非法版本、直接/传递循环、签名不匹配或资源越界会在进入运行时前失败关闭。编译报告和制品 digest 是审查依据。
06 / GOVERNANCE
发布、版本与审批
| 通道 | 含义 | 操作重点 |
|---|---|---|
staged | 编译和签名后的候选 | 等待治理激活 |
canary | 小范围按选择器或百分比放量 | 观察指标和阻断 |
stable | 默认稳定版本 | 晋级前完成审批和回滚演练 |
- 在管理后台核对候选 digest、签名、编译报告、依赖和审批证据。
- 先 staged,再 canary;观察成功率、延迟、策略阻断、unknown 和纠正率。
- 激活、暂停、回滚必须提交当前
fencing_token、原因并二次确认;成功后 token 立即轮换。 - 回滚优先恢复同通道上一版本;不要删除仍被运行或对账引用的版本。
风险等级
| 等级 | 典型含义 | 基线处理 |
|---|---|---|
A0 | 只读、无业务副作用 | 按授权调用 |
A1 | 低风险受限动作 | 显示授权和审计信息 |
A2 | 创建/修改等业务写入 | 独立审批、幂等和补偿 |
A3-A4 | 高风险、外部交易或敏感操作 | MFA/双人复核、人工对账,默认不自动晋级 |
审批人不能审核自己的提案。前端按钮隐藏或禁用只是体验层,真正权限由 BFF、RBAC、MFA、租户边界和服务端职责分离校验执行。
07 / MEMORY & FEEDBACK
用记忆和反馈让技能持续学习
专属记忆
- 记忆按
tenant_id、subject_id、workspace_id、技能和环境隔离。 - 运行后的候选先是
pending_review,独立审核接受后才可召回。 cross_skill_read必须在技能包显式授权,来源空间、版本和范围仍需同租户/主体/工作空间。- 删除是服务端按范围软删除并留审计,清理浏览器缓存不会删除服务端记忆。
反馈迭代
评分、纠错和运行指标按窗口聚合。达到样本数、阈值和连续窗口后才创建迭代提案;提案还要经过 shadow 回放、人工 review、重新编译、签名和发布。单个低分不会直接改版本或自动回滚。
发现越权、敏感泄露或错误外部写入,立即暂停 release,保留 trace、制品和审计证据;外部操作为 unknown 时先查询 provider/业务事实并走对账。
08 / MOBILE
移动端操作要点
UniApp H5 使用底部五项导航:首页、技能、需求、待办、我的。
| 入口 | 可做什么 | 边界 |
|---|---|---|
| 技能 | 搜索、详情、Schema/JSON 调用 | A2 以上先读副作用和审批 |
| 需求 | 提交目标、查看分流和编译时间线 | 复杂候选编辑转 PC |
| 待办 | 异常运行、进行中需求、通知 | 不绕过职责分离直接裁决 |
| 我的 | 工作空间、运行、反馈、已审核记忆、退出 | 只显示当前主体范围 |
微信回调失败要从登录页重新发起,不能复用旧 oauth_code、client_state 或 scene。复杂 Schema 编辑、全量沙箱日志和批量治理转到 PC/管理后台。
09 / ROLES
角色操作边界
| 操作 | 普通使用者 | 技能作者 | 审核员 | 发布运营 | 安全/审计 | 系统管理员 |
|---|---|---|---|---|---|---|
| 浏览技能 | 是 | 是 | 是 | 是 | 是 | 是 |
| 提交需求、A0/A1 调用、评分 | 是 | 是 | 是 | 是 | 只读 | 是 |
| 创建候选、发起编译 | 否 | 是 | 是 | 是 | 只读 | 是 |
| 审核技能/记忆/迭代 | 否 | 不得审核本人 | 是 | 按策略 | 是 | 是 |
| 发布/暂停/回滚 | 否 | 否 | 需审批 | 是 | 可安全暂停 | 是 |
| 全局审计/Outbox/租户权限 | 否 | 否 | 否 | 受限 | 只读/受限 | 是 |
每次治理裁决都应可追溯 actor、角色、租户、对象、前后 digest、原因、trace 和时间。
10 / API QUICK REFERENCE
同源 BFF API 快速参考
浏览器调用前缀是 /web-api/v1;服务间 /api/v1 需要短期服务身份,不能从前端直接调用。
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /auth/session | 当前会话和工作空间身份 |
| GET | /auth/platforms | 登录方式 readiness |
| POST | /auth/login | 账号密码登录 |
| POST | /auth/wechat/qr/start|poll|cancel | PC 微信二维码生命周期 |
| POST | /auth/wechat/h5/start、/auth/platform-login | 移动 OAuth/code 换 WebSession |
| GET/POST | /skills、/demands、/runtime/* | 技能、需求和运行闭环 |
| GET/POST | /memory/*、/notifications/*、/feedback/* | 记忆、通知和反馈 |
| GET | /health/live、/health/ready | 存活和就绪状态 |
保留 X-CSRF-Token、X-Request-ID 和幂等语义;排障主线使用服务端返回的 request ID。
11 / TROUBLESHOOTING
故障与阻断处理
| 状态/错误 | 含义 | 处理 |
|---|---|---|
| 401 | 没有有效 WebSession | 重新登录并确认工作空间 |
| 403 | 角色或租户范围不允许 | 联系当前租户管理员申请最小权限 |
| 503 / blocked | readiness、迁移、签名、下游或证据未就绪 | 查看集成状态、blocking reason 和 request ID |
| unknown | 外部操作结果未知 | 先查业务事实/对账,禁止盲目重试 |
| WEB_LOGIN_RATE_LIMITED | 登录尝试超过限速 | 等待窗口恢复,检查账号、MFA 和时钟 |
| WEB_LOGIN_CONTEXT_MISMATCH | 微信 state/scene/回调上下文不一致 | 关闭旧页面,从对应入口重新发起授权 |
| MODEL_PROVIDER_NOT_RELEASE_READY | 模型 provider 未完成审批/UAT/签名门禁 | 不能把 mock 或探针结果宣称为生产能力 |
排障时提供环境、时间、技能版本、运行 ID、trace/request ID 和脱敏状态;不要提交密码、cookie、token、二维码内容或敏感正文。
12 / RELEASE CHECK
上线前检查清单
运维维护命令
opc-skill-worker compile --dry-run
opc-skill-worker outbox --dry-run
opc-skill-worker retention
opc-skill-worker feedback
opc-skill-worker embedding
opc-skill-migrate check--dry-run 只查看队列,不改变状态。生产迁移、备份恢复、密钥轮换和真实 provider 对账必须由对应 owner/DBA 按审批单执行。
先确认身份和范围,再确认版本和风险,最后执行调用;任何不确定结果都保留事实、停止盲目重试并走对账或人工审批。