@xn-intenton-z2a/agentic-lib 7.4.0 → 7.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/agentic-lib-init.yml +25 -21
- package/README.md +32 -11
- package/bin/agentic-lib.js +4 -4
- package/package.json +1 -1
- package/src/actions/commit-if-changed/action.yml +12 -6
- package/src/mcp/server.js +1 -1
- package/src/scripts/push-to-logs.sh +23 -4
- package/src/seeds/missions/2-dan-create-agi.md +22 -0
- package/src/seeds/missions/4-kyu-analyze-json-schema-diff.md +4 -0
- package/src/seeds/missions/5-kyu-create-ascii-face.md +4 -0
- package/src/seeds/missions/8-kyu-remember-hello-world.md +3 -0
- package/src/seeds/zero-package.json +1 -1
- package/src/seeds/zero-MISSION-empty.md +0 -3
- /package/src/seeds/missions/{c64-emulator.md → 1-dan-create-c64-emulator.md} +0 -0
- /package/src/seeds/missions/{ray-tracer.md → 1-kyu-create-ray-tracer.md} +0 -0
- /package/src/seeds/missions/{plot-code-lib.md → 2-kyu-create-plot-code-lib.md} +0 -0
- /package/src/seeds/missions/{markdown-compiler.md → 2-kyu-evaluate-markdown-compiler.md} +0 -0
- /package/src/seeds/missions/{lunar-lander.md → 3-kyu-analyze-lunar-lander.md} +0 -0
- /package/src/seeds/missions/{owl-ontology.md → 3-kyu-evaluate-owl-ontology.md} +0 -0
- /package/src/seeds/missions/{time-series-lab.md → 3-kyu-evaluate-time-series-lab.md} +0 -0
- /package/src/seeds/missions/{cron-engine.md → 4-kyu-apply-cron-engine.md} +0 -0
- /package/src/seeds/missions/{dense-encoding.md → 4-kyu-apply-dense-encoding.md} +0 -0
- /package/src/seeds/missions/{string-utils.md → 5-kyu-apply-string-utils.md} +0 -0
- /package/src/seeds/missions/{hamming-distance.md → 6-kyu-understand-hamming-distance.md} +0 -0
- /package/src/seeds/missions/{roman-numerals.md → 6-kyu-understand-roman-numerals.md} +0 -0
- /package/src/seeds/missions/{fizz-buzz.md → 7-kyu-understand-fizz-buzz.md} +0 -0
- /package/src/seeds/missions/{empty.md → 8-kyu-remember-empty.md} +0 -0
|
@@ -27,7 +27,7 @@ on:
|
|
|
27
27
|
mission-seed:
|
|
28
28
|
type: string
|
|
29
29
|
required: false
|
|
30
|
-
default: "hamming-distance"
|
|
30
|
+
default: "6-kyu-understand-hamming-distance"
|
|
31
31
|
mission-text:
|
|
32
32
|
type: string
|
|
33
33
|
required: false
|
|
@@ -64,22 +64,26 @@ on:
|
|
|
64
64
|
description: "Mission seed name (purge only)"
|
|
65
65
|
type: choice
|
|
66
66
|
required: false
|
|
67
|
-
default: "hamming-distance"
|
|
67
|
+
default: "6-kyu-understand-hamming-distance"
|
|
68
68
|
options:
|
|
69
|
-
- hamming-distance
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
- dense-encoding
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
69
|
+
- 6-kyu-understand-hamming-distance
|
|
70
|
+
- 2-dan-create-agi
|
|
71
|
+
- 5-kyu-create-ascii-face
|
|
72
|
+
- 1-dan-create-c64-emulator
|
|
73
|
+
- 4-kyu-apply-cron-engine
|
|
74
|
+
- 4-kyu-apply-dense-encoding
|
|
75
|
+
- 7-kyu-understand-fizz-buzz
|
|
76
|
+
- 8-kyu-remember-hello-world
|
|
77
|
+
- 4-kyu-analyze-json-schema-diff
|
|
78
|
+
- 3-kyu-analyze-lunar-lander
|
|
79
|
+
- 2-kyu-evaluate-markdown-compiler
|
|
80
|
+
- 3-kyu-evaluate-owl-ontology
|
|
81
|
+
- 2-kyu-create-plot-code-lib
|
|
82
|
+
- 1-kyu-create-ray-tracer
|
|
83
|
+
- 6-kyu-understand-roman-numerals
|
|
84
|
+
- 5-kyu-apply-string-utils
|
|
85
|
+
- 3-kyu-evaluate-time-series-lab
|
|
86
|
+
- 8-kyu-remember-empty
|
|
83
87
|
mission-text:
|
|
84
88
|
description: "Freeform mission text for MISSION.md (overrides mission-seed if provided)"
|
|
85
89
|
type: string
|
|
@@ -136,7 +140,7 @@ jobs:
|
|
|
136
140
|
runs-on: ubuntu-latest
|
|
137
141
|
env:
|
|
138
142
|
INIT_MODE: ${{ inputs.mode }}
|
|
139
|
-
INIT_MISSION_SEED: ${{ inputs.mission-seed || 'hamming-distance' }}
|
|
143
|
+
INIT_MISSION_SEED: ${{ inputs.mission-seed || '6-kyu-understand-hamming-distance' }}
|
|
140
144
|
INIT_MISSION_TEXT: ${{ inputs.mission-text }}
|
|
141
145
|
steps:
|
|
142
146
|
- uses: actions/checkout@v6
|
|
@@ -250,10 +254,10 @@ jobs:
|
|
|
250
254
|
|
|
251
255
|
const SCHEDULE_MAP = {
|
|
252
256
|
off: null,
|
|
253
|
-
weekly: '
|
|
254
|
-
daily: '
|
|
255
|
-
hourly: '
|
|
256
|
-
continuous: '5,
|
|
257
|
+
weekly: '25 6 * * 1',
|
|
258
|
+
daily: '25 6 * * *',
|
|
259
|
+
hourly: '25 * * * *',
|
|
260
|
+
continuous: '5,25,45 * * * *',
|
|
257
261
|
};
|
|
258
262
|
|
|
259
263
|
if (fs.existsSync(workflowPath)) {
|
package/README.md
CHANGED
|
@@ -243,7 +243,7 @@ All task commands accept these flags:
|
|
|
243
243
|
| `--dry-run` | off | Show the prompt without calling the Copilot SDK |
|
|
244
244
|
| `--target <path>` | current directory | Target repository to transform |
|
|
245
245
|
| `--model <name>` | `claude-sonnet-4` | Copilot SDK model |
|
|
246
|
-
| `--mission <name>` | hamming-distance | Init with --purge before iterating (iterate only) |
|
|
246
|
+
| `--mission <name>` | 6-kyu-understand-hamming-distance | Init with --purge before iterating (iterate only) |
|
|
247
247
|
| `--timeout <ms>` | 600000 | Session timeout in milliseconds (iterate only) |
|
|
248
248
|
|
|
249
249
|
### Example: Full Walkthrough
|
|
@@ -303,18 +303,39 @@ The `iterate` command runs a single persistent Copilot SDK session that autonomo
|
|
|
303
303
|
|
|
304
304
|
```bash
|
|
305
305
|
# Init a mission and iterate
|
|
306
|
-
npx @xn-intenton-z2a/agentic-lib iterate --mission hamming-distance --model gpt-5-mini
|
|
306
|
+
npx @xn-intenton-z2a/agentic-lib iterate --mission 6-kyu-understand-hamming-distance --model gpt-5-mini
|
|
307
307
|
|
|
308
308
|
# Iterate on an existing workspace
|
|
309
309
|
npx @xn-intenton-z2a/agentic-lib iterate --target /path/to/workspace
|
|
310
310
|
|
|
311
311
|
# With a longer timeout (10 minutes)
|
|
312
|
-
npx @xn-intenton-z2a/agentic-lib iterate --mission fizz-buzz --timeout 600000
|
|
312
|
+
npx @xn-intenton-z2a/agentic-lib iterate --mission 7-kyu-understand-fizz-buzz --timeout 600000
|
|
313
313
|
```
|
|
314
314
|
|
|
315
315
|
The session uses SDK hooks for observability (tool call tracking, error recovery) and infinite sessions for context management. The agent drives its own read-write-test loop until the mission is complete or the timeout is reached.
|
|
316
316
|
|
|
317
|
-
**Available missions
|
|
317
|
+
**Available missions** (see `src/seeds/missions/`). Mission names encode difficulty ([Codewars kyu/dan](https://docs.codewars.com/concepts/kata/)) and cognitive type ([Bloom's taxonomy](https://en.wikipedia.org/wiki/Bloom%27s_taxonomy)):
|
|
318
|
+
|
|
319
|
+
| Mission | Kyu/Dan | Bloom's | Description |
|
|
320
|
+
|---------|---------|---------|-------------|
|
|
321
|
+
| `8-kyu-remember-empty` | 8 kyu | Remember | Blank template |
|
|
322
|
+
| `8-kyu-remember-hello-world` | 8 kyu | Remember | Hello World |
|
|
323
|
+
| `7-kyu-understand-fizz-buzz` | 7 kyu | Understand | Classic FizzBuzz |
|
|
324
|
+
| `6-kyu-understand-hamming-distance` | 6 kyu | Understand | Hamming distance (strings + bits) |
|
|
325
|
+
| `6-kyu-understand-roman-numerals` | 6 kyu | Understand | Roman numeral conversion |
|
|
326
|
+
| `5-kyu-create-ascii-face` | 5 kyu | Create | ASCII face art |
|
|
327
|
+
| `5-kyu-apply-string-utils` | 5 kyu | Apply | 10 string utility functions |
|
|
328
|
+
| `4-kyu-apply-cron-engine` | 4 kyu | Apply | Cron expression parser |
|
|
329
|
+
| `4-kyu-apply-dense-encoding` | 4 kyu | Apply | Dense binary encoding |
|
|
330
|
+
| `4-kyu-analyze-json-schema-diff` | 4 kyu | Analyze | JSON Schema diff |
|
|
331
|
+
| `3-kyu-analyze-lunar-lander` | 3 kyu | Analyze | Lunar lander simulation |
|
|
332
|
+
| `3-kyu-evaluate-time-series-lab` | 3 kyu | Evaluate | Time series analysis |
|
|
333
|
+
| `3-kyu-evaluate-owl-ontology` | 3 kyu | Evaluate | OWL ontology processor |
|
|
334
|
+
| `2-kyu-evaluate-markdown-compiler` | 2 kyu | Evaluate | Markdown compiler |
|
|
335
|
+
| `2-kyu-create-plot-code-lib` | 2 kyu | Create | Code visualization library |
|
|
336
|
+
| `1-kyu-create-ray-tracer` | 1 kyu | Create | Ray tracer |
|
|
337
|
+
| `1-dan-create-c64-emulator` | 1 dan | Create | C64 emulator |
|
|
338
|
+
| `2-dan-create-agi` | 2 dan | Create | AGI vision |
|
|
318
339
|
|
|
319
340
|
### Running Local Benchmarks
|
|
320
341
|
|
|
@@ -338,28 +359,28 @@ source .env
|
|
|
338
359
|
**Run a benchmark:**
|
|
339
360
|
|
|
340
361
|
```bash
|
|
341
|
-
# Quick: hamming-distance with gpt-5-mini (
|
|
362
|
+
# Quick: hamming-distance with gpt-5-mini (6 kyu, ~1-2 min)
|
|
342
363
|
npx @xn-intenton-z2a/agentic-lib iterate \
|
|
343
|
-
--mission hamming-distance --model gpt-5-mini --timeout 300000
|
|
364
|
+
--mission 6-kyu-understand-hamming-distance --model gpt-5-mini --timeout 300000
|
|
344
365
|
|
|
345
366
|
# Medium: roman-numerals with claude-sonnet-4
|
|
346
367
|
npx @xn-intenton-z2a/agentic-lib iterate \
|
|
347
|
-
--mission roman-numerals --model claude-sonnet-4
|
|
368
|
+
--mission 6-kyu-understand-roman-numerals --model claude-sonnet-4
|
|
348
369
|
|
|
349
|
-
# Complex: string-utils with gpt-4.1 (10 functions, longer timeout)
|
|
370
|
+
# Complex: string-utils with gpt-4.1 (5 kyu, 10 functions, longer timeout)
|
|
350
371
|
npx @xn-intenton-z2a/agentic-lib iterate \
|
|
351
|
-
--mission string-utils --model gpt-4.1 --timeout 600000
|
|
372
|
+
--mission 5-kyu-apply-string-utils --model gpt-4.1 --timeout 600000
|
|
352
373
|
```
|
|
353
374
|
|
|
354
375
|
**From a local clone** (development):
|
|
355
376
|
|
|
356
377
|
```bash
|
|
357
378
|
# From the agentic-lib directory
|
|
358
|
-
npx . iterate --mission hamming-distance --model gpt-5-mini --target /tmp/bench
|
|
379
|
+
npx . iterate --mission 6-kyu-understand-hamming-distance --model gpt-5-mini --target /tmp/bench
|
|
359
380
|
|
|
360
381
|
# Or link globally
|
|
361
382
|
npm link
|
|
362
|
-
agentic-lib iterate --mission hamming-distance --model gpt-5-mini --target /tmp/bench
|
|
383
|
+
agentic-lib iterate --mission 6-kyu-understand-hamming-distance --model gpt-5-mini --target /tmp/bench
|
|
363
384
|
```
|
|
364
385
|
|
|
365
386
|
**Output:**
|
package/bin/agentic-lib.js
CHANGED
|
@@ -63,7 +63,7 @@ Options:
|
|
|
63
63
|
--reseed Clear features + activity log (keep source code)
|
|
64
64
|
--dry-run Show what would be done without making changes
|
|
65
65
|
--target <path> Target repository (default: current directory)
|
|
66
|
-
--mission <name> Mission seed name (default: hamming-distance) [purge only]
|
|
66
|
+
--mission <name> Mission seed name (default: 6-kyu-understand-hamming-distance) [purge only]
|
|
67
67
|
--mission-file <path> Use a custom mission file instead of a built-in seed
|
|
68
68
|
--list-missions List available built-in mission seeds
|
|
69
69
|
--here Discover the project and generate a MISSION.md, then iterate
|
|
@@ -79,7 +79,7 @@ Examples:
|
|
|
79
79
|
npx @xn-intenton-z2a/agentic-lib transform
|
|
80
80
|
npx @xn-intenton-z2a/agentic-lib maintain-features --model gpt-5-mini
|
|
81
81
|
npx @xn-intenton-z2a/agentic-lib reset --dry-run
|
|
82
|
-
npx @xn-intenton-z2a/agentic-lib iterate --mission fizz-buzz
|
|
82
|
+
npx @xn-intenton-z2a/agentic-lib iterate --mission 7-kyu-understand-fizz-buzz
|
|
83
83
|
npx @xn-intenton-z2a/agentic-lib iterate --mission-file ~/my-mission.md
|
|
84
84
|
npx @xn-intenton-z2a/agentic-lib iterate --here
|
|
85
85
|
npx @xn-intenton-z2a/agentic-lib iterate --list-missions
|
|
@@ -107,7 +107,7 @@ const target = resolve(targetPath);
|
|
|
107
107
|
const modelIdx = flags.indexOf("--model");
|
|
108
108
|
const model = modelIdx >= 0 ? flags[modelIdx + 1] : "claude-sonnet-4";
|
|
109
109
|
const missionIdx = flags.indexOf("--mission");
|
|
110
|
-
const mission = missionIdx >= 0 ? flags[missionIdx + 1] : "hamming-distance";
|
|
110
|
+
const mission = missionIdx >= 0 ? flags[missionIdx + 1] : "6-kyu-understand-hamming-distance";
|
|
111
111
|
const cyclesIdx = flags.indexOf("--cycles");
|
|
112
112
|
const cycles = cyclesIdx >= 0 ? parseInt(flags[cyclesIdx + 1], 10) : 0;
|
|
113
113
|
const stepsIdx = flags.indexOf("--steps");
|
|
@@ -277,7 +277,7 @@ async function runIterate() {
|
|
|
277
277
|
}
|
|
278
278
|
console.log(`\n=== Init with custom mission: ${missionFile} ===\n`);
|
|
279
279
|
execSync(
|
|
280
|
-
`node ${resolve(pkgRoot, "bin/agentic-lib.js")} init --purge --mission empty --target ${target}`,
|
|
280
|
+
`node ${resolve(pkgRoot, "bin/agentic-lib.js")} init --purge --mission 8-kyu-remember-empty --target ${target}`,
|
|
281
281
|
{ encoding: "utf8", timeout: 60000, stdio: "inherit" },
|
|
282
282
|
);
|
|
283
283
|
// Overwrite MISSION.md with the custom file
|
package/package.json
CHANGED
|
@@ -35,8 +35,12 @@ runs:
|
|
|
35
35
|
fi
|
|
36
36
|
if ! git diff --cached --quiet; then
|
|
37
37
|
git commit -m "${{ inputs.commit-message }}"
|
|
38
|
+
# Stash any unstaged changes (e.g. log/screenshot files we just unstaged)
|
|
39
|
+
# so that git pull --rebase can work cleanly
|
|
40
|
+
git stash 2>/dev/null || true
|
|
38
41
|
REF="${{ inputs.push-ref }}"
|
|
39
42
|
MAX_RETRIES=3
|
|
43
|
+
PUSH_SUCCESS=""
|
|
40
44
|
REMOTE_REF_EXISTS=""
|
|
41
45
|
if [ -n "$REF" ]; then
|
|
42
46
|
git ls-remote --exit-code origin "$REF" > /dev/null 2>&1 && REMOTE_REF_EXISTS="true"
|
|
@@ -53,7 +57,7 @@ runs:
|
|
|
53
57
|
continue
|
|
54
58
|
}
|
|
55
59
|
fi
|
|
56
|
-
git push origin "$REF" && { REMOTE_REF_EXISTS="true"; break; }
|
|
60
|
+
git push origin "$REF" && { REMOTE_REF_EXISTS="true"; PUSH_SUCCESS="true"; break; }
|
|
57
61
|
else
|
|
58
62
|
git pull --rebase || {
|
|
59
63
|
echo "Rebase conflict on attempt $attempt — aborting rebase and retrying"
|
|
@@ -61,13 +65,15 @@ runs:
|
|
|
61
65
|
sleep $((attempt * 2))
|
|
62
66
|
continue
|
|
63
67
|
}
|
|
64
|
-
git push && break
|
|
65
|
-
fi
|
|
66
|
-
if [ "$attempt" -eq "$MAX_RETRIES" ]; then
|
|
67
|
-
echo "::error::Failed to push after $MAX_RETRIES attempts"
|
|
68
|
-
exit 1
|
|
68
|
+
git push && { PUSH_SUCCESS="true"; break; }
|
|
69
69
|
fi
|
|
70
70
|
echo "Push failed on attempt $attempt, retrying..."
|
|
71
71
|
sleep $((attempt * 2))
|
|
72
72
|
done
|
|
73
|
+
# Restore stashed unstaged changes
|
|
74
|
+
git stash pop 2>/dev/null || true
|
|
75
|
+
if [ "$PUSH_SUCCESS" != "true" ]; then
|
|
76
|
+
echo "::error::Failed to push after $MAX_RETRIES attempts"
|
|
77
|
+
exit 1
|
|
78
|
+
fi
|
|
73
79
|
fi
|
package/src/mcp/server.js
CHANGED
|
@@ -120,7 +120,7 @@ const TOOLS = [
|
|
|
120
120
|
properties: {
|
|
121
121
|
mission: {
|
|
122
122
|
type: "string",
|
|
123
|
-
description: "Mission seed name (e.g. 'hamming-distance', 'fizz-buzz')",
|
|
123
|
+
description: "Mission seed name (e.g. '6-kyu-understand-hamming-distance', '7-kyu-understand-fizz-buzz')",
|
|
124
124
|
},
|
|
125
125
|
profile: {
|
|
126
126
|
type: "string",
|
|
@@ -29,6 +29,10 @@ fi
|
|
|
29
29
|
|
|
30
30
|
echo "push-to-logs: pushing ${FILES[*]} to ${BRANCH}"
|
|
31
31
|
|
|
32
|
+
# Mark the workspace as safe (needed in container jobs where the checkout
|
|
33
|
+
# was done by a different user, e.g. Playwright containers)
|
|
34
|
+
git config --global --add safe.directory "$(pwd)" 2>/dev/null || true
|
|
35
|
+
|
|
32
36
|
# Configure git
|
|
33
37
|
git config --local user.email 'action@github.com'
|
|
34
38
|
git config --local user.name 'GitHub Actions[bot]'
|
|
@@ -39,13 +43,21 @@ for f in "${FILES[@]}"; do
|
|
|
39
43
|
cp "$f" "${TMPDIR}/$(basename "$f")"
|
|
40
44
|
done
|
|
41
45
|
|
|
46
|
+
# Remember which branch/ref to return to
|
|
47
|
+
ORIGINAL_REF=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
|
|
48
|
+
if [ "$ORIGINAL_REF" = "HEAD" ]; then
|
|
49
|
+
ORIGINAL_REF=$(git rev-parse HEAD 2>/dev/null || echo "")
|
|
50
|
+
fi
|
|
51
|
+
|
|
52
|
+
# Stash any uncommitted changes so branch switching works cleanly
|
|
53
|
+
git stash --include-untracked 2>/dev/null || true
|
|
54
|
+
|
|
42
55
|
# Fetch the agentic-lib-logs branch (may not exist yet)
|
|
43
56
|
REMOTE_EXISTS=""
|
|
44
57
|
git fetch origin "${BRANCH}" 2>/dev/null && REMOTE_EXISTS="true" || true
|
|
45
58
|
|
|
46
59
|
if [ "$REMOTE_EXISTS" = "true" ]; then
|
|
47
|
-
# Check out existing agentic-lib-logs branch
|
|
48
|
-
git checkout "origin/${BRANCH}" -- . 2>/dev/null || true
|
|
60
|
+
# Check out existing agentic-lib-logs branch
|
|
49
61
|
git checkout -B "${BRANCH}" "origin/${BRANCH}"
|
|
50
62
|
else
|
|
51
63
|
# Create orphan branch
|
|
@@ -79,8 +91,15 @@ else
|
|
|
79
91
|
done
|
|
80
92
|
fi
|
|
81
93
|
|
|
82
|
-
# Return to
|
|
83
|
-
|
|
94
|
+
# Return to original branch/ref
|
|
95
|
+
if [ -n "$ORIGINAL_REF" ]; then
|
|
96
|
+
git checkout "$ORIGINAL_REF" 2>/dev/null || git checkout main 2>/dev/null || true
|
|
97
|
+
else
|
|
98
|
+
git checkout main 2>/dev/null || true
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
# Restore stashed changes
|
|
102
|
+
git stash pop 2>/dev/null || true
|
|
84
103
|
|
|
85
104
|
# Clean up
|
|
86
105
|
rm -rf "$TMPDIR"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Mission
|
|
2
|
+
|
|
3
|
+
**Agentic-lib** is evolving into an intelligent automation system endowed with multiple AGI-aligned capabilities, all oriented toward a coherent long-term purpose: enabling agentic, cross-repository intelligent automation. The ultimate vision is a network of self-managing coding agents that can understand high-level goals, break them down, execute tasks across many projects, learn from their experiences, and seek assistance when needed – all with minimal human intervention. Each of the new features (Memory, Planning, Goal Decomposition, Self-Improvement, Replication, and Help-Seeking) contributes to this vision in a concrete, feasible way, building the stepping stones toward a truly autonomous development workflow.
|
|
4
|
+
|
|
5
|
+
In the near term, these traits function as enhancements to the JavaScript CLI/Lambda agent that drives **agentic-lib**:
|
|
6
|
+
- **Memory** provides continuity. The agent now retains a log of actions and outcomes, which means it can carry context from one step to the next. This is immediately useful for avoiding redundant operations and will later allow experience-based learning. For example, when the agent works on Repository A and then on Repository B, a memory of patterns or solutions from A could inform its actions on B.
|
|
7
|
+
- **Planning** gives the agent foresight. Instead of reacting to one command at a time, it can map out a sequence of tasks to achieve a bigger objective. Right now it executes those plans instantly, but this capability will expand to planning over longer durations (even across workflow runs) and coordinating complex changes (like a multi-step refactor that touches many parts of a codebase or multiple repositories).
|
|
8
|
+
- **Goal Decomposition** adds transparency and manageability to complex objectives. The agent can articulate a game plan (a set of sub-tasks) for a broad goal, which can be reviewed or assigned out. In a multi-repository scenario, the agent might decompose a company-wide objective into repo-specific tasks. This structured breakdown makes large-scale automation safer and more organized, since each piece can be tracked (potentially as separate issues or pull requests).
|
|
9
|
+
- **Self-Improvement** makes the agent reflective. By tracking its performance (how many errors, how fast it completes tasks) the agent lays the groundwork for optimizing itself. In the short run, this means better observability and diagnostics in the system. In the long run, the agent could use this information to autonomously fine-tune its own algorithms – for instance, detecting that it often fails a certain kind of task and adjusting its approach or updating its code. This trait keeps the agent aligned with best practices and efficiency as it scales up.
|
|
10
|
+
- **Replication** unlocks scale. The agent is no longer a singleton processing one item at a time – it can replicate its effort either through parallel processing or by spawning new agent instances. Immediately, this manifests as parallel command execution which speeds up workflows (e.g., running multiple checks or updates simultaneously). Looking forward, replication means the agentic-lib model can be instantiated in multiple environments at once: think of dozens of agent clones each working on a different repository but sharing the same core knowledge. This horizontal scaling is essential for cross-repository automation in large organizations.
|
|
11
|
+
- **Help-Seeking** keeps the agent humble and effective. When the agent encounters something it doesn’t know, it can ask an external AI or resource, rather than stalling or guessing wrongly. Currently, this is achieved via OpenAI API calls for answers. As this feature matures, the agent will integrate more sources (documentation, human feedback) and become increasingly adept at knowing when and how to seek help. This ensures that as the agent’s autonomy grows, it remains grounded and correct in its actions, leveraging the broader world’s knowledge.
|
|
12
|
+
|
|
13
|
+
All these capabilities align to serve a **unified mission**: an autonomous system that can handle the lifecycle of software development tasks across multiple projects. Concretely, we are moving toward a scenario where you could give the agent a high-level directive (for example, “ensure all our repositories are using the latest version of library X and adhere to security policy Y”), and the agent would:
|
|
14
|
+
1. **Understand and Plan:** It would use Goal Decomposition and Planning to figure out what needs to be done for each repository – maybe creating a checklist per repository.
|
|
15
|
+
2. **Take Action in Parallel:** Using Replication, it would initiate changes in multiple repositories at once (branching, editing files, running tests), using memory to avoid repeating known fixes and using its plan as a guide.
|
|
16
|
+
3. **Learn and Adapt:** Throughout, Self-Improvement metrics would monitor which repos encountered issues (maybe some tests failed or some had edge cases). The agent could adjust its approach repository by repository – for instance, if it learned a better fix in one place, Memory would carry that knowledge to the others.
|
|
17
|
+
4. **Seek Guidance if Stuck:** If a particular repository has an unusual setup that the agent doesn’t understand, the Help-Seeking trait would kick in – the agent might query documentation or even open a “help needed” issue for a human maintainer, ensuring that it doesn’t silently fail.
|
|
18
|
+
5. **Deliver Results:** Finally, the agent would open pull requests or issues summarizing changes for each repository (or automatically merge them if permitted), effectively executing a coordinated cross-repo update with minimal human oversight.
|
|
19
|
+
|
|
20
|
+
The long-term purpose is ambitious but grounded in these tangible capabilities. Each new feature is a **plausible next step**: for example, after implementing basic memory, the next step is to make that memory persistent or sharable among agent instances (so that one agent’s learnings become every agent’s knowledge). After introducing planning and decomposition, the next step is to integrate those with the GitHub issue workflow – the agent could start creating and managing issues on its own to track sub-tasks. Self-improvement opens the door to techniques like on-the-fly model prompting (the agent asking “how can I do this better?” and applying the advice). Replication will eventually entail deploying the agent as a service or container that can be instantiated on demand for whatever project needs it. And help-seeking will evolve into a rich web of integrations with documentation, Q&A forums, and direct human loop-ins when necessary.
|
|
21
|
+
|
|
22
|
+
In summary, the trajectory defined in this feature set steers **agentic-lib** toward becoming a general-purpose automation AI for software projects. It’s not science fiction – each step is achievable with incremental improvements and integrations, and together they compound into a system that can handle increasing complexity. By focusing on feasible enhancements now (like logging memory, adding parallelism, using an API for help, etc.), we ensure that future leaps (like autonomous multi-repo refactoring or self-directed learning) are built on solid ground. All traits work in concert: memory and help-seeking ensure it has the knowledge, planning and decomposition give it strategy, replication gives it manpower, and self-improvement ensures it keeps getting better. With these aligned, **agentic-lib** can truly fulfill its mission of agentic, cross-repository intelligent automation – a stepping stone toward the broader vision of self-evolving code.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|