oxagenai/claude-code-plugin
GitHub: oxagenai/claude-code-plugin
一个将 Claude Code 连接到 Oxagen 工作区的插件,通过强类型知识图谱、永驻记忆和多智能体协调,为代码工程、安全分诊、事件响应和研究工作流提供确定性的上下文感知能力。
Stars: 1 | Forks: 0
# Oxagen — Claude Code 插件
[](./LICENSE)
[](https://docs.claude.com/en/docs/claude-code/plugins)
[](https://docs.oxagen.ai/plugins/claude-code-plugin)
- **Docs:**
- **App:**
- **Issues:**
- **Marketplace listing:** `oxagenai/claude-code-plugin`
## 太长不看
安装一次。即可获得:
- 一个强类型、确定性的工作区**知识图谱**(代码、
历史、测试、CI、安全告警、事件、所有权、操作手册、
客户——只要是工作区本体追踪的内容均可)。
- **永驻记忆** —— 每一个有意义的动作都会被捕获,重复出现的
模式会被检测到,过去的失败会在执行类似
工作前作为警告注入,并且操作程序会被提升为可复用的配方。
- 在 `/oxagen:*` 下提供 **50 多条斜杠命令**,涵盖发现、遍历、
历史、测试、CI、安全、记忆、事件和多智能体
协调。
- 一个 **SessionStart 钩子**,在每一轮对话中确保三个保证:
*图谱优先*、*始终召回记忆*、*遵循协调机制*。
即使在执行 `/clear` 和 `/compact` 后也会持续生效。
## 安装说明
### 从 Claude Code 插件市场安装(推荐)
```
# 添加 Oxagen marketplace
/plugin marketplace add oxagenai/claude-code-plugin
# 安装 plugin
/plugin install oxagen@oxagen
```
就是这么简单——无需手动创建软链接,无需编辑 `~/.claude/plugins`。Manifest、MCP server 配置、hooks、commands 和 skills 全部直接来自市场目录树。
### 本地开发安装
如果您已经克隆了此 repo 并想要亲自测试(dogfood)您的更改:
```
ln -s "$(pwd)" ~/.claude/plugins/oxagen
```
然后重启 Claude Code。
### 连接您的工作区
```
/oxagen:setup
```
该命令会在浏览器中打开 `https://app.oxagen.ai/setup/claude-code`,
引导您完成工作区 + GitHub 仓库的选择,返回一行安装字符串,
写入 `~/.claude/oxagen.local.json`,轮询直到
首次 ingest 准备就绪,并验证 MCP 工具列表是否存活。
将其添加到您的 shell 配置文件中,以便 MCP token 在重启后仍然有效:
```
export OXAGEN_MCP_TOKEN="$(jq -r .token ~/.claude/oxagen.local.json)"
```
使用以下命令验证:
```
/mcp
```
您应该能看到 `oxagen` 及其完整的工具集被列出。
## 插件的保证
当 Oxagen 插件启用时,**在每一次会话中**,SessionStart
钩子都会注入一段 `` 前导指令,告知 agent:
1. **图谱优先,猜测其次。** 在执行任何非平凡操作之前——代码
编辑、研究综合、事件分诊、运维变更、客户影响
分析、策略查询——都要先查询 Oxagen 图谱(`ontology.*`、
`code.*`、`incident.*`、`security.*`)。
2. **始终召回记忆。** 在开始任何任务时,针对意图调用
`memory.recall`(或 `memory.context_inject`)。如果匹配到某个
程序或片段,优先使用它而不是重新发现。在完成
有意义的工作后,持久化您学到的内容。
3. **协调工作。** 当其他会话可能涉及相同范围时,使用
`agent.list_active_claims` 和 `agent.claim_work`。
完整的路由策略位于 `oxagen:using-oxagen` skill 中,
该策略会在 `startup`、`clear` 和
`compact` 时由钩子加载到系统提示中。完整的工具目录和回写约定位于
`oxagen:oxagen-tool-reference` 和 `oxagen:dogfooding` skills 中,
它们会按需加载。
## 真实用例 —— 超越 agentic coding
该插件的价值在于强类型的图谱 + 记忆层。Coding 是最
明显的应用场景,但并非唯一。任何被 Oxagen ingest 的内容都会变成
可查询且可定位的。
### 工程
- **充满信心地重构。** `/oxagen:impact ` 在您发布
签名变更*之前*返回调用者、依赖项、PageRank 和可达路径。阻止
“我没想到有十个地方调用了这个”这类回归问题。
- **员工入职。** `/oxagen:repo-overview`、`/oxagen:module-tree`、
`/oxagen:who-knows `、`/oxagen:expert ` —— 新员工在五分钟内就能获得系统的拓扑地图及其所有者,而不是花费三周时间。
- **死代码审计。** `/oxagen:ask "list nodes with zero callers and no
EXPORTS edge"` 返回确凿的死符号。可以安全删除。
- **架构评审。** `/oxagen:ask "show cycles in the call graph
scoped to packages/oxagen"` 展现出通过 grep 无法看出的强连通分量(SCC)。
### 事件响应与 SRE
- **从堆栈跟踪评估爆炸半径。**
`/oxagen:find-symbol ` → `/oxagen:impact ` →
`/oxagen:pr-history ` 重构了变更内容、操作者及其依赖项——在告警触发几分钟后即可完成。
- **操作手册召回。** `/oxagen:procedure-for "redis OOM during ingest"`
提取出上次事件中存储的操作程序;无需在凌晨 3 点翻查 Wiki。
- **持久化复盘。** `/oxagen:incident resolve` 加上
`/oxagen:remember "OOM root-caused to chunk size 16k; mitigated by
bounded queue at packages/oxagen/oxagen/ingest/queue.py:142"` 确保
下一个看到类似跟踪信息的 agent 会获得上下文注入。
### 安全与合规
- **结合影响范围进行分诊。** `/oxagen:security-alerts --severity=high`
返回与调用图谱关联的 Dependabot / CodeQL / secret-scan 开放告警。`/oxagen:alert ` 显示受影响的节点 + 推荐的
修复 + 咨询链接——无需在 GitHub 标签页之间来回切换。
- **证据链。** 在工作区范围的本体中映射控件 → 制品 → 所有者;要求 agent 通过遍历类型化边而不是通过 grep 来收集证据。
- **供应链审计。** `/oxagen:ask "dependencies introduced in the
last 30 days with no PR review"` —— 类型化查询,确定性答案。
### 客户成功与支持
- **客户影响分析。** 带有客户本体
层的工作区可以询问“哪些客户依赖于由
`payments.charge` 控制的功能”——类型化遍历能高置信度地返回列表,
而不是猜测。
- **升级图谱。** `/oxagen:expert ` 解析为最近
在该领域编写或审查代码的人员;结合
`memory.procedure_for` 可调出上次值班使用的操作手册。
- **工单 → 代码链接。** `/oxagen:issue ` 关联 issue 正文、
评论、相关 PR 以及受影响的节点——agent 拉取到的上下文与高级工程师手动组装的完全一致。
### 研究、研发与内部知识
- **概念图谱。** 将语料库(论文、文档、内部 Wiki)ingest 到一个
工作区;agent 通过 `ontology.traverse` 回答“概念 A 与概念 B 有何关联”,
而不是基于向量搜索进行猜测。
- **长期研究记忆。** `memory.remember` + `memory.recall`
为研究 agent 提供持久且锚定的片段——失败的方法会在 agent 重试之前作为警告显示。
- **跨文档综合。** `/oxagen:find-pattern` 在强类型本体中执行混合
语义 + grep 搜索,范围限定在一个工作区内。
### 多智能体集群
- **先声明再编辑。** `/oxagen:claim packages/oxagen/.../service.py:50-120`
注册锁;其他连接到 Oxagen 的会话会看到并
退让。在会话结束时自动释放。
- **共享发现。** `agent.record_finding` 在受影响的节点上
持久化一个类型化的观察(“如果签名改变,这个调用方就会出错”);
`agent.get_findings` 在下一个任务开始时检索它们。
- **编排调度。** `/oxagen:go --p0 "investigate auth regression"`
调度 Oxagen agent 集群针对工作区进行工作;每个 agent 都继承相同的图谱 + 记忆 + 声明协调机制。
## 斜杠命令
所有命令均使用 `/oxagen:` 前缀。不带任何参数运行任何命令
即可获取交互式提示。
### 设置与问答
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:setup` | `[install-string]` | 端到端入职引导:workspace → GitHub → token → ingest |
| `/oxagen:ask` | `` | 直接对本体进行问答——由 Cypher 支持的自然语言回答 |
| `/oxagen:search` | `` | NL→Cypher 图谱搜索,带回退遍历机制,返回 file:line 匹配项 |
### 发现与结构
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:repo-overview` | — | 工作区概览——语言构成、顶层模块、入口点、节点计数 |
| `/oxagen:module-tree` | `[path]` | 目录树及每个子树的符号计数 |
| `/oxagen:find-symbol` | `` | 将名称解析为一个或多个本体节点 |
| `/oxagen:describe` | `` | 结构化元数据:类型、签名、装饰器、文档字符串、位置 |
| `/oxagen:read` | `` | 源代码字节 + 摘要 + 带有可配置周围上下文的行范围 |
| `/oxagen:find-pattern` | `` | 横跨本体的混合语义 + grep 搜索 |
| `/oxagen:explain` | `` | 行为描述:输入、输出、调用、读取、写入、抛出 |
### 遍历
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:impact` | `` | 爆炸半径报告——调用者、依赖、PageRank、可达路径、活动声明 |
| `/oxagen:callers` | `` | 直接调用者(别名 `code.callers_of`) |
| `/oxagen:callees` | `` | 从该符号出发的 CALLS 边 |
| `/oxagen:refs` | `` | 所有引用——调用、导入、类型使用 |
| `/oxagen:path` | ` ` | 两个符号之间的有向路径(别名 `code.dependency_path`) |
| `/oxagen:cochange` | `` | 历史上与目标一起更改的符号 |
### 历史与所有权
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:who-knows` | `` | 按符号的作者身份和审查活动排名的人员 |
| `/oxagen:expert` | `` | 某人拥有的内容——`/oxagen:who-knows` 的逆向操作 |
| `/oxagen:recent` | `[--days] [--path]` | 工作区内最近的提交 |
| `/oxagen:blame` | `` | 增强的 blame,关联了 PR、issue 和审查者 |
| `/oxagen:pr` | `` | 完整的 PR 上下文——文件、提交、审查者、相关 issue、受影响的节点 |
| `/oxagen:pr-history` | `` | 曾涉及某符号的 PR,按最新排序 |
| `/oxagen:issue` | `` | Issue 上下文——标题、正文、评论、相关 PR、受影响的节点 |
| `/oxagen:find-issues` | `` | 跨 issue 语料库的混合全文搜索 |
### 测试与 CI
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:tests-for` | `` | 覆盖某个符号的测试——直接 + 传递 |
| `/oxagen:coverage` | `` | 来自最新 CI 运行的逐行覆盖率 |
| `/oxagen:failing-tests` | `[--branch]` | 当前在分支上失败的测试 |
| `/oxagen:flaky-tests` | `[--days]` | 滚动窗口期内的不稳定测试率排名 |
| `/oxagen:last-run` | `[workflow]` | workflow / 分支 / PR 最新的 CI workflow 运行 |
| `/oxagen:run-failures` | `` | workflow 运行中失败的作业和步骤,带有冷日志预览 |
### 安全
| 命令 | 参数 | 作用 |
|---------|----------|---| `/oxagen:security-alerts` | `[--severity]` | Dependabot、CodeQL 和 secret-scan 的开放告警 |
| `/oxagen:alert` | `` | 完整的告警上下文——受影响的节点、建议、咨询链接 |
### 记忆
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:recall` | `` | 检索与意图匹配的程序和片段 |
| `/oxagen:remember` | `` | 将自由格式的事实作为记忆片段持久化 |
| `/oxagen:procedure-for` | `` | 通过精确的触发器模式查找已存储的程序 |
| `/oxagen:forget` | `` | 软删除一个片段或程序 |
| `/oxagen:memory-enable` | — | 启用持久化的 agent 记忆(自动捕获 + 模式注入) |
| `/oxagen:memory-metric` | `[name] [condition]` | 定义自定义的自我改进评估指标 |
| `/oxagen:memory-logs` | `[limit]` | 查看由记忆捕获的近期 agent 动作 |
### 协调与运维
| 命令 | 参数 | 作用 |
|---------|----------|---|
| `/oxagen:claim` | `` | 锁定一个范围使并行 agent 退让;在会话结束时自动释放 |
| `/oxagen:incident` | `` | 针对图谱节点追踪生产事件 |
| `/oxagen:workspace-select` | `[id-or-name]` | 切换此会话的活动工作区 |
| `/oxagen:go` | `[--p0\|--issue OXA-N]` | 调度 Oxagen agent 集群 |
| `/oxagen:watch` | `[--daemons]` | 启动 Oxagen 监控 supervisor |
## MCP 工具层
所有工具遵循 `mcp__oxagen___` 命名并返回标准
SPEC §7.9 信封:`results`、`evidence`、`tokens_used_estimate`、
`counterfactual_estimate_tokens`、`counterfactual_method`、`cursor`、
`tenant_scoped_at`。无论调用哪个工具,agent 都会解析相同的单一数据结构。
| 组 | 接口 |
|---|---|
| `ontology.*` | `ask`、`get_node`、`list_nodes`、`create_node`、`list_edges`、`create_edge`、`list_types`、`pagerank`、`communities`、`traverse`、`explain_function`、`impact_of`、`symbol_context`、`refresh_repo`、merge-queue 工具 |
| `code.*` (发现) | `repo_overview`、`module_tree`、`find_symbol`、`describe_symbol`、`read_symbol`、`find_pattern` |
| `code.*` (遍历) | `find_callers`、`callees_of`、`find_dependencies`、`find_path`、`get_neighborhood`、`references_to`、`co_changes_with`、`find_cycles`、`find_dead_code`、`stats` |
| `code.*` (历史) | `recent_changes`、`blame_enriched`、`pr_context`、`pr_history`、`who_knows_about`、`expertise`、`issue_context`、`find_issues`、`discussion_context` |
| `code.*` (测试 + CI) | `tests_for`、`coverage_for`、`failing_tests`、`flaky_tests`、`last_run`、`run_failures` |
| `code.*` (依赖) | `dependencies`、`dependency_graph` |
| `agent.*` | `start_session`、`heartbeat`、`end_session`、`claim_work`、`release_claim`、`record_finding`、`get_findings`、`list_active_claims` |
| `memory.*` | `recall`、`remember`、`procedure_for`、`forget`、`search`、`context`、`annotate`、`metric_*`、`benchmark_*`、`context_inject` |
| `security.*` | `open_alerts`、`alert_context` |
| `workspace.*` | `list`、`bind`、`enable_memory`、`disable_memory` |
| `incident.*` | `open`、`resolve`、`link` |
各工具的详细说明位于
[文档站](https://docs.oxagen.ai/plugins/claude-code-plugin#mcp-tool-reference)
以及 `oxagen:oxagen-tool-reference` skill([`skills/oxagen-tool-reference/SKILL.md`](./skills/oxagen-tool-reference/SKILL.md))中。
## 内部连线原理
```
oxagenai/claude-code-plugin/ # this repo
├── .claude-plugin/
│ ├── marketplace.json # marketplace listing
│ └── plugin.json # plugin manifest (name, version, author, license)
├── .mcp.json # MCP server config — points at mcp.oxagen.ai
├── commands/ # slash-command runbooks
├── hooks/
│ ├── hooks.json # SessionStart hook registration
│ ├── session-start # injects the preamble
│ └── run-hook.cmd # cross-platform polyglot wrapper
├── skills/
│ ├── using-oxagen/SKILL.md # always-on routing policy
│ ├── oxagen-tool-reference/SKILL.md # full tool catalog (load on demand)
│ └── dogfooding/SKILL.md # write-back conventions
├── README.md # this file
├── CHANGELOG.md
├── CONTRIBUTING.md
└── LICENSE # MIT
```
### 环境变量
| 变量 | 必填 | 用途 |
|----------|----------|---------|
| `OXAGEN_MCP_TOKEN` | 是 | 用于 `mcp.oxagen.ai` 的 Bearer token。`/oxagen:setup` 会将其写入 `~/.claude/oxagen.local.json`;请在您的 shell 中 export 它,以便 `.mcp.json` 的变量替换能获取到它。 |
### 设置文件
```
{
"workspace_id": "ws_…",
"connection_id": "conn_…",
"token": "oxa_live_…",
"minted_at": 1714000000
}
```
`~/.claude/oxagen.local.json` 已被 gitignore 忽略(`*.local.json`),并且权限被 `/oxagen:setup` 修改为 `600`。
## 故障排除
**设置后没有列出任何工具。** 检查启动 Claude Code 的 shell 中是否 export 了 `OXAGEN_MCP_TOKEN`。使用 `echo $OXAGEN_MCP_TOKEN` 进行验证,然后从该 shell 重启 Claude Code 并运行 `/mcp`。
**`memory.*` 工具未返回结果。** 记忆工具始终处于注册状态;但只有在执行 `/oxagen:memory-enable` 后才会激活捕获。
**每次调用均返回 401。** token 已过期或被吊销。请在应用的 **Settings → MCP → Tokens** 中生成一个新 token,然后重新运行 `/oxagen:setup`。
**Ingest 卡住 / 图谱为空。** 请在应用中检查 **Settings → Connections**。如果出现错误,请重新连接 GitHub,然后触发一次手动 re-ingest。或者要求 agent 调用 `ontology.refresh_repo`。
**过时的 claim 阻塞了另一个会话。** 使用 `/oxagen:ask "list active claims"` 找到它,然后使用 `/oxagen:claim --force` 进行覆盖(这将记录一条审计事件)。
**`/oxagen:ask` 或 `/oxagen:search` 的置信度较低。** 图谱可能比较稀疏;通过 **Settings → Connections → Re-ingest** 触发一次重新 ingest,并在状态变为 `ready` 后重试。
## 许可证
[MIT](./LICENSE) · © 2026 Oxagen, Inc.
标签:Claude Code 插件, DevSecOps, DLL 劫持, MCP, 上游代理, 代码分析, 代码助手, 凭证管理, 多智能体协同, 大语言模型, 威胁情报, 安全分诊, 安全警报, 工作流编排, 开发者工具, 影响分析, 持久化记忆, 知识管理, 研究工作流, 网络调试, 自动化