opc-agent 4.2.0 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opc/memory.db +0 -0
- package/COMPETITIVE-GAP.md +92 -92
- package/CONTRIBUTING.md +36 -36
- package/README.md +290 -290
- package/README.zh-CN.md +269 -269
- package/STUDIO-REWRITE-TASK.md +76 -0
- package/dist/channels/telegram.d.ts +5 -0
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +108 -0
- package/dist/channels/telegram.js.map +1 -1
- package/dist/channels/voice.d.ts +71 -97
- package/dist/channels/voice.d.ts.map +1 -1
- package/dist/channels/voice.js +369 -347
- package/dist/channels/voice.js.map +1 -1
- package/dist/channels/web.d.ts.map +1 -1
- package/dist/channels/web.js +8 -2
- package/dist/channels/web.js.map +1 -1
- package/dist/channels/wechat.js +6 -6
- package/dist/cli/chat.d.ts +4 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +680 -73
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/setup.js +1 -1
- package/dist/cli/setup.js.map +1 -1
- package/dist/cli.js +373 -280
- package/dist/cli.js.map +1 -1
- package/dist/core/a2a-http.d.ts +75 -0
- package/dist/core/a2a-http.d.ts.map +1 -0
- package/dist/core/a2a-http.js +217 -0
- package/dist/core/a2a-http.js.map +1 -0
- package/dist/core/a2a.d.ts +2 -0
- package/dist/core/a2a.d.ts.map +1 -1
- package/dist/core/a2a.js +6 -1
- package/dist/core/a2a.js.map +1 -1
- package/dist/core/agent.d.ts +1 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +3 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/core/gateway-registry.d.ts +116 -0
- package/dist/core/gateway-registry.d.ts.map +1 -0
- package/dist/core/gateway-registry.js +280 -0
- package/dist/core/gateway-registry.js.map +1 -0
- package/dist/core/model-recommender.d.ts +40 -0
- package/dist/core/model-recommender.d.ts.map +1 -0
- package/dist/core/model-recommender.js +186 -0
- package/dist/core/model-recommender.js.map +1 -0
- package/dist/core/priority-queue.d.ts +100 -0
- package/dist/core/priority-queue.d.ts.map +1 -0
- package/dist/core/priority-queue.js +181 -0
- package/dist/core/priority-queue.js.map +1 -0
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +192 -22
- package/dist/core/runtime.js.map +1 -1
- package/dist/deploy/index.js +56 -56
- package/dist/doctor.d.ts +1 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +155 -10
- package/dist/doctor.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -13
- package/dist/index.js.map +1 -1
- package/dist/memory/deepbrain.d.ts +1 -1
- package/dist/memory/deepbrain.d.ts.map +1 -1
- package/dist/memory/deepbrain.js +95 -4
- package/dist/memory/deepbrain.js.map +1 -1
- package/dist/memory/evolve-engine.d.ts +113 -0
- package/dist/memory/evolve-engine.d.ts.map +1 -0
- package/dist/memory/evolve-engine.js +549 -0
- package/dist/memory/evolve-engine.js.map +1 -0
- package/dist/memory/index.d.ts +2 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +3 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/sqlite-store.d.ts +40 -0
- package/dist/memory/sqlite-store.d.ts.map +1 -0
- package/dist/memory/sqlite-store.js +269 -0
- package/dist/memory/sqlite-store.js.map +1 -0
- package/dist/memory/user-profiler.d.ts +8 -0
- package/dist/memory/user-profiler.d.ts.map +1 -1
- package/dist/memory/user-profiler.js +89 -0
- package/dist/memory/user-profiler.js.map +1 -1
- package/dist/scheduler/cron-engine.d.ts.map +1 -1
- package/dist/scheduler/cron-engine.js +3 -36
- package/dist/scheduler/cron-engine.js.map +1 -1
- package/dist/scheduler/proactive.d.ts +62 -0
- package/dist/scheduler/proactive.d.ts.map +1 -0
- package/dist/scheduler/proactive.js +185 -0
- package/dist/scheduler/proactive.js.map +1 -0
- package/dist/skills/auto-learn.d.ts.map +1 -1
- package/dist/skills/auto-learn.js +65 -11
- package/dist/skills/auto-learn.js.map +1 -1
- package/dist/skills/builtin/index.d.ts.map +1 -1
- package/dist/skills/builtin/index.js +163 -30
- package/dist/skills/builtin/index.js.map +1 -1
- package/dist/skills/types.d.ts +1 -1
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js +1 -0
- package/dist/skills/types.js.map +1 -1
- package/dist/studio/server.d.ts +1 -0
- package/dist/studio/server.d.ts.map +1 -1
- package/dist/studio/server.js +148 -17
- package/dist/studio/server.js.map +1 -1
- package/dist/studio-ui/index.html +867 -2630
- package/dist/ui/components.js +105 -105
- package/examples/README.md +22 -22
- package/examples/basic-agent.ts +90 -90
- package/examples/brain-integration.ts +71 -71
- package/examples/multi-channel.ts +74 -74
- package/install.ps1 +127 -127
- package/install.sh +154 -154
- package/models.json +164 -164
- package/package.json +5 -2
- package/scripts/install.ps1 +31 -31
- package/scripts/install.sh +40 -40
- package/templates/ecommerce-assistant/README.md +45 -45
- package/templates/ecommerce-assistant/oad.yaml +47 -47
- package/templates/tech-support/README.md +43 -43
- package/templates/tech-support/oad.yaml +45 -45
package/install.sh
CHANGED
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# ============================================================================
|
|
3
|
-
# OPC Agent 一键安装脚本 (macOS / Linux / WSL)
|
|
4
|
-
# 用法: curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
|
|
5
|
-
# 高级: curl -fsSL ... | bash -s -- --no-ollama
|
|
6
|
-
# ============================================================================
|
|
7
|
-
|
|
8
|
-
set -e
|
|
9
|
-
|
|
10
|
-
# ── 颜色 & Emoji ──────────────────────────────────────────────
|
|
11
|
-
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
|
|
12
|
-
info() { echo -e "${CYAN}ℹ️ $1${NC}"; }
|
|
13
|
-
ok() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
14
|
-
warn() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
|
15
|
-
err() { echo -e "${RED}❌ $1${NC}"; }
|
|
16
|
-
step() { echo -e "\n${BLUE}${BOLD}━━━ $1 ━━━${NC}"; }
|
|
17
|
-
|
|
18
|
-
# ── 参数解析 ──────────────────────────────────────────────────
|
|
19
|
-
SKIP_OLLAMA=false
|
|
20
|
-
for arg in "$@"; do
|
|
21
|
-
case "$arg" in
|
|
22
|
-
--no-ollama) SKIP_OLLAMA=true ;;
|
|
23
|
-
esac
|
|
24
|
-
done
|
|
25
|
-
|
|
26
|
-
# ── Banner ────────────────────────────────────────────────────
|
|
27
|
-
echo -e "${BOLD}${CYAN}"
|
|
28
|
-
echo " ___ ____ ____ _ _ "
|
|
29
|
-
echo " / _ \| _ \/ ___| / \ __ _ ___ _ __ | |_ "
|
|
30
|
-
echo " | | | | |_) \___ \ / _ \ / _\` |/ _ \ '_ \| __|"
|
|
31
|
-
echo " | |_| | __/ ___) / ___ \ (_| | __/ | | | |_ "
|
|
32
|
-
echo " \___/|_| |____/_/ \_\__, |\___|_| |_|\__|"
|
|
33
|
-
echo " |___/ "
|
|
34
|
-
echo -e "${NC}"
|
|
35
|
-
info "一键安装 OPC Agent / One-line installer for OPC Agent"
|
|
36
|
-
echo ""
|
|
37
|
-
|
|
38
|
-
# ── 检测操作系统 ──────────────────────────────────────────────
|
|
39
|
-
step "🔍 检测操作系统 / Detecting OS"
|
|
40
|
-
OS="unknown"
|
|
41
|
-
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
42
|
-
OS="macos"; ok "macOS detected"
|
|
43
|
-
elif grep -qi microsoft /proc/version 2>/dev/null; then
|
|
44
|
-
OS="wsl"; ok "WSL (Windows Subsystem for Linux) detected"
|
|
45
|
-
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
46
|
-
OS="linux"; ok "Linux detected"
|
|
47
|
-
else
|
|
48
|
-
err "不支持的操作系统 / Unsupported OS: $OSTYPE"
|
|
49
|
-
err "修复建议 / Fix: 请使用 macOS、Linux 或 WSL"
|
|
50
|
-
exit 1
|
|
51
|
-
fi
|
|
52
|
-
|
|
53
|
-
# ── 检测 Node.js ─────────────────────────────────────────────
|
|
54
|
-
step "📦 检测 Node.js (>=18) / Checking Node.js"
|
|
55
|
-
|
|
56
|
-
if command -v node &>/dev/null; then
|
|
57
|
-
NODE_VER=$(node -v | sed 's/v//' | cut -d. -f1)
|
|
58
|
-
if [ "$NODE_VER" -ge 18 ]; then
|
|
59
|
-
ok "Node.js $(node -v) ✓"
|
|
60
|
-
else
|
|
61
|
-
err "Node.js $(node -v) 版本过低 / version too old (need >=18)"
|
|
62
|
-
err "修复建议 / Fix:"
|
|
63
|
-
echo " curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash"
|
|
64
|
-
echo " nvm install 22"
|
|
65
|
-
echo " # 或访问 / or visit: https://nodejs.org/"
|
|
66
|
-
exit 1
|
|
67
|
-
fi
|
|
68
|
-
else
|
|
69
|
-
err "未检测到 Node.js / Node.js not found"
|
|
70
|
-
err "修复建议 / Fix:"
|
|
71
|
-
echo " curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash"
|
|
72
|
-
echo " source ~/.bashrc && nvm install 22"
|
|
73
|
-
echo " # 或访问 / or visit: https://nodejs.org/"
|
|
74
|
-
exit 1
|
|
75
|
-
fi
|
|
76
|
-
|
|
77
|
-
# ── 检测 npm ─────────────────────────────────────────────────
|
|
78
|
-
if ! command -v npm &>/dev/null; then
|
|
79
|
-
err "未检测到 npm / npm not found"
|
|
80
|
-
err "修复建议 / Fix: 重新安装 Node.js (npm 会一并安装)"
|
|
81
|
-
exit 1
|
|
82
|
-
fi
|
|
83
|
-
|
|
84
|
-
# ── 安装 OPC Agent ────────────────────────────────────────────
|
|
85
|
-
step "🚀 安装 OPC Agent / Installing OPC Agent"
|
|
86
|
-
# Try without sudo first; if EACCES, retry with sudo
|
|
87
|
-
info "运行 npm install -g opc-agent ..."
|
|
88
|
-
if npm install -g opc-agent 2>/dev/null; then
|
|
89
|
-
: # success
|
|
90
|
-
else
|
|
91
|
-
warn "权限不足,尝试 sudo / Permission denied, retrying with sudo..."
|
|
92
|
-
sudo npm install -g opc-agent
|
|
93
|
-
fi
|
|
94
|
-
|
|
95
|
-
OPC_VER=$(opc --version 2>/dev/null || echo "unknown")
|
|
96
|
-
ok "OPC Agent v${OPC_VER} 安装成功 / installed successfully"
|
|
97
|
-
|
|
98
|
-
# ── 初始化 ────────────────────────────────────────────────────
|
|
99
|
-
step "⚙️ 初始化 OPC Agent / Initializing"
|
|
100
|
-
info "运行 opc init --yes ..."
|
|
101
|
-
opc init --yes && ok "初始化完成 / initialized" || warn "初始化跳过(可能已初始化)/ init skipped (may already exist)"
|
|
102
|
-
|
|
103
|
-
# ── 进入项目目录后再检查 ──────────────────────────────────────
|
|
104
|
-
# opc init creates my-agent/ by default; cd into it for doctor
|
|
105
|
-
if [ -d "my-agent" ]; then
|
|
106
|
-
cd my-agent
|
|
107
|
-
info "已进入 my-agent/ 目录 / Entered my-agent/ directory"
|
|
108
|
-
fi
|
|
109
|
-
|
|
110
|
-
# ── 环境检查 ──────────────────────────────────────────────────
|
|
111
|
-
step "🩺 环境检查 / Running Doctor"
|
|
112
|
-
info "运行 opc doctor ..."
|
|
113
|
-
opc doctor || warn "部分检查未通过,请查看上方输出 / Some checks failed, see above"
|
|
114
|
-
|
|
115
|
-
# ── Ollama(可选)─────────────────────────────────────────────
|
|
116
|
-
if ! $SKIP_OLLAMA; then
|
|
117
|
-
step "🦙 检测 Ollama (可选) / Checking Ollama (optional)"
|
|
118
|
-
|
|
119
|
-
if command -v ollama &>/dev/null; then
|
|
120
|
-
ok "Ollama 已安装 / installed ✓"
|
|
121
|
-
else
|
|
122
|
-
warn "未检测到 Ollama / Ollama not found"
|
|
123
|
-
info "Ollama 可让你在本地运行 AI 模型(免费、隐私安全)"
|
|
124
|
-
info "Ollama lets you run AI models locally (free & private)"
|
|
125
|
-
info "安装方法 / Install: curl -fsSL https://ollama.com/install.sh | sh"
|
|
126
|
-
info "或访问 / or visit: https://ollama.com/download"
|
|
127
|
-
fi
|
|
128
|
-
fi
|
|
129
|
-
|
|
130
|
-
# ── 完成 ──────────────────────────────────────────────────────
|
|
131
|
-
step "🎉 安装完成!/ Installation Complete!"
|
|
132
|
-
echo ""
|
|
133
|
-
echo -e "${GREEN}┌──────────────────────────────────────────────────────┐${NC}"
|
|
134
|
-
echo -e "${GREEN}│ │${NC}"
|
|
135
|
-
echo -e "${GREEN}│ 🎊 OPC Agent 已就绪!/ OPC Agent is ready! │${NC}"
|
|
136
|
-
echo -e "${GREEN}│ │${NC}"
|
|
137
|
-
echo -e "${GREEN}│ 👉 现在开始 / Get started NOW: │${NC}"
|
|
138
|
-
echo -e "${GREEN}│ │${NC}"
|
|
139
|
-
echo -e "${GREEN}│ cd my-agent 📂 进入项目目录 │${NC}"
|
|
140
|
-
echo -e "${GREEN}│ opc run 🚀 启动 Agent │${NC}"
|
|
141
|
-
echo -e "${GREEN}│ │${NC}"
|
|
142
|
-
echo -e "${GREEN}│ 启动后访问 / After start: │${NC}"
|
|
143
|
-
echo -e "${GREEN}│ http://localhost:3000 💬 Web 聊天 / Chat │${NC}"
|
|
144
|
-
echo -e "${GREEN}│ http://localhost:4000 🎨 Studio 管理面板 │${NC}"
|
|
145
|
-
echo -e "${GREEN}│ │${NC}"
|
|
146
|
-
echo -e "${GREEN}│ 更多命令 / More commands: │${NC}"
|
|
147
|
-
echo -e "${GREEN}│ opc chat 💬 终端聊天 / Terminal chat │${NC}"
|
|
148
|
-
echo -e "${GREEN}│ opc doctor 🩺 环境检查 / Health check │${NC}"
|
|
149
|
-
echo -e "${GREEN}│ opc --help 📖 查看帮助 / Help │${NC}"
|
|
150
|
-
echo -e "${GREEN}│ │${NC}"
|
|
151
|
-
echo -e "${GREEN}│ 文档 / Docs: https://github.com/Deepleaper/opc-agent│${NC}"
|
|
152
|
-
echo -e "${GREEN}│ │${NC}"
|
|
153
|
-
echo -e "${GREEN}└──────────────────────────────────────────────────────┘${NC}"
|
|
154
|
-
echo ""
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ============================================================================
|
|
3
|
+
# OPC Agent 一键安装脚本 (macOS / Linux / WSL)
|
|
4
|
+
# 用法: curl -fsSL https://raw.githubusercontent.com/Deepleaper/opc-agent/main/install.sh | bash
|
|
5
|
+
# 高级: curl -fsSL ... | bash -s -- --no-ollama
|
|
6
|
+
# ============================================================================
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
# ── 颜色 & Emoji ──────────────────────────────────────────────
|
|
11
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
|
|
12
|
+
info() { echo -e "${CYAN}ℹ️ $1${NC}"; }
|
|
13
|
+
ok() { echo -e "${GREEN}✅ $1${NC}"; }
|
|
14
|
+
warn() { echo -e "${YELLOW}⚠️ $1${NC}"; }
|
|
15
|
+
err() { echo -e "${RED}❌ $1${NC}"; }
|
|
16
|
+
step() { echo -e "\n${BLUE}${BOLD}━━━ $1 ━━━${NC}"; }
|
|
17
|
+
|
|
18
|
+
# ── 参数解析 ──────────────────────────────────────────────────
|
|
19
|
+
SKIP_OLLAMA=false
|
|
20
|
+
for arg in "$@"; do
|
|
21
|
+
case "$arg" in
|
|
22
|
+
--no-ollama) SKIP_OLLAMA=true ;;
|
|
23
|
+
esac
|
|
24
|
+
done
|
|
25
|
+
|
|
26
|
+
# ── Banner ────────────────────────────────────────────────────
|
|
27
|
+
echo -e "${BOLD}${CYAN}"
|
|
28
|
+
echo " ___ ____ ____ _ _ "
|
|
29
|
+
echo " / _ \| _ \/ ___| / \ __ _ ___ _ __ | |_ "
|
|
30
|
+
echo " | | | | |_) \___ \ / _ \ / _\` |/ _ \ '_ \| __|"
|
|
31
|
+
echo " | |_| | __/ ___) / ___ \ (_| | __/ | | | |_ "
|
|
32
|
+
echo " \___/|_| |____/_/ \_\__, |\___|_| |_|\__|"
|
|
33
|
+
echo " |___/ "
|
|
34
|
+
echo -e "${NC}"
|
|
35
|
+
info "一键安装 OPC Agent / One-line installer for OPC Agent"
|
|
36
|
+
echo ""
|
|
37
|
+
|
|
38
|
+
# ── 检测操作系统 ──────────────────────────────────────────────
|
|
39
|
+
step "🔍 检测操作系统 / Detecting OS"
|
|
40
|
+
OS="unknown"
|
|
41
|
+
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
42
|
+
OS="macos"; ok "macOS detected"
|
|
43
|
+
elif grep -qi microsoft /proc/version 2>/dev/null; then
|
|
44
|
+
OS="wsl"; ok "WSL (Windows Subsystem for Linux) detected"
|
|
45
|
+
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
|
46
|
+
OS="linux"; ok "Linux detected"
|
|
47
|
+
else
|
|
48
|
+
err "不支持的操作系统 / Unsupported OS: $OSTYPE"
|
|
49
|
+
err "修复建议 / Fix: 请使用 macOS、Linux 或 WSL"
|
|
50
|
+
exit 1
|
|
51
|
+
fi
|
|
52
|
+
|
|
53
|
+
# ── 检测 Node.js ─────────────────────────────────────────────
|
|
54
|
+
step "📦 检测 Node.js (>=18) / Checking Node.js"
|
|
55
|
+
|
|
56
|
+
if command -v node &>/dev/null; then
|
|
57
|
+
NODE_VER=$(node -v | sed 's/v//' | cut -d. -f1)
|
|
58
|
+
if [ "$NODE_VER" -ge 18 ]; then
|
|
59
|
+
ok "Node.js $(node -v) ✓"
|
|
60
|
+
else
|
|
61
|
+
err "Node.js $(node -v) 版本过低 / version too old (need >=18)"
|
|
62
|
+
err "修复建议 / Fix:"
|
|
63
|
+
echo " curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash"
|
|
64
|
+
echo " nvm install 22"
|
|
65
|
+
echo " # 或访问 / or visit: https://nodejs.org/"
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
else
|
|
69
|
+
err "未检测到 Node.js / Node.js not found"
|
|
70
|
+
err "修复建议 / Fix:"
|
|
71
|
+
echo " curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash"
|
|
72
|
+
echo " source ~/.bashrc && nvm install 22"
|
|
73
|
+
echo " # 或访问 / or visit: https://nodejs.org/"
|
|
74
|
+
exit 1
|
|
75
|
+
fi
|
|
76
|
+
|
|
77
|
+
# ── 检测 npm ─────────────────────────────────────────────────
|
|
78
|
+
if ! command -v npm &>/dev/null; then
|
|
79
|
+
err "未检测到 npm / npm not found"
|
|
80
|
+
err "修复建议 / Fix: 重新安装 Node.js (npm 会一并安装)"
|
|
81
|
+
exit 1
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
# ── 安装 OPC Agent ────────────────────────────────────────────
|
|
85
|
+
step "🚀 安装 OPC Agent / Installing OPC Agent"
|
|
86
|
+
# Try without sudo first; if EACCES, retry with sudo
|
|
87
|
+
info "运行 npm install -g opc-agent ..."
|
|
88
|
+
if npm install -g opc-agent 2>/dev/null; then
|
|
89
|
+
: # success
|
|
90
|
+
else
|
|
91
|
+
warn "权限不足,尝试 sudo / Permission denied, retrying with sudo..."
|
|
92
|
+
sudo npm install -g opc-agent
|
|
93
|
+
fi
|
|
94
|
+
|
|
95
|
+
OPC_VER=$(opc --version 2>/dev/null || echo "unknown")
|
|
96
|
+
ok "OPC Agent v${OPC_VER} 安装成功 / installed successfully"
|
|
97
|
+
|
|
98
|
+
# ── 初始化 ────────────────────────────────────────────────────
|
|
99
|
+
step "⚙️ 初始化 OPC Agent / Initializing"
|
|
100
|
+
info "运行 opc init --yes ..."
|
|
101
|
+
opc init --yes && ok "初始化完成 / initialized" || warn "初始化跳过(可能已初始化)/ init skipped (may already exist)"
|
|
102
|
+
|
|
103
|
+
# ── 进入项目目录后再检查 ──────────────────────────────────────
|
|
104
|
+
# opc init creates my-agent/ by default; cd into it for doctor
|
|
105
|
+
if [ -d "my-agent" ]; then
|
|
106
|
+
cd my-agent
|
|
107
|
+
info "已进入 my-agent/ 目录 / Entered my-agent/ directory"
|
|
108
|
+
fi
|
|
109
|
+
|
|
110
|
+
# ── 环境检查 ──────────────────────────────────────────────────
|
|
111
|
+
step "🩺 环境检查 / Running Doctor"
|
|
112
|
+
info "运行 opc doctor ..."
|
|
113
|
+
opc doctor || warn "部分检查未通过,请查看上方输出 / Some checks failed, see above"
|
|
114
|
+
|
|
115
|
+
# ── Ollama(可选)─────────────────────────────────────────────
|
|
116
|
+
if ! $SKIP_OLLAMA; then
|
|
117
|
+
step "🦙 检测 Ollama (可选) / Checking Ollama (optional)"
|
|
118
|
+
|
|
119
|
+
if command -v ollama &>/dev/null; then
|
|
120
|
+
ok "Ollama 已安装 / installed ✓"
|
|
121
|
+
else
|
|
122
|
+
warn "未检测到 Ollama / Ollama not found"
|
|
123
|
+
info "Ollama 可让你在本地运行 AI 模型(免费、隐私安全)"
|
|
124
|
+
info "Ollama lets you run AI models locally (free & private)"
|
|
125
|
+
info "安装方法 / Install: curl -fsSL https://ollama.com/install.sh | sh"
|
|
126
|
+
info "或访问 / or visit: https://ollama.com/download"
|
|
127
|
+
fi
|
|
128
|
+
fi
|
|
129
|
+
|
|
130
|
+
# ── 完成 ──────────────────────────────────────────────────────
|
|
131
|
+
step "🎉 安装完成!/ Installation Complete!"
|
|
132
|
+
echo ""
|
|
133
|
+
echo -e "${GREEN}┌──────────────────────────────────────────────────────┐${NC}"
|
|
134
|
+
echo -e "${GREEN}│ │${NC}"
|
|
135
|
+
echo -e "${GREEN}│ 🎊 OPC Agent 已就绪!/ OPC Agent is ready! │${NC}"
|
|
136
|
+
echo -e "${GREEN}│ │${NC}"
|
|
137
|
+
echo -e "${GREEN}│ 👉 现在开始 / Get started NOW: │${NC}"
|
|
138
|
+
echo -e "${GREEN}│ │${NC}"
|
|
139
|
+
echo -e "${GREEN}│ cd my-agent 📂 进入项目目录 │${NC}"
|
|
140
|
+
echo -e "${GREEN}│ opc run 🚀 启动 Agent │${NC}"
|
|
141
|
+
echo -e "${GREEN}│ │${NC}"
|
|
142
|
+
echo -e "${GREEN}│ 启动后访问 / After start: │${NC}"
|
|
143
|
+
echo -e "${GREEN}│ http://localhost:3000 💬 Web 聊天 / Chat │${NC}"
|
|
144
|
+
echo -e "${GREEN}│ http://localhost:4000 🎨 Studio 管理面板 │${NC}"
|
|
145
|
+
echo -e "${GREEN}│ │${NC}"
|
|
146
|
+
echo -e "${GREEN}│ 更多命令 / More commands: │${NC}"
|
|
147
|
+
echo -e "${GREEN}│ opc chat 💬 终端聊天 / Terminal chat │${NC}"
|
|
148
|
+
echo -e "${GREEN}│ opc doctor 🩺 环境检查 / Health check │${NC}"
|
|
149
|
+
echo -e "${GREEN}│ opc --help 📖 查看帮助 / Help │${NC}"
|
|
150
|
+
echo -e "${GREEN}│ │${NC}"
|
|
151
|
+
echo -e "${GREEN}│ 文档 / Docs: https://github.com/Deepleaper/opc-agent│${NC}"
|
|
152
|
+
echo -e "${GREEN}│ │${NC}"
|
|
153
|
+
echo -e "${GREEN}└──────────────────────────────────────────────────────┘${NC}"
|
|
154
|
+
echo ""
|
package/models.json
CHANGED
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://raw.githubusercontent.com/Deepleaper/opc-agent/main/models.schema.json",
|
|
3
|
-
"version": "2026-04-20",
|
|
4
|
-
"lastUpdated": "2026-04-20T12:37:00+08:00",
|
|
5
|
-
"nextReview": "2026-05-20",
|
|
6
|
-
"models": [
|
|
7
|
-
{
|
|
8
|
-
"name": "qwen2.5:0.5b",
|
|
9
|
-
"size": "0.4GB",
|
|
10
|
-
"minRAM": 2,
|
|
11
|
-
"desc": "超轻量,适合低配机器",
|
|
12
|
-
"descEn": "Ultra-light, for low-end machines",
|
|
13
|
-
"tier": 1,
|
|
14
|
-
"lang": ["zh", "en"],
|
|
15
|
-
"useCase": ["general"],
|
|
16
|
-
"speed": "fast"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"name": "qwen2.5:1.5b",
|
|
20
|
-
"size": "1.0GB",
|
|
21
|
-
"minRAM": 4,
|
|
22
|
-
"desc": "轻量但更智能",
|
|
23
|
-
"descEn": "Light but smarter",
|
|
24
|
-
"tier": 1,
|
|
25
|
-
"lang": ["zh", "en"],
|
|
26
|
-
"useCase": ["general"],
|
|
27
|
-
"speed": "fast"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"name": "qwen2.5:3b",
|
|
31
|
-
"size": "2.0GB",
|
|
32
|
-
"minRAM": 6,
|
|
33
|
-
"desc": "性价比最优",
|
|
34
|
-
"descEn": "Best value for size",
|
|
35
|
-
"tier": 2,
|
|
36
|
-
"lang": ["zh", "en"],
|
|
37
|
-
"useCase": ["general"],
|
|
38
|
-
"speed": "fast"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"name": "llama3.2:3b",
|
|
42
|
-
"size": "2.0GB",
|
|
43
|
-
"minRAM": 6,
|
|
44
|
-
"desc": "Meta 最新轻量模型",
|
|
45
|
-
"descEn": "Meta's latest lightweight model",
|
|
46
|
-
"tier": 2,
|
|
47
|
-
"lang": ["en"],
|
|
48
|
-
"useCase": ["general"],
|
|
49
|
-
"speed": "fast"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"name": "phi3:mini",
|
|
53
|
-
"size": "2.3GB",
|
|
54
|
-
"minRAM": 6,
|
|
55
|
-
"desc": "微软高效小模型",
|
|
56
|
-
"descEn": "Microsoft efficient small model",
|
|
57
|
-
"tier": 2,
|
|
58
|
-
"lang": ["en"],
|
|
59
|
-
"useCase": ["general", "code"],
|
|
60
|
-
"speed": "fast"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"name": "qwen2.5:7b",
|
|
64
|
-
"size": "4.7GB",
|
|
65
|
-
"minRAM": 8,
|
|
66
|
-
"desc": "推荐:中文最强 7B",
|
|
67
|
-
"descEn": "Recommended: Best Chinese 7B",
|
|
68
|
-
"tier": 3,
|
|
69
|
-
"lang": ["zh", "en"],
|
|
70
|
-
"useCase": ["general"],
|
|
71
|
-
"speed": "medium",
|
|
72
|
-
"recommended": true
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"name": "llama3.1:8b",
|
|
76
|
-
"size": "4.7GB",
|
|
77
|
-
"minRAM": 8,
|
|
78
|
-
"desc": "Meta 通用 8B",
|
|
79
|
-
"descEn": "Meta general purpose 8B",
|
|
80
|
-
"tier": 3,
|
|
81
|
-
"lang": ["en"],
|
|
82
|
-
"useCase": ["general"],
|
|
83
|
-
"speed": "medium"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"name": "mistral:7b",
|
|
87
|
-
"size": "4.1GB",
|
|
88
|
-
"minRAM": 8,
|
|
89
|
-
"desc": "Mistral 经典 7B",
|
|
90
|
-
"descEn": "Mistral classic 7B",
|
|
91
|
-
"tier": 3,
|
|
92
|
-
"lang": ["en", "fr"],
|
|
93
|
-
"useCase": ["general"],
|
|
94
|
-
"speed": "medium"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"name": "gemma2:9b",
|
|
98
|
-
"size": "5.4GB",
|
|
99
|
-
"minRAM": 10,
|
|
100
|
-
"desc": "Google 高效 9B",
|
|
101
|
-
"descEn": "Google efficient 9B",
|
|
102
|
-
"tier": 3,
|
|
103
|
-
"lang": ["en"],
|
|
104
|
-
"useCase": ["general"],
|
|
105
|
-
"speed": "medium"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"name": "qwen2.5-coder:7b",
|
|
109
|
-
"size": "4.7GB",
|
|
110
|
-
"minRAM": 8,
|
|
111
|
-
"desc": "编程专用 7B,代码补全强",
|
|
112
|
-
"descEn": "Code-specialized 7B",
|
|
113
|
-
"tier": 3,
|
|
114
|
-
"lang": ["zh", "en"],
|
|
115
|
-
"useCase": ["code"],
|
|
116
|
-
"speed": "medium"
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"name": "qwen2.5:14b",
|
|
120
|
-
"size": "9.0GB",
|
|
121
|
-
"minRAM": 16,
|
|
122
|
-
"desc": "中文强力 14B",
|
|
123
|
-
"descEn": "Strong Chinese 14B",
|
|
124
|
-
"tier": 4,
|
|
125
|
-
"lang": ["zh", "en"],
|
|
126
|
-
"useCase": ["general"],
|
|
127
|
-
"speed": "slow"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"name": "deepseek-coder-v2:16b",
|
|
131
|
-
"size": "9.0GB",
|
|
132
|
-
"minRAM": 16,
|
|
133
|
-
"desc": "编程专用 16B",
|
|
134
|
-
"descEn": "Code-specialized 16B",
|
|
135
|
-
"tier": 4,
|
|
136
|
-
"lang": ["zh", "en"],
|
|
137
|
-
"useCase": ["code"],
|
|
138
|
-
"speed": "slow"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"name": "qwen2.5:32b",
|
|
142
|
-
"size": "20GB",
|
|
143
|
-
"minRAM": 32,
|
|
144
|
-
"desc": "接近 GPT-4 水平",
|
|
145
|
-
"descEn": "Near GPT-4 level",
|
|
146
|
-
"tier": 5,
|
|
147
|
-
"lang": ["zh", "en"],
|
|
148
|
-
"useCase": ["general"],
|
|
149
|
-
"speed": "slow",
|
|
150
|
-
"recommended": true
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
"name": "llama3.1:70b",
|
|
154
|
-
"size": "40GB",
|
|
155
|
-
"minRAM": 64,
|
|
156
|
-
"desc": "开源最强",
|
|
157
|
-
"descEn": "Best open-source model",
|
|
158
|
-
"tier": 6,
|
|
159
|
-
"lang": ["en"],
|
|
160
|
-
"useCase": ["general"],
|
|
161
|
-
"speed": "very-slow"
|
|
162
|
-
}
|
|
163
|
-
]
|
|
164
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/Deepleaper/opc-agent/main/models.schema.json",
|
|
3
|
+
"version": "2026-04-20",
|
|
4
|
+
"lastUpdated": "2026-04-20T12:37:00+08:00",
|
|
5
|
+
"nextReview": "2026-05-20",
|
|
6
|
+
"models": [
|
|
7
|
+
{
|
|
8
|
+
"name": "qwen2.5:0.5b",
|
|
9
|
+
"size": "0.4GB",
|
|
10
|
+
"minRAM": 2,
|
|
11
|
+
"desc": "超轻量,适合低配机器",
|
|
12
|
+
"descEn": "Ultra-light, for low-end machines",
|
|
13
|
+
"tier": 1,
|
|
14
|
+
"lang": ["zh", "en"],
|
|
15
|
+
"useCase": ["general"],
|
|
16
|
+
"speed": "fast"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "qwen2.5:1.5b",
|
|
20
|
+
"size": "1.0GB",
|
|
21
|
+
"minRAM": 4,
|
|
22
|
+
"desc": "轻量但更智能",
|
|
23
|
+
"descEn": "Light but smarter",
|
|
24
|
+
"tier": 1,
|
|
25
|
+
"lang": ["zh", "en"],
|
|
26
|
+
"useCase": ["general"],
|
|
27
|
+
"speed": "fast"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "qwen2.5:3b",
|
|
31
|
+
"size": "2.0GB",
|
|
32
|
+
"minRAM": 6,
|
|
33
|
+
"desc": "性价比最优",
|
|
34
|
+
"descEn": "Best value for size",
|
|
35
|
+
"tier": 2,
|
|
36
|
+
"lang": ["zh", "en"],
|
|
37
|
+
"useCase": ["general"],
|
|
38
|
+
"speed": "fast"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"name": "llama3.2:3b",
|
|
42
|
+
"size": "2.0GB",
|
|
43
|
+
"minRAM": 6,
|
|
44
|
+
"desc": "Meta 最新轻量模型",
|
|
45
|
+
"descEn": "Meta's latest lightweight model",
|
|
46
|
+
"tier": 2,
|
|
47
|
+
"lang": ["en"],
|
|
48
|
+
"useCase": ["general"],
|
|
49
|
+
"speed": "fast"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"name": "phi3:mini",
|
|
53
|
+
"size": "2.3GB",
|
|
54
|
+
"minRAM": 6,
|
|
55
|
+
"desc": "微软高效小模型",
|
|
56
|
+
"descEn": "Microsoft efficient small model",
|
|
57
|
+
"tier": 2,
|
|
58
|
+
"lang": ["en"],
|
|
59
|
+
"useCase": ["general", "code"],
|
|
60
|
+
"speed": "fast"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "qwen2.5:7b",
|
|
64
|
+
"size": "4.7GB",
|
|
65
|
+
"minRAM": 8,
|
|
66
|
+
"desc": "推荐:中文最强 7B",
|
|
67
|
+
"descEn": "Recommended: Best Chinese 7B",
|
|
68
|
+
"tier": 3,
|
|
69
|
+
"lang": ["zh", "en"],
|
|
70
|
+
"useCase": ["general"],
|
|
71
|
+
"speed": "medium",
|
|
72
|
+
"recommended": true
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "llama3.1:8b",
|
|
76
|
+
"size": "4.7GB",
|
|
77
|
+
"minRAM": 8,
|
|
78
|
+
"desc": "Meta 通用 8B",
|
|
79
|
+
"descEn": "Meta general purpose 8B",
|
|
80
|
+
"tier": 3,
|
|
81
|
+
"lang": ["en"],
|
|
82
|
+
"useCase": ["general"],
|
|
83
|
+
"speed": "medium"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "mistral:7b",
|
|
87
|
+
"size": "4.1GB",
|
|
88
|
+
"minRAM": 8,
|
|
89
|
+
"desc": "Mistral 经典 7B",
|
|
90
|
+
"descEn": "Mistral classic 7B",
|
|
91
|
+
"tier": 3,
|
|
92
|
+
"lang": ["en", "fr"],
|
|
93
|
+
"useCase": ["general"],
|
|
94
|
+
"speed": "medium"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "gemma2:9b",
|
|
98
|
+
"size": "5.4GB",
|
|
99
|
+
"minRAM": 10,
|
|
100
|
+
"desc": "Google 高效 9B",
|
|
101
|
+
"descEn": "Google efficient 9B",
|
|
102
|
+
"tier": 3,
|
|
103
|
+
"lang": ["en"],
|
|
104
|
+
"useCase": ["general"],
|
|
105
|
+
"speed": "medium"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "qwen2.5-coder:7b",
|
|
109
|
+
"size": "4.7GB",
|
|
110
|
+
"minRAM": 8,
|
|
111
|
+
"desc": "编程专用 7B,代码补全强",
|
|
112
|
+
"descEn": "Code-specialized 7B",
|
|
113
|
+
"tier": 3,
|
|
114
|
+
"lang": ["zh", "en"],
|
|
115
|
+
"useCase": ["code"],
|
|
116
|
+
"speed": "medium"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "qwen2.5:14b",
|
|
120
|
+
"size": "9.0GB",
|
|
121
|
+
"minRAM": 16,
|
|
122
|
+
"desc": "中文强力 14B",
|
|
123
|
+
"descEn": "Strong Chinese 14B",
|
|
124
|
+
"tier": 4,
|
|
125
|
+
"lang": ["zh", "en"],
|
|
126
|
+
"useCase": ["general"],
|
|
127
|
+
"speed": "slow"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "deepseek-coder-v2:16b",
|
|
131
|
+
"size": "9.0GB",
|
|
132
|
+
"minRAM": 16,
|
|
133
|
+
"desc": "编程专用 16B",
|
|
134
|
+
"descEn": "Code-specialized 16B",
|
|
135
|
+
"tier": 4,
|
|
136
|
+
"lang": ["zh", "en"],
|
|
137
|
+
"useCase": ["code"],
|
|
138
|
+
"speed": "slow"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "qwen2.5:32b",
|
|
142
|
+
"size": "20GB",
|
|
143
|
+
"minRAM": 32,
|
|
144
|
+
"desc": "接近 GPT-4 水平",
|
|
145
|
+
"descEn": "Near GPT-4 level",
|
|
146
|
+
"tier": 5,
|
|
147
|
+
"lang": ["zh", "en"],
|
|
148
|
+
"useCase": ["general"],
|
|
149
|
+
"speed": "slow",
|
|
150
|
+
"recommended": true
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "llama3.1:70b",
|
|
154
|
+
"size": "40GB",
|
|
155
|
+
"minRAM": 64,
|
|
156
|
+
"desc": "开源最强",
|
|
157
|
+
"descEn": "Best open-source model",
|
|
158
|
+
"tier": 6,
|
|
159
|
+
"lang": ["en"],
|
|
160
|
+
"useCase": ["general"],
|
|
161
|
+
"speed": "very-slow"
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|