Skip to content
Open
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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ async def main():
asyncio.run(main())
```

For the complete workflow with provider selection and advanced features, see [`examples/04_full_workflow/`](examples/04_full_workflow/).
For the complete workflow with provider selection and advanced features, see [`examples/07_full_workflow.py`](examples/07_full_workflow.py).

### Use Utilities Directly

Expand Down
6 changes: 3 additions & 3 deletions docs/APPLICATION_INTEGRATION_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Every Amplifier application follows this core pattern, regardless of application
### Minimal Example

```python
from amplifier_core import load_bundle
from amplifier_foundation import load_bundle

# Steps 1-3: Once at startup
bundle = await load_bundle("./bundle.md")
Expand Down Expand Up @@ -143,7 +143,7 @@ bundle:

includes:
- bundle: git+https://github.com/microsoft/amplifier-foundation@main
- behavior: my-app:behaviors/domain-expert
- bundle: my-app:behaviors/domain-expert

session:
orchestrator: {module: loop-streaming}
Expand All @@ -160,7 +160,7 @@ You are a helpful domain expert.
Build bundles in Python at startup. Good for dynamic configuration based on environment, user, or runtime conditions.

```python
from amplifier_core import Bundle
from amplifier_foundation import Bundle

base = Bundle(
name="my-app",
Expand Down
4 changes: 2 additions & 2 deletions docs/BUNDLE_GUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -917,7 +917,7 @@ tools:

# Control what tools spawned agents inherit
spawn:
exclude_tools: [tool-task] # Agents inherit all EXCEPT these
exclude_tools: [tool-delegate] # Agents inherit all EXCEPT these
# OR use explicit list:
# tools: [tool-a, tool-b] # Agents get ONLY these tools

Expand Down Expand Up @@ -1310,5 +1310,5 @@ amplifier-bundle-recipes/

- **[amplifier-bundle-recipes](https://github.com/microsoft/amplifier-bundle-recipes)** - Canonical example of thin bundle + behavior pattern
- **[URI Formats](URI_FORMATS.md)** - Complete source URI documentation
- **[Validation](VALIDATION.md)** - Bundle validation rules
- **[Validation](API_REFERENCE.md)** - Bundle validation rules
- **[API Reference](API_REFERENCE.md)** - Programmatic bundle loading
24 changes: 12 additions & 12 deletions docs/PATTERNS.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ In `agents/bug-hunter.md`:

```markdown
---
agent:
meta:
name: bug-hunter
description: Finds and fixes bugs

Expand Down Expand Up @@ -278,44 +278,44 @@ result = await prepared.spawn(
### Controlling Agent Tool Inheritance

By default, spawned agents inherit all tools from their parent. Configure tool inheritance
in the task tool's config section:
in the delegate tool's config section:

```yaml
# In your bundle.md
tools:
- module: tool-task
source: git+https://github.com/microsoft/amplifier-module-tool-task@main
- module: tool-delegate
source: git+https://github.com/microsoft/amplifier-foundation@main#subdirectory=modules/tool-delegate
config:
exclude_tools: [tool-task] # Agents inherit all EXCEPT these
exclude_tools: [tool-delegate] # Agents inherit all EXCEPT these
```

Or specify an explicit allowlist:

```yaml
tools:
- module: tool-task
- module: tool-delegate
config:
inherit_tools: [tool-filesystem, tool-bash] # Agents get ONLY these
```

**Common pattern**: Prevent agents from delegating further:

```yaml
# Coordinator has task tool for orchestration
# Coordinator has delegate tool for orchestration
tools:
- module: tool-filesystem
- module: tool-bash
- module: tool-task
- module: tool-delegate
config:
exclude_tools: [tool-task] # Spawned agents can't delegate
exclude_tools: [tool-delegate] # Spawned agents can't delegate
```

This ensures agents do the work themselves rather than trying to spawn sub-agents.

**Design rationale**: Tool inheritance config belongs in tool-task's config section because:
- The task tool is the module that consumes this config
**Design rationale**: Tool inheritance config belongs in tool-delegate's config section because:
- The delegate tool is the module that consumes this config
- Follows the pattern of all other tool configs
- Without tool-task mounted, this config is meaningless
- Without tool-delegate mounted, this config is meaningless
- Standard module-config merge rules apply during bundle composition

### Agent Resolution Pattern
Expand Down