oxagenai/claude-code-plugin

GitHub: oxagenai/claude-code-plugin

一个将 Claude Code 连接到 Oxagen 工作区的插件,通过强类型知识图谱、永驻记忆和多智能体协调,为代码工程、安全分诊、事件响应和研究工作流提供确定性的上下文感知能力。

Stars: 1 | Forks: 0

# Oxagen — Claude Code 插件 [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE) [![Plugin: Claude Code](https://img.shields.io/badge/Claude%20Code-plugin-d97706)](https://docs.claude.com/en/docs/claude-code/plugins) [![Docs](https://img.shields.io/badge/docs-docs.oxagen.ai-blue)](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, 上游代理, 代码分析, 代码助手, 凭证管理, 多智能体协同, 大语言模型, 威胁情报, 安全分诊, 安全警报, 工作流编排, 开发者工具, 影响分析, 持久化记忆, 知识管理, 研究工作流, 网络调试, 自动化