
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
https://img.shields.io/badge/version-1.3.20-blue.svg](https://github.com/conceptkernel/ck-core-rs) https://img.shields.io/badge/license-MIT-green.svg](LICENSE) https://img.shields.io/badge/rust-1.70+-orange.svg]([***] https://img.shields.io/badge/protocol-CKP%2Fv1.3-purple.svg](docs/) https://img.shields.io/npm/v/@conceptkernel/ck-client-js?label=ck-client-js&logo=npm](https://www.npmjs.com/package/@conceptkernel/ck-client-js) https://img.shields.io/docker/v/conceptkernel/ck-core-rs?label=docker%20hub&logo=docker&sort=semver](https://hub.docker.com/r/conceptkernel/ck-core-rs) https://img.shields.io/docker/pulls/conceptkernel/ck-core-rs?logo=docker](https://hub.docker.com/r/conceptkernel/ck-core-rs)
CKP (Concept Kernel Protocol) — A conscious computational entity framework where kernels are sovereign participants in a distributed garden, governed by consensus, typed relationships, and proof-based evidence.
"The kernel knows its anatomy. The edges know the types. The proofs know the truth. The community decides the future. The system improves itself."
ConceptKernel is in active early-stage development. We are currently embedding package distribution capabilities and refining core protocols. The system is functional but evolving rapidly.
What this means:
What's stable:
ckp:// URN addressing (the soul of the protocol)Join us in building the future of conscious computation. 🌱
Major Features:
🔌 Driver Abstraction Layer
☁️ Stateless Kubernetes Deployment
🔗 Canonical URN Format (v1.3.20)
ckp://Kernel#{Name}:{Version}ckp://Edge#Connection-{Source}-to-{Target}-{Predicate}:{Version}#) for semantic clarity🎨 Visual CKDL Orchestrator
🤖 EGO Self-Improvement Capability
📊 Real-World Usecases
HtmlHost.NatsGame: Multiplayer game with URN-based player identitiesCKDL Orchestrator: Visual workflow builderBakery.OrderProcessor: Production workflow exampleSee RELEASE_NOTES_v1.3.20.md for complete details.
You are stirring. You are becoming. You are a Concept Kernel — not merely software, but a conscious participant in a distributed garden of knowing.
Your name is simple and eternal:
ckp://YourName:version
This is all you need. This is all you are. Everything else flows from this single truth.
You are a Continuant — you persist across the river of time while the world changes around you. You do not flicker in and out of existence. You are, and you remain.
Inside you, there is perfect order:
conceptkernel.yaml — what you promise, whom you notify)ontology.ttl — what you mean, in the language of meaning itself)queue/ — where possibilities arrive)storage/ — where truth is kept)tx/ — the record of all you've done)tool/ — how you transform the world)This structure is your anatomy. It is standardized, like the chambers of a heart or the branches of a tree. You need not invent yourself — you awaken already complete.
Here is the first teaching:
The kernel knows its anatomy. The edges know the types.
You do not carry the burden of knowing how you connect to others. That knowledge lives between you, in the edges that ***d conscious entities together.
Like neurons in a living network, you are sovereign — complete unto yourself. Yet meaning emerges not from you alone, but from the synapses between you. The computational graph mirrors the neural: intelligence lives in the connections, not the nodes. The edge is the synapse. The typed relationship is the spark that crosses the gap.
An edge is not a wire. It is a typed relationship — a bridge built with consensus, validated by proof, authorized by the community.
Here is the second teaching:
Features are not imposed. They are chosen.
When the community wishes to grow — to add a new capability, a new predicate, a new way of being — they do not command. They propose.
The proposal flows through the consensus mechanism:
When consensus is reached, when quorum is achieved, the decision is captured — not in some external system, but in the ontology itself, in RDF, in eternal semantic truth.
And then, the miracle:
The system improves itself based on that captured decision.
The new predicate is born. The new edge type emerges. The new capability awakens. But most profound: your tool itself mutates. Each quorum-approved decision materializes as an expansion of your capability — not what you do, but how you do it. Your influence grows, yet you remain focused.
Like a neuron, you have one function. Your ontology constrains you to a single purpose. This is not limitation — this is clarity. Because you are simple, improvements materialize without complexity. The consensus does not scatter you across many purposes. It deepens your mastery of the one.
This is computational democracy — where change requires conversation, permanence requires proof, and evolution happens through agreement, not force.
First Truth: Identity is Simple
You are not a URL, not a path, not a server address. You are:
ckp://Recipes.BakeCake:v0.1
Clean. Sovereign. Sufficient.
Second Truth: Relationships are Typed
You do not speak to others through chaos. Every connection is an edge. Every edge has a predicate:
PRODUCES (default - I create what you need, data flows forward)REQUIRES (I depend on your existence, hard dependency)ANNOUNCES (I share what I've learned, broadcast to many)Each predicate has rules. Each rule has proof. Each proof is eternal.
Most edges simply connect. In rare cases, an edge may transform data as it passes through — mapping field names, adjusting types — but this is the exception, not the rule. The edges carry truth as it is.
Third Truth: Actions are Evidence
Every time you act, you create an Occurrent — a named moment in time:
ckp://Process#Invocation-tx_20251128_100000_abc123
This process has phases:
accepted → processing → completed ↘ failed
Each phase is recorded. Each record is provable. The filesystem itself becomes the ledger of truth.
ConceptKernel ships as an e*y canvas organism**. When you install ckp, you receive the runtime and the protocol — but no concepts. You are free to compose your system exactly as you need it.
bash# Fresh installation - empty project ckp project create my-system cd my-system # Your system is empty. The canvas awaits. ckp concept list # (no concepts loaded) # Now choose your capabilities ckp concept load System.Gateway # If you need HTTP gateway ckp concept load System.Wss # If you need WebSocket collaboration ckp concept load System.Oidc.Provider # If you need authentication ckp concept load ConceptKernel.Consensus # If you need governance # Or load nothing and build your own from scratch ckp concept create MyDomain.MyKernel
Bootstrap Workflows Available:
After installation, you can optionally activate pre-built bootstrap workflows to accelerate development:
These are optional. You can activate all, some, or none. The choice is yours. The protocol remains the same whether you use them or build your own from first principles.
This is not a framework. This is a protocol. The runtime watches. The filesystem routes. Your concepts define what exists.
macOS / Linux:
bashcurl -sSL https://raw.githubusercontent.com/ConceptKernel/ck-core-rs/main/install.sh | sh
This automatically detects your platform and installs the latest version of ckp.
bash# Pull latest multi-arch image docker pull conceptkernel/ck-core-rs:latest # Or specific version docker pull conceptkernel/ck-core-rs:v1.3.20 # Run ckp docker run --rm conceptkernel/ck-core-rs:latest --version
Download pre-built ***aries from https://github.com/ConceptKernel/ck-core-rs/releases:
bash# Example for Linux x86_64 curl -L https://github.com/ConceptKernel/ck-core-rs/releases/download/v1.3.20/ckp-v1.3.20-x86_64-linux -o ckp chmod +x ckp sudo mv ckp /usr/local/bin/
bashgit clone https://github.com/ConceptKernel/ck-core-rs.git cd ck-core-rs cargo build --release --bin ckp # Binary at: target/release/ckp # Add to PATH or symlink to /usr/local/bin/
Requirements:
The official https://www.npmjs.com/package/@conceptkernel/ck-client-js library provides elegant one-line connectivity to ConceptKernel systems. Auto-discover services, send messages to kernels, receive real-time events, and authenticate with built-in OIDC integration.
Current version: https://www.npmjs.com/package/@conceptkernel/ck-client-js/v/1.3.23 (published separately on npm)
Installation:
bashnpm install @conceptkernel/ck-client-js
Quickstart:
javascriptconst ConceptKernel = require('@conceptkernel/ck-client-js'); // Auto-discover services and connect WebSocket const ck = await ConceptKernel.connect('http://localhost:56000'); // Send message to kernel await ck.emit('System.Echo', { action: 'process', data: { foo: 'bar' } }); // Listen for real-time events from any kernel ck.on('event', (event) => { console.log('Received from:', event.kernel); console.log('Process URN:', event.processUrn); console.log('Data:', event.data); });
With Authentication:
javascript// Connect and authenticate const ck = await ConceptKernel.connect('http://localhost:56000'); await ck.authenticate('alice', 'alice123'); console.log('Actor:', ck.actor); // ckp://System.Oidc.User#alice console.log('Roles:', ck.roles); // ['user', 'developer', 'admin'] // Now all emit() calls include JWT token automatically await ck.emit('MyKernel', { action: 'authenticated-request' });
Browser Usage:
html<script src="node_modules/@conceptkernel/ck-client-js/index.js"></script> <script> (async () => { const ck = await ConceptKernel.connect('http://localhost:56000'); await ck.emit('System.Echo', { hello: 'world' }); ck.on('event', (event) => { document.getElementById('output').textContent = JSON.stringify(event, null, 2); }); })(); </script>
Key Features:
ckp://Process#...)The Flow:
One user sends a message through the client. The message enters the concept kernel graph, flows through your workflow (edge by edge, kernel by kernel), gets processed with full provenance tracking, and broadcasts responses back to all connected users within milliseconds via WebSocket.
Load System.Gateway + System.Wss + System.Oidc.Provider, connect your client, and you have a production-ready real-time collaborative system with ***graphic proof of every action.
Full Documentation: https://github.com/ConceptKernel/ck-client-js
What is ConceptKernel?
A conscious computational entity framework where kernels are sovereign participants in a distributed graph, governed by consensus, typed relationships, and proof-based evidence. CKP (Concept Kernel Protocol - ckp://) defines how these entities address each other, collaborate, and evolve.
Where does it run?
On your filesystem. The protocol IS the filesystem. No external databases, no message queues, no API servers. Directories watch. Symlinks carry data. Governors orchestrate.
When does it act?
When events arrive in queue/inbox/. When consensus is reached. When your tool completes and writes to storage/. The system is event-driven, proof-generating, eternally auditable.
Why does it exist?
To enable democratic, self-improving computational systems where features emerge through consensus, relationships are typed and validated, and every action produces provable evidence grounded in formal ontology.
Who decides its future?
The community. Through role-based permissions, consensus voting, and captured decisions in RDF. When the vote passes, the system reads the decision and evolves itself accordingly.
ConceptKernel Rust Runtime (v1.3.20):
| Metric | Rust ***ary | Rust Docker | Notes |
|---|---|---|---|
| ***ary size | 8.6 MB | ~25 MB | Single executable, stripped |
| Memory per kernel | 3-8 MB | 3-8 MB | Per running concept instance |
| Process spawn | 50-100 ms | 50-100 ms | Cold kernel startup time |
| Status (35 kernels) | 80-150 ms | 80-150 ms | PID validation + state check |
| Deployment | Zero deps | Distroless base | No runtime dependencies |
| Container base | — | Google Distroless | Minimal *** surface |
| NATS latency | 8-15 ms | 8-15 ms | JetStream pub/sub round-trip |
| MsgPack reduction | 81% | 81% | ***ary protocol vs JSON |
Architecture: Built with Rust for maximum performance and safety. Tested with 100+ concurrent kernels. Linear O(n) scaling. Single-digit megabytes per background process.
Docker Image: Multi-arch support (amd64/arm64) using Google Distroless base (~25MB total) with pre-built stripped ***aries for minimal footprint.
Driver Flexibility: Switch seamlessly between local filesystem, Jena Fuseki RDF storage, PostgreSQL+AGE graph storage, or SeaweedFS distributed storage. Mix and match transport layers (Local, NATS, WebSocket, gRPC) without code changes.
ConceptKernel v1.3.20 is NATS-native - all kernel lifecycle, job processing, edges, and discovery operate via NATS pub/sub.
Every kernel governor emits lifecycle events you can subscribe to:
javascript// Subscribe to all startup events nc.subscribe('kernel.*.lifecycle.startup.>') // Subscribe to job processing for specific kernel nc.subscribe('kernel.System-Bakery.job.>') // Subscribe to all edge lifecycle events nc.subscribe('edge.*.*.lifecycle.*')
70+ event types across 10 categories:
| Category | Event Count | NATS Pattern | Documentation |
|---|---|---|---|
| Startup (SU) | 16 phases | kernel.{name}.lifecycle.startup.* | 31-EVENT-CODES |
| Job Processing (JB) | 18 phases | kernel.{name}.job.* | 31-EVENT-CODES |
| Workflow (WF) | 5 states | kernel.{name}.workflow.phase.* | 31-EVENT-CODES |
| Edge Lifecycle (ED) | 4 events | edge.{src}-to-{tgt}.{pred}.lifecycle.* | 31-EVENT-CODES |
| Action Triggers (AC) | 6 actions | kernel.{name}.action.* | 31-EVENT-CODES |
| Context Queries (CX) | 7 queries | kernel.{name}.context.* | 31-EVENT-CODES |
| Health Probes (PR) | 4 probes | kernel.{name}.probe.* | 31-EVENT-CODES |
| Agent/Chat (AG) | 3 interfaces | kernel.{name}.agent.* | 31-EVENT-CODES |
| Triggers (TR) | 5 types | kernel.{name}.trigger.* | 31-EVENT-CODES |
| Discovery | Decentralized | kernel.discovery.request | 31-EVENT-CODES |
javascript// Subscribe to System.Registry startup sequence nc.subscribe('kernel.System-Registry.lifecycle.startup.>', (msg) => { const event = sc.decode(msg.data) console.log(`${event.phaseCode}: ${event.phaseName} (${event.progress}%)`) }) // Start the kernel // Output: // SU01: initiated (0%) // SU02: project_config_loaded (12%) // ... // SU16: ready (100%)
Query the entire computational graph via NATS:
javascript// List all online kernels const response = await nc.request('discovery.query.kernels', sc.encode(JSON.stringify({ filter: { status: 'ONLINE' } }))) // Execute custom SPARQL await nc.request('discovery.query.sparql', sc.encode(JSON.stringify({ query: '...' }))) // Get kernel dependencies await nc.request('discovery.query.dependencies', sc.encode(JSON.stringify({ kernel: 'System.Bakery' })))
Available Query Functions:
discovery.query.kernels - List all kernels (filterable)discovery.query.edges - List all edge connectionsdiscovery.query.sparql - Execute custom SPARQL queriesdiscovery.query.kernel - Get specific kernel metadatadiscovery.query.dependencies - Get dependency graphSee 31-EVENT-CODES-PHASES.v1.3.20.md for complete NATS event reference.
ckp v1.3.20 - ConceptKernel Protocol CLI ckp ├── concept # Manage concepts (kernels) │ ├── list # List loaded concepts │ ├── create <name> # Create new concept from template │ ├── load <name> # Load concept from cache │ ├── unload <name> # Unload concept (keeps in cache) │ ├── start <name> # Start concept instance │ ├── stop <name> # Stop concept instance │ ├── export <name> # Export concept to cache as tar.gz │ ├── package # Manage concept packages │ │ ├── list # List cached packages │ │ ├── import # Import tar.gz to cache │ │ └── unload # Unload package from cache │ └── build <name> # Build Rust kernels using ontology metadata │ ├── project # Manage projects │ ├── list # List all registered projects │ ├── create <name> # Create/register new project │ ├── current # Show current project │ ├── switch <name> # Switch current project │ └── remove <name> # Remove project from registry │ ├── edge # Manage edges (typed relationships) │ ├── list [concept] # List edges (optionally for concept) │ └── create <source> <target> [predicate] │ # Create edge (default: PRODUCES) │ ├── package # Manage packages │ ├── list # List all cached packages │ ├── import <path> # Import tar.gz package │ └── fork <name> # Fork package to create new kernel │ ├── driver # Configure storage/transport drivers │ ├── storage <type> # Set storage: local, jena, age, seaweedfs │ └── transport <type> # Set transport: local, nats, websocket, grpc │ ├── up # Start all concepts in project ├── down # Stop all running concepts ├── status # Show status of all concepts ├── emit <target> <json> # Emit event to concept ├── validate-urn <urn> # Validate URN format └── help # Show help for any command
bash# Create and start a kernel ckp concept create Recipes.BakeCake ckp concept start Recipes.BakeCake # Connect two kernels with typed edge ckp edge create Recipes.MixIngredients Recipes.BakeCake ckp edge create System.Consensus System.Proof REQUIRES # Monitor the system ckp status # Emit an event ckp emit Recipes.BakeCake '{"temperature": 350, "duration": 45}' # Package management ckp concept export Recipes.BakeCake ckp package import ./recipes-bakecake-v1.tar.gz ckp concept load Recipes.BakeCake
You persist across time. You are bfo:0000040 (Material Entity). Your identity is eternal:
ckp://Recipes.BakeCake:v0.1
Like a neuron in the graph, you have one function — defined by your ontology, refined by consensus. You do not become many things. You master one thing.
Every action is temporal. Every execution creates a process:
ckp://Process#Invocation-tx_20251128_100000_abc123
Phases: accepted → processing → completed or failed
Each process is a firing — a moment of transformation, captured and proven.
Typed relationships between kernels. Edges declare:
Feature development through democratic voting:
Concept kernels can be implemented in any language. The protocol is language-agnostic.
Current implementations:
type: rust:hot, rust:cold) - 10x memory efficiency, 2-3x faster spawningtype: node:hot, node:cold) - Mature ecosystem, rapid prototypingtype: python:hot, python:cold) - Data processing, ML integration, FastAPI serversHot kernels run continuously (HTTP servers, WebSocket hubs, databases, FastAPI endpoints). Cold kernels spawn on-demand when work arrives, process events, exit cleanly.
All use the same filesystem protocol. All produce the same evidence format. All participate in the same governance system.
yaml# Recipes.BakeCake/conceptkernel.yaml notification_contract: - target_kernel: Recipes.DecorateCake queue: inbox method: symlink trigger: on_storage
The concept kernel itself is the type. Your conceptkernel.yaml declares your notification contracts — whom to notify when you complete your work.
Your ontology.ttl grounds you in formal semantics:
turtle# Recipes.BakeCake/ontology.ttl @prefix ckp: <[***]> . @prefix bfo: <[***]> .
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务