Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

AgentScope Logo

中文主页 | Documentation

discorddocsMaven CentralJDK 17+licenseAsk DeepWiki

What is AgentScope Java 2.0?

AgentScope Java 2.0 is a production-ready framework for building distributed, enterprise-grade agents, providing essential abstractions that work with rising model capability and built-in support for long-running, safely-controlled agent execution.

  • Event System A unified event stream with 28 typed events for real-time frontend rendering and human-in-the-loop.
  • Permission System Tool-call gating: allow / require user approval / deny.
  • Middleware AOP-style hook interception for flexibly extending the reasoning-acting loop.
  • Workspace & Sandbox Run tools in isolated environments — local, Docker, Kubernetes, or AgentRun cloud sandbox.
  • Multi-Agent Orchestration Multiple subagent definition patterns with agent_spawn / agent_send and real-time event forwarding.
  • Distributed Deployment True distributed session and memory management (Redis / MySQL / PostgreSQL / OSS / COS) with cross-replica session recovery.

agentscope

News

  • [2026-07] v2.0.0 GA: First production-ready release! Dual-layer agent architecture, event stream, permission system, middleware, workspace sandbox, multi-agent orchestration, and distributed deployment all ready. Docs | Release Notes
  • [2026-07] v2.0.0-RC5: Model provider modularization; unified DataBlock multimodal support; native structured output; Channel IM integration; Tencent Cloud COS state persistence. Release Notes
  • [2026-06] v2.0.0-RC4: Async tool execution and scheduled wakeup dispatching; subagent cross-replica routing and session recovery. Release Notes
  • [2026-06] v2.0.0-RC3: Unified call() / streamEvents() execution core; AgentResultEvent, CustomEvent, HintBlockEvent new event types. Release Notes
  • [2026-06] v2.0.0-RC2: Fully stateless agent; one-line DistributedBackend; subagent event forwarding; Channel module (DingTalk, Feishu, WeCom); A2A / AG-UI protocol support. Release Notes
  • [2026-05] v2.0.0-RC1: First 2.0 RC — harness engineering, enterprise distributed deployment, event stream / message model / middleware / HITL full redesign. Release Notes
  • [2026-05] v1.1.0: Introduced agentscope-harness and HarnessAgent; Workspace (persona / memory / skills / subagents); pluggable filesystem (local / shared store / sandbox); session persistence with cross-process resume; layered memory and context compaction; declarative subagent orchestration. Release Notes

Community

Welcome to join our community on

DiscordDingTalkWeChat

Quickstart

Installation

AgentScope Java requires JDK 17 or higher.

Maven

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-harness</artifactId>
<version>2.0.0</version>
</dependency>

Model providers are shipped as separate extension modules in 2.0. Add the one you need — for example, DashScope:

<dependency>
<groupId>io.agentscope</groupId>
<artifactId>agentscope-extensions-model-dashscope</artifactId>
<version>2.0.0</version>
</dependency>

Other options: agentscope-extensions-model-openai, agentscope-extensions-model-anthropic, agentscope-extensions-model-gemini, agentscope-extensions-model-ollama. See the Model docs for details.

If you only need a bare ReActAgent without workspace / persistence / sandbox, depend on agentscope-core alone.

Hello AgentScope!

Start your first agent with AgentScope Java 2.0:

importio.agentscope.core.agent.RuntimeContext;
importio.agentscope.core.message.UserMessage;
importio.agentscope.harness.agent.HarnessAgent;
importjava.nio.file.Paths;
publicclassFirstAgent {
publicstaticvoidmain(String[] args) {
HarnessAgentagent = HarnessAgent.builder()
.name("assistant")
.sysPrompt("You are a helpful AI assistant.")
// ModelRegistry resolves the string and reads the matching// API-key env var (e.g. OPENAI_API_KEY) automatically.// Examples: "openai:gpt-4.1", "openai:o3",// "deepseek:deepseek-chat", "dashscope:qwen-plus",// "anthropic:claude-sonnet-4-7", "ollama:llama3"
.model("dashscope:qwen-plus")
// Or pass a ChatModel object directly:// .model(OpenAIChatModel.builder().model("gpt-4.1").build())
.workspace(Paths.get(".agentscope/workspace"))
.build();
RuntimeContextctx = RuntimeContext.builder()
.sessionId("demo").userId("alice").build();
// Blocking callagent.call(newUserMessage("Hello!"), ctx).block();
// Or stream events for real-time UI renderingagent.streamEvents(newUserMessage("Summarize today in three bullets."), ctx)
.doOnNext(event -> {
switch (event.getType()) {
caseTEXT_BLOCK_DELTA -> System.out.print(
((io.agentscope.core.event.TextBlockDeltaEvent) event).getDelta());
caseTOOL_CALL_START -> System.out.println(
"\n[tool] " + ((io.agentscope.core.event.ToolCallStartEvent) event).getToolCallName());
default -> { }
}
})
.blockLast();
}
}

Key Design

AgentScope Java 2.0 is a major step up from a "build an agent" toolkit toward a complete platform for running agents in production. The improvements fall into three focus areas:

1 · Harness Engineering — built for long-running, complex tasks

A bare ReAct loop solves one reasoning turn. HarnessAgent layers engineering infrastructure on top of ReActAgent via Middleware and Toolkit channels — the reasoning core stays untouched, capabilities layer on:

  • Self-evolution & skill repository — successful patterns auto-save as Markdown skills, shared across sessions and loaded on demand
  • Layered memory — in-context conversation + agent-curated MEMORY.md + on-disk fact log, with auto-compaction to bound the prompt
  • Sub-agents — declare child agent specs in Markdown, agent_spawn / agent_send at runtime, sync or background delegation
  • Auto context management — structured compaction preserves goals / state / findings / next steps; oversized tool results offload to disk
  • Plan Mode — read-only planning state for long tasks, plan files persist and drive execution

2 · Enterprise-grade distributed deployment

Production agents must serve many tenants, run untrusted code safely, and survive rolling restarts. AgentScope 2.0 is built for stateless horizontal scaling:

  • Multi-tenant isolationsession / user / agent / org dimension isolation, RuntimeContext keys flow through workspace paths, KV namespaces, and sandbox state slots
  • Secure sandbox — local subprocess / Docker / Kubernetes / E2B cloud sandbox, with snapshot and resume
  • Permission control — three-state engine (allow / approve / deny), sensitive tools require HITL approval
  • Session recoveryAgentStateStore (in-memory / JSON file / MySQL / Redis / PostgreSQL) backs zero-downtime rolling deploys

3 · Foundation framework — a leaner, more developer-friendly core

Messages, events, and the extension model are smaller, more orthogonal — HITL and event streaming are part of how the framework runs, not add-ons:

  • Event stream — 28 typed events covering model calls, text deltas, tool execution, and user confirmations in real time
  • Message model — text / files / images / audio / video / tool results unified into ContentBlock, role-strict validation at construction
  • MiddlewareonAgent / onReasoning / onActing / onModelCall / onSystemPrompt five stages replace v1's flat hooks
  • HITL first class — confirm tool arguments, approve sensitive actions, hand off to external systems, agent pauses and resumes exactly

For the complete architecture overview, see the documentation.

Contributing

We welcome contributions from the community! Please refer to our CONTRIBUTING.md for guidelines on how to contribute.

License

AgentScope is released under Apache License 2.0.

Contributors

All thanks to our contributors:

About

Build distributed, production-grade, long-running agents.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages