Docker 联合主办 WeAreDevelopers World Congress North America,释放出的信号不只是一次活动合作。随着 AI Agent 进入编码、测试、文档和运维流程,开发者的工作正在从“亲手完成每一步”转向“定义目标、提供上下文、审查结果并承担责任”。当开发方式改变,服务开发者的技术大会也不能继续只靠演讲、展台和工具演示。
开发者的核心工作正在上移
传统开发工具通常等待明确指令:编辑器修改文件,编译器构建代码,CI 系统执行预先写好的流水线。AI Agent 则可能接收一个目标,读取代码库,拆分任务,调用工具,并连续完成多个步骤。
这不会让工程判断消失,反而提高了判断的重要性。开发者需要回答一组更接近系统设计的问题:
- Agent 可以访问哪些仓库、服务和凭据?
- 它可以直接修改什么,哪些操作必须经过审批?
- 任务完成的验收条件是什么?
- 如何记录提示词、工具调用、代码差异和测试结果?
- 当生成结果看似正确但违反业务约束时,谁负责发现问题?
因此,开发者角色并非简单地从“写代码”变成“写提示词”。更准确的变化是:开发者开始设计人、模型、工具和运行环境之间的协作协议。
Docker 在这一变化中具有自然的切入点。Agent 生成代码之后,仍然需要可重复的依赖、隔离的执行环境和明确的交付边界。容器不能证明代码正确,却能减少“在 Agent 的环境里可以运行”这类难以复现的问题。
技术大会不能只展示最终答案
如果 AI Agent 正在改变软件生产过程,那么大会内容也需要从功能展示转向过程展示。一个完整案例不应只播放“输入需求,应用生成”的顺畅录像,还应公开关键工程细节:
- Agent 获得了哪些上下文,哪些信息被刻意排除;
- 它调用了什么工具,工具拥有什么权限;
- 失败发生在哪一步,开发者如何定位和修正;
- 自动生成的修改通过了哪些测试与策略检查;
- 相同流程能否在参与者自己的机器上复现。
这种内容更接近开发者真正需要的知识。漂亮的结果适合建立直觉,失败记录、评估方法和权限边界才有助于团队采用。
社区交流方式也会随之变化。过去,人们经常围绕语言、框架或职位形成小组;在 Agent 参与开发后,新的共同问题会横跨这些边界,例如上下文管理、工具协议、评估体系、供应链安全和人机审批流程。技术大会可以成为这些实践汇合与相互验证的场所,而不仅是产品发布的舞台。
把大会实验做成可复现的 Agent 任务
来源摘要没有给出具体 Agent API,下面是一个可以这样实践的最小实验。假设你使用一个兼容常见聊天补全格式的模型服务,并通过环境变量提供地址、模型名和令牌。脚本读取任务说明,请模型返回实施计划;容器负责固定 Python 运行环境,并限制输入文件为只读。
创建 task.md:
分析当前项目的测试策略,并输出:
1. 风险最高的三个未覆盖路径
2. 建议新增的测试文件
3. 每项建议的验收命令
不要修改代码,不要读取任务目录之外的数据。
创建 agent.py:
import json
import os
import urllib.request
from pathlib import Path
endpoint = os.environ["MODEL_ENDPOINT"].rstrip("/")
token = os.environ["MODEL_TOKEN"]
model = os.environ["MODEL_NAME"]
task = Path("/workspace/task.md").read_text(encoding="utf-8")
payload = {
"model": model,
"messages": [
{
"role": "system",
"content": (
"You are a software review agent. Return a concise Markdown plan. "
"Do not claim that you executed commands or inspected files that "
"were not included in the prompt."
),
},
{"role": "user", "content": task},
],
"temperature": 0.2,
}
request = urllib.request.Request(
f"{endpoint}/chat/completions",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
print(result["choices"][0]["message"]["content"])
再创建 Dockerfile:
FROM python:3.12-alpine
WORKDIR /app
COPY agent.py /app/agent.py
USER 65532:65532
ENTRYPOINT ["python", "/app/agent.py"]
构建并运行时,需要把三个环境变量替换为你实际使用的服务配置:
docker build -t conference-agent-demo .
docker run --rm \
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges \
-e MODEL_ENDPOINT="https://your-model-service.example/v1" \
-e MODEL_NAME="your-model-name" \
-e MODEL_TOKEN="your-token" \
-v "$PWD/task.md:/workspace/task.md:ro" \
conference-agent-demo
这个示例刻意把能力限制在“读取一个任务文件并输出计划”。它适合用来讨论大会工作坊中真正重要的工程问题:令牌如何注入、网络是否应受限、输入是否只读、输出如何留档,以及为什么不能把模型声称执行过的操作当作事实。
若要把它扩展为能够检查真实仓库的 Agent,应继续增加明确边界,而不是直接挂载整个主目录。可以只读挂载目标仓库、使用短期凭据、记录所有工具调用,并把写操作放进临时分支或一次性容器中。
衡量一场面向 Agent 时代的大会
Docker 与 WeAreDevelopers 的联合主办值得关注,因为它把开发工具、运行环境和开发者社区放进了同一场讨论。真正的价值仍要通过内容和参与方式来兑现。
评估这类大会时,可以检查几个具体信号:
- 演示是否提供可运行的项目、镜像版本和验收命令;
- 分享者是否展示失败案例,而不只展示剪辑后的成功路径;
- 安全、治理和成本是否进入主议程;
- 工作坊是否允许参与者替换模型、工具或基础设施;
- 社区是否沉淀公开的评估方法,而不只是提示词集合;
- 讨论是否明确保留人工审批和责任归属。
AI Agent 让软件开发的执行速度更快,也可能让错误、权限滥用和不可验证的结论传播得更快。技术大会的新任务,不是反复证明 Agent 能生成代码,而是帮助开发者建立一套可复现、可审查、可约束的协作方式。