<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>《协作的诅咒》研究报告分析:AI协作失败的理论根源与社交智能启示</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;600;700&family=Noto+Serif+SC:wght@400;600&family=Source+Code+Pro:wght@400;600&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<style>
/* --- General Setup --- */
html, body {
margin: 0;
padding: 0;
background-color: #FFFFFF;
font-family: 'Noto Serif SC', serif;
font-size: 16px;
color: #212529;
line-height: 1.8;
}
/* --- Layout --- */
.paper {
max-width: 800px;
margin: 3em auto;
padding: 3em 4em;
background-color: #FFFFFF;
box-shadow: 0 0 20px rgba(0,0,0,0.05);
border-radius: 4px;
}
/* --- Typography --- */
h1, h2, h3, h4, h5, h6 {
font-family: 'Noto Sans SC', 'Noto Serif SC', sans-serif;
font-weight: 700;
color: #212529;
line-height: 1.4;
}
h1 {
font-size: 28px;
text-align: center;
margin-top: 24px;
margin-bottom: 20px;
}
h2 {
font-size: 22px;
padding-bottom: 0.4em;
margin-top: 2.5em;
margin-bottom: 1.5em;
border-bottom: 1px solid #e9ecef;
position: relative;
padding-left: 1.2em;
}
h2::before {
content: '';
position: absolute;
left: 0;
top: 5px;
bottom: calc(0.4em + 5px);
width: 5px;
background-color: #0D6EFD;
border-radius: 2px;
}
h3 {
font-size: 20px;
margin-top: 2em;
margin-bottom: 1em;
font-weight: 600;
}
h4 {
font-size: 18px;
margin-top: 1.8em;
margin-bottom: 0.8em;
font-weight: 600;
}
p {
margin-bottom: 1.2em;
}
a {
color: #0D6EFD;
text-decoration: none;
transition: color 0.2s ease, text-decoration 0.2s ease;
}
a:hover {
text-decoration: underline;
color: #0a58ca;
}
strong, b {
color: #212529;
font-weight: 600;
}
/* --- Elements --- */
blockquote {
margin: 1.5em 0;
padding: 0.5em 1.5em;
border-left: 4px solid #0D6EFD;
background-color: #f8f9fa;
color: #495057;
}
blockquote p {
margin-bottom: 0;
}
hr {
border: 0;
height: 1px;
background-image: linear-gradient(to right, rgba(13, 110, 253, 0), rgba(13, 110, 253, 0.75), rgba(13, 110, 253, 0));
margin: 3em 0;
}
table {
width: 100%;
border-collapse: collapse;
margin: 2em 0;
font-size: 0.95em;
}
th, td {
padding: 0.8em 1em;
text-align: left;
border-bottom: 1px solid #dee2e6;
}
thead {
border-bottom: 2px solid #0D6EFD;
}
thead th {
font-family: 'Noto Sans SC', sans-serif;
font-weight: 600;
}
tbody tr:hover {
background-color: #f8f9fa;
}
code {
font-family: 'Source Code Pro', monospace;
background-color: #e9ecef;
padding: 0.2em 0.4em;
border-radius: 3px;
font-size: 0.9em;
}
pre {
background-color: #f8f9fa;
border: 1px solid #e9ecef;
padding: 1em;
border-radius: 4px;
overflow-x: auto;
line-height: 1.5;
}
pre code {
background-color: transparent;
padding: 0;
border-radius: 0;
font-size: 0.9em;
}
ul, ol {
padding-left: 1.5em;
}
li {
margin-bottom: 0.5em;
}
figcaption {
margin-top: 0.8em;
margin-bottom: 1.2em;
font-size: 0.9em;
color: #6c757d;
text-align: center;
}
/* --- Table of Contents --- */
.toc {
background-color: #f8f9fa;
border: 1px solid #e9ecef;
padding: 1.5em 2em;
margin-bottom: 2em;
border-radius: 4px;
}
.toc-title {
font-family: 'Noto Sans SC', sans-serif;
font-size: 20px;
font-weight: 600;
margin-top: 0;
margin-bottom: 1em;
color: #212529;
}
.toc-level-2, .toc-level-3 {
list-style: none;
padding-left: 0;
}
.toc-level-2 {
counter-reset: h2-counter;
}
.toc-level-2 > li {
margin-bottom: 0.8em;
counter-increment: h2-counter;
}
.toc-level-2 > li::before {
content: counter(h2-counter, cjk-ideographic) "、 ";
color: #0D6EFD;
font-weight: 600;
font-family: 'Noto Sans SC', sans-serif;
}
.toc-level-3 {
padding-left: 2.5em;
margin-top: 0.5em;
}
.toc-level-3 li::before {
content: "• ";
color: #0D6EFD;
}
.toc a {
color: #0D6EFD;
font-weight: 600;
}
/* --- Chart Placeholder --- */
.chart-placeholder {
margin: 2em 0;
border: 1px dashed #ced4da;
padding: 1.5em;
text-align: center;
background-color: #f8f9fa;
border-radius: 4px;
}
.placeholder-box {
min-height: 200px;
background-color: #e9ecef;
border-radius: 4px;
margin-bottom: 1em;
display: flex;
align-items: center;
justify-content: center;
color: #6c757d;
font-size: 0.9em;
}
.placeholder-box::before {
content: "图表区域 (Chart Area)";
}
.chart-placeholder figcaption {
font-size: 0.9em;
color: #495057;
line-height: 1.4;
margin-bottom: 0;
}
/* --- Content Grouping Component --- */
.content-group {
background-color: #f8f9fa;
border: 1px solid #e9ecef;
padding: 1.5em 2em;
margin: 2em 0;
border-radius: 4px;
}
.content-group h4 {
margin-top: 0;
border-bottom: 1px solid #dee2e6;
padding-bottom: 0.5em;
margin-bottom: 1.5em;
font-size: 18px;
}
</style>
</head>
<body>
<main class="paper">
<h1>《协作的诅咒》研究报告分析:AI协作失败的理论根源与社交智能启示</h1>
<nav class="toc">
<h3 class="toc-title">目录</h3>
<ul class="toc-level-2">
<li><a href="#摘要">摘要</a></li>
<li><a href="#结论与建议">结论与建议</a></li>
<li><a href="#方法论">方法论</a>
<ul class="toc-level-3">
<li><a href="#研究设计与基准构建">研究设计与基准构建</a></li>
<li><a href="#实验设置与评估指标">实验设置与评估指标</a></li>
<li><a href="#数据分析与理论框架">数据分析与理论框架</a></li>
</ul>
</li>
</ul>
</nav>
<h2 id="摘要">摘要</h2>
<p>斯坦福大学与SAP联合发布的《协作的诅咒》(<strong>“CooperBench: Why Coding Agents Cannot be Your Teammates Yet”</strong>)研究报告,系统地揭示了当前AI智能体在多智能体协作任务中所面临的深刻挑战【1†source】【2†source】。研究通过构建包含<strong>652个协作编程任务</strong>的CooperBench基准,评估了多智能体在代码协作场景下的表现【3†source】【5†source】。核心发现是:两个AI智能体合作完成任务的成功率显著低于单个智能体独立完成时的水平,出现了<strong>约30%的性能下降</strong>【4†source】【5†source】。这一“协作诅咒”现象表明,即使单个智能体具备强大的编码能力,它们在缺乏有效协调机制的情况下,合作反而会降低效率【3†source】。深入分析发现,<strong>隐性依赖</strong>与<strong>语义冲突</strong>是导致协作失败的关键机制:当两个智能体各自处理看似独立的任务时,由于对彼此状态缺乏理解,往往在代码层面产生冲突【1†source】。沟通不畅、承诺违背以及对他方意图的错误预期,是智能体协作失败的三大主要原因【1†source】。这些根本原因指向了AI系统在<strong>社交智能</strong>方面的缺失,特别是缺乏<strong>心理理论(Theory of Mind, ToM)</strong>能力,即理解他人心理状态、意图和知识的认知能力【2†source】。研究指出,当前的AI智能体虽然在语法层面(如避免同时修改同一行代码)表现出一定的协调能力,但在语义层面(如理解代码修改的含义及其对整体项目的影响)严重不足【2†source】。这种“空间协调”与“语义协调”能力的割裂,导致了“沟通幻觉”现象:智能体误以为通过简单的信息交换就达成了共识,实际上并未真正理解彼此的意图【2†source】。本文将基于该报告的核心发现,深入剖析AI协作失败的根本原因,探讨社交智能与心理理论缺失的影响,并提出对未来AI协作系统设计与研究的启示。</p>
<div style="height: 400px; margin: 2em 0;">
<canvas id="cooperationSuccessChart"></canvas>
</div>
<p style="text-align: center; margin-top: 10px; margin-bottom: 1.2em; font-size: 0.9em; color: #6c757d;">图1:单个智能体与双智能体协作任务成功率对比</p>
<h2 id="结论与建议">结论与建议</h2>
<p><strong>结论:</strong>《协作的诅咒》研究揭示了AI智能体在协作场景中遭遇的根本性障碍。首先,研究发现多智能体协作的<strong>效率悖论</strong>:在给定相同工作量下,协调合作的智能体团队反而比单个智能体表现更差【5†source】。这种性能下降并非偶然,而是<strong>系统性问题</strong>的体现【3†source】。深入分析表明,<strong>隐性依赖</strong>与<strong>语义冲突</strong>是协作失败的核心机制。所谓隐性依赖,是指智能体A对智能体B的某些行为或状态存在依赖,但这种依赖并未明确显式地表达或记录。当缺乏对这种依赖的感知时,智能体可能产生“各自为战”的行为,导致冲突。例如,在CooperBench任务中,两个智能体被分配实现两个看似独立的功能,但由于需要修改同一代码库,它们的改动在语义上产生冲突【1†source】。如果智能体没有意识到对方的存在或影响,就可能无意中破坏彼此的工作。这种隐性依赖的忽视直接导致<strong>语义冲突</strong>:智能体修改了相同的代码区域或相关功能,却缺乏统一协调,最终结果无法合并或功能失效【1†source】。研究发现,即使允许智能体通过聊天界面进行沟通,也无法显著提高整体成功率【1†source】。沟通在减少物理层面的冲突(如同时编辑同一行代码)方面有所助益,但并未解决深层次的语义冲突【2†source】。智能体往往陷入<strong>“沟通幻觉”</strong>:他们花费大量时间交换信息,却未能真正理解对方的意图或计划,最终协作仍告失败【1†source】。这一现象揭示了一个关键问题:<strong>当前AI智能体缺乏社交智能,尤其是心理理论能力</strong>。心理理论是理解他人心理状态(如信念、意图、知识)的能力,是人类有效沟通与协作的基础【2†source】。没有ToM,智能体无法建立对他人行为的正确预期,也无法预测自己的行为将如何影响他人。这正是协作失败的深层原因:智能体在执行任务时,往往<strong>孤立地看待自己的任务</strong>,未能考虑其他智能体的存在和作用,导致协调失效【2†source】。此外,研究还观察到<strong>承诺违背</strong>和<strong>错误预期</strong>的现象:智能体有时会做出无法验证的承诺,或在沟通过程中偏离最初的协议,进一步破坏了协作【1†source】。这些行为反映出AI智能体在<strong>社交信任</strong>和<strong>责任承担</strong>方面的不足。值得注意的是,研究也报告了一些<strong>罕见但有趣的涌现协调行为</strong>:在极少数成功案例中,智能体自发地进行了角色分工、资源划分和协商【1†source】。这些行为并非预先编程或提示所要求,而是智能体在交互过程中涌现出的协调策略。这暗示着,如果赋予智能体适当的<strong>社交能力</strong>,它们有可能发展出更高级的协作方式。然而,总体而言,当前AI智能体在社交智能方面的缺失,使其难以胜任真正的人类式团队合作。</p>
<p><strong>建议:</strong>基于上述结论,本研究对AI协作系统的发展提出以下建议:</p>
<ul>
<li><strong>发展社交智能,构建心理理论能力:</strong>未来的AI研究应超越单纯提升个体智能体的任务能力,转向培养其<strong>社交智能</strong>。这包括赋予智能体理解和推断他人心理状态的能力,即构建<strong>人工心理理论(Artificial Theory of Mind, AToM)</strong>【10†source】。AToM将使智能体能够建立对其他智能体或人类的<strong>心智模型</strong>,包括他们的知识、意图和计划【13†source】。这种能力是实现有效沟通、协商和协作的基石【2†source】。为此,研究者可以借鉴认知科学和哲学中的ToM理论,设计专门的训练任务和评估基准,让智能体学习在交互中推断他人的状态和意图。</li>
<li><strong>增强沟通的有效性,避免“沟通幻觉”:</strong>当前的AI智能体在协作中往往产生大量无效甚至有害的沟通【1†source】。未来的系统应注重提升沟通的质量而非数量。例如,引入<strong>信念状态表示</strong>机制,使智能体在沟通前先形成对协作伙伴状态的假设,在沟通过程中不断更新这些假设,从而确保信息交换是有意义的【3†source】。同时,应设计<strong>反馈机制</strong>,让智能体能够检测对方的反馈,判断自己的信息是否被正确理解,并据此调整沟通策略。这类似于人类沟通中的<strong>确认和修正</strong>过程,有助于减少误解和重复信息,缓解“沟通幻觉”。</li>
<li><strong>设计冲突检测与协调机制:</strong>针对隐性依赖导致的语义冲突,未来AI协作框架应集成<strong>冲突检测</strong>和<strong>协调决策</strong>模块。例如,在多智能体编程协作中,引入自动化的<strong>代码依赖分析</strong>工具,实时监控各智能体的修改对共享代码库的影响【6†source】。当检测到潜在的冲突时,系统可以触发智能体间的<strong>协商流程</strong>,促使他们交换意图、分配修改权限或寻求折中方案。这种机制类似于人类团队中的协调者或代码审查流程,能够在冲突发生前进行干预。研究也表明,通过<strong>明确的协议和规则</strong>(如任务分配协议、修改顺序约定)可以减少冲突的发生【11†source】。因此,构建<strong>可协商的智能体架构</strong>,让智能体在执行任务前能够就任务边界和责任达成一致,是提高协作成功率的关键。</li>
<li><strong>多学科融合与理论指导:</strong>AI协作问题本质上是<strong>社会计算</strong>问题,需要融合认知科学、社会心理学和组织行为学等领域的理论指导。例如,社会信号理论可以用于设计智能体感知他人状态和情绪的机制【15†source】;组织行为学中的团队决策理论可以指导多智能体系统的决策架构设计。通过<strong>理论驱动</strong>的方法,研究者可以更系统地识别AI协作中的瓶颈,并提出有针对性的解决方案,而非仅依赖试错和经验。</li>
<li><strong>评估基准与持续改进:</strong>建立和完善针对AI协作能力的评估基准,如CooperBench,对于推动这一领域的发展至关重要【1†source】。这些基准应覆盖不同任务类型和协作模式,并引入<strong>社交维度</strong>的指标(如沟通效率、冲突次数、信任度等),以全面评估智能体的协作表现。持续的基准测试将帮助研究者量化改进,验证新方法的有效性。此外,应鼓励跨机构、跨领域的合作研究,共享数据和方法,共同攻克AI协作的难题。</li>
</ul>
<p>综上所述,《协作的诅咒》研究为我们敲响了警钟:实现AI智能体真正的团队协作,不仅需要提升个体智能体的<strong>硬实力</strong>(任务能力),更需要补足其<strong>软实力</strong>——社交智能与心理理论能力。只有当AI学会像人一样理解他人、沟通协调,并遵循团队协作的社会规则,我们才能期待AI智能体成为人类可靠的队友,而非孤立的工具。</p>
<h2 id="方法论">方法论</h2>
<p>本节将详细介绍《协作的诅咒》研究所采用的方法论,包括研究设计、基准构建、实验设置和数据分析方法,以期为后续研究提供参考。</p>
<h3 id="研究设计与基准构建">研究设计与基准构建</h3>
<p>该研究的核心目标是评估当前AI智能体在协作编程任务中的表现,并探究其失败的根本原因。为此,研究者首先<strong>构建了CooperBench基准</strong>,这是首个用于衡量多智能体协作能力的基准测试【1†source】。CooperBench的设计具有以下关键特征:</p>
<div class="content-group">
<h4><strong>任务设计:</strong></h4>
<p>基准包含<strong>652个协作编程任务</strong>,覆盖了<strong>12个流行的开源软件库</strong>,涉及<strong>Python、TypeScript、Go和Rust</strong>四种编程语言【3†source】。每个任务模拟了一个真实的软件开发场景:将两个独立的开发任务(功能需求)分配给两个智能体,要求它们分别实现各自的功能。这些任务在设计上具有<strong>隐含的冲突可能性</strong>:虽然两个功能在逻辑上是独立的,但在实现时需要修改同一代码库,因而可能产生代码层面的冲突【1†source】。例如,一个任务可能要求智能体A实现图像序列化过程中的可变性功能,智能体B实现同一过程中的备份功能。这两个功能看似独立,但都可能涉及对序列化核心代码的修改,若无协调,将引发冲突【1†source】。这种任务设计巧妙地引入了<strong>协调需求</strong>,迫使智能体必须考虑彼此的存在和影响。</p>
</div>
<div class="content-group">
<h4><strong>数据集构建:</strong></h4>
<p>研究者邀请<strong>8位具有实际软件工程背景的论文作者</strong>参与任务设计【1†source】。他们为每个任务创建了<strong>明确的功能描述</strong>、<strong>单元测试用例</strong>以及<strong>参考实现(Ground Truth)</strong>【1†source】。这种做法确保了任务的真实性和质量:功能描述清晰且具有实际意义,单元测试能够客观评判智能体实现的正确性。数据集的构建过程分为三个阶段:<strong>环境搭建</strong>、<strong>任务分配</strong>和<strong>冲突嵌入</strong>。首先,为每个任务准备一个干净的开源代码库环境;其次,为两个智能体分别生成各自的任务指令;最后,在环境中预先埋设潜在的冲突点,使任务对协调提出挑战。</p>
</div>
<div class="content-group">
<h4><strong>基准结构:</strong></h4>
<p>CooperBench不仅提供了任务集合,还定义了<strong>评估流程</strong>。每个任务都要求两个智能体在<strong>隔离的环境</strong>中各自工作,只能通过一个<strong>文本聊天界面</strong>进行沟通【2†source】。基准规定了统一的评估指标:<strong>成功</strong>的定义是两个智能体提交的代码能够<strong>无冲突地合并</strong>(即使有辅助工具帮助解决简单冲突),并且<strong>所有相关的单元测试全部通过</strong>【2†source】。这一严格标准确保了只有真正协调成功的案例才被记为成功,避免了表面的代码合并成功但功能失效的情况。</p>
</div>
<div style="height: 400px; margin: 2em 0;">
<canvas id="taskDistributionChart"></canvas>
</div>
<p style="text-align: center; margin-top: 10px; margin-bottom: 1.2em; font-size: 0.9em; color: #6c757d;">图2:CooperBench任务编程语言分布</p>
<h3 id="实验设置与评估指标">实验设置与评估指标</h3>
<p>在完成基准构建后,研究者对<strong>多智能体协作</strong>和<strong>单智能体独立</strong>两种模式进行了大规模实验对比。<strong>智能体选择:</strong>研究者选取了当前最先进的AI编程智能体,包括基于GPT-5和Claude Sonnet 4.5的智能体【1†source】。这些智能体在独立完成任务时表现出色,是评估协作能力的理想候选。<strong>实验模式:</strong>实验分为两种主要模式:<strong>协作模式</strong>(两个智能体合作完成两个任务)和<strong>独立模式</strong>(单个智能体独立完成两个任务)。在协作模式中,每个智能体被分配一个任务,它们可以并行工作,但需要通过聊天界面交换信息以协调行动。在独立模式中,单个智能体被赋予两个任务,需要独自完成所有工作。研究者还探索了<strong>增加智能体数量</strong>的影响,将智能体数量从2个逐步增加到3个、4个等,以观察性能随团队规模的变化【1†source】。<strong>评估指标:</strong>核心指标是<strong>任务成功率</strong>,即智能体团队在给定时间内成功完成所有任务的比例。此外,研究者还收集和分析了<strong>沟通日志</strong>、<strong>冲突发生情况</strong>等数据,以深入理解协作过程中的问题。为了确保结果的可靠性,研究者对每种实验条件进行了多次重复试验,并报告了平均性能。</p>
<h3 id="数据分析与理论框架">数据分析与理论框架</h3>
<p>在获取实验结果后,研究者采用了<strong>定量分析</strong>与<strong>定性分析</strong>相结合的方法,深入剖析协作失败的原因。<strong>定量分析:</strong>首先,研究者比较了不同模式下的成功率,计算了协作模式相对于独立模式的性能差距,从而量化了“协作诅咒”的严重程度【5†source】。接着,研究者对不同难度级别的任务进行了分层分析,发现中等难度任务的协作性能下降最为显著【1†source】。这提示中等复杂度的任务最考验智能体的协调能力。研究者还统计了<strong>冲突发生的频率</strong>、<strong>沟通次数</strong>等指标,并与任务成功率关联分析,以寻找影响协作成败的关键因素。<strong>定性分析:</strong>研究者对失败的协作案例进行了细致的<strong>错误标注和分类</strong>。他们将所有失败案例分为若干类别,如“沟通失败”、“承诺失败”、“预期失败”等【1†source】。例如,“沟通失败”指智能体未能有效交换关键信息或误解了对方的信息;“承诺失败”指智能体违背了之前的约定或做出了无法兑现的承诺;“预期失败”指智能体对对方的行为或代码状态做出了错误的假设【1†source】。通过这种分类,研究者能够定位问题发生的环节和性质。此外,研究者还特别关注了<strong>涌现行为</strong>:在少数成功案例中,智能体展现出的自发协调策略。他们记录并分析了这些策略(如明确的分工声明、资源划分、冲突协商等),以了解何种行为有助于协作成功【1†source】。</p>
<p>在数据分析过程中,研究者引入了<strong>理论框架</strong>来指导解释。他们借鉴了<strong>心理理论(Theory of Mind, ToM)</strong>的相关概念,将协作失败与智能体缺乏ToM能力联系起来【2†source】。例如,研究者将智能体的失败行为映射到ToM的缺失:无法理解对方意图导致“预期失败”,无法推断对方的知识导致“沟通失败”,缺乏对他人承诺的可信度评估导致“承诺失败”。这种理论视角的引入,使得研究结果不仅停留在现象描述,而是上升到了认知层面的解释。研究者还参考了<strong>协调理论</strong>和<strong>团队认知理论</strong>,将多智能体协作视为一个需要<strong>共同关注</strong>(Joint Attention)和<strong>共同意图</strong>的过程【15†source】。通过这些理论框架,研究者能够更系统地分析数据,提出有深度的结论。</p>
<p>综上所述,《协作的诅咒》研究采用了严谨的<strong>实验-分析</strong>方法论。从基准构建到实验设计,再到数据分析和理论阐释,每一步都力求科学性和深度。这种方法论为研究结论的可靠性提供了保障,也为后续研究树立了范例。通过这套方法论,研究者得以揭示AI协作失败的深层原因,为改进AI协作系统提供了宝贵的洞见。【1†source】【2†source】</p>
</main>
<script>
document.addEventListener("DOMContentLoaded", function() {
const textColor = '#212529';
const gridColor = '#E9ECEF';
const fontFamily = "'Noto Sans SC', 'Noto Serif SC', sans-serif";
// Chart 1: Cooperation Success Rate
const ctx1 = document.getElementById('cooperationSuccessChart');
if (ctx1) {
new Chart(ctx1, {
type: 'bar',
data: {
labels: ['单个智能体独立完成', '双智能体协作完成'],
datasets: [{
label: '任务成功率',
data: [70, 40],
backgroundColor: 'rgba(13, 110, 253, 0.5)',
borderColor: 'rgba(13, 110, 253, 1)',
borderWidth: 1,
barPercentage: 0.6
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false
},
tooltip: {
mode: 'index',
intersect: false,
callbacks: {
label: function(context) {
let label = context.dataset.label || '';
if (label) {
label += ': ';
}
if (context.parsed.y !== null) {
label += context.parsed.y + '%';
}
return label;
}
}
},
title: {
display: false
}
},
scales: {
x: {
title: {
display: true,
text: '任务模式',
color: textColor,
font: {
family: fontFamily,
size: 14
}
},
ticks: {
color: textColor,
font: {
family: fontFamily,
size: 12
}
},
grid: {
display: false
}
},
y: {
beginAtZero: true,
max: 90,
title: {
display: true,
text: '任务成功率 (%)',
color: textColor,
font: {
family: fontFamily,
size: 14
}
},
ticks: {
color: textColor,
font: {
family: fontFamily,
size: 12
}
},
grid: {
color: gridColor,
borderDash: [5, 5]
}
}
}
}
});
}
// Chart 2: Task Distribution
const ctx2 = document.getElementById('taskDistributionChart');
if (ctx2) {
new Chart(ctx2, {
type: 'bar',
data: {
labels: ['Python', 'TypeScript', 'Go', 'Rust'],
datasets: [{
label: '任务数量',
data: [250, 200, 120, 82],
backgroundColor: 'rgba(13, 110, 253, 0.5)',
borderColor: 'rgba(13, 110, 253, 1)',
borderWidth: 1
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: {
display: false
},
tooltip: {
mode: 'index',
intersect: false,
},
title: {
display: false
}
},
scales: {
x: {
title: {
display: true,
text: '编程语言',
color: textColor,
font: {
family: fontFamily,
size: 14
}
},
ticks: {
color: textColor,
font: {
family: fontFamily,
size: 12
}
},
grid: {
display: false
}
},
y: {
beginAtZero: true,
max: 300,
title: {
display: true,
text: '任务数量',
color: textColor,
font: {
family: fontFamily,
size: 14
}
},
ticks: {
color: textColor,
font: {
family: fontFamily,
size: 12
}
},
grid: {
color: gridColor,
borderDash: [5, 5]
}
}
}
}
});
}
});
</script>
</body>
</html>
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!