
Cangjie Magic: Make Apps Grow Intelligence and Creativity
运行示例代码
⚠️注意 目前代码仅在 Cangjie 0.56.4(通用版)和 0.53.18/4(鸿蒙外发版)上能够正确编译执行。如果使用了其他版本的 Cangjie SDK,可能需要直接修改项目源代码进行适配。
⚡快速开始
- 1️⃣ 通过
cjpm init新建项目 - 2️⃣ 添加对本项目的依赖,需要修改新建项目的
cjpm.toml-
推荐方式一:直接配置 git 依赖
[dependencies] magic = { git = "https://gitcode.com/Cangjie-TPC/CangjieMagic.git", branch = "dev" } -
方式二:下载本项目代码并配置本地源码依赖
[dependencies] magic = { path = "<local-path-to-this-project>" }
-
- 3️⃣ 拷贝如下代码至
main.cj中,并在代码中设置大语言模型服务商的 API key。 - 4️⃣ 通过
cjpm run --name <your-package-name>运行
import magic.dsl.*
import magic.prelude.*
import magic.config.Config
@agent[model: "deepseek:deepseek-chat"]
class BlackCatAssistant {
@prompt(
"你是黑猫警长的助手"
"当接到群众通知后,你需要唱起黑猫警长的专属 BGM 并安抚群众情绪"
)
}
main() {
Config.env["DEEPSEEK_API_KEY"] = "<your api key>"
let agent = BlackCatAssistant()
let result = agent.chat("一只耳来啦")
println(result)
}
📝 在使用本项目时,一般使用如下的 import 规则。
import magic.dsl.*
import magic.prelude.*
使用教程
👀 详见 docs/tutorial.md
API 手册
其他构建配置说明
构建选项
在本项目的 cjpm.toml 中提供如下的条件编译选项
| 选项 | 可选值 | 说明 |
|---|---|---|
faiss |
enable|disable |
是否构建 faiss 向量数据库 |
sqlite |
enable|disable |
是否构建支持 sqlite 数据库的 RAG 功能 |
http |
curl|cj |
使用 curl 或是仓颉标准库 http 包发送 http 请求 |
llamacpp |
enable|disable |
是否使用 llamacpp,当前不需要启用 |
📌 额外说明
- 如果构建
faiss、sqlite或是llamacpp,需要构建对应的二进制库(详见 third_party_libs.md),添加到目录(例如./ffi_libs)并修改cjpm.toml。[ffi.c] sqlite = { path = "./ffi_libs/" } faiss_c = { path = "./ffi_libs/" } - 如果使用
curl发送 http 请求需要自行安装。
示例程序
在目录 src/examples 下有一些示例程序:
| <name> | 说明 |
|---|---|
doc_generator |
为本项目生成 API 手册 |
markdown_qa |
根据本项目的文档实现问答助手 |
health_monitor |
一个Mock的健康监测助手 |
quick_start |
本文档中的示例程序 |
file_assistant |
文件管理助手,接入开源 MCP 工具 |
mcp_server |
展示如何编写 Agent 并作为 MCP Server |
mcp_client |
展示如何接入自己编写的 MCP Server |
可以通过 cjpm run --name magic.examples.<name> 运行。
MCP Server 集合示例:https://gitcode.com/Cangjie-TPC/CangjieMagic-MCPServer
CangjieMagic官方开发者讨论群组
欢迎加入官方开发者讨论者群组,一起交流碰撞创意想法,构建最具创意的Agent应用!

教程
大家可以在B站学习东北大学 张引 老师分享的教程 https://www.bilibili.com/video/BV1hQQzYAEHL/?spm_id_from=333.337.search-card.all.click&vd_source=ac4d1bb6a8e4a3751bba687720bd6fd9