Token导航 LogoToken导航TokenDH.com
Goal Driven Coding Agent logo
AI代理stdio官方级别未说明来源级核验

Goal Driven Coding Agent

MCP Server

一个基于OpenAI Agents SDK构建的、在沙盒环境中自主解决编码挑战的目标驱动编码代理。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
PythonAI代理工作流自动化

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GuyOhm

提供方

GuyOhm

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

目标驱动的编码代理

该项目包含一个使用OpenAI代理SDK构建的简单、完全沙盒、目标驱动的编码代理。该代理旨在通过迭代编写代码、运行测试并根据结果改进其方法来解决编码挑战。

特性

  • 自主代理循环: 在明确目标的驱动下,代理自主决定使用哪些工具以及何时完成任务。
  • OpenAI代理SDK: 基于官方的OpenAI代理SDK构建,用于管理代理工作流。
  • 沙盒环境: 所有文件操作和代码执行都在使用Docker的安全容器化环境中进行。
  • MCP(模型上下文协议): 利用MCP实现代理与其沙盒工具(包括文件系统管理器和代码执行器)之间的通信。
  • 标杆管理: 包括一套用于根据Polyglot Benchmark练习运行代理以衡量性能的套件。

______________________________________________________________________

设计和架构报告

1.代理设计

代理的核心逻辑是围绕 openai-agents 图书馆,提供主要 Runner.run 循环。代理按照一个简单的迭代“实施-测试-改进”循环进行操作:

  1. 了解目标: 代理被赋予了一个高级目标,其中包括解决方案文件和测试文件的路径。
  2. 实施: 代理读取相关文件并写入初始实现。
  3. 测试: 它执行提供的 pytest 沙盒中的命令 executor 工具。
  4. 优化: 它分析了 exit_codestdout 从试运行开始。

- 如果 exit_code0,它断定任务已完成并终止其循环。 - 如果 exit_code 不是 0,它分析错误并尝试在下一次迭代中修复它们。

整个循环是自主的;代理本身根据其操作的结果决定是继续迭代还是完成迭代。

2.砂箱

安全性和安全性是通过使用Docker和Docker Compose的基于容器的沙盒方法实现的。该环境由中定义的两个主要服务组成 containers/docker-compose.mcp.yaml:

  • filesystem-server: 一个可以访问专用隔离目录的容器(sandbox_volumes).它通过MCP端点公开文件管理工具(读取、写入、列出文件)。代理只能在此目录中操作,阻止对主机文件系统的任何访问。
  • executor-server: 第二个提供代码执行功能的容器,也限制在同一个沙盒目录中。它暴露了一个 sandbox_run_command 可以执行shell命令的工具,例如运行 pytest.

这种架构确保代理的整个工作区(包括文件操作和代码执行)严格限制在 sandbox_volumes 目录,提供安全和隔离的环境。

3.MCP集成

代理使用模型上下文协议(MCP)与其沙盒工具进行通信。两台MCP服务器正在监听 http://127.0.0.1:7101 (文件系统)和 http://127.0.0.1:7102 (遗嘱执行人)。代理通过OpenAI代理SDK连接到这些端点,以发现和调用可用的工具。

  • 文件系统工具: 代理使用以下工具 sandbox_read_filesandbox_write_file 与代码交互。
  • 执行器工具: 代理人使用 sandbox_run_command 执行工具 pytest 套件并验证其实现。

这些工具的结构化输入和输出(例如,包含JSON的 exit_code, stdout, stderr)对于代理分析其行为结果的能力至关重要。

4.基准学习和成果

该代理已针对Polyglot Benchmark的“仿射密码”挑战进行了测试。该过程提供了几个关键见解:

  • 初始故障 gpt-4o-mini: 最初的运行与 gpt-4o-mini 模型不成功。代理取得了进展,但经常陷入“回归循环”——修复问题的一部分会破坏以前工作的代码,代理无法在10圈内恢复。
  • 提示歧义: 初始目标提示提供了两种不同的跑步方式 pytest,这导致代理在调试自己的测试命令时感到困惑和浪费时间。
  • 成功之路: 通过做出两个关键改变取得了成功:

1. 简化提示: 目标提示被简化,以提供一个单一、明确的 pytest 命令。这消除了代理人的困惑。 1. 使用更强大的模型: 切换到 gpt-4o 该模型提供了必要的推理能力,以克服编码挑战的逻辑复杂性。更强大的模型没有陷入回归循环,能够有效地实现正确的逻辑。

  • 最终结果: 有了精炼的提示和 gpt-4o 模型,代理能够 一次性解决“仿射密码”基准测试,展示了清晰有效的工作流程。还调试了成功报告机制,以正确反映运行结果。

______________________________________________________________________

设置和安装

按照以下步骤设置和运行代理。

先决条件:

1.克隆存储库:

git clone git@github.com:GuyOhm/goal-driven-coding-agent.git
cd goal-driven-coding-agent

2.设置Python环境: 创建并激活虚拟环境。

python -m venv .venv
source .venv/bin/activate

3.安装依赖关系:

uv pip install -r requirements.txt

4.配置环境变量: 复制示例 .env 文件并添加您的OpenAI API密钥。

cp .env.example .env
# Now, edit .env and add your OPENAI_API_KEY

5.启动沙盒环境: 使用Docker Compose启动沙盒MCP服务器。

docker compose -f containers/docker-compose.mcp.yaml up --build -d

这将在后台启动文件系统和执行器容器。

______________________________________________________________________

如何运行代理

完成一个目标

您可以使用以下命令给代理任何编码任务 --goal 争论。

uv run python main.py --goal "Implement a function in `test.py` that returns 'hello world'"

运行基准套件

要针对整个Polyglot Benchmark套件运行代理:

uv run python main.py --benchmarks

将跑步限制在第一次 N 基准:

uv run python main.py --benchmarks --benchmarks-limit 3

使用特定模型(如 gpt-4o):

uv run python main.py --benchmarks --model gpt-4o

停止沙盒

完成后,停止Docker容器:

docker compose -f containers/docker-compose.mcp.yaml down

目录标签

目录标签

PythonAI代理工作流自动化自主代理本地部署编码挑战沙盒环境OpenAISDKMCP协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP