Skip to content

Commit 3d48026

Browse files
committed
Add amber manifest
1 parent 5910fd2 commit 3d48026

File tree

2 files changed

+57
-3
lines changed

2 files changed

+57
-3
lines changed

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ src/
1212
└─ messenger.py # A2A messaging utilities
1313
tests/
1414
└─ test_agent.py # Agent tests
15-
Dockerfile # Docker configuration
16-
pyproject.toml # Python dependencies
15+
Dockerfile # Docker configuration
16+
pyproject.toml # Python dependencies
17+
amber-manifest.json5 # Amber manifest
1718
.github/
1819
└─ workflows/
1920
└─ test-and-publish.yml # CI workflow
@@ -27,7 +28,9 @@ pyproject.toml # Python dependencies
2728

2829
3. **Configure your agent card** - Fill in your agent's metadata (name, skills, description) in [`src/server.py`](src/server.py)
2930

30-
4. **Write your tests** - Add custom tests for your agent in [`tests/test_agent.py`](tests/test_agent.py)
31+
4. **Fill out your [Amber](https://github.com/RDI-Foundation/amber) manifest** - Update [`amber-manifest.json5`](amber-manifest.json5) to use your agent in Amber scenarios
32+
33+
5. **Write your tests** - Add custom tests for your agent in [`tests/test_agent.py`](tests/test_agent.py)
3134

3235
For a concrete example of implementing a green agent using this template, see this [draft PR](https://github.com/RDI-Foundation/green-agent-template/pull/3).
3336

amber-manifest.json5

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
manifest_version: "0.1.0",
3+
4+
// TODO: Declare all config your agent needs from the deployer
5+
// Use secret: true for sensitive values like API keys
6+
config_schema: {
7+
type: "object",
8+
properties: {
9+
my_api_key: { type: "string", secret: true },
10+
},
11+
required: ["my_api_key"],
12+
additionalProperties: false,
13+
},
14+
15+
// External services this agent uses
16+
slots: {
17+
proxy: { kind: "a2a", optional: true },
18+
},
19+
20+
// Runtime configuration
21+
program: {
22+
// TODO: Replace with your docker image
23+
image: "ghcr.io/<your-username>/<your-repo-name>:latest",
24+
entrypoint: "uv run python src/server.py --host 0.0.0.0 --port 9009",
25+
26+
// TODO: Pass config values as environment variables
27+
env: {
28+
MY_API_KEY: "${config.my_api_key}",
29+
},
30+
31+
network: {
32+
endpoints: [
33+
{ name: "a2a_endpoint", port: 9009 }, // ensure port matches your entrypoint
34+
],
35+
},
36+
},
37+
38+
// Capabilities provided by this agent
39+
provides: {
40+
a2a: { kind: "a2a", endpoint: "a2a_endpoint" },
41+
},
42+
43+
// Capabilities exposed to the scenario
44+
exports: { a2a: "a2a" },
45+
46+
// TODO: Describe the assessment request your green agent receives
47+
metadata: {
48+
assessment_config: {}, // replace with your default assessment parameters, e.g. {"num_rounds": 2}
49+
participant_roles: [], // list the roles your green agent expects, e.g. ["pro_debater", "con_debater"]
50+
},
51+
}

0 commit comments

Comments
 (0)