Skip to content

Deepagent-code integration demo - #4527

Merged
michalkulakowski merged 29 commits into
mainfrom
mkulakow/deepagents_integration
Oct 8, 2026
Merged

michalkulakowski merged 29 commits into
mainfrom
mkulakow/deepagents_integration

Conversation

@michalkulakowski

@michalkulakowski michalkulakowski commented Sep 9, 2026 •

Copy link
Copy Markdown
Collaborator

🛠 Summary

https://openvino-doc.iotg.sclab.intel.com/deepagents-integration-demo/model-server/ovms_demos_integration_with_deepagents_code.html

🧪 Checklist

  • Unit tests added.
  • The documentation updated.
  • Change follows security best practices.
    ``

Copilot AI lite review requested due to automatic review settings September 9, 2026 09:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The new README is not merge-ready due to multiple placeholder blocks and inconsistent step numbering, and the skill metadata license field should be aligned with the repo license to avoid confusion.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a new demo directory illustrating how to run short “DeepAgents Code” scenarios against OpenVINO Model Server, including local DeepAgents project assets for MCP SDK guidance and a verification subagent profile.

Changes:

  • Introduces a new demo README with end-to-end setup instructions and scenario prompts.
  • Adds project-local DeepAgents assets: an MCP SDK skill, an MCP tester subagent profile, and an MCP server config stub.
  • Adds a demo-scoped .gitignore for common local artifacts.
File summaries
File Description
demos/integration_with_deepagents_code/README.md Documents OVMS + dcode setup and a series of demo scenarios/prompts (currently includes placeholders and inconsistent step numbering).
demos/integration_with_deepagents_code/.gitignore Ignores local virtualenv/log/output folders for the demo directory.
demos/integration_with_deepagents_code/.deepagents/skills/python-mcp-sdk-skill/SKILL.md Adds guidance/template for implementing a Python MCP stdio server with FastMCP.
demos/integration_with_deepagents_code/.deepagents/agents/mcp-tester/AGENTS.md Defines a focused subagent profile to validate an MCP server via static and short runtime checks.
demos/integration_with_deepagents_code/.deepagents/.mcp.json Adds a local MCP server config entry pointing to mcp_server/time_mcp_server.py.
Review details

Suppressed comments (9)

demos/integration_with_deepagents_code/README.md:80

  • This line references Step 1/3/4, but those step headings don’t exist in the document, which makes the instructions ambiguous.
Use this profile for non-MCP steps (Step 1, Step 3, Step 4):

demos/integration_with_deepagents_code/README.md:89

  • This line references “Step 6”, but there is no Step 6 section in the document, so readers can’t tell when to use this profile.
Use this profile for MCP steps (Step 2 and Step 6):

demos/integration_with_deepagents_code/README.md:111

  • This section is titled “Step 2” even though the earlier numbered steps aren’t present (and “Step 3” appears above), so the document’s step ordering is inconsistent.
## Step 2: MCP server creation

demos/integration_with_deepagents_code/README.md:109

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT

demos/integration_with_deepagents_code/README.md:115

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT

demos/integration_with_deepagents_code/README.md:126

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT

demos/integration_with_deepagents_code/README.md:157

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT

demos/integration_with_deepagents_code/README.md:164

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT

demos/integration_with_deepagents_code/README.md:188

  • User-facing documentation shouldn’t ship with placeholder text; it makes the demo incomplete and harder to follow.
PLACEHOLDER FOR SCREENSHOT
  • Files reviewed: 5/5 changed files
  • Comments generated: 5
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One or more issues must be addressed before approval.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (4)

demos/integration_with_deepagents_code/.gitignore:3

  • The validation instructions in AGENTS.md run python -m py_compile, which creates __pycache__ under the generated server directory. This ignore file does not exclude that bytecode, so each validation run adds generated artifacts to the demo's git working tree; add __pycache__/.
outputs/

demos/integration_with_deepagents_code/README.md:252

  • This MCP-task example repeats invalid dcode filesystem tool names (list_dir, grep_search, and file_search), so the command fails argument validation instead of starting. Use the actual names exposed by dcode's filesystem middleware.
  --allow-fs-tools read_file,list_dir,grep_search,file_search

demos/integration_with_deepagents_code/README.md:116

  • execute is enabled and the shell allow-list includes python, python3, and timeout; these can run arbitrary Python or wrap another executable. As a result, this is not a safety boundary for an agent running on the host and can bypass the intended filesystem/tool restrictions. Run dcode in a real sandbox/container, or explicitly document that this command grants arbitrary host-code execution instead of presenting the list as command safety.
  -S python,python3,timeout,cat,grep,ls \

demos/integration_with_deepagents_code/README.md:118

  • --trust-project-mcp skips DeepAgents Code's project-MCP approval gate and automatically trusts the committed stdio command, which executes the repo-controlled mcp_server/time_mcp_server.py. Running this from an untrusted checkout can therefore execute arbitrary Python before the user reviews the server; omit this bypass and have the user approve only time-server, or add a prominent warning to audit the project config and generated file first.
  --trust-project-mcp
  • Files reviewed: 6/17 changed files
  • Comments generated: 5
  • Review effort level: Lite

Comment thread demos/integration_with_deepagents_code/README.md
Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Moderate issues remain with runtime validation, environment setup, and OVMS version compatibility.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details

Suppressed comments (3)

demos/integration_with_deepagents_code/.deepagents/agents/mcp-tester/AGENTS.md:19

  • The only runtime check starts the script and waits for up to two seconds; it never performs MCP initialization or calls tools/list/tools/call. The 124 rule can therefore report PASS for a server that is hung, slow to initialize, or unable to serve tools, so this does not verify the runtime behavior claimed by the demo. Add a small MCP stdio readiness/tool-call probe, or narrow the claim to process startup.
- Run a short startup check: `timeout 2s python <server_path>`.

demos/integration_with_deepagents_code/.deepagents/skills/python-mcp-sdk-skill/SKILL.md:54

  • The required time tool returns the current time, but this quality rule requires all outputs to be deterministic. Those instructions conflict and can lead the agent to freeze or mock the timestamp. Require a stable machine-readable format/schema instead, while explicitly allowing the time value to vary.
- Keep tool outputs deterministic and machine-readable.

demos/integration_with_deepagents_code/README.md:43

  • The Qwen3.8-27B model used here is documented in demos/continuous_batching/speculative_decoding/README.md:29 as requiring OVMS 2026.4 or a weekly build, but these commands use the floating latest-gpu tag. On hosts whose tag predates that support, the model deployment will fail; use an explicit compatible tag or state and enforce the required OVMS version consistently for all five commands.
  -v ${HOME}/models:/models openvino/model_server:latest-gpu \
  --pull --source_model OpenVINO/Qwen3.8-27B-int4-ov --task text_generation --model_repository_path /models
  • Files reviewed: 6/17 changed files
  • Comments generated: 3
  • Review effort level: Lite

Comment thread demos/integration_with_deepagents_code/README.md Outdated
@@ -0,0 +1,3 @@
.env/
logs/
outputs/
Comment thread demos/integration_with_deepagents_code/README.md
@przepeck
przepeck requested a review from pgladkows September 18, 2026 08:06
Comment thread demos/integration_with_deepagents_code/README.md Outdated
:sync: Linux
```bash
mkdir -p ${HOME}/models
export GPU_ARGS=$(if ls /dev/dri/render* >/dev/null 2>&1; then echo "--device /dev/dri --group-add $(stat -c '%g' /dev/dri/render* | head -n1)"; fi)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this should be a part of model deployment command

:::
:::{tab-item} Windows
:sync: Windows
```powershell

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use c:\models

:::
:::{tab-item} Windows
:sync: Windows
```powershell

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on windows should be use binary deployment - not docker

:::{tab-item} Linux
:sync: Linux
```bash
docker run --rm ${GPU_ARGS} -u $(id -u):$(id -g) \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why using so many models in this demo? Maybe it should be set that this is example models and it can be swapped

:::{tab-item} Linux
:sync: Linux
```bash
export OPENAI_API_KEY=not_used

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should use a real api key like my-key also in ovms


The MCP server script is missing. Ask the agent to create it using the project skill located at `.deepagents/skills/python-mcp-sdk-skill/SKILL.md`. Invoking a skill with `/skill:<name>` gives the agent a focused, tested recipe instead of relying on generic knowledge:

```bash

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not bash command...

Non-MCP tasks:

