Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading
, '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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
43 changes: 33 additions & 10 deletions src/assets/AGENTS.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,27 +2,47 @@

This directory stores:

- Template assets for agents written in different Languages, SDKs and having different configurations
- Template assets for agents written in different languages, SDKs, and configurations
- Container templates (`container/python/`) with `Dockerfile` and `.dockerignore` for Container build agents
- Vended documentation (`README.md`, `agents/AGENTS.md`) copied into user projects at create time
- CDK project template (`cdk/`) using `@aws/agentcore-cdk` L3 constructs
- Evaluator templates (`evaluators/`) for code-based evaluators
- MCP tool templates (`mcp/`) for Lambda and AgentCoreRuntime compute

### Directory Layout

```
assets/
├── python/ # Framework templates (one per SDK)
│ ├── strands/
│ ├── langchain_langgraph/
│ ├── googleadk/
│ ├── openaiagents/
│ └── autogen/
├── README.md # Vended to project root as project README
├── AGENTS.md # This file — internal dev context
├── agents/
│ └── AGENTS.md # Vended to project root for AI coding assistants
├── python/ # Framework templates (one per SDK per protocol)
│ ├── http/ # HTTP protocol agents
│ │ ├── strands/
│ │ ├── langchain_langgraph/
│ │ ├── googleadk/
│ │ ├── openaiagents/
│ │ └── autogen/
│ ├── mcp/ # MCP protocol agents
│ │ └── standalone/
│ └── a2a/ # A2A protocol agents
│ ├── strands/
│ ├── langchain_langgraph/
│ └── googleadk/
├── typescript/ # TypeScript agent templates
├── container/ # Container build templates
│ └── python/
│ ├── Dockerfile
│ └── dockerignore.template
└── agents/ # AGENTS.md vended to user projects
├── cdk/ # CDK project template (@aws/agentcore-cdk)
├── evaluators/ # Code-based evaluator templates
└── mcp/ # MCP tool templates (Lambda + AgentCoreRuntime)
├── python/
└── python-lambda/
```

The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the Spec.
The rendering logic is rooted in the `AgentEnvSpec` and must ALWAYS respect the configuration in the spec.

For Container builds, `BaseRenderer.render()` automatically copies the `container/<language>/` templates (Dockerfile,
.dockerignore) into the agent directory when `buildType === 'Container'`.
Expand All@@ -31,7 +51,10 @@ For Container builds, `BaseRenderer.render()` automatically copies the `containe

- Always make sure the templates are as close to working code as possible
- AVOID as much as possible using any conditionals within the templates
- Test template rendering with `agentcore add agent` for each framework/protocol combination

## How to use the assets in this directory

- These assets are rendered by the CLI's template renderer in `src/cli/templates/`.
- These assets are rendered by the CLI's template renderer in `src/cli/templates/`
- The `README.md` and `agents/AGENTS.md` are copied verbatim (no template rendering) during project creation
- The `.llm-context/` files are sourced from `src/schema/llm-compacted/` and written during init
87 changes: 56 additions & 31 deletions src/assets/README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -5,22 +5,29 @@ This project was created with the [AgentCore CLI](https://github.com/aws/agentco
## Project Structure

```
.
my-project/
├── AGENTS.md # AI coding assistant context
├── agentcore/
│ ├── .env.local # API keys (gitignored)
│ ├── agentcore.json # Resource specifications
│ ├── aws-targets.json # Deployment targets
│ └── cdk/ # CDK infrastructure
├── app/ # Application code
│ ├── agentcore.json # Project config (agents, memories, credentials, gateways, evaluators)
│ ├── aws-targets.json # Deployment targets (account + region)
│ ├── .env.local # Secrets — API keys (gitignored)
│ ├── .llm-context/ # TypeScript type definitions for AI assistants
│ │ ├── agentcore.ts # AgentCoreProjectSpec types
│ │ ├── aws-targets.ts # Deployment target types
│ │ └── mcp.ts # Gateway and MCP tool types
│ └── cdk/ # CDK infrastructure (@aws/agentcore-cdk)
├── app/ # Agent application code
└── evaluators/ # Custom evaluator code (if any)
```

## Getting Started

### Prerequisites

- **Node.js** 20.x or later
- **uv** for Python agents ([install](https://docs.astral.sh/uv/getting-started/installation/))
- **Python 3.10+** and **uv** for Python agents ([install uv](https://docs.astral.sh/uv/getting-started/installation/))
- **AWS credentials** configured (`aws configure` or environment variables)
- **Docker** (only for Container build agents)

### Development

Expand All@@ -38,42 +45,60 @@ Deploy to AWS:
agentcore deploy
```

Or use CDK directly:
## Commands

```bash
cd agentcore/cdk
npx cdk deploy
```
| Command | Description |
| --- | --- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, gateway, evaluator, policy) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally with hot-reload |
| `agentcore deploy` | Deploy to AWS via CDK |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore logs` | View agent logs |
| `agentcore traces` | View agent traces |
| `agentcore eval` | Run evaluations |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore pause` | Pause a deployed agent |
| `agentcore resume` | Resume a paused agent |
| `agentcore fetch` | Fetch remote resource definitions |
| `agentcore import` | Import existing resources |
| `agentcore update` | Check for CLI updates |

## Configuration

Edit the JSON files in `agentcore/` to configure your agents, memory, and credentials. See `agentcore/.llm-context/` for
type definitions and validation constraints.
Edit the JSON files in `agentcore/` to configure your project. See `agentcore/.llm-context/` for type definitions and validation constraints.

The project uses a **flat resource model** where agents, memories, and credentials are top-level arrays in
`agentcore.json`.
The project uses a **flat resource model** — agents, memories, credentials, gateways, evaluators, and policies are top-level arrays in `agentcore.json`. Resources are independent; agents discover memories and credentials at runtime via environment variables or SDK calls.

## Commands
## Resources

| Command | Description |
| -------------------- | ----------------------------------------------- |
| `agentcore create` | Create a new AgentCore project |
| `agentcore add` | Add resources (agent, memory, credential, target) |
| `agentcore remove` | Remove resources |
| `agentcore dev` | Run agent locally |
| `agentcore deploy` | Deploy to AWS |
| `agentcore status` | Show deployment status |
| `agentcore invoke` | Invoke agent (local or deployed) |
| `agentcore package` | Package agent artifacts |
| `agentcore validate` | Validate configuration |
| `agentcore update` | Check for CLI updates |
| Resource | Purpose |
| --- | --- |
| Agent (runtime) | HTTP, MCP, or A2A agent deployed to AgentCore Runtime |
| Memory | Persistent context storage with configurable strategies |
| Credential | API key or OAuth credential providers |
| Gateway | MCP gateway that routes tool calls to targets |
| Gateway Target | Tool implementation (Lambda, MCP server, OpenAPI, Smithy, API Gateway) |
| Evaluator | Custom LLM-as-a-Judge or code-based evaluation |
| Online Eval Config | Continuous evaluation pipeline for deployed agents |
| Policy | Cedar authorization policies for gateway tools |

### Agent Types

- **Template agents**: Created from framework templates (Strands, LangChain_LangGraph, CrewAI, GoogleADK, OpenAIAgents)
- **Template agents**: Created from framework templates (Strands, LangChain/LangGraph, GoogleADK, OpenAI Agents, Autogen)
- **BYO agents**: Bring your own code with `agentcore add agent --type byo`
- **Import agents**: Import existing Bedrock agents with `agentcore import`

### Build Types

- **CodeZip**: Python source packaged as a zip and deployed directly to AgentCore Runtime
- **Container**: Docker image built via CodeBuild (ARM64), pushed to ECR, and deployed to AgentCore Runtime

## Documentation

- [AgentCore CLI Documentation](https://github.com/aws/agentcore-cli)
- [AgentCore CLI](https://github.com/aws/agentcore-cli)
- [AgentCore CDK Constructs](https://github.com/aws/agentcore-l3-cdk-constructs)
- [Amazon Bedrock AgentCore](https://aws.amazon.com/bedrock/agentcore/)
Loading
Loading