# OIP-Agent
**Repository Path**: dauroar/OIP-Agent
## Basic Information
- **Project Name**: OIP-Agent
- **Description**: OIP-Agent 是奥集能开放架构的 认知与决策层(L5)
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 5
- **Created**: 2026-09-30
- **Last Updated**: 2026-11-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# oiocns-agent
奥集能智能体 —— DSH 内核桥接插件形态。
## 项目概述
本仓把「连接奥集能内核、接收用户消息、驱动智能体干活、把过程与结果回流内核」做成一个
**DSH(DeepSeek Harness)插件**:宿主由使用方自行安装,本仓交付插件产物
(`packages/plugin-orginone`),随 profile 装载。
内核会话身份直接复用为 DSH 会话身份;入站消息经 `kernelContext` 按账号路由,
出站经会话直发(过程块 / 审批卡片 / 结果卡片)。模型、端点与密钥由 DSH 侧 provider
配置提供;联网搜索、本地文件与命令、MCP 客户端等能力由宿主原生工具承担。
**内核接入(通用接入方式)**:平台侧旧内核(`legacy`,`/orginone/kernel/*`)与新内核(`OIP`,`/oip/v1/*`)
在迁移期并存,插件按 `kernel.namespace` 接入其中一种、上层能力不感知差异(切换只改地址、不改方法签名);
默认接入旧内核;`oip` 分支的端点、连接实现与协议级差异均已接线,真实联调待做(见 [docs/开发目标.md](docs/开发目标.md))。
### 运行链路
**插件侧核心能力**:
- 内核连接与认证:经接入面 `packages/platform-link` 的连接接缝 `KernelClient`(`legacy` 由 `@orginone/protocol` 的 `KernelApi` 适配,`oip` 取 `@orginone/oip-protocol` 的连接核;SignalR、401 自动重登、断线退避);
- 会话驱动:`ctx.agents.create` / `resume` + `followup`,会话工作目录隔离,跨重启历史补齐;
- 出站映射:`thinking` / `toolcall` / `text` / `image` 过程块实时回流(流式原地替换)+ 审批与提问转发;
- 指令面:`/help` `/status` `/current` `/cancel` `/new` `/list` `/switch` `/log` `/config` `/model` `/skill` `/tool` `/workspace` `/session` `/jobs` `/schedule` `/permission` `/goal` `/todo` `/subagent` `/compact` `/policy`(22 个;清单与差异见插件 README);
- 技能与工具:随包技能(platform-assistant / app-authoring / target-searcher / work-creator / session-control)与 `soul.md` 人格、
8 个内核绑定域工具、可执行面处置(allow / ask / deny);
- 审批闭环:`approval/request` answerer + `tools/pre-execute` ask 判定 + 结果卡片;
- MCP 接入:宿主 `@deepseek-ai/dsh-mcp-client`(一行一 server)。
## 界面一览
设置页集中填写内核地址与智能体密钥(密钥只写不回显),按 `kernel.namespace` 在旧内核 / OIP 之间切换;
组件行各自的配置在「组件」标签页,运行事实、重载入口与指令表在「诊断」标签页。
**演进方向**:在现有通道插件之上扩展**单插件多组件**(应用工厂)——用户在 Web 端与智能体对话,由同一交付物内的多个组件行协同生产平台应用与报表;设计与边界见 [docs/应用工厂设计.md](docs/应用工厂设计.md)。
## 仓库结构
本仓以 `packages/` 为核心(包清单与新增包约定见 [packages/README.md](packages/README.md)):
```
oiocns-agent/
├── packages/
│ ├── plugin-orginone/ # DSH 内核桥接插件(主交付物,详见包 README)
│ ├── protocol/ # @orginone/protocol:SignalR 协议底座(零仓内依赖)
│ ├── platform-link/ # @orginone/platform-link:平台桥接缝隙(KernelTransport / SessionBridge)
│ ├── oip-protocol/ # @orginone/oip-protocol:OIP 内核协议层(连接参数 + OIP 连接实现)
│ ├── infra/ # @orginone-agent/infra:日志 / 脱敏 / 通用工具
│ ├── contract/ # @orginone-agent/contract:跨包纯契约
│ └── plugin-oip-knowledge-rag/ # OIP 个人知识 RAG 插件
├── apps/
│ └── docs/ # VitePress 文档站(产物 apps/docs/.vitepress/dist)
├── python/ # rag-service(旧,待下线) / oip-knowledge-rag-worker / laya-decision-service
├── __tests__/ # 仓级结构守护与宿主装载契约(详见 __tests__/README.md)
├── scripts/ # 运维脚本(反馈导出解密)与仓库级构建基建
├── archive/ # 归档区:历史实现与知识组织参考(不参与编译、测试与运行,详见 archive/README.md)
└── docs/ # 项目文档(权威源;apps/docs 为文档站镜像)
```
## 环境要求
- Node.js >= 22.0.0(`packages/protocol` 依赖 `@microsoft/signalr` 的 WebSocket 支持;`package.json` 的 `engines` 已声明);
- TypeScript 5.x(`strict: true`,新增代码需满足全部严格项,约定见 [AGENTS.md](AGENTS.md));
- DSH 宿主:`@deepseek-ai/dsh-*` 子包 **0.2.2-rc.1 起**(产物 `peerDependencies` 为 `^0.2.2-rc.1`)。装载期还会自检宿主契约,
低于该版本时插件行装载失败,并在日志给出当前版本与升级要求;
- 交付物为插件产物:使用方在自己的 DSH 宿主中装载(见下)。
## 快速开始(使用方装载)
```bash
npm ci
npm run build:plugin # 产出 packages/plugin-orginone/dist 与根 dist/-.tgz
dsh plugin --profile add <本仓>/dist/orginone-agent-plugin-orginone-<版本>.tgz
dsh --profile --dump-config # 确认插件层
dsh --profile # 启动后到 设置 → 奥集能 填写内核地址与智能体密钥
```
### 桌面端(DSH Desktop)
桌面端用本地 tarball 安装,**升级必须先删旧版再装新包**(否则旧包残留):
1. 插件管理里删除旧版 `@orginone-agent/plugin-orginone`;
2. 安装入口粘贴 tarball 完整路径 `<本仓>\dist\orginone-agent-plugin-orginone-<版本>.tgz`;
3. 启动后到 **设置 → 奥集能** 填内核地址与智能体密钥(填过则不用再填)。
装载细节、配置字段(`kernel` / `workspace` / `skills` / `admin` 等)、MCP 接入与技能装载见
[packages/plugin-orginone/README.md](packages/plugin-orginone/README.md)。
## 开发
```bash
npm ci
npm run verify # 提交前完整校验:类型检查 + 死代码 + 全部测试
npm run check # 类型检查(tsc --noEmit)
npm run check:dead # 死代码与依赖检查(knip)
npm test # 单元测试(Vitest)
npm run build # 构建插件产物(等价 npm run build:plugin)
npm run dev:docs # 文档站开发(VitePress,端口 4173)
npm run build:docs # 文档站构建
```
端到端联调在 oiocns-react 侧发起(发消息、过程块、审批卡片),按插件 README 的装载章节复现。
## 配置
配置分两层(分层与生效时机见 [docs/配置系统.md](docs/配置系统.md),字段以插件 README 为权威):
- **插件配置**:DSH profile 中插件行的 `config` 段;内核地址与智能体密钥在 **设置 → 奥集能** 填写(保存即生效,
密钥只写不回显),**不走环境变量**;
- **宿主配置**:模型 provider、审批策略与权限预设(插件层不覆盖基础审批 / 权限行,远控部署须显式配置 `ask`)、
遥测与会话日志上传(私有化五项见 [docs/DSH私有化部署开关.md](docs/DSH私有化部署开关.md))。
多账号按「一账号一实例」形态部署:每个智能体账号使用独立 profile 与插件 config;
多实例编排(账号账目、profile 生成、起停)属后置专项。
## 指令
插件注册的指令与差异登记见 [packages/plugin-orginone/README.md](packages/plugin-orginone/README.md)
「指令面」章节;`/技能名` 手势由宿主技能设施(`dsh-tool-skill`)承接,与插件指令互不冲突。
## 注意事项
- `.env`、`agent-accounts.json`、`config.json` 含敏感信息或已弃用,均被 `.gitignore` 排除,
请勿提交到版本库;
- 本仓按根目录 `LICENSE`(木兰宽松许可证第 2 版)分发;`packages/protocol/base` 内的第三方派生文件
保留其原始许可头(MIT 等),随源码再分发时一并保留;
- 插件产物的运行时依赖(`@microsoft/signalr`、`@deepseek-ai/schemastery`)随产物清单声明,由使用方 profile 安装;
`@deepseek-ai/*` 其余子包由宿主运行时提供(peer 声明)。
## 文档导航
主要入口如下;完整索引、阅读顺序与专项文档见 [docs/README.md](docs/README.md)(**文档权威源入口**),包清单见 [packages/README.md](packages/README.md):
| 文档 | 说明 |
| --- | --- |
| [packages/plugin-orginone/README.md](packages/plugin-orginone/README.md) | 内核桥接插件:装载、配置、组件、会话驱动、出站映射、交互面、指令面、域工具、技能、MCP 接入、差异登记 |
| [packages/README.md](packages/README.md) | 独立包清单(权威)与新增包约定 |
| [docs/README.md](docs/README.md) | 文档索引(权威源、阅读顺序、差距与专项) |
| [AGENTS.md](AGENTS.md) | 编码协作规范(命令、边界、工作方式、测试与文档约定) |
| [__tests__/README.md](__tests__/README.md) | 测试目录说明与新测试编写规范 |
| [apps/docs/快速上手/](apps/docs/快速上手/) | 使用方快速上手系列(文档站) |