```bash
dcode --model openai:OpenVINO/Qwen3.8-27B-int4-ov \

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be executed non interactively so it could be tested?
Otherwise it shouldn't be bash command here

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why this error is included?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need so many screenshots? maybe short gif or some compressed video would be better? 12 images about ~1.5MB

Requirements:
- Linux or Windows
- Python 3.12+
- Docker (Docker Engine on Linux, Docker Desktop on Windows)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what HW is needed and how much RAM

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment thread demos/integration_with_deepagents_code/README.md Outdated
Comment thread demos/integration_with_deepagents_code/README.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Unresolved endpoint exposure and readiness-check issues need to be addressed before approval.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity · 1 Low severity

Open (2)
Resolved since last review (5)
Previously missed (1)

In code that hasn't changed since last review

Low severity Link directly to the bare-metal deployment guide

demos/​integration_with_deepagents_code/​README.md:27

This link targets the generic deployment page with a fragment that does not exist; the bare-metal page is a separate generated page (docs/deploying_server_baremetal.md, anchor ovms_docs_deploying_server_baremetal). As written, the Windows installation prerequisite does not take users to the referenced guide. Link directly to https://docs.openvino.ai/2026/model-server/ovms_docs_deploying_server_baremetal.html.

```bash
export GPU_ARGS=$(if ls /dev/dri/render* >/dev/null 2>&1; then echo "--device /dev/dri --group-add $(stat -c '%g' /dev/dri/render* | head -n1)"; fi)
docker run -d ${GPU_ARGS} -u $(id -u):$(id -g) \
-v ${HOME}/models:/models -p 8000:8000 openvino/model_server:latest-gpu \

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Moderate validation, platform compatibility, setup, and model-readiness issues remain unresolved.

Review effort: Lite
Findings: 1 High severity · 1 Medium severity · 3 Low severity

Open (5)


What this subagent is responsible for:
- Inspect the target server script.
- Verify required elements exist: FastMCP usage, at least one @mcp.tool, and stdio run call.
Comment on lines +376 to +380
**time_mcp_server.py — MCP Test Results: All PASSED ✅**

| Check | Result |
|---|---|
| Script Structure | ✅ FastMCP, 2 tools, `mcp.run(transport="stdio")` |

Current UTC date: `2026-09-30`

Full datetime: **Tuesday, September 30, 2026 at 14:00:12 UTC**
@michalkulakowski
michalkulakowski force-pushed the mkulakow/deepagents_integration branch from 5a5774f to e8c88d0 Compare October 1, 2026 10:52

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:sync: Windows
```bat
mkdir c:\models
ovms.exe --source_model OpenVINO/Qwen3.8-27B-int4-ov --model_repository_path c:\models --model_name OpenVINO/Qwen3.8-27B-int4-ov --rest_port 8000
Comment on lines +82 to +87
```bat
set OPENAI_API_KEY=not_used
set OPENAI_BASE_URL=http://localhost:8000/v1
set TAVILY_API_KEY=not_used
set DEEPAGENTS_CODE_PRICES_AUTO_UPDATE=0
set DEMO_DIR=%CD%
Comment thread demos/integrations.md Outdated
michalkulakowski and others added 2 commits October 2, 2026 15:24
…de branding'

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Unresolved moderate findings affect platform compatibility, model startup, validation correctness, and documented workflow behavior.

Review effort: Lite
Findings: 1 High severity · 3 Medium severity · 3 Low severity

Open (7)
Resolved since last review (1)
Previously missed (1)

In code that hasn't changed since last review

Low severity Require read-only annotations for the new date tool

demos/​integration_with_deepagents_code/​README.md:302

The --rubric does not require the new date tool to carry the read-only annotations required by SKILL.md. A rubric-compliant implementation can add a plain @mcp.tool, pass this headless step, and then fail Step 7 with the documented approval error; require readOnlyHint=true and destructiveHint=false for the new tool here.

Michal Kulakowski added 4 commits October 7, 2026 12:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mkdir -p ${HOME}/models
export GPU_ARGS=$(if ls /dev/dri/render* >/dev/null 2>&1; then echo "--device /dev/dri --group-add $(stat -c '%g' /dev/dri/render* | head -n1)"; fi)
docker run -d ${GPU_ARGS} -u $(id -u):$(id -g) \
-v ${HOME}/models:/models -p 8000:8000 openvino/model_server:latest-gpu \
Michal Kulakowski added 4 commits October 8, 2026 10:45
@michalkulakowski
michalkulakowski merged commit a789486 into main Oct 8, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants