Conversation
- Created Docker-based MCP server for Exgentic benchmarks - Supports building images with specific benchmarks (e.g., tau2) - Uses uv for fast package installation - Includes git configuration to handle large repository clones - Benchmark is installed at build time for faster startup - Configurable HOST/PORT via environment variables - Runs as non-root user (UID 1001) - Comprehensive documentation with examples - Successfully tested with tau2 benchmark (114 tasks loaded) Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Modified entrypoint.sh to support EXGENTIC_SET_* environment variables - Environment variables are converted to --set arguments for exgentic mcp command - Format: EXGENTIC_SET_BENCHMARK_USER_SIMULATOR_MODEL -> --set benchmark.user_simulator_model - Updated README with detailed documentation and examples - Added common parameter list and usage examples - Supports setting user_simulator_model, agent_model, max_steps, and other benchmark parameters Signed-off-by: Yoav Katz <katz@il.ibm.com>
Signed-off-by: Yoav Katz <katz@il.ibm.com>
Signed-off-by: Yoav Katz <katz@il.ibm.com>
esnible
left a comment
There was a problem hiding this comment.
Can you add, either to the README, or to this PR, the rationale for adding this to the Kagenti examples? Have you been testing this with Kagenti -- the README only talks about testing with Docker. The instructions talk about different builds but Kagenti builds only once -- do we need those instructions?
- Updated Dockerfile permissions for Kubernetes compatibility (group permissions) - Changed ownership from 1001:1001 to 1001:0 for OpenShift/Kubernetes - Added group read/write/execute permissions (g+rwX) - Added --disable-dns-rebinding-protection flag to allow Kubernetes service access - This fixes the 'Invalid Host header' error when accessing from within cluster Signed-off-by: Yoav Katz <katz@il.ibm.com>
Signed-off-by: Yoav Katz <katz@il.ibm.com>
This PR is related to work. It extends the work done by @kellyaa to add appworld mcp server to encompass in a systematic way multiple benchmarks supported by the Exgentic framework. I added now the references to the related Kagenti issue (kagenti/kagenti#963) and Epic (kagenti/kagenti#962) for clearer context. |
Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Added ENV HOME=/app after USER 1001 to ensure proper home directory - Deleted .env.openai (replaced with benchmark-specific env files) - This ensures tools/libraries write to /app where user has permissions Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Install git-lfs package alongside git - Initialize git-lfs after installation - Update comment to reflect git-lfs requirement Signed-off-by: Yoav Katz <katz@il.ibm.com>
Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Add Dockerfile for building Exgentic agents with A2A protocol support - Add entrypoint.sh for runtime configuration and MCP integration - Add build.sh script with auto-detection of docker/podman - Add comprehensive README with usage examples and configuration - Add .dockerignore for optimized build context - Add .env.example and .env.advanced for configuration templates - Support runtime configuration via EXGENTIC_SET_* environment variables - Implement MCP server integration via --mcp flag - Run as non-root user (UID 1001) for security Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Change build scripts to accept agent/benchmark as positional argument - Replace --no-cache with --use-cache flag (builds without cache by default) - Update argument parsing to support --tag and --use-cache as optional flags - Improve help messages with clearer usage examples - Update README files to reflect new command syntax - Default behavior: builds without cache for consistency - Optional: use --use-cache to enable Docker cache during builds Signed-off-by: Yoav Katz <katz@il.ibm.com>
Signed-off-by: Yoav Katz <katz@il.ibm.com>
- Set HOME=/app before running exgentic install during build - This ensures benchmark data is installed to /app/.exgentic/ instead of /root/.exgentic/ - Fixes runtime error where benchmark data files were not found - Remove duplicate HOME environment variable declaration Signed-off-by: Yoav Katz <katz@il.ibm.com>
… deployment - Changed user UID from 1001 to 1000 to match Kubernetes securityContext - Set home directory to /app during user creation with useradd -d flag - Added explicit HOME=/app environment variable after USER directive - Added HOME export in entrypoint.sh to ensure propagation to child processes - Added TAU2_DATA_DIR environment variable for benchmark data location This fixes the 'RuntimeError: Could not determine home directory' error that occurred when Exgentic spawned child processes in Kubernetes. The issue was caused by a mismatch between the Kubernetes runAsUser (1000) and the Dockerfile user UID (1001), resulting in no /etc/passwd entry for the running process, which prevented Python's Path.expanduser() from resolving the home directory in child processes. Signed-off-by: Yoav Katz <katz@il.ibm.com>
Summary
This PR adds a Docker-based MCP server for Exgentic benchmarks.
For: kagenti/kagenti#963
as part of Epic: kagenti/kagenti#962
Changes
Features
uvfor fast package installationTesting
Built and tested the Docker image:
Usage
Documentation
See
mcp/exgentic_benchmarks/README.mdfor complete documentation including: