【玩转 AtomCode】隐藏高级功能挖掘:MCP、Hooks、Skills、Plugin 完全指南

【玩转 AtomCode】隐藏高级功能挖掘:MCP、Hooks、Skills、Plugin 完全指南

「码动四季」征文活动参赛作品

大多数人只用 AtomCode 写代码,但它的真正强大之处在于扩展生态。本文在华为云服务器上实操 MCP 协议接入、Hooks 生命周期钩子、Skills 技能系统、Plugin 插件市场四大高级功能,带你解锁 AtomCode 的隐藏潜力。

一、为什么说 AtomCode 不只是编码工具?

安装 AtomCode 后,大多数人直接 atomcode -p '写个xxx' 就开始用了。但如果你执行 atomcode --help,会发现它隐藏了四个强大的子系统:

复制代码
  mcp        Manage MCP server entries in .mcp.json
  plugin     Manage skill/command plugins
  setup      Install seed files (skills/commands/hooks/MCP) to ~/.atomcode/
  hooks      Manage hooks (list, test, enable/disable)

这四个命令分别对应 MCP 协议、Plugin 插件、Skills 技能、Hooks 钩子------它们共同构成了 AtomCode 的扩展生态。

二、环境准备

复制代码
实例:华为云 FlexusX ecs-46b1-0003
规格:8vCPUs | 16GiB | x2e.8u.16g
系统:Ubuntu 24.04 server 64bit
公网 IP:119.3.232.205
AtomCode:v4.25.9

AtomCode 安装配置过程(与其他服务器相同,此处省略),确保 atomcode status 显示已登录。

三、MCP 协议接入

3.1 什么是 MCP

MCP(Model Context Protocol)是一个开放标准协议,类比 "USB-C 接口"------它定义了 AI 模型与外部工具之间的统一通信标准。在 AtomCode 中,MCP 让 AI 编码代理能够调用外部工具(文件系统、数据库、API 等)。

3.2 MCP 命令详解

bash 复制代码
root@ecs-46b1-0003:~# atomcode mcp --help
Manage MCP server entries in .mcp.json

Usage: atomcode mcp [OPTIONS] <COMMAND>

Commands:
  add               Add or replace a stdio MCP server
  add-github-oauth  Add GitHub's remote MCP server using OAuth
  login             Complete OAuth login for a remote MCP server
  logout            Remove saved OAuth credentials for a remote MCP server

3.3 添加文件系统 MCP Server

实操添加 @modelcontextprotocol/server-filesystem MCP 服务器:

bash 复制代码
root@ecs-46b1-0003:~# mkdir -p /root/mcp-test && cd /root/mcp-test
root@ecs-46b1-0003:~/mcp-test# atomcode mcp add filesystem npx @modelcontextprotocol/server-filesystem /tmp

输出:

复制代码
  Added MCP server "filesystem" → /root/mcp-test/.mcp.json (stdio: npx + 2 arg(s))

查看生成的配置文件:

bash 复制代码
root@ecs-46b1-0003:~/mcp-test# cat .mcp.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "@modelcontextprotocol/server-filesystem",
        "/tmp"
      ]
    }
  }
}

3.4 MCP 配置详解

AtomCode 支持两种 MCP 配置作用域:

作用域 文件位置 说明
项目级 <project>/.mcp.json 仅当前项目可用,可提交到 Git
用户级(全局) ~/.atomcode/mcp.json 所有项目可用,个人配置

使用 --global 参数添加全局 MCP Server:

bash 复制代码
atomcode mcp add --global filesystem npx @modelcontextprotocol/server-filesystem /tmp

3.5 工具命名规则

MCP Server 注册的工具在 AtomCode 中以 mcp__<server>__<tool> 格式命名。例如:

  • filesystem Server 的 read_file 工具 → mcp__filesystem__read_file
  • filesystem Server 的 write_file 工具 → mcp__filesystem__write_file

这种命名方式避免了不同 MCP Server 之间的工具名冲突。

3.6 传输方式

AtomCode MCP 支持两种传输方式:

stdio(本地)

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-filesystem", "/tmp"]
    }
  }
}

HTTP(远程)

json 复制代码
{
  "mcpServers": {
    "github": {
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer gho_xxxx"
      }
    }
  }
}

对于 GitHub 远程 MCP,AtomCode 还提供了 OAuth 一键添加:

bash 复制代码
atomcode mcp add-github-oauth

3.7 权限审批模型

AtomCode 对 MCP 工具调用提供三种权限模式:

模式 说明 适用场景
逐次确认 每次调用工具时弹出确认 敏感操作(删除、修改)
autoApprove 自动批准特定工具 信任的只读工具
trust 信任所有工具 开发环境,完全信任

配置示例(在 .mcp.json 中):

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-filesystem", "/tmp"],
      "autoApprove": ["read_file", "list_files"],
      "trust": false
    }
  }
}

四、Hooks 生命周期钩子

4.1 Hooks 概念

Hooks 是 AtomCode 的生命周期钩子系统,允许在特定事件发生时自动执行自定义命令。类似于 Git Hooks,但覆盖了 AI 编码代理的完整生命周期。

4.2 Hooks 命令

bash 复制代码
root@ecs-46b1-0003:~# atomcode hooks --help
Manage hooks (list, test, enable/disable)

Commands:
  list   List all loaded hooks with their status
  test   Test a specific hook by name
  paths  Show hook configuration paths

查看 Hooks 配置路径:

bash 复制代码
root@ecs-46b1-0003:~# atomcode hooks paths

Hook Configuration Paths:
─────────────────────────────────────────────
  ✗ Global config:   /root/.atomcode/hooks/hooks.toml
  ✗ Project config:  /root/.atomcode/hooks/hooks.toml

4.3 创建 Hooks

创建 Hooks 配置文件:

bash 复制代码
root@ecs-46b1-0003:~# mkdir -p ~/.atomcode/hooks
root@ecs-46b1-0003:~# cat > ~/.atomcode/hooks/hooks.toml << 'HOOKS'
[[hooks]]
name = "audit-log"
event = "pre_tool_use"
command = "echo $(date) - $ATOMCODE_TOOL_NAME >> ~/.atomcode/audit.log"

[[hooks]]
name = "block-rm-rf"
event = "pre_tool_use"
matcher = "bash"
command = "echo '{\"action\":\"block\",\"reason\":\"rm -rf is blocked by safety hook\"}'"
HOOKS

4.4 Hook 事件类型

从配置文件注释可以看到,AtomCode 支持四种 Hook 事件:

事件 触发时机 典型用途
pre_tool_use 工具调用前 安全检查、审计日志、阻止危险操作
post_tool_use 工具调用后 自动格式化、代码检查、通知
session_start 会话开始 环境检查、加载配置
session_end 会话结束 清理临时文件、生成报告

4.5 Hook 环境变量

Hooks 执行时可以访问以下环境变量:

变量 说明
ATOMCODE_HOOK_EVENT 当前事件名称
ATOMCODE_TOOL_NAME 正在调用的工具名
ATOMCODE_HOOK_CONTEXT 钩子上下文信息

4.6 PreToolUse 返回值

pre_tool_use Hook 可以通过 stdout 返回 JSON 控制工具执行:

json 复制代码
{"action": "allow"}                    // 允许执行
{"action": "block", "reason": "..."}   // 阻止执行并说明原因

4.7 查看已加载的 Hooks

bash 复制代码
root@ecs-46b1-0003:~# atomcode hooks list

Loaded Hooks:
─────────────────────────────────────────────
  (No hooks loaded)

Hook Directories:
─────────────────────────────────────────────
  ✓ Global:   /root/.atomcode/hooks
  ✗ Project:  /root/mcp-test/.atomcode/hooks

提示:Hooks 需要在交互式会话中才会加载,Headless 模式下可能不会触发。

五、Skills 技能系统

5.1 什么是 Skills

Skills 是 AtomCode 的「打包专业知识」系统。一个 Skill 就是一个 Markdown 文件(SKILL.md),包含特定领域的知识、工作流程和指令。AI Agent 加载 Skill 后,就能像专家一样处理特定类型的任务。

5.2 安装种子 Skills

bash 复制代码
root@ecs-46b1-0003:~# atomcode setup

✅ Setup complete --- 1 installed, 0 skipped, 0 failed  · 11ms

Installed:
  ✓ skill:atomcode-automation-recommender → /root/.atomcode/skills/atomcode-automation-recommender

atomcode setup 命令会将种子文件(Skills/Commands/Hooks/MCP)安装到 ~/.atomcode/ 目录。

5.3 内置 Skill 解析

安装的 atomcode-automation-recommender Skill 内容:

bash 复制代码
root@ecs-46b1-0003:~# cat ~/.atomcode/skills/atomcode-automation-recommender/SKILL.md
yaml 复制代码
---
name: setup
description: Analyze a codebase and recommend AtomCode automations 
  (hooks, subagents, skills, plugins, MCP servers). Use when user asks 
  for automation recommendations, wants to optimize their AtomCode setup, 
  mentions improving AtomCode workflows, asks how to first set up AtomCode 
  for a project, or wants to know what AtomCode features they should use.
user_invocable: true
argument_hint: "[focus area, e.g. hooks, mcp, skills, all]"
allowed_tools: Read, Glob, Grep, Bash, Write, Edit
---

这个 Skill 的工作流程:

  1. 分析代码库:检测项目类型、依赖、现有配置
  2. 推荐自动化方案:根据项目特点推荐 Skills、Plugins、MCP Servers、Hooks
  3. 提供安装方案:推荐后询问「要我帮你装上吗?」

5.4 Skill 类型对照表

从 Skill 的内容可以看到 AtomCode 的完整自动化体系:

类型 适用场景 安装方式
Skills 打包专业知识、工作流程、重复任务 npx skills add <pkg> 或创建 .atomcode/skills/<name>/SKILL.md
Plugins Skills + Commands + Agents + Hooks 的集合 /plugin marketplace add <url> 然后 /plugin install <name>
MCP Servers 外部工具集成(数据库、API、文档) 写入 .mcp.json(项目级)或 ~/.atomcode/mcp.json(全局)
Hooks 工具事件的自动动作(格式化、检查、阻止) 写入 ~/.atomcode/hooks/hooks.toml
Subagents 专业化审查员(安全、性能、可访问性) 创建 .atomcode/skills/<name>/SKILL.md
Commands 快捷斜杠命令(/test, /review, /deploy) 创建 .atomcode/commands/<name>.md

5.5 自定义 Skill 创建

创建一个自定义 Skill 示例:

bash 复制代码
mkdir -p ~/.atomcode/skills/my-deploy-helper
cat > ~/.atomcode/skills/my-deploy-helper/SKILL.md << 'EOF'
---
name: deploy-helper
description: Help deploy applications to production. Use when user asks 
  to deploy, release, or publish an application.
user_invocable: true
argument_hint: "[environment: staging|production]"
allowed_tools: Bash, Read, Write
---

# Deploy Helper

## Workflow
1. Run tests: `npm test`
2. Build: `npm run build`
3. Deploy: `./deploy.sh $ARGUMENTS`
4. Verify: `curl -s https://myapp.com/health`
5. Notify: Send deployment notification
EOF

六、Plugin 插件市场

6.1 Plugin 命令体系

bash 复制代码
root@ecs-46b1-0003:~# atomcode plugin --help
Manage skill/command plugins

Commands:
  marketplace  Marketplace registry operations (add/remove/update/list)
  install      Install a plugin from a registered marketplace
  uninstall    Uninstall a previously-installed plugin
  list         List installed plugins

6.2 Marketplace 操作

bash 复制代码
# 添加插件市场
atomcode plugin marketplace add <git-url>

# 更新市场索引
atomcode plugin marketplace update <marketplace-name>

# 列出已注册的市场
atomcode plugin marketplace list

# 移除市场
atomcode plugin marketplace remove <marketplace-name>

6.3 安装插件

bash 复制代码
# 安装插件(格式:<plugin>@<marketplace>)
atomcode plugin install ascend-model-agent-plugin@ascend-model-agent-plugin

# 查看已安装插件
atomcode plugin list

# 卸载插件
atomcode plugin uninstall <plugin-name>

6.4 自动安装配置

config.toml 中可以配置自动安装行为:

toml 复制代码
[plugin]
auto_install_default_skills = true       # 自动安装默认 Skills
auto_update_marketplaces = true           # 自动更新市场索引

七、配置文件全景

通过 atomcode setup 和手动配置后,~/.atomcode/ 目录的完整结构:

复制代码
~/.atomcode/
├── auth.toml                    # 认证信息
├── config.toml                  # 全局配置
├── codingplan_sync.json         # Token 同步
├── device_id                    # 设备标识
├── ATOMCODE.md                  # 全局指令文件(自定义 AI 行为)
├── mcp.json                     # 全局 MCP 配置
├── hooks/
│   └── hooks.toml               # Hooks 配置
├── skills/
│   └── <skill-name>/
│       └── SKILL.md             # Skill 定义
├── commands/
│   └── <command-name>.md        # 自定义命令
└── telemetry/                   # 遥测数据

项目级配置

在项目根目录可以创建以下文件覆盖全局配置:

复制代码
<project>/
├── .atomcode.md                 # 项目指令(团队共享)
├── .atomcode.user.md            # 用户级项目指令(.gitignore)
├── .mcp.json                    # 项目 MCP 配置
├── .hooks.json                  # 项目 Hooks 配置
├── .atomcode/
│   ├── skills/
│   ├── commands/
│   └── ...

