# anolisa

> Integrate AgentSight observability capabilities into DSH, allowing agents to call the agentsight_status tool to query the plugin's status and version.

## Metadata

- Author: [@alibaba](https://github.com/alibaba)
- Repo: <https://github.com/alibaba/anolisa.git>
- GitHub: [alibaba/anolisa](https://github.com/alibaba/anolisa)
- Stars: 365
- Language: Rust
- License: [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html)
- Homepage: <https://agentic-os.sh/>
- Topics: `agent-infrastructure`, `agent-memory`, `agent-runtime`, `agent-security`, `agentic-ai`, `agentic-os`, `ai-agents`, `context-engineering`, `developer-tools`, `dsh-plugin`, `linux`, `observability`, `runtime-security`, `rust`, `sandbox`, `skill`, `token-optimization`
- Forks: 94
- Open Issues: 191
- Last push: 2026-08-20T14:55:21.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:alibaba/anolisa/src/agentsight/dsh-plugin
```

## Wiki

## 一句话定位
这是一个把 AgentSight 可观测性能力接入 DSH（DeepSeek Harness）的桥接插件。它本身只注册一个名为 `agentsight_status` 的工具，让运行中的 Agent 能查询到插件是否已激活以及当前版本号，相当于在 DSH 内暴露 AgentSight 的"自报家门"入口。

## 核心能力
- 向 DSH 注入名为 `agentsight` 的 Cordis 插件，依赖宿主提供的 `tools` 扩展
- 注册内置工具 `agentsight_status`，供 Agent 在会话中调用
- 调用时返回插件名称、版本号（从 package.json 动态读取）、激活状态以及当前能力清单
- 在插件加载完成时通过 `ctx.logger.info` 输出一条启动日志，标注已注册的版本号和工具名

## 技术实现
- **语言**: TypeScript（ESM，target ES2022）
- **关键依赖**: `@deepseek-ai/cordis` ^4.0.1（插件宿主框架）、`@deepseek-ai/dsh-tools` ^0.1.0-rc.2（DSH 工具注册扩展）
- **架构模式**: Cordis 标准插件模式 —— 通过 `cordis.patch.yml` 的 `insert` 声明插入点，运行时执行 `apply(ctx)` 把工具注册到 `ctx.tools` 上
- **入口文件**: `src/index.ts`（49 行，全部逻辑）

## 适用场景
当用户已经在机器上部署了 AgentSight 主程序（负责 eBPF 追踪、Token 统计、Dashboard 等），并希望 DSH 内的 Agent 能感知到 AgentSight 的存在时安装此插件。典型用法是让 Agent 在每次会话开始或被问到"我装了什么可观测工具"时调用 `agentsight_status` 自检，而不是在对话里硬编码版本号。

## 前置依赖与兼容性

| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH 宿主框架 | `>=0.1.0-rc.2 <0.2.0` | 通过 `peerDependencies` 声明，需 `@deepseek-ai/dsh-tools` 在该范围内 |
| Node.js | `>=22.0.0` | 通过 `engines` 字段声明，TS 编译目标为 ES2022 |
| 操作系统 | 跨平台 | 插件代码本身不依赖原生模块；其所桥接的 AgentSight 主程序另需 Linux 内核 >= 5.8 |

## 安装方式
```bash
dsh plugin --profile web add github:alibaba/anolisa/src/agentsight/dsh-plugin
```

## 配置项
本插件无需额外配置。

## 常见问题

**Q: 这个插件能采集 Agent 的 LLM 调用、Token 消耗或网络流量吗？**

A: 不能。此插件只注册一个 `agentsight_status` 工具，不启动任何探针、不读取网络数据、不写入数据库。真正的采集工作由 AgentSight 主程序完成，需另外部署。

**Q: 安装后还需要额外配置吗？**

A: 不需要。该插件只通过 Cordis 注入并注册一个内置工具，没有 Schema 配置项、不读取环境变量、不读写外部文件，安装即用。

**Q: 它和 AgentSight 主程序是什么关系？**

A: 它是 DSH 与 AgentSight 之间的轻量桥接层，仅暴露状态查询能力；真正的 eBPF 数据采集、SQLite 存储、HTTP API 与 Dashboard 由 AgentSight 主程序提供，需要单独部署。

**Q: 卸载会影响已采集的数据吗？**

A: 该插件本身不持久化任何数据，所以卸载它是安全的；它不会触碰 AgentSight 主程序的 SQLite、配置或追踪记录。

**Q: 能在 macOS 或 Windows 上跑吗？**

A: 插件代码本身是跨平台的 TypeScript/Node.js 代码，但其所桥接的 AgentSight 主程序依赖 Linux 内核的 eBPF 能力。如果只启用此插件而没有安装主程序，工具会始终报告 `active=true` 但 `capabilities` 仅含 `status`。

**Q: 调用 `agentsight_status` 返回的 `version` 是从哪里读的？**

A: 在插件 `apply()` 执行时通过 `fs.readFileSync` 读取自身 package.json 的 `version` 字段，因此返回值始终是构建时打包进插件的那个版本。

## 上手难度
入门 — 只有一个工具、无配置、无副作用，安装即可使用。

## 已知问题与限制
- `agentsight_status` 工具的 `capabilities` 字段目前硬编码返回 `['status']`，并未根据宿主是否真正安装了 AgentSight 主程序来动态变化，因此返回值不能用来判断主程序是否在运行
- 插件不提供 AgentSight 主程序的版本、运行状态或采集通道健康度查询接口，调用方若需更详细的信息需绕开本插件查询主程序自身的 HTTP API
- 由于 `apply()` 依赖宿主暴露 `ctx.tools` 扩展，在不满足 `inject: ['tools']` 的宿主环境下加载会失败

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [anolisa](https://deepseek-plugin.org/plugins/alibaba/anolisa/src/agentsight/dsh-plugin)
Wiki generated by AI (model: `MiniMax-M3`)
