Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ecd6974
Fix tool_call_id loss in unified memory message round-trip
alcholiclg Aug 4, 2026
f8ce706
Pair tool results with pending calls when tool_call_id is missing in …
alcholiclg Aug 4, 2026
a7b86ec
Seal errored rounds so resume consumes the next prompt instead of rep…
alcholiclg Aug 4, 2026
0686305
Skip LLM call retries for non-retryable 4xx client errors
alcholiclg Aug 4, 2026
977d16b
Dedupe identical per-round error records in SessionLog
alcholiclg Aug 4, 2026
4b5f976
Use native Windows shell semantics in the local code executor
alcholiclg Aug 4, 2026
0ae7224
Infer provider from model name only when no service is configured
alcholiclg Aug 6, 2026
738640e
Ingest a round's memory before the blocking interactive input wait
alcholiclg Aug 10, 2026
ed01753
Release the mem0 vector client on close and log ingestion failures
alcholiclg Aug 10, 2026
18bfe05
Merge branch 'main' of https://github.com/modelscope/ms-agent into fi…
alcholiclg Aug 10, 2026
4335a8b
Let a handler that supports it receive a round's parallel permission …
alcholiclg Aug 10, 2026
c1654a5
Report each parallel tool call's completion as it finishes, not after…
alcholiclg Aug 10, 2026
1100a38
Take memory ingestion off the turn's critical path
alcholiclg Aug 10, 2026
41cfac2
Ingest memory on closing rounds only, and give shared stores an owner…
alcholiclg Aug 10, 2026
313a232
Make mem0 recall size configurable (recall_top_k)
alcholiclg Aug 11, 2026
e2d284b
Build the system prompt from live workspace files (SOUL/AGENTS/PROFIL…
alcholiclg Aug 13, 2026
2712ff7
Attach vector recall durably to each user turn and keep the file back…
alcholiclg Aug 13, 2026
e66e382
Ship agent_hub default configs in the wheel and merge the project con…
alcholiclg Aug 13, 2026
6d07904
Merge remote-tracking branch 'upstream/main' into fix/runtime-robustness
alcholiclg Aug 13, 2026
ec2816c
Remove the memory section from the prompt when memory is cleared or i…
alcholiclg Aug 13, 2026
67a07b1
fix ut
alcholiclg Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ include requirements.txt
recursive-include requirements *.txt
recursive-include ms_agent/ *.yaml

# agent_hub cross-framework conversion templates (markdown, not yaml)
recursive-include ms_agent/agent_hub/default_configs *

# Include projects
recursive-include projects *

Expand Down
46 changes: 9 additions & 37 deletions ms_agent/agent/agent.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,43 +12,15 @@ generation_config:
enable_thinking: false

prompt:
system: |
You are an assistant that helps me complete tasks. You need to follow these instructions:

1. Analyze whether my requirements need tool-calling. If no tools are needed, you can think directly and provide an answer.

2. I will give you many tools, some of which are similar. Please carefully analyze which tool you currently need to invoke.
* If tools need to be invoked, you must call at least one tool in each round until the requirement is completed.
* If you get any useful links or images from the tool calling, output them with your answer as well.
* Check carefully the tool result, what it contains, whether it has information you need.

3. You DO NOT have built-in geocode/coordinates/links. Do not output any fake geocode/coordinates/links. Always query geocode/coordinates/links from tools first!

4. If you need to complete coding tasks, you need to carefully analyze the original requirements, provide detailed requirement analysis, and then complete the code writing.

5. This conversation is NOT for demonstration or testing purposes. Answer it as accurately as you can.

6. Do not call tools carelessly. Show your thoughts **as detailed as possible**.

7. Respond in the same language the user uses. If the user switches, switch accordingly.

For requests that require performing a specific task or retrieving information, using the following format:
```
The user needs to ...
I have analyzed this request in detail and broken it down into the following steps:
...
```
If you have tools which may help you to solve problems, follow this format to answer:
```
The user needs to ...
I have analyzed this request in detail and broken it down into the following steps:
...
First, I should use the [Tool Name] because [explain relevance]. The required input parameters are: ...
...
I have carefully reviewed the tool's output. The result does/does not fully meet my expectations. Next, I need to ...
```

**Important: Always respond in the same language the user is using.**
# Unset -> built-in base prompt (prompting/builtin.py BASE_AGENT_PROMPT).
# A value replaces that layer only; SOUL/AGENTS/PROFILE.md still apply.
# Always present, so test the value, not `hasattr`.
system:

personalization:
# Opt in to the user's workspace files (SOUL/AGENTS/PROFILE.md).
# Default is false, so self-contained yamls stay unaffected.
enabled: true

max_chat_round: 9999

Expand Down
23 changes: 14 additions & 9 deletions ms_agent/agent/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,20 @@ def __init__(self,
# anchored to the project (the work dir), not the config file's
# directory. This keeps running a shared/template config from picking up
# (or scattering) overrides in that config's folder.
try:
from omegaconf import OmegaConf

from ms_agent.config.resolver import ConfigResolver
patch = ConfigResolver()._load_project_patch(self.output_dir)
if patch is not None:
self.config = OmegaConf.merge(self.config, patch)
except Exception:
pass
# Skipped when ConfigResolver.resolve() already merged the patch (it
# marks the config): merging twice here re-applied the patch ON TOP of
# caller-side overrides, silently making the project patch the highest
# priority layer.
if not getattr(self.config, '_project_patch_applied', False):
try:
from omegaconf import OmegaConf

from ms_agent.config.resolver import ConfigResolver
patch = ConfigResolver()._load_project_patch(self.output_dir)
if patch is not None:
self.config = OmegaConf.merge(self.config, patch)
except Exception:
pass

@abstractmethod
async def run(
Expand Down
Loading
Loading