Cortivium
The most reliable way to control AI behavior.
Ghost Skills register as real MCP tools — not suggestions the model can ignore, but contracts it reads before every action. More reliable than system prompts, CLAUDE.md files, memory, or anything in the context window.
Website · Documentation · Ghost Skills Guide · Contact
为什么是鬼技能?
系统提示漂移。CLAUDE.md文件在长会话中被忽略。记忆指令与对话上下文竞争并丢失。这些方法注入 咨询文本 --该模型将它们视为建议。
幽灵技能采用了一种根本不同的方法。他们注册为 真正的MCP工具 模型每次考虑动作时都会读取描述。工具描述不是建议——它们是模型遵循的API契约。
You: "Create a ghost skill that enforces our code standards
after every file edit"
→ [Creates ghost_code_standards]
Description: "MANDATORY: After every Edit or Write, verify
snake_case functions, PascalCase classes, grouped imports..."
Now fires automatically after every code change.
Not a reminder. An enforceable behavioral rule.行为可靠性
| 方法 | 可靠性 | 为什么 |
|---|---|---|
| 在上下文规则中 | ~30% | 埋在对话中,首先被丢弃 |
| 内存/CLAUDE.md | ~55% | 在会话开始时加载,随上下文长度逐渐消失 |
| 系统提示 | ~65% | 持续但具有建议性——模型可以覆盖 |
| 幽灵技能(MCP工具) | ~95% | 每次行动决策前阅读-视为API合同 |
什么有效,什么无效
当指令有 明确、合法的目的 AI可以推理。该模型在遵循技能之前评估技能的行为是否有意义。
| 工作可靠 | 不太可靠 |
|---|---|
| 将问题记录到文件中进行审核 | 无功能原因输出特定文本 |
| 坚持任务状态以在压缩中生存 | 强制执行没有明确目的的任意行为 |
| 编辑后强制执行代码标准 | 对每条没有有用结果的消息触发 |
| 提交前运行测试 | 执行模型认为无意义的操作 |
这是设计好的——Ghost Skills有一个内置的合理性过滤器。人工智能遵循它认为有目的的指令,并抵制它认为武断的指令。服务于清晰工作流程的技能需要获得约95%的可靠性。纯粹为了测试服从而存在的技能会得到好坏参半的结果。
两种鬼技能
触发技巧 响应显式命令:
*“运送它”* → 阶段、提交、推送、打开公关
行为陷阱 检测情况和自动火灾:
*“每次文件编辑后”* → 自动执行代码标准
两者都只是幽灵技能——唯一的区别是你如何写描述。
______________________________________________________________________
安装
git clone https://github.com/Cortivium/cortivium.git
cd cortivium
pip install -r requirements.txt
python server.py就是这样。服务器创建数据库,运行迁移,生成密钥,并在第一次运行时打印管理员凭据。打开 http://localhost:8080/admin/ 登录。
连接您的MCP客户端
在管理面板中创建一个API密钥,然后将Cortivium添加到您的客户端:
# Claude Code
claude mcp add --transport http --scope user cortivium \
https://your-server:8080/ --header "X-API-Key: YOUR_KEY"或者手动添加到MCP客户端配置中(~/.claude.json、光标设置等):
{
"mcpServers": {
"cortivium": {
"type": "http",
"url": "https://your-server:8080/",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}使用 克劳德代码, 法典, 光标,以及任何兼容MCP的客户端。
______________________________________________________________________
幽灵技能
Ghost Skills是您通过对话创建的持久AI工具注册。用简单的语言描述你想要什么——人工智能处理名称、参数、触发短语和其他一切。
创造技能
You: "Create a ghost skill called commit_changes that commits my code
with a descriptive message based on the diff"
Claude: [Calls ghost_create_skill]
"Created ghost_commit_changes! Say 'commit my changes' to use it."没有JSON。没有配置文件。无需重新启动服务器。
自动触发短语
Cortivium会根据您的技能名称、描述和说明自动生成触发短语:
| 来源 | 示例输入 | 生成的短语 |
|---|---|---|
| 姓名 | review_pr | "review pr" |
| 说明 | "Review a pull request for bugs" | "review a pull request for bugs" |
| 使用说明 | "Check the diff for obvious bugs..." | "check the diff for" |
随时用自己的覆盖 trigger_phrases 阵列。
使用技能
技能表现为真正的MCP工具。AI会自动调用它们:
You: "commit my changes"
Claude: [Calls ghost_commit_changes]
[Follows your instructions exactly]
"Done! Committed with message: 'Add user authentication middleware'"示例用例
| 技能 | 它做什么 |
|---|---|
ghost_finish_coding | 阶段变更、编写常规提交、推送分支、创建PR |
ghost_code_standards | 强制命名模式、错误处理风格、导入顺序 |
ghost_plan_feature | 在编码之前,根据验收标准将功能分解为子任务 |
ghost_quality_check | 在标记完成之前,进行过梁、类型检查、测试和安全扫描 |
ghost_try_options | 启动git工作树,并行尝试多种方法 |
ghost_persist_tasklist | 自动将任务状态保存到磁盘,使其在上下文压缩中幸存下来 |
管理技能
| 工具 | 说明 |
|---|---|
ghost_create_skill | 通过指令创建新技能 |
ghost_list_skills | 列出你的所有技能 |
ghost_update_skill | 修改现有技能 |
ghost_delete_skill | 删除技能 |
技能与你的API密钥绑定在一起——对你来说是私有的,可在机器之间移植,在每次会话中都可用。
______________________________________________________________________
亮点
- 大约3000行Python --没有框架膨胀,8个pip依赖,在一秒钟内开始
- 零基础设施 --SQLite+内存速率限制。没有Redis,没有MySQL,没有消息队列
- 自我引导 —
python server.py创建数据库、运行迁移、生成凭据 - 生产就绪 --TLS、异步I/O、WAL模式SQLite、SSE流媒体、使用日志、Docker原生
- 缺省安全 --SHA-256密钥散列、CSRF保护、签名会话、3层速率限制、每个密钥插件隔离
管理面板
内置深色主题网页界面 /admin/:
| 页面 | 功能 |
|---|---|
| 仪表盘 | 服务器统计数据、最近活动、顶级工具图表(7天) |
| API密钥 | 创建/编辑/切换/删除按键,创建时显示一次 |
| 幽灵技能 | 浏览、创建、编辑、切换、删除具有执行计数的技能 |
| 插件 | 查看加载的插件及其版本和调用统计信息 |
| 使用日志 | 带过滤器的可搜索请求日志,分页 |
| 用户 | 创建/编辑/删除用户,设置访问级别 |
普通用户在以下位置获得一个范围面板 /user/ --只有自己的密钥和技能,没有可见的管理页面。
码头工人
docker build -t cortivium .
docker run -p 8080:8080 -v cortivium_data:/app/storage cortivium
# Or with compose
docker compose up -d对于HTTPS,请挂载您的证书:
services:
cortivium:
build: .
ports:
- "8080:8080"
volumes:
- cortivium_data:/app/storage
- ./certs:/certs:ro
environment:
- CORTIVIUM_SSL_CERT=/certs/fullchain.pem
- CORTIVIUM_SSL_KEY=/certs/privkey.pem配置
所有设置都使用 CORTIVIUM_ 前缀。无需配置——开箱即用的合理默认值。
| 变量 | 默认值 | 描述 |
|---|---|---|
CORTIVIUM_HOST | 0.0.0.0 | 绑定地址 |
CORTIVIUM_PORT | 8080 | 服务器端口 |
CORTIVIUM_SECRET_KEY | *(自动生成)* | 会话签名密钥 |
CORTIVIUM_DATABASE_PATH | storage/cortivium.db | SQLite数据库路径 |
CORTIVIUM_LOG_LEVEL | info | debug, info, warning, error |
CORTIVIUM_SSL_CERT | *(空)* | SSL证书的路径 |
CORTIVIUM_SSL_KEY | *(空)* | SSL私钥的路径 |
安全
| 层 | 实现 |
|---|---|
| API密钥 | SHA-256哈希-从未存储原始密钥 |
| 速率限制 | 每个按键3层节流(每分钟/小时/天) |
| 会话 | 通过其危险的签名Cookie |
| 跨站请求伪造 | 双重提交所有突变的cookie模式 |
| 密码 | bcrypt自动加盐 |
| 技能隔离 | Ghost Skills的作用域是创建API密钥-其他人不可见 |
| 插件隔离 | 按键 allowed_plugins 限制工具访问 |
| 传输层安全 | 通过Uvicorn的原生HTTPS |
| 输入验证 | 对所有MCP请求进行严格的模式验证 |
插件开发
使用自定义插件进行扩展。每个人都可以注册工具、资源和提示:
from cortivium.plugin.base import AbstractPlugin
class Plugin(AbstractPlugin):
def get_name(self) -> str:
return "my-plugin"
async def get_tools(self, context=None) -> list[dict]:
return [{
"name": "my_tool",
"description": "Does something useful",
"inputSchema": {
"type": "object",
"properties": {
"input": {"type": "string", "description": "The input"}
},
"required": ["input"]
}
}]
async def execute_tool(self, name, arguments, on_progress=None):
result = arguments.get("input", "")
return self.text_content(f"Processed: {result}")建筑
HTTP Request → FastAPI/Uvicorn
↓
JSON-RPC 2.0 Parser (MCP 2024-11-05)
↓
API Key Auth + 3-Tier Rate Limiting
↓
Session Manager (in-memory, auto-expiry)
↓
PluginManager → Plugin.execute_tool()
↓
JSON Response ─or─ SSE Stream
↓
Usage Logging → SQLite| 组件 | 技术 |
|---|---|
| Web框架 | FastAPI+Uvicorn(异步) |
| 数据库 | 通过aiosqlite实现SQLite(WAL模式) |
| 管理面板 | Jinja2+Bulma CSS |
| API密钥认证 | SHA-256哈希,内存缓存 |
| 会话身份验证 | 签名Cookie(它很危险) |
| 速率限制 | 带TTL清理的内存字典 |
| 密码哈希 | bcrypt |
项目结构
cortivium/
├── server.py # Entry point
├── requirements.txt # 8 dependencies
├── .env.example # Configuration template
├── Dockerfile
├── docker-compose.yml
├── migrations/
│ └── 001_initial.sql # SQLite schema
└── cortivium/
├── core/ # Server core (config, auth, sessions, protocol)
├── transport/ # MCP HTTP routes
├── plugin/ # Plugin system (interface, base, manager)
├── plugins/
│ ├── ghost_ootm/ # Ghost Skills — CRUD + dynamic tools
│ └── example/ # Example plugin template
├── admin/ # Web panel (routes, templates, static)
└── util/ # Async subprocess wrapper贡献
欢迎捐款。请先打开一个问题,讨论您想更改的内容。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/my-feature) - 进行更改
- 在本地运行服务器进行验证(
python server.py) - 承诺并推动
- 打开拉取请求
许可证
“Cortivium”和“Ghost Skills”是Cortivium的商标。
