内容
# CORDIS v0.1.2
Cordis 是一个早期尝试,为 AI 代理提供它们通常缺乏的东西:实际发生事件的记忆,从证据中学习的方法,以及以不同方式处理下一个任务的机会。它小巧、与模型无关,并且仍在积极开发中。
如果您对这个想法感兴趣,请尝试使用它,并告诉我们它在哪里出现问题。错误报告、尴尬的边缘情况、反例、更正和完全不同的设计理念都欢迎。您不需要带来一个完整的解决方案;一个清晰的描述,说明哪里出了问题或感觉缺少什么,已经很有用。Cordis 是在开放的环境中开发的,我们希望通过深思熟虑的讨论来使其变得更好。
在底层,Cordis 由四个运行时包和一个轻量级安装程序组成:
- `cordis-core`:持久的证据到学习的循环;
- `cordis-runtime`:结构化的主机桥、焦点状态、控制模式、紧凑的模型上下文和轻量级的漂移信号。
- `cordis-bridge`:JSON CLI 和可选的 MCP 传输,用于真实主机。
- `cordis-memory`:SQLite 认知存储,用于事件、项目/全局知识、独立验证的模式和关系图边。
- `cordis-ai`:通过一个 PyPI 包安装完整的运行时。
```text
主机或主模型
-> 结构化任务契约
-> cordis-runtime.begin + cordis-memory 检索
-> cordis-core.preflight
-> 紧凑的模型上下文 + 控制信号
-> 主机执行
-> cordis-runtime.observe(用于计划/工具/测试/错误事件)
-> cordis-runtime.finish
-> cordis-core.feedback
-> 后续任务接收更改的认知
```
Cordis 在 v0.1 中不解释任意自然语言。在使用工具的代理中,现有的主模型在正常回合期间填充任务契约;不需要额外的模型调用。规划、苏格拉底审查、工具执行、HTTP 传输和模型特定的适配器仍然是可选的未来插件。
参见 [cordis-core/ROADMAP.md](cordis-core/ROADMAP.md) 了解实现路线图和发布边界。
## 加入讨论
如果您发现了一个错误,有一个问题,或者想要挑战一个设计决策,请打开一个问题。对于较大的想法,请随意先描述问题,然后再编写代码。我们特别希望听到关于真实主机集成的意见,不会改变后续行为的学习循环,变得嘈杂或重复的记忆,以及当前抽象不能适应的地方。
## 安装
从 PyPI 安装完整的运行时。`mcp` 额外功能启用了 Codex、Claude Code、OpenCode 和 Hermes 使用的 stdio MCP 服务器:
```bash
python -m pip install "cordis-ai[mcp]"
cordis setup codex
```
在设置完成后重启 Codex。然后,CORDIS 将作为本地 MCP 服务器提供,每个项目都有一个单独的 `.cordis` 状态目录。对于仅限 CLI 使用,通过 `python -m pip install cordis-ai` 安装基础包,然后运行 `cordis init`。
其他支持的主机使用相同的设置命令:
```bash
cordis setup claude-code
cordis setup opencode
cordis setup hermes
# 或配置此机器上找到的所有支持主机:
cordis setup all
```
设置安装了 MCP 连接和一个小的托管使用协议。它将每个主机保持在其自己的写入安全状态目录中,而项目知识则由 `project_id` 分隔。
检查当前项目的状态:
```bash
cordis status
```
JSON CLI 在安装后可用:
```bat
cordis begin task.json
cordis finish feedback.json
cordis status
```
MCP 是一个可选的传输方式。当主机需要 `cordis_*` MCP 工具时,请安装 `cordis-bridge[mcp]`。
## 本地开发
Windows 开发助手避免了全局 Python 包、在线包下载和 PowerShell 脚本策略问题:
```bat
dev.cmd bootstrap
dev.cmd check
```
`bootstrap` 创建 `.venv` 并在不使用网络的情况下安装本地包。`check` 运行所有标准库单元测试,并将轮子重建到 `outputs\wheels` 中,同时禁用 pip 缓存。它现在包含 `cordis-bridge`;其 MCP 传输仍然是可选的,因为基本运行时不需要模型、网络或 MCP 依赖项。
## 发布
每个公共版本都从其匹配的 `vX.Y.Z` Git 标签构建,并通过 GitHub Actions 使用 PyPI Trusted Publishing 发布。版本发布仅在包元数据验证、源代码和轮子检查以及干净的安装烟雾测试后才被接受。