Skip to content

fix(skill): expose extraction action outcomes - #1117

Open
Gout999 wants to merge 1 commit into
TencentCloud:feat/server_teamfrom
Gout999:agent/fix-skill-outcomes-1009-v2
Open

Gout999 wants to merge 1 commit into
TencentCloud:feat/server_teamfrom
Gout999:agent/fix-skill-outcomes-1009-v2

Conversation

@Gout999

@Gout999 Gout999 commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Addresses #1009 with a privacy-preserving observability slice for conversation-add
skill extraction.

The worker now reports aggregate candidate outcomes (created, updated,
non_create, and action counts) in its logs and task completion metadata. The helper
does not emit skill content or skill names.

This PR does not change the extractor's decision policy or add a new task-result API;
it makes the existing outcomes inspectable first.

Verification

  • npm test -- --run src/core/skill/conversation-add/candidate-outcome.test.ts (2 tests passed)
  • git diff --check

Signed-off-by: Gout999 gout999@users.noreply.github.com

Signed-off-by: Gout999 <gout999@users.noreply.github.com>
(cherry picked from commit d5f506282351af9cc04617ede23f898fd6a829bc)
@Maxwell-Code07

Copy link
Copy Markdown
Collaborator

Thank you so much for your attention and contribution! We will arrange an internal review for this PR shortly, and all feedback will be shared right here in the discussion.

@Gout999
Gout999 marked this pull request as ready for review August 23, 2026 13:49
VittorioCai pushed a commit to VittorioCai/TencentDB-Agent-Memory that referenced this pull request Sep 12, 2026
…xtraction switch had drifted back on

The expert review threw out my problem statement: with extraction off the task is NOT
"never queued" — trigger-service.ts writes the archive (161), takes the tasks mutex
(179) and enqueues (209), and the worker pool starts either way. The defect is that the
response cannot be told apart from one whose task will actually be extracted.

Reproduced live and recorded with all three pieces of evidence the review asked for
(evaluation/upstream/skill-extraction-flag/): the response (code 0 + task_id, no hint),
the agent's _tasks.json (task registered with enqueued_at_ms), and Core's log (pool
started, then "standalone SkillExtractor unavailable" from every worker, repeating). An
empty candidate pool is explicitly not used as evidence — a real extraction may also
produce none.

The branch itself is fix/skill-extraction-flag in a separate worktree cut from upstream
0468a2a: one field, extraction_enabled, on the three archive entry points' success
responses; the configuration switch only, null rather than false when the config cannot
be read; 26 lines of implementation, 6 tests, plus the API doc and both SDKs. README
records that "under 100 lines" holds for the implementation but not for the whole
submission, and leaves that trade-off to the user. Dedup ran over the repository's full
PR history, not only September; TencentCloud#1117 is the worker side and does not overlap.

Found while setting up the reproduction: skill.extraction.enabled was ON live. The
11:33Z image switch ran start-memory-core.sh, which regenerates the whole mounted config
(line 55) with extraction on — the trap commit c88e955 recorded, not re-checked after
switching images. So ruling ③ was not in effect between 11:33Z and 17:56Z. Restored with
the §10 record, drift scope verified as that one switch, and the three gate assets read
back unchanged. No delivered run is affected: there were no runs on 9/12, and
prepare.sh:81 fails hard when the switch is not off.
VittorioCai pushed a commit to VittorioCai/TencentDB-Agent-Memory that referenced this pull request Sep 12, 2026
…t run on this base

Checking the submit sequence turned up two things about the upstream side:

- .github/PULL_REQUEST_TEMPLATE.md exists (Description / Related Issue / Change Type /
  Self-test Checklist / Additional Notes, with checkboxes), and --body-file bypasses it.
  PR-BODY.md is rewritten onto that structure with the boxes ticked against what was
  actually done — Bug fix plus Documentation update, and both self-test lines carrying
  the command and its result. The substance is unchanged; the reproduction, the scope
  declarations, the TencentCloud#1117 comparison and the size breakdown moved under Additional Notes.
- .github/workflows/pr-ci.yml triggers on `pull_request: branches: [main]`, so none of
  its four jobs run for a PR targeting feat/server_team. The body says so and offers to
  re-run anything on request. Locally, against the real base:
  check-skill-queue-isolation.sh PASS, and `npm pack --dry-run` does not carry the new
  test file (files has `!src/**/*.test.ts`), so the published package keeps its shape.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants