DSCC 循环
四个动词,一个二进制。每一次编码任务都走同一条循环。
调度任务
把任务路由到合适的模型与提供商 —— doubao、Qwen、本地 Ollama,或任意 OpenAI 兼容端点。没有硬编码默认模型,选择权在你。
dscc --model doubao-seed-2.0-code
export DSCC_MODEL=qwen3-coder
dscc --model llama3:8b # 经 Ollama
搭建骨架
读取工作区、加载 DSCC.md 与 .dscc/,发现本地 agents 与 skills,准备好后续所有工具调用的上下文。
dscc agents
dscc skills
# DSCC.md / .dscc/settings.json
编排内容
在 REPL、sessions、compaction、plugins 之间多轮迭代 —— 记得进度、能压缩历史、可导出与恢复。
/session /compact
/config /export
/agents /skills
落地提交
通过内建 shell、编辑、搜索工具查看 diff、导出产物,把改动真正落地回仓库,形成闭环。
/diff
git add -p
git commit
同样的任务,同一份答卷
在 25,000 行真实用户数据 × 6 道统计题(跨表一致性、卡方独立性、Logistic 回归、 Simpson 陷阱、K-Means 聚类、OLS 残差异常)上,dscc(doubao-seed-2.0-code) 与 Claude Code(claude-opus-4-6)产出 4 位小数完全一致的结果 —— 两套独立脚本、两种不同厂商的模型、一个能对得上的答卷。
export DSCC_API_KEY="..."
export DSCC_BASE_URL="https://ark.cn-beijing.volces.com/api/coding/v3"
dscc --model doubao-seed-2.0-code \
--permission-mode workspace-write \
prompt "$(cat PROMPT_v2.md)"
三句话结论
- 数字硬对齐。 Pearson
0.3143、卡方p 0.8435、 Logistictest AUC 0.5006 · acc 0.6156、Simpson 检查-0.3698 / -0.3615 / -0.3713、 K-Means 簇规模26.34 / 28.54 / 10.63 / 34.48%、Q6 残差 Top-5 同一批 user_id 同一个排序。 6 个小节,两边一字不差。 - dscc 自己修自己。 沙箱缺 pandas/scipy → dscc 自动
pip3 install; 首跑命中KeyError: 0(pearsonr返回 tuple 被当 scalar 用)→ 读堆栈、 edit 成r, _ = pearsonr(...),再跑就通过。报错是下一轮的输入,不是终点。 - 分歧只在文字层。 K-Means 簇 1 同一批用户(screen 207.99 min、addict 4.81), dscc 起名"中度普通用户"、Claude Code 起名"高强度沉迷用户"。数字硬对齐,叙述有分歧 —— 这正是工程化 agent 应该有的边界。
展开:完整 prompt(6 道题的细则)
数据集:/tmp/social_analysis/{social_media_user_behavior.csv, platform_statistics_2026.csv}
所有随机过程 random_state=42;所有数值保留 4 位小数。
Q1. 跨表一致性:用户级 daily_screen_time_minutes 按 primary_platform 均值 vs 平台表
avg_daily_time_minutes,给对照表 + Pearson 相关 + 绝对差最大的 3 个平台
Q2. is_content_creator × has_purchased_via_social 2×2 列联表 + chi2/df/p
Q3. Logistic 回归预测 has_purchased_via_social,10 个数值/布尔 + 3 个 one-hot
StandardScaler 只对数值列;train/test split 20%,stratify=y
输出 train AUC / test AUC / test accuracy + 系数绝对值 top 5
Q4. 整体 vs (is_content_creator True/False) 两组的 Pearson(addiction, sleep)
—— Simpson 反转或量级减半检查
Q5. 4 特征 StandardScaler → KMeans(n=4, n_init=10) → 簇规模 + 原始尺度均值
Q6. followers_count ≥ 1000 的用户,log10(1+x) → 预测 engagement_rate_pct,
一元 OLS,给残差绝对值 top 5 用户
展开:dscc 的执行轨迹 + analyze_v2.py + 关键数字
$ head -5 social_media_user_behavior.csv # scaffold: 看一眼 schema
✏️ write analyze_v2.py (pandas + scipy + sklearn)
$ python3 analyze_v2.py # ModuleNotFoundError: pandas
✏️ try stdlib rewrite # 但 Q2/Q3/Q5 需要 scipy/sklearn,放弃
$ pip3 install pandas numpy scipy scikit-learn statsmodels -q
$ python3 analyze_v2.py # KeyError: 0 —— pearsonr 返回值解包错
📝 edit: r, _ = pearsonr(...) # 修掉 Series 索引问题
$ python3 analyze_v2.py # 一次通过,写入 report_v2_dscc.md
import pandas as pd, numpy as np
from scipy.stats import chi2_contingency, pearsonr
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, accuracy_score
from sklearn.cluster import KMeans
RS = 42
u = pd.read_csv(".../social_media_user_behavior.csv")
p = pd.read_csv(".../platform_statistics_2026.csv")
# Q1 跨表一致性
user_mean = u.groupby("primary_platform")["daily_screen_time_minutes"].mean()
merged = pd.DataFrame({"用户均值": user_mean}).join(
p.set_index("platform")["avg_daily_time_minutes"].rename("平台表值"),
how="inner",
)
merged["差值"] = merged["用户均值"] - merged["平台表值"]
r, _ = pearsonr(merged["用户均值"], merged["平台表值"]) # ← 曾漏掉 `_`
# Q3 Logistic(节选)
num = ["age","daily_screen_time_minutes","num_platforms_used", ...]
boo = ["follows_influencers","is_content_creator","uses_ai_features"]
cat = ["ad_click_frequency","income_bracket","primary_platform"]
X = pd.concat([u[num], u[boo].astype(int),
pd.get_dummies(u[cat], drop_first=True)], axis=1)
y = u["has_purchased_via_social"].astype(int)
Xtr, Xte, ytr, yte = train_test_split(X, y, test_size=0.2,
random_state=RS, stratify=y)
scaler = StandardScaler().fit(Xtr[num])
Xtr_s = Xtr.copy(); Xtr_s[num] = scaler.transform(Xtr[num])
Xte_s = Xte.copy(); Xte_s[num] = scaler.transform(Xte[num])
clf = LogisticRegression(max_iter=2000, random_state=RS).fit(Xtr_s, ytr)
# Q1 Pearson r = 0.3143
# top 差异:Bluesky 134.4854 / LinkedIn 129.3275 / Pinterest 127.9667
# Q2 chi2 = 0.0390 dof = 1 p = 0.8435 → 不拒绝独立性
# Q3 train AUC 0.5220 test AUC 0.5006 test acc 0.6156
# top 系数:Threads +0.1585 / income $150K+ -0.1203 / WhatsApp +0.1056
# Q4 r_all = -0.3698 r_creator = -0.3615 r_non = -0.3713
# 无 Simpson 反转
# Q5 簇规模 %:26.3400 / 28.5440 / 10.6320 / 34.4840
# 簇 1 均值:screen 207.99 / eng 1.78 / posts 2.22 / addict 4.81
# 标签:高参与观众 · 中度普通用户 · 重度创作者 · 低活跃
# Q6 残差 top1:USR-020194 followers 1025 eng 6.12 → resid 4.2812
展开:Claude Code 的执行轨迹 + run_claude_v2.py + 关键数字
Read PROMPT_v2.md
Read social_media_user_behavior.csv # 抽样看 schema
Read platform_statistics_2026.csv
Write run_claude_v2.py # 一个脚本串完 Q1–Q6,~180 行
Bash python3 run_claude_v2.py # 宿主 pandas/scipy/sklearn 已就位,一次通过
Write report_v2_claude.md
import pandas as pd, numpy as np
from scipy.stats import chi2_contingency, pearsonr
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score, accuracy_score
from sklearn.cluster import KMeans
RS = 42
u = pd.read_csv("/tmp/social_analysis/social_media_user_behavior.csv")
p = pd.read_csv("/tmp/social_analysis/platform_statistics_2026.csv")
# Q1
user_mean = u.groupby("primary_platform")["daily_screen_time_minutes"].mean().round(4)
merged = pd.DataFrame({"用户均值": user_mean}).join(
p.set_index("platform")["avg_daily_time_minutes"].rename("平台表值"),
how="inner",
)
merged["差值"] = (merged["用户均值"] - merged["平台表值"]).round(4)
r, _ = pearsonr(merged["用户均值"], merged["平台表值"])
top3 = merged["差值"].abs().sort_values(ascending=False).head(3)
# Q5
feats = ["daily_screen_time_minutes","engagement_rate_pct",
"posts_per_week","addiction_level_1_to_10"]
Xk = StandardScaler().fit_transform(u[feats])
km = KMeans(n_clusters=4, n_init=10, random_state=RS).fit(Xk)
u["cluster"] = km.labels_
sizes = u["cluster"].value_counts().sort_index()
means = u.groupby("cluster")[feats].mean().round(4)
# Q1 Pearson r = 0.3143
# top 差异:Bluesky 134.4854 / LinkedIn 129.3275 / Pinterest 127.9667
# Q2 chi2 = 0.0390 dof = 1 p = 0.8435 → 不拒绝独立性
# Q3 train AUC 0.5220 test AUC 0.5006 test acc 0.6156
# top 系数:Threads +0.1585 / income $150K+ -0.1203 / WhatsApp +0.1056
# Q4 r_all = -0.3698 r_creator = -0.3615 r_non = -0.3713
# 无 Simpson 反转
# Q5 簇规模 %:26.3400 / 28.5440 / 10.6320 / 34.4840
# 簇 1 均值:screen 207.99 / eng 1.78 / posts 2.22 / addict 4.81
# 标签:高参与观众 · 高强度沉迷用户 · 重度创作者 · 低活跃普通
# Q6 残差 top1:USR-020194 followers 1025 eng 6.12 → resid 4.2812
这一份演示同时作为
docs/cookbook/05-data-analysis
的实机产物存档(含 dscc_run.log 与 report_dscc.md)。
其余 4 个 cookbook 案例 ——
01 代码审查 ·
02 测试生成 ·
03 重命名重构 ·
04 网页调研
—— 均附带真实运行日志与验收记录,见
验证登记簿。
下载
macOS、Linux、Windows 的预构建二进制。解压后直接运行 dscc。
全部资产、校验值与签名见 发布页面。
源码构建:cargo install --path crates/dscc-cli --locked。
安装
macOS / Linux
curl -LO /dl/dscc-v0.1.0-aarch64-apple-darwin.tar.gz
tar -xzf dscc-v0.1.0-aarch64-apple-darwin.tar.gz
sudo mv dscc /usr/local/bin/
dscc --version
Windows(PowerShell)
iwr /dl/dscc-v0.1.0-x86_64-pc-windows-msvc.zip -OutFile dscc.zip
Expand-Archive .\dscc.zip -DestinationPath .
.\dscc.exe --version
从源码构建(Cargo)
git clone https://github.com/oMygpt/dscc.git
cd dscc
cargo install --path crates/dscc-cli --locked
配置凭证
# Anthropic 兼容
export ANTHROPIC_API_KEY="..."
# xAI / Grok
export XAI_API_KEY="..."
# 通用 OpenAI 兼容提供商
export DSCC_API_KEY="..."
export DSCC_BASE_URL="https://ark.cn-beijing.volces.com/api/v3"
用法
DSCC 没有硬编码的默认模型。通过 --model 或
DSCC_MODEL 指定,二者皆缺时会输出中英双语错误并退出。
交互式会话
dscc --model doubao-seed-2.0-code
一次性提示
dscc --model qwen3-coder \
prompt "总结 crates/runtime"
本地 Ollama(零配置)
export DSCC_BASE_URL="http://localhost:11434/v1"
export DSCC_API_KEY="ollama" # 任意字符串
dscc --model qwen3-coder:7b \
prompt "解释这个工作区"
斜杠命令
/status /config /diff /compact
/export /session /agents /skills
功能
协议无关的提供商
单个二进制支持 Anthropic Messages API、xAI/Grok 与各类 OpenAI 兼容端点,模型由你显式指定。
工作区感知配置
自动加载 DSCC.md、.dscc.json、.dscc/settings.json、权限与插件设置。
插件、代理、技能
通过 dscc agents、dscc skills 与插件接口进行本地发现和管理。
交互与一次性执行
REPL 模式用于探索,prompt 子命令用于脚本与 CI,同一套工具链两种形态。
会话与压缩
通过内建斜杠命令保存、查看、恢复会话,并在上下文变长时自动压缩历史。
落地用的工作区工具
Shell、文件读写与编辑、搜索、网页抓取/搜索、待办、Notebook 更新 —— 把会话结果真正写回仓库。
关于
DSCC = Dispatch · Scaffold · Compose · Commit。 四个动词对应一个完整的本地编码循环:把任务调度给合适的模型、搭起工作区的骨架、在多轮对话里编排内容、最后把改动落地回仓库。
双重许可:开源采用 AGPL-3.0-only, 如需商业许可请通过 [email protected] 联系。