指令优先级

AtomCode 加载指令文件的优先级(从低到高):

  1. ~/.atomcode/ATOMCODE.md --- 全局个人默认值
  2. <project>/.atomcode.md --- 项目团队共享(提交到 Git)
  3. <project>/ATOMCODE.md --- 同上,备选文件名
  4. <project>/AGENTS.md --- AGENTS.md 开放标准
  5. <project>/CLAUDE.md --- Claude Code 兼容
  6. <project>/.atomcode.user.md --- 个人项目级(.gitignore)

优先级高的文件出现在 Prompt 后面(近期效应),影响力更大。

八、高级配置技巧

8.1 自定义 AI 行为

创建 ~/.atomcode/ATOMCODE.md 全局指令:

markdown 复制代码
## Global Preferences
- Reply in Chinese
- Don't add AI co-author tags to commits
- Always add type hints to Python code
- Prefer functional style over imperative

8.2 项目级指令

在项目根目录创建 .atomcode.md

markdown 复制代码
## Project Rules
- This is a Rust workspace with 5 crates
- Use anyhow::Result for error handling
- All public APIs must have doc comments
- Run `cargo fmt` before commits

8.3 Subagent 配置

toml 复制代码
[subagent]
enabled = true
initial_turns = 4       # 初始轮数
max_turns = 12          # 最大轮数
max_concurrent = 3      # 并发数
timeout_secs = 300      # 超时

8.4 通知配置

toml 复制代码
[notifications]
enabled = true
min_duration_secs = 8    # 最短通知阈值
terminal = true           # 终端通知
system = true             # 系统通知
bell = true               # BEL 响铃
background_only = true    # 仅后台时通知

8.5 数据日志

toml 复制代码
[datalog]
enabled = true
dir = "~/.atomcode/datalog"  # 日志目录

每轮对话写入 Markdown 摘要,每轮 LLM 调用写入 JSON 请求/响应对。

九、总结

AtomCode 的四大扩展系统构成了一个完整的 AI 编码代理生态:

系统 核心价值 使用门槛
MCP 连接外部工具,无限扩展 AI 能力 中(需了解 MCP 协议)
Hooks 生命周期钩子,自动化工作流 低(Shell 脚本即可)
Skills 打包专业知识,复用最佳实践 低(Markdown 文件)
Plugin 社区生态分发,一键安装 低(marketplace 命令)

这四个系统不是孤立的,而是相互配合的:

  • Plugin 可以打包多个 Skills + Commands + Hooks
  • Skills 可以推荐安装 MCP ServersHooks
  • Hooks 可以在 MCP 工具调用前后触发
  • MCP 工具可以被 SkillsHooks 使用

如果你只用了 atomcode -p 来写代码,那你只用了 AtomCode 20% 的能力。真正的威力在于 MCP + Hooks + Skills + Plugin 的组合使用------把 AtomCode 变成一个懂你的项目规范、遵守你的安全策略、连接你的工具链、自动执行你的工作流的 AI 编码代理。


活动信息:「码动四季」征文活动夏季主题------「玩转 AtomCode」

AtomCode 官网https://atomcode.atomgit.com

AtomCode 源码https://atomgit.com/atomgit_atomcode/atomcode

相关推荐
qq_291579251 小时前
AI电商主图视频在线生成:技术解析、工具横评与实战指南
人工智能·音视频
风途科技~1 小时前
多参数水质在线监测设备—水环境实时管控解决方案
大数据·人工智能
lh17932 小时前
数据产业服务分类(53)——分类设计——数据能力集成
java·人工智能·分类
使用小功能大师2 小时前
从零到一:使用阿里云百炼搭建企业级 AI Agent 完全实战手册(2026超详细版)
人工智能·阿里云·云计算
十铭忘2 小时前
VideoMAE v2:使用双重掩码扩展视频掩码自编码器
人工智能
金色的暴发户2 小时前
一劳永逸解决Codex手机验证
前端·人工智能·开源
YOLO数据集集合2 小时前
无人机松材线虫病树监测:早期与晚期感染阶段目标检测数据集全解析10125期
人工智能·目标检测·无人机
天天进步20152 小时前
InfiniteTalk 源码解析 #12:二次开发路线:做一个可商用的长视频口播生成平台
人工智能
Elastic 中国社区官方博客2 小时前
谁来评判评判者?在 Elasticsearch Workflows 中使用 LLM-as-a-Judge
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索